单目3D目标检测之入门

共 8725字,需浏览 18分钟

 ·

2023-11-11 10:12

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达


来源:古月居


一、单目3D目标检测


1. 3D目标检测领域有哪些任务和方法?


为了更直观,我画了一个思维导图,点击链接后,注意需要切换一下思维导图状态。



在3D目标检测领域,根据输入信息的不同,大致可分为三类方法。


  1. Point Cloud-based Methods (基于点云来做)


  2. Multimodal Fusion-based Methods(点云和图像的融合)


  3. 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目标检测?



推荐参考博客:


  • 单目3D目标检测论文笔记 3D Bounding Box Estimation - 知乎


  • ICCV 2021 | 悉尼大学&商汤提出GUPNet:单目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目标检测领域的文章。


本专栏下,我将会持续不断的更新我读的一些论文和代码运行工作。


  1. CaDDN:论文阅读  代码调试



四、相关数据集


这里只列出比较常用的几个数据集的名字。数据集的详细说明在这篇博客中。


  • KITTI Dataset


  • Waymo Open


  • NuScenes Dataset


  • Cityscapes


  • Lyft L5


  • H3D


  • Applloscape


  • Argoverse




五、自动驾驶领域的相关企业


百度华为地平线,小鹏蔚来特斯拉。还挺押韵滴!


国外: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



              
              
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


浏览 743
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报