一、单目3D物体检测
(1)反变换
1.基本思路
1.3D图像反变换到3D世界世界坐标,在进行物体检测
2.病态问题:通过一些额外信息来辅助解决:
-
几何假设:目标位于地面(Oy已知)
-
深度估计:目标深度已知(Oz已知)
2.辅助信息1:目标位于地面
1.BEV-IPM:2D图像变换为BEV视图
- 假设路面和车辆坐标系都与世界坐标系平行——路面高度已知
- 在像素高度值已知的情况下,将图像转换到BEV视图
- 采用YOLO网络在BEV视图下检测目标的下边框(与路面接触的部分)
3.辅助信息2:目标深度已知
1.Pseudo-LiDAR
- 依据深度图将输入图像转换为3D点云数据
- 不依赖于特定的方法:可以采用单目、双目、甚至低线数激光雷达
- 采用点云和图像融合的算法来检测3D物体
(2)关键点和3D模型
1.基本思路
1.待检测的目标其大小和形状相对较固定
2.将3D模型与2D图像上检测的关键点进行匹配
2.DeepMANTA
1.2D图像上的检测输出
- 2D边框B
- 2D关键点集合S和可见度V
- 与3D模型的相似度T
2.根据T选择相似度最高的3D模型
3.匹配3D模型和2D输出的关键点,得到3D关键点
S
3
d
S^{3d}
S3d和边框
B
3
d
B^{3d}
B3d
- 每一对(
S
3
d
S^{3d}
S3d,
S
2
d
S^{2d}
S2d)可以得到一个匹配度
(3)2D/3D几何约束
1.基本思路
1.2D物体框的表示
2.3D物体框的表示
- 9维变量:3D的中心点、大小和朝向
- 无法直接通过2D物体框求解
- 大小和朝向与视觉特征相关性强
- 中心点3D位置很难通过视觉特征预测
3.两个步骤
- 采用2D物体框内的图像特征来估计物体大小和朝向
- 通过2D/3D的几何约束来求解物体3D中心点的位置
2.Deep3DBox
1.约束条件:2D物体框的每条边上都至少能找到一个3D物体框的角点
2.超约束问题:约束数量(4个)大于未知参数(3个)数量
3.这个超约束问题的求解过程可以建模成一个网络层,进行端到端训练
(4)直接预测3D信息
1.基本思路
1.两阶段检测,Anchor-based
- 根据先验知识生成稠密的3D物体候选
- 通过2D图像上的特征对所有的候选框进行评分
- 评分高的候选框作为最终的输出
2.单阶段检测,Anchor-free
- 直接从图像回归3D信息
- 根据先验知识设定物体3D参数的初始值
- 神经网络只需要回归与实际值的偏差即可
2.两阶段检测
1.Mono3D
- 基于目标先验位置(z坐标位于地面)和大小来生成稠密的3D候选框
- 3D候选框投影到图像坐标后,通过2D图像上特征进行评分
- 特征来自于语义分割、实例分割、上下文、形状以及位置先验信息
2.TLNet
- 稠密的Anchor带来巨大的计算量
- 采用2D图像上的检测结果来降低Anchor数量
- 2D检测结果形成的3D视锥可以过滤掉大量背景上的Anchor
1.单阶段检测,Anchor-free
1.FCOS3D
- 整体网络结构与2D物体检测非常相似,只是增加了3D回归目标
- 3D回归目标: 中心点位置;大小和朝向
- Centerness的定义:
(5)总结
方法 | 主要思路 | 存在的问题 |
---|
图像反变换 | 2D图像反变换到3D世界坐标,在3D坐标下进行物体检测 | 病态问题,需要额外的先验知识或者深度信息 |
关键点和3D模型 | 在2D图像上检测目标的关键点,与数据库中的3D模型进行匹配 | 受限于3D模型,不是所有目标都适用;受特征点检测精度影响较大 |
2D/3D几何约束 | 2D图像特征来估计目标大小和朝向,2D/3D几何约束求解目标3D中心点 | 需要非常精确的2D物体检测;几何约束求解过程非常耗时 |
直接预测3D信息 | 对3D候选进行评分: 直接由图像回归3D信息 | 大量的3D候选影响算法速度; 需要大量训练数据来学习3D线索 |
二、单目深度估计
- 3D物体检测中经常需要深度估计的辅助
- 3D场景语义分割需要估计稠密的深度图
1.基本思路
1.输入:单张图像
2.输出:单张图像,每个像素值对应输入图像的场景深度
3.常用方法
- 传统方法:利用几何信息,运动信息等线索,通过手工设计的特征来预测像素深度
- 深度学习:通过训练集数据学习到比手工设计更优越的特征
分割需要估计稠密的深度图
1.基本思路
1.输入:单张图像
2.输出:单张图像,每个像素值对应输入图像的场景深度
3.常用方法
- 传统方法:利用几何信息,运动信息等线索,通过手工设计的特征来预测像素深度
- 深度学习:通过训练集数据学习到比手工设计更优越的特征
监督学习算法