jch*_*kow 7 python image-processing tensorflow
我会尽力在这里提供一个可重复的例子.
我有一张图片:
这张Aaron Eckhart的照片是 (150, 150)
我的目标是在像素上做数学运算来扰乱这个图像的ROI,但是,问题是,数学必须作为一个tensorflow张量完成,因为做数学运算是由它的缩放梯度乘以张量(这也是一个大小的张量(row_pixels,column_pixels,3))
所以这是我想象的过程:
读入图像为numpy数组RGB大小:(1,150,150,3)(1是批量大小)
w, h = img.shape
ret = np.empty((w, h, 3), dtype=np.uint8)
ret[:, :, 0] = ret[:, :, 1] = ret[:, :, 2] = img
使像素值介于0和1之间
img = (faces1 - min_pixel) / (max_pixel - min_pixel)
for i in range(steps):
(a)提取图像的ROI 这是我不明白该怎么做的部分
(b)计算较小的img ROI张量损失的梯度
loss = utils_tf.model_loss(y, preds, mean=False)
grad, = tf.gradients(loss, x)
Run Code Online (Sandbox Code Playgroud)
(c)通过损失梯度乘以img ROI张量
scaled_grad = eps * normalized_grad
adv_img = img + scaled_grad
Run Code Online (Sandbox Code Playgroud)
(d)将这个新扰动的ROI张量放回到原始张量中的相同位置这是另一部分我不明白该怎么做
这将导致图像中仅一些像素值被扰动而其余像素值保持不变
小智 5
给定一个图像:

(a)从图像中获取感兴趣的区域((440,240),(535,380)):
roi_slice = tf.slice(
image_in,
[top_left_x, top_left_y, top_left_z],
[roi_len_x, roi_len_y, bottom_right_z]
)
Run Code Online (Sandbox Code Playgroud)

获取与图像大小相同的ROI布尔值蒙版
roi_mask = tf.ones_like(roi_slice)
mask_canvas = tf.image.pad_to_bounding_box(
[roi_mask],
top_left_x,
top_left_y,
np_image.shape[0],
np_image.shape[1]
)
bool_mask = tf.cast(mask_canvas, tf.bool)
Run Code Online (Sandbox Code Playgroud)

(b)就本示例而言,我使用的是伪渐变,但您可以用实际的渐变代替。
fake_gradients = tf.ones_like(image_in) * 0.2
Run Code Online (Sandbox Code Playgroud)
(c)遮盖渐变,以获取ROI所在的渐变,否则为0。
masked_gradients = tf.where(bool_mask[0], fake_gradients, mask_canvas[0])
Run Code Online (Sandbox Code Playgroud)
(d)制作图像的可编辑副本,并使用蒙版渐变对其进行更新
# Make an editable copy of the image
editable_image = tf.get_variable(
name='editable_image', shape=image_in.shape, dtype=tf.float32)
init_op = tf.assign(editable_image, image_in)
# Make sure we don't update the image before we've set its initial value.
with tf.control_dependencies([init_op]):
update_roi_op = tf.assign_add(editable_image, masked_gradients)
Run Code Online (Sandbox Code Playgroud)

您可以在GitHub上找到完整的Colab示例。
| 归档时间: |
|
| 查看次数: |
918 次 |
| 最近记录: |