自动驾驶中单目摄像头检测输出3-D边界框的方法一览
Posted CVer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动驾驶中单目摄像头检测输出3-D边界框的方法一览相关的知识,希望对你有一定的参考价值。
重磅干货,第一时间送达
https://zhuanlan.zhihu.com/p/57029694
本文已由原作者授权,未经允许,不得二次转载
单目图像估计3-D检测框是目前自动驾驶研发流行的,单纯的2-D检测框无法在3-D空间去做规划控制,去年百度Apollo发布2.5版本特意提到这方面的解决方案。
这里分析一下公开发表的有关论文,特别是近期的深度学习CNN框架,供参考。
其实最早看到3-D BBox的工作是Mobileye以前的CEO Shashua教授给的PPT demo(没有paper了):
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/88a4c14fee8f416ba784d343ed9815df.jpg)
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/afa531237ad24599b21672355fdc4711.jpg)
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/d09c392d7ddc42cf9d85762da8659a5d.jpg)
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/61e761813c154547b88ab2bb42d9190e.jpg)
结果Tesla和Nvidia全都这么干了,潮流:)。
注:关于单目镜头估计物体的姿态有不少论文,也是跟这个课题相关的,一些深度学习的方法也不错,不过不是本文的重点,在此不做重复介绍。
3D Bounding Boxes for Road Vehicles: A One-Stage, Localization Prioritized Approach using Single Monocular Images,9,2018
来自UC San Diego的论文。简单讲,该方法提出估计center of bottom face of 3D bounding box (CBF) 来解决2-D图像得到3-D边框的问题,为加速也采用了LUT。同时估计的还有物体的大小尺寸以及姿态。
下图解释了他们采用key point预测的方法而不是传统2-D边框底边中心去推理3-D的位置。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/d1ef8baa1591478bb5855d138089d500.jpg)
这是他们的3-D边框估计的算法结构:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/459be7bb2b1e4de8bb3987fae2b1e7c8.jpg)
3D Bounding Box Estimation Using Deep Learning and Geometry,CVPR,2017
该文也是百度Apollo引用的方法:
首先估计物体3-D朝向,然后回归物体尺寸和3-D中心,最后得到物体的整个姿态和位置。这是2-D和3-D边框的对应关系图:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/dba7331ec8d64f7e8ab51cf8510f4214.jpg)
论文提出一种MultiBin方法求解物体朝向(相邻bin之间可以重叠一部分),CNN模型如下图:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/4be21b315b6b481aa32898cfd35b2887.jpg)
朝向的局部和全局的关系如下所示:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/56af558898074dffb7982b45adaa6f56.jpg)
总之,该方法利用了几何约束从2-D边框来估计3-D边框,其中朝向估计很关键。一些结果见下图:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/25b13e70e95b49da91faf82c21c7f9fb.jpg)
Joint Monocular 3D Vehicle Detection and Tracking, 11,2018
该方法是对上面工作的推广,增加了跟踪模块,提高了稳定性。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/469c2da0308f4350b9222882c1eb45c7.jpg)
这是算法的流程图:在RPN预测3-D中心的2-D投影位置,其中采用ROIalign而不是ROIpool减小了misalignment。每个求解3-D边框的ROI包括以下几项:2d Bbox, 3d box 中心投影, confidence score 和 对应特征向量。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/bc47d4590c10452fb2657f4b863e111f.jpg)
其他跟踪部分就不重点提了,下图是一些结果展示:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/249e604ab3094d0fba2c4ef14c501725.jpg)
下图解释了2-D边框中心和3-D边框中心的不同:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/ce0615019c064c75ae4161e254cb14c4.jpg)
Orthographic Feature Transform for Monocular 3D Object Detection,11,2018
本文提出一个orthographic feature transform(OFT)用于解决2-D图像推理物体3-D边框的问题,原理如下图:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/81119b168c4a4b1dbcd1677c1cad9f33.jpg)
在一个深度学习框架下,该模块可以把图像特征图映射到正交鸟瞰图,如下图所示,输入到一个top down network进行推理。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/d0cba2e824ee407491c51bb5ac0987b9.jpg)
结果就不讨论了,细节在论文里。
Multi-Level Fusion based 3D Object Detection from Monocular Images, CVPR, 2018
这是去年CVPR‘18的论文,下面是算法结构: 采用两步法,加了一个估计深度图的模型,结果送入RPN模块,比较奢侈的做法,后面还将视差图转换成点云,进入detection模块。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/6567d42f55df4df3ac1a74ee34c54ea9.jpg)
这是他们展示的结果:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/c2305f0ebf1f47c2b9f20b7714542c70.jpg)
看来大家对单目估计深度图/视差图很有信心。
MonoGRNet: A Geometric Reasoning Network for Monocular 3D Object Localization, 11, 2018
微软的一篇论文,下图是算法框图:提出instance depth estimation (IDE),不是图像的深度图,可以直接估计物体3-D边框的深度,还是采用ROIalign取代ROIpool;包括4个模块,即2d detection(棕色), instance depth estimation(绿色), 3d location estimation(蓝色) 和 local corner regression(黄色)。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/fa64f9fece854d57a82f68e05436e28e.jpg)
这是估计Instance depth的模型结构:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/a8f10df39b9548b295535e3498578c68.jpg)
这个示意图告诉我们3-D边框的图像定位关系:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/5440fd07ccdf4d1299e69f9065f4b761.jpg)
Instance depth的概念的解释如下图,的确是比较节俭的做法:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/7b0a80beac1a4e758ba3d96d6184a801.jpg)
一些结果展示:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/24cb266bc20f45e0931fa55c3e0fb99d.jpg)
Mono3D++: Monocular 3D Vehicle Detection with Two-Scale 3D Hypotheses and Task Priors, 1, 2019
Face++和UCLA的最新论文,算法框图见下图:该方法不光用了深度估计,还借用了路面假设作为约束;另外,采用morphable wireframe model,不过为避免landmark敏感,对3-D边框做了模糊表示;除此之外,还有一个模块叫3D-2D consistency。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/3889d4977c1d42a2955f6f4b300dd67f.jpg)
这是3D-2D consistency的框图介绍:包括几个部分 2D Bounding box,2D Landmark,3D Orientation 和 scale hypotheses。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/79bdc5d4c15c44e9922c3c14302c481c.jpg)
感觉还是比较奢侈的做法。
CubeSLAM: Monocular 3D Object Detection and SLAM without Prior Models, 6, 2018
从2-D边框和消失点产生3-D cuboid proposals,随后在单目视觉SLAM框架中优化,如下图:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/e77fdc0222954442991b82be607e87cb.jpg)
这是产生Proposals的方法:根据可视的面数目将Cuboids分成3类
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/074fa4129c7d4ee581553360a177e826.jpg)
下面是SLAM框架:在ORB SLAM基础上改进,加入物体信息。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/824fd15a87d4419c849c949a14c0d3a1.jpg)
特征点的相关性处理方法采用物体点为先,景物点为后,如图:绿色点是map上的,其他颜色的点属于物体。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/9fb3d319c211444bbab53099a0aace77.jpg)
一些结果展示:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/9bed712572154f378edd3256d8460fc2.jpg)
BoxCars: Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveillance,CVPR,2016
3D 物体边框是从监控视频 (比车载视频容易些)的2-D边框得到的,如图所示:利用了轮廓信息和姿态信息。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/25b14c2586554776880cd71545f705ca.jpg)
其实它的方法是把3-D边框各个面拆开,如图:然后输入到CNN模型推理3-D信息。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/b540cb9331ac4236b1c2dff2d9863752.jpg)
这个CNN模型用来估计沿着消失点的方向:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/ab717a2a15ba48458beb8918cc67e0dd.jpg)
结果是这样的:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/180d60e51c0b4ec599c78bc45178a0d8.jpg)
Vehicle Detection and Pose Estimation for Autonomous Driving (Thesis),2017
一个博士论文。采用FCN模型训练得到2-D和3-D边框,如图:定义3-D边框的3个方向,即front-bottom, left-bottom, front-left。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/fcd71fd5c8ed4144a2764f91f40c7153.jpg)
3D边框定义如下:8个角点,6个面。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/3f37356ab4eb4154aa089e32c24f5512.jpg)
也是路面假设,这是得到3-D边框的关键,下面是图像逆投影公式:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/6a312079797a475691fe2685039bbd8b.jpg)
根据逆投影和路面假设,可以先得到3-D边框在路面的位置。下图是3-D边框投影到路面的效果:平行四边形,然后被推理出实际3D边框底部的正方形。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/c7b21677e8f54e2bb9c73176cbb772bd.jpg)
加上估计的物体高度,就得到3-D边框。首先,先估算路面,算法如下:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/05c7fa6569d549f7b25ae6c5a4f3b299.jpg)
利用前面提到的,bottom-left line 作为frontal plane 的法向量,然后用front-bottom-left 的点计算front plane;找到frontal plane 和逆投影的交点即得到顶点位置,这样高度就得到了。
一些结果展示:包括顶视图
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/497db8bda27e44ff9accd0d12dc83c3e.jpg)
Deep MANTA: A Coarse-to-fine Many-Task Network for joint 2D and 3D vehicle analysis from monocular image,CVPR,2017
MANTA是Many-Tasks的意思。完全通过CNN模型估计多个信息,如图展示的结果:检测, 部件定位, 可视性 和3D尺寸大小。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/0340378c0c18434e90db6eb2a103799d.jpg)
车辆模型的定义:wireframe模型比较复杂,不过能推理出遮挡的部件。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/774a9f7d440a4ec38dca1a968406397a.jpg)
定义的车辆模版如图:这是一个半自动的标注工程。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/db43b6ea10b143419f4ebbfe68667e81.jpg)
MANTA的系统框图:CNN模型,region proposal network为先,之后修正两次,分别是proposal改进和2-D边框估计,最后NMS优化和3-D边框估计。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/7356882393394f69b9368ccd8fa46075.jpg)
Monocular 3D Object Detection for Autonomous Driving,CVPR,2016
比较有开拓性的CNN模型做3-D检测的工作。如图介绍系统如何产生3-D边框的proposal:仍然有路面假设,有各种信息,包括分割,2D边框,上下文,形状,位置等等。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/bfd15665b5404449a9f8b637d9a5f057.jpg)
采用的CNN模型结构对3-D边框的proposal打分:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/893888a8765c454c9c720fdad7c9ba11.jpg)
打分的公式是:包括什么提到的各种信息term
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/5667eda1e07649d2894b15eb408f1ccd.jpg)
结果展示:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/35f5c98467cf43808499651f8e99b19c.jpg)
Joint SFM and Detection Cues for Monocular 3D Localization in Road Scenes,CVPR,2015
NEC Lab早些的工作,给出的系统框图如下:将SFM和检测结合起来。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/48b83ee720f34f4b8b9ff7dd0d5e4080.jpg)
3-D定位物体是有假设路面的前提,首先看坐标系的定义如下图:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/ff72055dcec4420483b0434f58e71263.jpg)
而2-D边框的底部可以通过路面假设反投到3-D空间:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/7e78f994a7284ac7930b3c5db366dc6f.jpg)
下图是物体的SFM部分:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/1fa8f95c5fd54795994a3b2b580f3f31.jpg)
整个定位输出如图这样:其中右下角顶视图有激光雷达ground truth显示为红色。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/fe0f904ccfbc413dba4af60d12c74179.jpg)
Are Cars Just 3D Boxes? – Jointly Estimating the 3D Shape of Multiple Objects,CVPR,2014
也比较旧的论文,下图展示该系统通过shape modeling得到更精确的3-D定位:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/8a94c6a91b6d44e49f1c637d6ce2c248.jpg)
根据路面假设和occlusion mask的3-D景物模型:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/05d13bdf75354425839f6a8bb0edc804.jpg)
产生Scene particles,然后推理最后的deformable shapes,如图算法:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/51301ce93db7496d9b51823e88203756.jpg)
一些结果如图:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/fe1414fd2cc04f2482f455649817a635.jpg)
Monocular Visual Scene Understanding: Understanding Multi-Object Traffic Scenes,CVPR,2012
更早的论文,系统示意图如下:有路面假设的景物模型,有遮挡推理模型,有跟踪,有分割;HMM做跟踪算法,MCMC方法做推理。
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/134f81f097f5498583e801fef014325b.jpg)
下图是路面假设下的车载坐标系和世界坐标系的关系:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/1718991ccb6244c1904304439386a159.jpg)
这里介绍的是车载摄像头的旋转:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/f71c9c725e37445cb66c4768f16b735a.jpg)
目标距离的估计类似Mobileye,如图:
![自动驾驶中单目摄像头检测输出3-D边界框的方法一览](https://image.cha138.com/20210427/a68982d7ca8d489d9370307fba774e5c.jpg)
------End------
想要了解最新最快最好的论文速递、开源项目和干货资料,欢迎加入CVer学术交流群。涉及图像分类、目标检测、图像分割、人脸检测&识别、目标跟踪、GANs、学术竞赛交流、Re-ID、风格迁移、医学影像分析、姿态估计、OCR、SLAM、场景文字检测&识别和超分辨率等方向。
扫码进群
这么硬的干货总结,麻烦给我一个好看
麻烦给我一个好看!
以上是关于自动驾驶中单目摄像头检测输出3-D边界框的方法一览的主要内容,如果未能解决你的问题,请参考以下文章
论文解读SMOKE 单目相机 3D目标检测(CVPR2020)
CVPR2020 SMOKE 单目相机 3D目标检测环境搭建篇
论文解读SMOKE 单目相机 3D目标检测(CVPR2020)
CVPR2020 SMOKE 单目相机 3D目标检测环境搭建篇