数据集+插件,一把子解决遮挡下目标检测难题

前言 在三维世界当中,物体之间的相互遮挡非常常见。然而,如此常见的遮挡,却仍然是机器视觉系统在场景理解时的主要障碍。本文基于VGG组最新论文 A Tri-Layer Plugin to Improve Occluded Detection,为大家带来目标检测与实例分割任务当中遮挡物问题的最新进展。
目前 MMDetection 已支持本文提出的 Occluded Detection Benchmark,欢迎大家来试用和 PK,检验算法在遮挡情况下的鲁棒性。

本文转载自OpenMMLab

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

计算机视觉入门1v3辅导班

 

引言

在三维世界当中,物体之间的相互遮挡导致图像无法记录物体的全貌,是机器视觉系统在场景理解时的主要障碍。当前的深度学习感知算法已经取得了显著的进度,但是他们仍然无法较好地解决物体遮挡的问题。同时,当前仍缺乏大规模的、涉及多种常见物体种类的真实遮挡数据集,使得我们难以评估算法在真实遮挡情况下的鲁棒性。

因此,本文提出了一套可扩大规模(scalable)的方法来自动生成这样的数据集,定义了两大类不同的遮挡(被部分遮挡 v.s. 被割裂,partially occluded v.s. separated),并形成了衡量模型检测被遮挡物体性能的新的benchmark。

使用上述生成的数据集,本文还尝试使用三层式的分层表征(layered representation)去刻画物体之间的遮挡关系,从而让模型能够对遮挡有更好的理解,以提升其检测被遮挡物体的性能和在目标检测、实例分割任务中的总体表现。

 

2. 数据集生成

本文一共生成了四个数据集,包括用于测试的Separated COCO 和 Occluded COCO,以及用于训练的 Occluder Mask 和 Occludee Mask。四个数据集已经全部公开,Separated COCO 和 Occluded COCO 已经在 mmdet 中支持,可以在项目主页上下载这些数据集,并使用 mmdet 在 Separated COCO 和 Occluded COCO 上进行测试

测试数据集

Separated COCO 和 Occluded COCO 是自动生成的 COCO val 数据集的子集,收集了各种不同种类的被割裂和被部分遮挡的物体。通过这种方式,本文将遮挡定义为两大类:被割裂的和被部分遮挡的。

其中被割裂指的是,目标物体掩码被遮挡物分成不同的区域;而被部分遮挡指的是目标物体被部分遮挡但掩码仍保持连接。

这两种不同的遮挡,具有不同的难度等级。这两个可扩大规模的真实图像数据集对模型检测 80 个常见类别的被遮挡物体的能力设置了新的 benchmark,已经在 Paper With Code 上发布。

 

训练数据集

Occluder Mask 和 Occludee Mask 是用于训练“三层”插件的自动生成的训练数据集,对于每一个 COCO train 里面的物体,收集了其遮挡物(目标物体前面挡住它的物体)和被遮挡者(目标物体后面被它挡住的物体)。

生成方法

自动生成数据集的方法是不完整掩码补全(amodal completion),加以深度估计(depth estimation)来验证不完整掩码补全的推断结果。一般认为,如果物体 A 被物体 B 遮挡,那么 A 不完整掩码补全的结果,应当与B的掩码重合,并且,通常被遮挡者(occludee)会比遮挡者(occluder)有更深的深度。

如上图所示,左边是原始图像及其深度估计图,而右边则展示了两个物体(伞和女孩)的不完整掩码补全图,以及深度估计图。

在这种情况下,可以得出结论,女孩遮挡了伞,因为:(i)伞的补全掩码与女孩原来的掩码重叠,但反之则没有重叠;(ii) 平均深度图表明伞的平均深度大于女孩的平均深度。所以,可以预测“伞被女孩所遮挡”。一旦得到了遮挡关系,就很容易为测试数据集收集被遮挡的物体(Occluded COCO & Separated COCO),并为训练中的每个物体收集遮挡物(Occluder Mask)与被遮挡者(Occludee Mask)。

 

3. 插件架构

