深度学习可以解决很多人类看似不可能的有趣问题,但它带来了成本。我们需要大量的数据和计算能力来训练深度神经网络。
为了解决数据问题,我们可以使用数据增强。扩展也需要大量的计算,因为我们可能需要添加数百万张图像。处理这个问题可以用tensorflow.image,它提供了一些基本的图像函数,所有的计算都是在GPU上完成的。
Tensorflow图像函数期望传输的图像是张量。让我们加载一张图片,并将其转换为张量:
img=matplotlib . py plot . im read('/img _ path ')
tf_img=tf.convert_to_tensor
在这里,我们将看到可以应用于图像的不同类型的增强。
翻转图像
水平翻转:
brright _ img=TF . image . flip _ left _ right(TF _ img)
垂直翻转:
brright _ img=TF . image . flip _ up _ down(TF _ img)
随机翻转:你的图像有1 . 5%的几率水平或垂直翻转。
brright _ img=TF . image . random _ flip _ left _ right(TF _ img)
br right _ img=TF . image . random _ flip _ up _ down(TF _ img)
或者,您也可以使用tf.reverse Tf.reverse接受一个附加参数,即轴,它定义图像沿x或y轴翻转的位置。
Br _ img=tf.reverse (tf _ img,axis=0) # flip
Br _ img=tf.reverse (tf _ img,axis=1) #水平翻转
图像旋转
Tensorflow提供tensorflow.image.rot90()函数,可以将图像逆时针旋转90度。
brright _ img=TF . image . rot 90(TF _ img,k=1)
亮度
用下面的代码改变图像的亮度:
brright _ img=TF . image . adjust _ brightness(TF _ img,delta=0.2)
其中delta是要添加到每个像素的值的数量。delta值越大,图像越亮。如果增量为负,图像将变暗。如果要应用随机亮度,可以使用以下函数:
brght _ img=TF . image . random _ brightness(TF _ img,max_delta=0.5)
增量将介于-max_delta和max_delta之间。
随机亮度
其他方法
除了上述方法,类似的方法也可用于图像增强,如下所示:
tf.image.adjust_contrast
tf.image.random_contrast
tf.image.adjust_hue
tf.image.random_hue
tf.image.adjust_gamma
tf.image.adjust_saturation
tf.image.random_saturation
除了图像增强,tf.image还提供了一些其他有用的图像处理功能。
br right _ img=TF . image . central _ crop(TF _ img,0.5)
Central_crop从每个维度的中心保留图像,并移除外部部分。
brght _ img=TF . image . crop _ to _ bounding _ box(TF _ img,offset_height=100,offset_width=100,target_height=400,target_width=800)
Crop_to_bounding_box可以通过提供偏移和图像大小值来帮助您裁剪图像的特定区域。