冠军方案之 X光限制品监测

freeopen 2021-02-14 [机器学习] #top1

冠军:YuanXu

任务说明

包裹X光限制品监测作为日常包裹物流行业及安防行业的重要环节,承担着防止易燃易爆等危险品进入货运渠道,管理刀具等特殊货运物品,监测毒品等国家重点违禁品偷运等工作。随着线上购物的普及和快速发展,线上物流包裹数量已经远超人工可以处理的范围,给物流包裹监管带来了巨大挑战。

针对给出的限制品种类,利用X光图像及标注数据,研究开发高效的计算机视觉算法,监测图像是否包含危险品及其大致位置。通过自动化监测包裹携带品算法,降低漏检风险及误报率,提升危险品管理效率。

限制品包括:铁壳打火机、黑钉打火机、刀具、电池电容以及剪刀五类(类别id依次从1到5)。

评估指标

问题分析

比赛任务是经典的图像语义分割(semantic-segmentation)的问题,简单说就是要在像素级别将前景类别标识出来。研究kaggle上的几个图像语义分割的比赛,发现Unet和Mask-RCNN的成绩最好。

因为时间原因,最后选择 Unet。因为Unet能直接输出与图像1: 1的mask,且超参数少,属于端到端网络。

模型设计

采用经典Unet模型。

涨分点

数据增强

快速训练

训练速度直接决定了开发的迭代速度和实验的总次数。

在训练的初期使用比较小的图像作为输入,然后再使用较大的图像作为输入。这个过程就像人学习一样,先从简单的、粗略的开始学起,然后在学习复杂的、精细的,这样最后网络收敛会更快、更好。具体为先训练128p的图像,再在原模型上训练256p的图像。

融合策略

因为数据集比较小,即使使用了各种数据增强技术,训练使用以rsenet154作为encoder这样大网络,选取一个snapshot作为最终模型的参数还是会有过拟合的风险,选取多个snapshot使用参数均值的方法对模型参数进行融合可以提高模型的泛化能力。

但是传统的方法是对一个模型进行多次训练来取得多个snapshot,这会需要很多的计算时间。根据不同评价标准选择融合的候选参数的方法,也就是选择最小验证loss,最大mIoU,和最小训练loss的三个模型参数进行融合。

半监督学习

使用已训练的模型在测试数据上的结果作为训练数据,来达到增加数据集、进而提高模型精度的方法。

测试增强

在推理时,通过对图像的旋转和翻转,并对结果取平均也能提高精度。但是这样推理测试的速度慢了8倍,考虑到数据中有很多图片没有危险品,而测试增强对于这些图片没有改进,所以避免对这些图片多次测试可大幅提高测试速度。代码改动也很少。

总结

Back to top