文章目录[隐藏]
单目3D目标检测入门
一、单目3D目标检测:
1. 3D目标检测领域有哪些任务和方法?
为了更直观,我画了一个思维导图,点击链接后,注意需要切换一下思维导图状态。
在3D目标检测领域,根据输入信息的不同,大致可分为三类方法。
- Point Cloud-based Methods (基于点云来做)
- Multimodal Fusion-based Methods(点云和图像的融合)
- Monocular/Stereo Image-based Methods(单目/立体图像的方法)
首先,基于点云的经典方法,比如VoxelNet(2018年)、PointPillars(2019年)、PointRCNN(2019年)等,这类方法都是直接在点云数据上进行特征的提取和RPN操作,将2D目标检测中的网络结构和思想迁移到3D点云中。
点云和图像的融合方法是当前3D目标检测的主流。比较经典的算法有,2018年的MV3D、Frustum PointNets、2019年的Pseudo-LiDAR、2020年的PointPainting等算法。这里的Pseudo-LiDAR(也叫为激光雷达)这篇文章对后来的单目3D目标检测领域的发展起到了促进的作用。这里使用了双目图像来生成深度图,根据深度图得到点云数据,再进行目标检测任务。
Stereo Image-based方法中,主要是基于双目图像的3D目标检测,这一领域我不太了解,以后再做补充。单目3D目标检测我是2021年刚接触的,比较出色的单目3D检测方法主要有:Mono3D PLiDAR、AutoShape、MonoRCNN、CaDDN等。而在单目3D目标检测领域,又可细分为三类方法。关于单目3D目标检测的分类翻译自CaDNN这篇文章
-
直接法(Direct Methods)
所谓直接法就是直接从图像中估计出3D检测框,也无需预测中间的3D场景表示[9,52,4,32]。更进一步的说就是,直接法可以结合2D图像平面和3D空间的几何关系来辅助检测[53,12,40,3]。例如,可以在图像平面上估计出某对象的关键点,以帮助使用已知几何结构构建3D box[33,29]。[M3D-RPN][M3D-RPN: monocular 3D region proposal network for object detection. ICCV, 2019.][3]引入深度感知卷积,它按行划分输入并学习每个区域的no-shared kernels,以学习3D空间中位于相关区域的特定特征。
可以对场景中的物体进行形状估计,从而理解三维物体的几何形状。形状估计可以从3D CAD模型的标记顶点中被监督[5,24],或从LiDAR扫描[22],或直接从输入数据以自我监督的方式[2]。
直接法的缺点是检测框直接从2D图像中生成,没有产生明确的深度信息,相对于其它方法,定位性能较差。 -
基于深度的方法(Depth-Based Methods)
该方法先利用深度估计网络结构来估计出图像的像素级深度图,再将该深度图作为输入用于3D目标检测任务,[论文][Deep ordinal regression network for monocular depth estimation. CVPR, 2018.]。将估计的深度图与原图像结合,再执行3D检测任务的论文有许多[38,64,36,13]。深度图可以转换成3D点云,这种方法被称为伪激光雷达(Pseudo-LiDAR)[59],或者直接使用[61,65],或者结合图像信息[62,37]来生成3D目标检测结果。基于深度的方法在训练阶段将深度估计从三维目标检测任务中分离,导致还需要学习用于三维检测任务的次佳的深度地图。如何理解上边这句话呢?**对于属于感兴趣的目标的像素,应该优先考虑获取精确的深度信息,而对于背景像素则不那么重要,如果深度估计和目标检测是独立训练的,则无法捕捉到这一属性。**所以将深度估计和目标检测任务融合成一个网络,效果会不会更好呢? -
基于网格的方法(Grid-Based Methods)
基于网格的方法通过预测BEV网格表示(BEV grid representation)[48,55],来避免估计用做3D 检测框架输入的原始深度值。具体来说,OFT[48]通过将体素投射到图像平面和采样图像特征来填充体素网格,并将其转换为BEV表示。多个体素可以投影到同一图像特征上,导致特征沿着投影射线重复出现,降低了检测精度。
2. 什么是单目3D目标检测?
推荐参考博客:
3.发展情况
Kitti的3D目标检测排行中,Car类第一的为SFD,Moderate中达到了84.76%,但是Setting中没有激光点云的符号。排第7的BtcDet使用了该符号,所示直接处理点云的方法至少达到了82%多的AP。
点云和图像融合
的方法,在Car类的Easy和Moderate类中的AP,其实跟直接处理点云方法的AP差别不是很明显。
双目或者说是立体视觉3D目标检测
的方法的AP大概在53%左右。
单目3D目标检测
的AP在16%多吧。
(更新时间,2021年11月12日)
如果要查找更加详细的论文和模型精度、建议直接看KITTI关于3D目标检测的榜单:The KITTI Vision Benchmark Suite (cvlibs.net)
这里还有一个纯单目3D目标检测的榜单(包含代码和论文):
4. 为什么要做单目的3D目标检测?
为何最近单目3D目标检测也成为了一个小热点领域?起因可能是因为:
- 伪激光雷达技术的提出(pseudo-LiDAR),利用图像模拟出雷达点云图像;
- 单目深度估计的逐渐发展;
- 纯点云,图像2D,多传感器融合检测的研究逐渐成熟,或者说快要达到天花板了。
从传感这个角度来说,
主动获取深度信息:如激光雷达、RGB-D相机
- 价格昂贵,有效的距离小,并且线数再多的激光雷达获取的点云也是稀疏的,缺乏纹理信息的。况且激光雷达贵,一辆自动驾驶汽车装几个激光雷达、后期怎么维护保养,工业界最看重的是成本问题!!
再说说双目相机:
- 误差较大,要求时间同步,体积较大(基线安装有要求,如果坏了一个,那就等于报废)
再说说单目相机:
- 价格亲民
- 体积小,功耗低;
- 贴近实际应用需求。
并且,单目3D目标检测也不一定只能用于自动驾驶呀!只要设备上有摄像头,有3D检测的任务。这里推荐大家一个单目深度估计的小应用场景:https://roxanneluo.github.io/Consistent-Video-Depth-Estimation/; 单目3D检测最重要的一环就是单目深度估计,而单目深度估计在AR领域是广泛应用滴。比如AR虚拟试衣间,或者京东淘宝上的一些AR试鞋,你拿手机摄像头对着自己脚,鞋自动覆盖到你脚上,这一块用到的应该是目标检测或者语义分割吧。
二、应用场景:
推荐点击在线试鞋,体验一下AR技术吧。
单目3D目标检测的具体应用。我随后会单独整理在一篇博客中。
三、相关论文:
3D目标检测综述:
- Deep Learning for 3D Point Clouds: A Survey----2020年
- 3D Object Detection for Autonomous Driving: A Survey—2021年
更多的文献可查看知乎上的这篇文章:单目3D视觉目标检测论文总结 - 知乎 (zhihu.com),总结了100多篇单目3D目标检测领域的文章。
本专栏下,我将会持续不断的更新我读的一些论文和代码运行工作。
四、相关数据集:
这里只列出比较常用的几个数据集的名字。数据集的详细说明在这篇博客中。
- KITTI Dataset
- Waymo Open
- NuScenes Dataset
- Cityscapes
- Lyft L5
- H3D
- Applloscape
- Argoverse
image source: 3D Object Detection for Autonomous Driving: A Survey
五、自动驾驶领域的相关企业:
百度华为地平线,小鹏蔚来特斯拉。还挺押韵滴!
国外: Waymo、Cruise、Nuro、Argo;
国内:百度、华为、AutoX、图森未来、Pony(小马智行)、Weride(文远知行)、Didi(滴滴)、Momenta、纵目科技、智加科技、小鹏、蔚来、理想、嬴彻科技、魔视智能。
每个公司详细介绍:
国内:百度、华为、AutoX、图森未来、Pony(小马智行)、Weride(文远知行)、Didi(滴滴)、Momenta、纵目科技、智加科技、小鹏、蔚来、理想、嬴彻科技、魔视智能。
每个公司详细介绍,我将单独整理在一篇博客中,包括公司的背景、薪资情况、主要发展方向。
版权声明:本文为CSDN博主「hello689」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jiachang98/article/details/121432839
暂无评论