天池酒瓶瑕疵检测数据集分析及完整 baseline
以下内容为还没思路的小伙伴牵个头提供一个 demo,大佬勿喷,线上成绩 0.7+,留空间给小伙伴们发挥自己的力量 ps:markdown 不怎么熟悉,代码中如有明显缩进问题,自行斟酌改正,编辑好几次都改不过来,请原谅....
数据分析瑕疵大类:瓶盖瑕疵、标贴瑕疵、喷码瑕疵、瓶身瑕疵、酒液瑕疵瑕疵小类:{ 0: '背景', 1: '瓶盖破损', 2: '瓶盖变形', 3: '瓶盖坏边', 4: '瓶盖打旋', 5: '瓶盖断点', 6: '标贴歪斜', 7: '标贴起皱', 8: '标贴气泡', 9: '喷码正常', 10: '喷码异常' }
背景图片说明(可直接去除背景图片训练):"annotations"中的元素,"category_id":0 对应的是背景。当且仅当一张图片对应的所有 annotations 中,"category_id"都为 0,该图片为背景图片。
类别统计:round1:图片数量:4516 瑕疵个数(带背景):6945 瑕疵个数(不带背景):5775 图片大小: 除 6,7,8 外都为(492,658), 6 7 8 为(3000,4096)
图一 带背景类类别统计图
图二 去除背景类短边统计图
此次任务是酒瓶上的瑕疵检测,类似于天池上一个布匹瑕疵检测,因此可以选取 mmdetection 目标检测框架,对于网络精度而言,首选是二阶段网络,比如 fasterrcnn,cascade 等,但是由于复赛会加入时间惩罚,因此对于网络前传速度也有很大的要求.参赛小伙伴们应充分考虑速度和精度的 trade off. 比如对模型进行进行剪枝压缩,网络蒸馏等,或者考虑多进程或多 batch 测试,这些都需要尝试,这里我只是提供一个简单的 demo 给大家参考下.
模型选择:
backbone 采用 resnet50,检测器采用 faster-rcnn
可优化点:1.采用 dcn 减少不同尺度目标的差异性带来的影响,提高检测性能 2.本次比赛到目前位置提供的数据集目标尺寸小目标较多,同时存在几类大目标,可通过聚类设置合理的 anchor3.用 roi align 代替 roi pooling4.使用 focalloss,ohem 等 trick 平衡正负以及困难样本等等
mmdetection 编译:1.对 mmdetection 进行安装编译
git clone GitHub - open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark
cd mmdetection
python setup.py develop (如果编译不成功,使用另一条命令 pip install -v -e .)
具体安装细节请参考官方 Readme
2.数据准备 mmdetection 默认输入的数据集格式是 coco 数据格式,这次官方提供的标注格式也是 coco 格式,无需转换,可直接使用,但需要注意的是将 json 中的背景类去除.
3.mmdetection 简单介绍
4.修改配置文件这里提供一份训练 config,根据具体优化自行修改
查看本文全部内容,欢迎访问天池技术圈官方地址:天池酒瓶瑕疵检测数据集分析及完整baseline_天池技术圈-阿里云天池
评论