前言
参加了“智蔗见智·向新而生”广西第二届人工智能大赛,但是他给的数据集只有不到100张,对于语义分割模型的训练来说实在是杯水车薪,我们队的处理方案是:先按照十字架方式裁剪图片,之后再进行3个角度的翻转,一系列数据增强的操作了数据集的数量是原来的4*4=16倍,已经可以满足模型的训练要求!而本文正是记录旋转这个数据增强的方式。
记录按十字架裁剪图片方式如下链接:
效果展示
旋转之前的图片:
旋转之后的图片:
90°
180°
270°
成品库
''' @param:im_path,图片路径,例如:img/test.png @param:im_name,图片名称,例如:test.png @param:save_path,保存路径,默认为工作路径 '''
import os import shutil from PIL import Image ''' @param:im_path,图片路径,例如:img/test.png @param:im_name,图片名称,例如:test.png @param:save_path,保存路径,默认为工作路径 ''' def strong_dataset(im_path, im_name, save_path=''): im = Image.open(im_path) part1_im = im.transpose(Image.ROTATE_90) part1_im.save(os.path.join(save_path, '90_'+im_name)) part2_im = im.transpose(Image.ROTATE_180) part2_im.save(os.path.join(save_path, '180_'+im_name)) part3_im = im.transpose(Image.ROTATE_270) part3_im.save(os.path.join(save_path, '270_'+im_name))
1.单张图片处理代码:
import os import shutil from PIL import Image def strong_dataset(im_path, im_name, save_path=''): im = Image.open(im_path) part1_im = im.transpose(Image.ROTATE_90) part1_im.save(os.path.join(save_path, '90_'+im_name)) part2_im = im.transpose(Image.ROTATE_180) part2_im.save(os.path.join(save_path, '180_'+im_name)) part3_im = im.transpose(Image.ROTATE_270) part3_im.save(os.path.join(save_path, '270_'+im_name)) if __name__ == "__main__": strong_dataset('img/test.png', 'test.png', save_path='img')
2.遍历目录图片代码:
import os import shutil from PIL import Image def strong_dataset(im_path, im_name, save_path=''): im = Image.open(im_path) part1_im = im.transpose(Image.ROTATE_90) part1_im.save(os.path.join(save_path, '90_'+im_name)) part2_im = im.transpose(Image.ROTATE_180) part2_im.save(os.path.join(save_path, '180_'+im_name)) part3_im = im.transpose(Image.ROTATE_270) part3_im.save(os.path.join(save_path, '270_'+im_name)) if __name__ == '__main__': # 遍历一个文件夹所有的图片进行旋转,并且保存 ori_path = r'VOCdevkit\VOC2007\JPEGImages' for ori_name in os.listdir(ori_path): temp = os.path.join(ori_path, ori_name) strong_dataset(temp, ori_name, save_path=ori_path)
3.输出说明
''' 假设:你有这样一张图片 test.png 那么裁剪后将保存为 90_test.png 180_test.png 270_test.png 原图片不会删除! '''
完毕!
如果大家觉得有用,欢迎三连~