小目标数据增强

环境

  • ubuntu 18.04 64位

  • YOLO数据集

简介

近年来,目标检测已经取得了长足的进步,不过,尽管如此,小目标与大目标之间,依然有着非常大的差距。论文 Augmentation for small object detection 提出了在原有图片数据中增加目标的 copy-pasting 方法,一方面,解决了数据集中只有部分图片有小目标的问题,另一方面也使得图片中有足够多的的小目标出现。最终,使用该方法,作者在 MS COCO 数据集上实例分割提高了 9.7%, 而在目标检测上也提升了 7.1%,效果还是非常显著。对应论文地址 https://arxiv.org/abs/1902.07296。

代码实操

开源项目 SmallObjectAugmentation 复现了上面的论文

首先拉取源码

git clone https://github.com/gmayday1997/SmallObjectAugmentation.git
cd smallObjectAugmentation

然后执行

python demo.py

作者提供了2张原始图片和它们对应的标注文件 txt,存放在文件夹 background 下,待增强处理的具体图片由 train.txt 统一管理。而增加的小目标(这里是人),以小图的形式存在,放在文件夹 crops 下,由 small.txt 统一管理,train.txtsmall.txt 可以通过 shell 脚本 createTrain.sh 生成。

最后脚本完成后,增强后的图片与对应标注存放在 save 文件夹下

2fb499d4a97030c1b649fe87d22cb22b.png

增强前
0 0.265364583333 0.139130434783 0.0151041666667 0.0369565217391
0 0.284114583333 0.151086956522 0.0119791666667 0.0173913043478
0 0.3515625 0.179347826087 0.015625 0.0239130434783

数据增强后的图片如下,除了汽车之外,增加了8个小目标人

09fc678bed4dce1fa6693c48d063d2b5.png

增强后
0 0.2643229166666667 0.13804347826086957 0.015104166666666667 0.03695652173913044
0 0.2830729166666667 0.15 0.011979166666666666 0.017391304347826087
0 0.35104166666666664 0.1782608695652174 0.015625 0.02391304347826087
1 0.7893229166666667 0.9206521739130434 0.024479166666666666 0.08478260869565217
1 0.8072916666666666 0.6434782608695653 0.016666666666666666 0.1
1 0.5518229166666666 0.8652173913043478 0.0203125 0.08695652173913043
1 0.86484375 0.8597826086956522 0.013020833333333334 0.06304347826086956
1 0.7174479166666666 0.7673913043478261 0.0203125 0.07173913043478261
1 0.89296875 0.779891304347826 0.021354166666666667 0.07282608695652174
1 0.9169270833333333 0.721195652173913 0.021354166666666667 0.07934782608695652
1 0.42916666666666664 0.6565217391304348 0.015625 0.07173913043478261

基本原理

最后整理一下这份代码的基本原理

  • 依次读取原始图片,转换标注的坐标,由 class x_center y_center width height 转换成 class x1 y1 x2 y2

  • 将目标小图(这里是人)进行缩放

  • 根据缩放,随机生成 bbox

  • 将小图融合到原始图中,使用的是 cv2.seamlessClone 即泊松融合

  • 保存新生成的图片,将标注转换回去,生成对应的 txt

参考资料

  • https://github.com/gmayday1997/SmallObjectAugmentation

  • https://xugaoxiang.com/2021/09/29/sahi-yolov5/

知识星球

新开的知识星球,目标每日更新。分享各种学习资源、实战项目、付费项目、私活分享、资源对接、行业资讯等,欢迎扫码加入

6e7340108f7b94a6059cd0de904ece44.png

版权声明:本文为CSDN博主「迷途小书童的Note」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/djstavaV/article/details/121646689

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

GiraffeDet:Heavy Neck的目标检测框架

关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 获取论文:关注并回复“GD” 计算机视觉研究院专栏 作者:Edison_G 在传统的目标检测框架中,从图像识别模型继承的主