近日,在 ICCV 2019 Workshop 举办的 COCO + Mapillary Joint Recognition Challenge(COCO + Mapillary 联合挑战赛)公布了最终结果,深兰科技团队 DeepBlueAI 获得了该挑战赛 7 大赛题中的 Mapillary Detection 赛道的冠军

作者丨罗志鹏

单位丨深兰北京AI研发中心

论文动机

ICCV 的全称是 IEEE International Conference on Computer Vision,即国际计算机视觉大会,由 IEEE 主办,与计算机视觉模式识别会议(CVPR)和欧洲计算机视觉会议(ECCV)并称计算机视觉方向的三大顶级会议,被澳大利亚 ICT 学术会议排名和中国计算机学会等机构评为最高级别学术会议,在业内具有极高的评价。

COCO + Mapillary Joint Recognition Challenge Workshop 

这个 Workshop 的目的是研究场景理解背景下的目标检测识别,每年都会举办挑战赛,堪称 ImageNet 之后计算机视觉领域最受瞩目和最具含金量的竞赛。今年该挑战赛共有 7 大赛题,分别是 COCO Detection、COCO Panoptic、COCO Keypoints、COCO DensePose、Mapillary Detection、Mapillary Panoptic 和  LVIS Challenge。

COCO 是一种应用广泛的视觉识别数据集,旨在促进通用物体目标检测和实例分割的研究,重点是对复杂场景的全面理解。Mapillary-Vistas 是一个新的街道级图像数据集,它强调对高层次语义图像的理解,并应用于自动驾驶车辆和机器人导航。该数据集具有来自世界各地的位置,在天气和照明条件、捕获传感器特性等方面具有多样性。

Mapillary-Vistas在数据集中方面是 COCO 的补充,可以很容易地用于研究不同于 COCO 的视觉领域中的各种识别任务。COCO 侧重于自然场景的识别,而 Mapillary 侧重于街景场景的识别。从去年开始,COCO 和 Mapillary 的检测赛道(Detection)都改为实例分割(Instance Segmentation)任务,目标是同时检测和分割每个对象实例。

赛题介绍

Mapillary Vistas Object Detection Task 

该任务强调识别静态街道图像对象(如路灯、标志、标杆)和动态街道参与者(如汽车、行人、自行车)的单个实例,即同时检测和分割每个实例。这项任务旨在推动实例分割的最新进展,针对汽车或运输机器人等自主行为主体的关键感知任务。这个赛道的数据集是高分辨率的街景自动驾驶场景的图片,其中训练集 18000 张,验证集 2000 张和测试集 5000 张,赛题主要关注的 37 个对象类别包括汽车、行人、自行车、路灯、标志、标杆等等。

评测指标

和 COCO 数据集的评估方案一样,评测将使用 mask AP,包括 和 ,且这些指标是基于 37 个对象类别上计算出来的。为了进行综合评估,并报告每个对象类别的性能。

方案概述:HTC + CBNet + DCN + FPN

我们团队基于现有数据集结合以往检测经验,实现了一个强大的实例分割模型。

HTC(Hybrid Task Cascade)是上一届挑战赛 COCO Detection 赛道的冠军模型,也是目前 COCO 实例分割的最佳模型。我们团队以这个极强的模型为基础进一步改进,取得了更好的效果。HTC 又是基于 Cascade Mask R-CNN 改进的,它主要改进了两个方面。

1. Interleaved Execution:在每个 stage 里,先执行 box 分支,将回归过的框再交由 mask 分支来预测 mask,也消除了训练和测试流程的 gap,这样也就改进了 Cascade Mask R-CNN 在每一个 stage 里的 box 和 mask 两个分支在训练时中并行执行没有交互的问题。

2. Mask Information Flow:在相邻的 stage 的 mask 分支之间增加一条连接,提供 mask 分支的信息流,这样后面 stage 的 mask head 既能得到 backbone 的特征,也能得到上一个 stage 的特征。

而我们团队在 HTC 网络结构基础上尝试从以下几个方面进行改进:

1. Backbone--CBNet 

CBNet 提出了一种通过相邻 backbone 之间的复合连接来组装多个相同 backbone 的新策略。使用 CBNet 提取特征,相比于普通的强 backbone,在前景目标处具有更强的激活值,在背景处具有更弱的激活值。我们团队在 mmdetection 开源框架上自己实现了 CBNet,并接近复现原论文的精度。最终团队使用的是两个 ResNeXt-101(64*4d)组合而成的 CBNet,这也成了提分的重要武器。

HRNet 通过并行连接高分辨率和低分辨率卷积来保持高分辨率表示,并通过在并行卷积中重复执行多尺度融合来增强高分辨率表示。HRNet 作为另一个极强的 backbone 已广泛运用在目标检测、语义分割、关键点检测等任务中。而将 HRNet 和 CBNet 结合在一起,可以得到一个更强大的 backbone。

2. Head -- MaskIoU head 

大多数实例分割框架都采用实例分类的置信度作为 Mask 质量分数,然而 Mask 质量通常与分类分数相关性不强。由于背景杂波、遮挡等问题,分类分数可能较高,但 Mask 质量较低。Mask Scoring R-CNN 论文提出了一种实例分割 rescoring 再评分的方法,在 mask head 上新拼接 MaskIoU head,对预测 Mask 与其 Mask gt 之间的 iou 进行回归,将预测的 Mask 与分类分数相乘,得到新的校准 Mask 分数作为最终 Mask 置信度。

3. Data Augmentation -- InstaBoost

InstaBoost 论文提出了一种高效的数据增强方法。利用背景像素的冗余性,提出了一种基于位置概率图的方法来探索基于局部外观相似度的可行目标位置。其中的 Random InstaBoost 和 Map-guided InstaBoost 均可在不改变网络结构的基础上,显著提升实例分割的精度。

4. 其他Tricks 

DCN

DCN 论文提出了 deformable convolution 和 deformable RoI pooling 两种网络,都是基于通过学习一个额外的偏移(offset),使卷积核对输入 feature map 的采样的产生偏移,集中于感兴趣的目标区域,产生更好的感受野。

Sync BN

目前网络的训练大都是多卡训练,大型网络结构以及复杂任务会使得每张 GPU 负责的 batch-size 小于等于 1,若不进行 Sync BN,那么 moving mean、moving variance 参数会产生较大影响,可能造成 BN 层失效。而 Sync BN 训练时利用全局样本的均值和方差,后向时样本得到相应的全局梯度,训练效果就不再受 GPU  个数的影响。

实验细节

1. 采用 HTC + DCN + FPN 作为 baseline,逐步进行改进;

2. 将 CBNet-ResNeXt-101 作为新的 backbone;

3. 将原有 mask head 改为 MaskIoU head;

4. 使用 COCO-Pretrained weight;

5. 调参和多尺度训练和一些测试 tricks;

6. 没有使用额外数据和多模型融合策略。

实验结果

这是我们团队第一次完整训完 HTC +CBNet + DCN + FPN 的模型后,在单尺度(3200*2400)下提交的测试集的结果,精度已经超越了去年的冠军(Bo_Li),后面主办方未公开榜单具体成绩。本着公平参赛和探索高质量实例分割单模型的原则,我们团队没有使用额外数据和多模型融合策略,甚至最终由于时间和资源有限还没有采用多尺度测试融合,后几次交的结果都是单模型单尺度,但也保持优势到了最后并顺利拿下今年的冠军。

点击以下标题查看更多往期内容: