发布!天池布匹疵点检测大赛解决方案与Baseline(acc:85%左右,mAP:52%左右)
关于大赛介绍:
本文中52CV粉丝sloan、jianh对本次大赛进行了分析,提出了一个主流的解决方案,并于天池开源了代码。
该代码基于mmdection开源框架,结构清晰、步骤完整,对小白来说也简单易上手,可以很方便进一步优化参数和改进,结果达到acc 85%左右、mAP 52%左右。
包括:
对mmdetection进行安装编译
数据准备
mmdetection简单介绍
修改配置文件
本地训练
本地测试
生成提交结果
对于想要学习技术、参与本次大赛的朋友来说,应该有很大帮助。
任务分析
此次任务是布匹瑕疵检测,首先考虑的应该是目标检测框架。
当前目标检测主要分为one-stage和two-stage两种类型,以YOLO,SSD等框架为代表的one-stage速度快,以Faster-RCNN为代表的two-stage框架精度高。基于本次任务对于精度的要求较高,优先使用two-stage检测框架
数据分析
官方一共提供了9576张图片用于训练,其中有瑕疵图片5913张,无瑕疵图片3663张
瑕疵类别共有34个类别,在最终提交结果上对一些相似类别进行了合并后,共分为20个瑕疵类别。
对各类别长宽比聚类结果
可见面临的挑战:
目标类别分布不均衡
目标类别的形状差异大,有些目标相对原图过小,而有些目标呈现细长状的
标注不贴合,包括很多背景信息
模型选择
采用cascade-rcnn网络进行检测,backbone采用resnet50进行特征提取。
考虑到样本的长宽比差异较大,通过聚类分析可以发现,原始的anchor并不能满足当前任务的需要,通过增加anchor数目,提高检测性能。
考虑到样本尺度差异大,加入FPN提高检测性能。
考虑到样本的形状不规则,加入DCN可变形卷积,增强特征提取能力,提高检测性能。
用RoI Align 代替 RoI Pooling 消除量化过程不精准性,从而获得更精准的候选框的特征,提高检测性能。
开源地址:
https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12282027.0.0.6207379cSDoRJ0&postId=74264