TensorFlow:实战Google深度学习框架(四)图像数据的处理
-
TFRecord格式:数据是以tf.train.Example的格式存储的,存储时以Key-Vaule键值对的形式进行存储,不改变原始数据的大小(不对数据进行编码或者解码,图像以图像原始的形式的二进制形式存储),读取时使用相同的feature_map即可使用tf.parse_single_example函数进行解析。
-
硬盘本地的图片数据集存成一个tfrecord文件
-
将tfrecord文件中的图片数据读取出来,并保存为图片
-
常用的图像处理函数
-
图像的编码处理:一张三通道的图片可以看成一个三维的矩阵,矩阵中的每一个数字表示了图像上不同位置,不同颜色的亮度。但是图片在存储是并不是直接记录这些矩阵中的数字,而实记录经过压缩编码之后的结果,所以要将一张图片还原成一个三维的矩阵,需要解码的过程。tensorflow提供了对jpeg和png的图像编码和解码函数
-
图片大小的调整:由于图片的大小是各种各样的,但是训练的神经网络的节点数是固定的,因此在将图片输入神经网络之前,需要将各种图片的大小统一,根据结果来看tensorflow提供的几种方法实现的效果差别不大
调整图片的大小还可以用其他函数:tf.image.resize_image_with_crop_or_pad
tf.image.central_crop函数支持按比例裁剪图象,比例为(0,1]之间的数值
-
图像翻转
tensorflow中提供了函数支持图像的上下翻转、左右翻转、沿对角线翻转
-
图像色彩调整:亮度、对比度、色相、饱和度
对比度调整函数包括:tf.image.adjust_contrast()和tf.image.random_constrast();
色相调整函数:tf.image_adjust_hue()和tf.image.random_hue()
饱和度调整函数:tf,inage.adjust_saturation()和tf.image.random_saturation()
图片的标准化:将图片的亮度均值变为0,标准差变为1----tf.iimage.per_image_standaraization()函数
-
处理标注框
在许多图像识别的数据集中,图像中需要关注的武器通常会被标注框标注出来。tensorflow提供了一些工具来处理标注框
-