津南数字制造算法挑战赛[赛场二]总决赛冠军比赛攻略_X-Force队

原文发表在天池实验室, 决赛答辩视频(第55分钟开始)

第一次参加天池的比赛,主要是被题目的实用性所吸引,物流货物限制品监测要求监测X光图像是否包含危险品并标出。自动化监测包裹、行李的携带品有相当广的应用前景。本文对比赛进行回顾,描述对问题的分析,方案思路以及改进和涨分点,源码分享在github

问题分析

复赛的任务是经典的图像语义分割(semantic-segmentation)的问题,简单说就是要在像素级别将前景类别标识出来。具体到本次比赛要求将安检X光扫描图像中的5类危险品的像素分别标出来。已经有很多使用深度学习针对COCO,Cityscapes等数据集的研究,kaggle上也举办过几个图像语义分割的比赛。下面的表格列出了一些相关的研究,总体来说都是使用卷积网络构成一个encoder-decoder的结构,其中又为Unet和Mask-RCNN在kaggle中的成绩最好,所以需要重点研究一下这两个方案。

Model Year Backbone PASCAL VOC PASCAL Context COCO AP Cityscapes Kaggle Salt Kaggle Ship Kaggle DSB18
SegNet 2015
FCN 2015 62.2
ParseNet 2015 69.8 40.4
Conv&Deconv 2015 72.5
UNet 2015 rank1, 9 rank6, 9 rank 1, 2, 4
FPN 2016
PSPNet 2016 ResNet-101 85.4 81.2
DeepLab 2016 79.7 45.7 70.4
DeepLabv3 2017 86.9 81.3
Mask RCNN 2017 41.8 rank 10 rank 3, 5
DeepLabv3+ 2018 89.0 82.1
PANet 2018 46.7
EncNet 2018 85.9 52.6
RefineNet 2017 ResNet-101 73.6
SAC 2017 ResNet-101 78.1
PSANet 2018 ResNet-101 80.1
OCNet ResNet-101 81.7
GALD-Net ResNet101 83.3
InPlaceABN 82.0
LinkNet 1st speed

 

方案思路

由于本次比赛限定最多使用两个模型进行融合,所以“最佳选择”是训练一个Unet和一个Mask-RCNN再进行融合:D 但是考虑到时间(三周)、计算资源和个人精力的限制,所以只能选择一个。相比较而言,Mask-RCNN在大数据集和多类别识别中的效果好,而Unet在kaggle比赛中的成绩更好,比赛的数据集相对较小、类别也少。比赛评价标准是mIoU,Unet有天生优势,因为能直接输出与图像1:1的mask,而Mask-RCNN默认输出是缩小了的。另外,Unet这种一个端到端的网络没有Mask-RCNN那么多的超参。所以X-Force优先选择基于Unet的方案。

 

上图是最后使用的网络结构,在Unet的基础上作了一些修改:

  • 使用resnet系列作为encoder
  • 将各个decoder的输出cat一起作为最终输出的特征
  • 除了输出前景物体的mask,还单独输出物体的边沿

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.