模型构建以及模型训练差不多搞定了,可是当样本不均衡问题出现时该怎么做? 有一种方法可以解决这个问题————数据增强
对于图像的数据增强有很多种可供选择,比如图像缩放、剪裁、颜色变换等,使数据集能够模拟真实环境各种各样的情况,从而让模型学习更多的特征,提高模型的泛化能力。 以tensorflow框架为例,相关的数据增强操作如下:
假设已经使用相关的库读取的图像数据
img = Image.open(self.img_path[index]).convert('RGB')
1.归一化
# 转换为TensorFlow张量
img = tf.convert_to_tensor(img, dtype=tf.float32)
img = img / 255.0
img = (img - [0.485, 0.456, 0.406]) / [0.229, 0.224, 0.225]
2.随机翻转
# 随机翻转(水平)
img = tf.image.random_flip_left_right(img)
3.亮度
# 亮度
brightness_delta = tf.random.uniform([], minval=-0.3, maxval=0.3)
img = tf.image.adjust_brightness(img, brightness_delta)
4.对比度
# 对比度
contrast_factor = tf.random.uniform([], minval=0.5, maxval=1.5)
img = tf.image.adjust_contrast(img, contrast_factor)
5.饱和度
# 饱和度
saturation_factor = tf.random.uniform([], minval=0.5, maxval=1.5)
img = tf.image.adjust_saturation(img, saturation_factor)
6.色调
# 色调
hue_delta = tf.random.uniform([], minval=-0.2, maxval=0.2)
img = tf.image.adjust_hue(img, hue_delta)