前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据增强之王——Augmentor

数据增强之王——Augmentor

作者头像
算法之名
发布2022-06-01 09:18:24
8150
发布2022-06-01 09:18:24
举报
文章被收录于专栏:算法之名

其实我们都知道Pytorch的torchvision的transforms并非真正意义上的数据增强,它只是将图像做了变换,实际上图像数据集的总量是不变的。

现在我们使用Augmentor来做真正意义上的数据增强,首先安装Augmentor

代码语言:javascript
复制
pip install Augmentor

如果我们的ground truth,即mask图像是单通道的,需要转成3通道的RGB图像

代码语言:javascript
复制
from PIL import Image
import os

if __name__ == '__main__':

    img_path = "/home/user/line/data_dataset_voc/SegmentationClassPNG/"
    for im_name in os.listdir(img_path):
        img_mode = Image.open(img_path + im_name)
        print(img_mode.mode)
        img = img_mode.convert('RGB')
        img.save(img_path + im_name)

由于一般mask图像是png格式的,Augmentor需要保证原始图像和mask图像格式一致,我这里原始图像是jpg格式的

代码语言:javascript
复制
import cv2
import os

if __name__ == '__main__':

    img_path = "/home/user/line/data_dataset_voc/JPEGImages/"
    output_path = "/home/user/line/data_dataset_voc/JPEGImagespng/"
    for im_name in os.listdir(img_path):
        print(img_path + im_name)
        img = cv2.imread(img_path + im_name)
        im_name_new = im_name.split('.')[0]+'.png'
        cv2.imwrite(output_path + im_name_new, img)

最后就是开始做数据增强处理了,当然我这里只做了旋转和翻转处理,你还可以作一些其他的数据增强。最后会得到20000张增强图像。

代码语言:javascript
复制
import Augmentor

if __name__ == '__main__':

    p = Augmentor.Pipeline("/home/user/line/data_dataset_voc/JPEGImagespng/")
    p.ground_truth("/home/user/line/data_dataset_voc/SegmentationClassPNG/")
    p.rotate(probability=0.8, max_left_rotation=25, max_right_rotation=25)
    p.flip_left_right(probability=0.5)
    p.flip_top_bottom(probability=0.5)
    p.sample(20000)

最后再分别拷贝到原始图像数据集以及mask数据集中即可开始训练。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档