单目3D目标检测调研

一、 简介

  现有的单目3D目标检测方案主要方案主要分为两类,分别为基于图片的方法和基于伪雷达点云的方法。
  基于图片的方法一般通过2D-3D之间的几何约束来学习,包括目标形状信息,地面信息,以及关键点等等,通过这些信息在损失函数中约束3D检测学习得更好。
  基于伪雷达点云的方法首先从2D图片中估计出单目深度信息来,然后利用单目深度将2D图片投射到3D空间,从而模拟雷达点云信号,之后可以利用基于点云的3D目标检测算法。

二、 单目3D目标检测算法解析

2.1 基于图片的方法:D4LCN-学习深度引导卷积单目3D目标检测

  本文工作反思了传统的2D卷积在学习目标深度信息时遇到的局部结构歧义性和尺度变化敏感问题,从而提出了一种新的使用于单目3D检测任务的卷积操作,即深度指导的局部动态卷积,并基于这个操作搭建了一个一阶3D检测器D4LCN。D4LCN在权威数据集KITTI上的单目3D方法中获取了第一的成绩,被CVPR2020接收。

  模型架构:为了利用深度信息作为2D卷积的引导,设计了一个双流网络的形式,主分支特征提取网络使用RGB图片作为输入,辅助分支是卷积核生成网络,用来生成用于特征提取网络的卷积核,输入是使用DORN(或其他单目深度模型)估计出来的深度图。这两个网络分别处理,输出到深度指导的卷积模块来融合,如下图:

深度学习 单目2D推断三维_深度学习 单目2D推断三维

  实验结果如下表:

深度学习 单目2D推断三维_3D_02

论文地址:https://arxiv.org/pdf/1912.04799.pdf
源码地址:https://github.com/dingmyu/D4LCN

2.2 基于伪雷达点云的方法:Mono3D-PLiDAR-单目伪激光雷达点云3D目标检测

  该工作旨在通过增强基于激光雷达的算法来处理单幅图像输入,从而缩小3D感测和2D感测之间在3D目标检测的性能差距。具体来说,执行单目深度估计并将输入图像提升到伪激光雷达(pseudo-LiDAR)点云的表示形式,然后使用pseudo-LiDAR端到端训练的3D检测网络。Pseudo-LiDAR在标准的三维目标检测基准上,实现了最先进的性能,发表于CVPR2019。

  模型架构:a)输入图像的每个像素提升到给定估计深度的3D坐标,生成pseudo-LiDAR;b)检测用于提取点云视锥的实例掩码提议(Instance mask proposals);c)每个点云视锥的3D边框(蓝色)与相应的2D提议保持一致,称为BBC。如下图所示:

深度学习 单目2D推断三维_人工智能_03

  实验结果如下表:

深度学习 单目2D推断三维_深度学习 单目2D推断三维_04

论文地址:https://arxiv.org/pdf/1903.09847.pdf
源码地址:https://github.com/xinshuoweng/Mono3DPLiDAR

三、对比其他3D目标检测方案

  由于很多算法对不同数据集和不同目标检测效果不同,检测精度(IOU>0.7)部分只是大致的表达:

3D目标检测方案

检测精度

代表作

输入数据

硬件成本

单目图像下的3D目标检测

低(30%以下)

D4LCN, Mono3D-PLiDAR

单张RGB图片


基于立体视觉下的3D目标检测

中等(30%-70%)

Stereo R-CNN, PSMNet

左右两张RGB图像

中等

基于RGB-D图像下的3D目标检测

中等(30%-70%)

F-PointNets

深度图像

中等

基于激光雷达点云的3D目标检测

高(80%以上)

PV-RCNN, PointRCNN

3D点云数据


基于融合的方法RGB图像+激光雷达/深度图的3D目标检测

高(80%以上)

CLOCs, 3D-CVF

RGB图片+3D点云数据/深度图


  如下图是多个算法在KITTI数据集上的性能:

深度学习 单目2D推断三维_深度学习 单目2D推断三维_05

深度学习 单目2D推断三维_人工智能_06

深度学习 单目2D推断三维_深度学习 单目2D推断三维_07

深度学习 单目2D推断三维_人工智能_08

深度学习 单目2D推断三维_人工智能_09

深度学习 单目2D推断三维_深度学习 单目2D推断三维_10

深度学习 单目2D推断三维_3D_11

深度学习 单目2D推断三维_3D_12

  KITTI数据集:http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d

四、分析与总结

  尽管目前学术界已经提出了很多关于单目3D目标检测的点子,但是其精度却依然在一个较低水平,且目前研究大多在KITTI数据集上训练测试,测试对象也局限于车辆、行人、自行车,甚至多数算法仅能在车辆检测中得到一个较好的精度。