插件一共有三个模块:(a)三层掩码预测头(MHi 详细结构见右边)预测检测框Bi内目标物体的掩码(在脸上擦食物的婴儿)、遮挡物(餐桌)和被遮挡者(椅子)的掩码。occluder/occludee 分支的特征嵌入(embedding)作为线索连接到目标掩码嵌入,以帮助更好地预测目标物体掩码;(b) 如左图所示,迭代预测目标 mask 的过程(索引 i ),使得第二次迭代能够调整初始预测框并更好地检测被部分遮挡/割裂的对象;(c) 第一次迭代后,根据预测的目标掩码对 RoI 特征进行池化,以引导模型更多地关注被部分遮挡/割裂的物体本身。使用的符号是:“I”表示输入图像,“BH”、“MH”、“B”、“C”分别指 bbox head、mask head、bounding box 和 classification。

 

4. 实验结果

* 仅应用了三层建模,因为 Cascade Mask R-CNN 已经使用了多次迭代。

与不同架构上的 state-of-the-art 进行比较可见,该插件提高了所有架构的性能,即使是最强的检测器(Swin-B + Cascade Mask R-CNN)。

COCO val 上的定性结果可以看出,基线模型在具有挑战性的遮挡情况下往往会失败,要么过度分割(over-segmentation)被部分遮挡的物体(第 1 行),要么对被割裂的(第 2 行)物体分割不足(under-segmentation)。本文提出的插件在很大程度上改进了对被遮挡物体的检测,例如,消除泰迪熊的歧义(第 1 行),并推断出被狗严重遮挡而割裂的椅子(第 2 行)。有关更多示例,请参见论文原文附录。

详细信息可见

项目主页

https://www.robots.ox.ac.uk/~vgg/research/tpod/

论文链接

https://arxiv.org/abs/2210.10046

代码仓库

https://github.com/Championchess/Tri-Layer_Plugin_Occluded_Detection

MMDet 中的 Occluded Benchmark

https://mmdetection.readthedocs.io/en/dev/useful_tools.html#coco-separated-occluded-mask-metric

 

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

计算机视觉入门1v3辅导班

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:444129970。群内有大佬负责解答大家的日常学习、科研、代码问题。

 

其它文章

LCCL网络:相互指导博弈来提升目标检测精度(附源代码)

与SENet互补提升,华为诺亚提出自注意力新机制:Weight Excitation

最新FPN | CFPNet即插即用,助力检测涨点,YOLOX/YOLOv5均有效

DeepLSD:基于深度图像梯度的线段检测和细化

CVPR 2023 | 基础模型推动语义分割的弱增量学习

消费级显卡的春天,GTX 3090 YOLOv5s单卡完整训练COCO数据集缩短11.35个小时一层卷积能做啥?

BOE告诉你:一层卷积可以做超分!

卫星图像公开数据集资源汇总

DiffusionDet:用于对象检测的扩散模型

CV小知识讨论与分析(7) 寻找论文创新点的新方式

CV小知识分析与讨论(6)论文创新的一点误区

一文看尽深度学习中的各种注意力机制

MMYOLO 想你所想:训练过程可视化

顶刊TPAMI 2023!Food2K:大规模食品图像识别

用于精确目标检测的多网格冗余边界框标注

2023最新半监督语义分割综述 | 技术总结与展望!

原来Transformer就是一种图神经网络,这个概念你清楚吗?

快速实现知识蒸馏算法,使用 MMRazor 就够啦!

知识蒸馏的迁移学习应用

TensorFlow 真的要被 PyTorch 比下去了吗?

深入分析MobileAI图像超分最佳方案:ABPN

3D目标检测中点云的稀疏性问题及解决方案

一文深度剖析扩散模型究竟学到了什么?

OpenMMLab教程【零】OpenMMLab介绍与安装

代码实战:YOLOv5实现钢材表面缺陷检测

TensorRT教程(六)使用Python和C++部署YOLOv5的TensorRT模型

超全汇总 | 计算机视觉/自动驾驶/深度学习资料合集!

高精度语义地图构建的一点思考

点云分割训练哪家强?监督,弱监督,无监督还是半监督?

计算机视觉入门1v3辅导班

计算机视觉交流群

【免费送书活动】关于语义分割的亿点思考

聊聊计算机视觉入门

 

posted @ 2023-03-06 21:12  CV技术指南(公众号)  阅读(202)  评论(0编辑  收藏  举报