从一小批对象和背景生成数千个新的2D图像。
flip-data的Python项目详细描述
翻转
使用Flip生成合成数据!从一小批对象和背景中生成数千个新的2D图像。在
安装
使用pip安装Flip:
pip install flip-data
依赖性
Flip要求:
- Python(>;=3.7)
- 开放式CV(gt;=4.3.0)
- 数量(>;=1.19.1)
快速入门(Example)
要尝试Flip library,可以运行examples/data_generator.py
。
您需要添加背景图像和对象来组成新的训练数据集,然后
将它们放在以下目录中:
Flip的主要工作流程是创建变压器,然后按如下方式执行:
## Import Flip transformersimportflip.transformersastrOUT_DIR="examples/result"...## Create Child transformerstransform_objects=[tr.data_augmentation.Rotate(mode='random'),tr.data_augmentation.Flip(mode='y'),tr.data_augmentation.RandomResize(mode='symmetric_w',relation='parent',w_percentage_min=0.2,w_percentage_max=0.5)]## Create main transformertransform=tr.Compose([tr.ApplyToObjects(transform_objects),tr.domain_randomization.ObjectsRandomPosition(x_min=0,y_min=0.4,x_max=0.7,y_max=0.7,mode='percentage'),tr.data_augmentation.Flip('x'),tr.domain_randomization.Draw(),tr.labeler.CreateBoundingBoxes(),tr.io.CreateJson(out_dir=OUT_DIR,name='img_generate.jpg'),tr.io.CreateJson(out_dir=OUT_DIR,name='json_generated.jpg')])## Execute transformationsel=tr.Element(image=...,objects=...)[el]=transform(el)
变压器
主变压器为:
- 变压器
- 撰写
- 应用对象
顺便说一句,所有的转换器都将在class Element的对象上执行,并将返回一个新的transformed元素。在
数据扩充
- 翻转:沿x或y轴翻转图元。在
- RandomResize:随机更改元素的大小。在
- 旋转:随机旋转元素。在
随机域
- 绘制:在背景元素上绘制对象,将它们合并到一个新的图像中。在
- ObjectsRandomPosition:在背景元素上设置对象的随机位置。在
贴标机
- CreateBoundingBoxes:围绕背景元素包含的对象绘制边界框。在
IO
- SaveImage:用新生成的图像保存一个.jpg文件。在
- Json:将生成的标签另存为Json。在
- Csv:将生成的标签另存为Csv。在
想要贡献或者有任何疑问或反馈?在
如果你想了解更多信息,请发邮件给我flip@linkedai.co
报告问题
请通过reporting any issues帮助我们使用Flip。在
许可证
- 项目
标签: