目标检测是计算机视觉领域研究最火热的领域,这从计算机视觉顶会CVPR相关论文中数量就能看得出来。
目标检测应用范围广泛,上至卫星遥感,下至自动驾驶,大到鲸鱼保护,小到生物细胞分析,都有其用武之地。
我们在论文中常见的MS COCO数据集,多以生活类自然场景中的目标为主,如下图:
做一个通用的目标检测器,当然很有意思,但在工业视觉领域有很多特定的目标,如果能解决好了,往往非常具有商业价值。
CV君有好几位朋友创业方向都选择了工业视觉领域,这个领域商业化模式清晰,足够垂直,国家也鼓励工业 4.0 。一套自动化的产品瑕疵(缺陷)检测系统,一年就可以帮工厂省几百万甚至上千万资金。
阿里天池平台曾经举办过大量的数据竞赛,让人印象深刻的计算机视觉比赛比如 津南数字制造算法挑战赛【赛场二】 X光图像的违禁物品检测分割, 2018广东工业智造大数据创新大赛—智能算法赛 铝型材表面瑕疵识别 ,和最近刚上线的 百万奖金! 天池发起广东工业制造创新大赛 赛场一: 布匹疵点智能识别 ,都与目标检测相关。
布匹疵点智能识别比赛图像示例
布匹 疵 点智能 识别比赛目标标注
比赛嘛,当然是追求高精度,下面将结合一些最新的论文和天池上目标检测相关比赛的优胜方案,谈谈如何提高模型精度。
首先要推荐的是亚马逊李沐团队的论文及代码:
Bag of Freebies for Training Object Detection Neural Networks
https://arxiv.org/abs/1902.04103v1
https://github.com/dmlc/gluon-cv
作者们在文章主要公布了以下训练实用技巧:
1.视觉一致的Image Mixup(Visually Coherent Image Mixup for Object De- tection)
Image Mixup已经成功用于图像分类的样本增广,在很多比赛中也经常被冠军所用,做法非常简单,图像简单按照比例进行像素混合,如下图:
同样,将带有目标的两幅图像也可以像素混合,生成新的图像含有含有原来的目标,用在目标检测的Image Mixup示意如下:
2.分类头标签平滑(Classification Head Label Smoothing)
3.数据预处理(Data Pre-processing)
主要是随机几何变换和颜色扰动。
4.训练调度程序改造(Training Scheduler Revamping)
改进学习率的衰减方法,使用cosine schedule 代替step schedule取得了更好的结果,如下图:
5.同步批归一化(Synchronized Batch Normalization)
为了方便多GPU训练(如果你有多个GPU的话。。。)。
6.随机形状训练(Random shapes training for single-stage object detection networks)
通过组合以上目标检测训练技巧, 训练Faster RCNN和YOLOv3之后,获得的精度增益,相同的算法最多竟有+4.0%AP的增长 (COCO数据集)!
另外,研究往届比赛的优胜方案也能对我们有所启发。
冠军们使用什么框架?
商汤开源的mmdetection, 和Facebook开源的Detectron 是被提及最多的目标检测框架,它们本身实现了大量state-of-the-art算法,而且用户众多,有问题也比较容易解决,是 大 家快速参与比赛的 首选。
https://github.com/open-mmlab/mmdetection
https://github.com/facebookresearch/Detectron
选择哪一种目标检测算法?
这时候不能不提到 Cascade RCNN,曾经在多个比赛中斩获冠军。
Cascade R-CNN升级!目标检测制霸COCO,实例分割超越Mask R-CNN
目前也是COCO数据集上的最高分获得者。
但也不能完全迷信论文里的State-of-the-art,在 铝型材表面瑕疵识别比赛中,冠军使用的模型的基础结构是Faster RCNN(但也是做了大量改进)。
详见:
https://tianchi.aliyun.com/forum/postDetail?spm=5176.12586969.1002.3.743c4cb2ixWGxm&postId=38469
数据增广和模型融合是必不可少的!
几乎所有的优胜团队都会提到数据增广,图像翻转、旋转、平移、颜色扰动等。
尤其是处理类别不平衡问题,有时候甚至成为比赛获胜的关键。
在目标检测领域还有一大难点是小目标的检测,这里强烈推荐大家参考论文:
Augmentation for small object detection
https://arxiv.org/abs/1902.07296
通过造数据的方式使得小目标类别在整体更均衡,可以有效改进算法效果。
模型融合也是非常关键的,大家可以从铝型材表面瑕疵识别冠军方案的这张图中看出来:
天池优胜方案链接:
https://tianchi.aliyun.com/competition/entrance/231703/forum
https://tianchi.aliyun.com/competition/entrance/231682/forum
鼓励大家去天池玩一下布匹疵点智能检测比赛,在实际问题中提高技术水平!