欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 【透视图像目标检测(4)】DD3D输出3D障碍物信息的过程

【透视图像目标检测(4)】DD3D输出3D障碍物信息的过程

2025/2/26 11:39:30 来源:https://blog.csdn.net/djfjkj52/article/details/145846344  浏览:    关键词:【透视图像目标检测(4)】DD3D输出3D障碍物信息的过程

文章目录

  • 1 位置XYZ
    • 步骤1:深度估计
    • 步骤2:横向位置计算
    • 步骤3:坐标系转换
    • 步骤4: 损失函数设计
    • 实际案例
  • 2 航向角
    • 步骤1:坐标系定义
    • 步骤2:神经网络预测方法
    • 步骤3: 基于γ几何约束增强
  • 3 物理尺寸(h, w, l)
    • 步骤1:网络结构设计
    • 步骤2:训练优化
    • 步骤3:关键实现细节
  • 4 输出值

1 位置XYZ

3D位置的核心是通过几何投影约束与深度回归的联合优化,具体实现分为以下关键步骤:

DD3D的Head部分同时输出:

  1. 2D检测框 (umin,vmin,umax,vmax)
  2. 深度残差 Δz(相对统计先验zˉ的偏移量)
  3. 物理尺寸 (h,w,l)学习类别先验分布)
  4. 航向角编码 (sinθ,cosθ)
  5. 地面接触点偏移 (δu,δv)
  6. 3D位置解算流程

步骤1:深度估计

内参矩阵:
在这里插入图片描述内参矩阵​将图像像素坐标(u,v)转换为相机坐标系下的归一化坐标(x,y,1)。外参矩阵[R|t]则将目标位置转换到车辆坐标系。

统计先验zˉ:根据检测框高度hbox和类别平均物理高度Hclass计算:
在这里插入图片描述
(例如:轿车Hcar=1.5m,检测框高度200像素,焦距fy=720fy→ zˉ=5.4m)

精细修正:网络预测深度残差Δz,最终深度:
z = z ˉ + Δ z z=zˉ+Δz z=zˉ+Δz

步骤2:横向位置计算

利用地面接触点偏移(δu,δv):
• 检测框底部中心像素(ub,vb)=((umin+umax)/2,vmax)
• 投影到相机坐标系:

在这里插入图片描述
通过深度z得3D坐标:
在这里插入图片描述

步骤3:坐标系转换

通过外参矩阵将相机坐标系坐标(Xcam,Ycam,z)转换为车辆坐标系坐标(Xveh,Yveh,Zveh)(Xveh,Yveh,Zveh):
在这里插入图片描述

步骤4: 损失函数设计

DD3D通过多任务损失联合优化位置精度:

  • 深度损失:
    Ldepth=Smooth-L1(z,zgt)
  • 投影损失:
    将预测的3D框投影回图像,计算与2D检测框的IoU损失
  • 3D框对齐损失:
    计算预测3D框8个顶点与真值的L2距离

实际案例

输入:图像中检测到一辆轿车,2D框高hbox=200px,网络预测Δz=+0.3m
• 先验深度:zˉ=720×1.5/200=5.4 → 实际深度z=5.7mz=5.7m
• 横向计算:底部中心偏移后得(xc,yc)=(0.02,−0.1) → 相机坐标系坐标(0.02×5.7,−0.1×5.7,5.7)
• 车辆坐标系:假设外参为纯平移t=[1.5,0,0]T,最终位置(0.114+1.5,−0.57,5.7)

2 航向角

在自动驾驶系统中,航向角(偏航角)的计算主要采用观察角分解与方向编码策略,其核心原理是:

步骤1:坐标系定义

观察角 α:障碍物中心在图像平面上的投影射线与相机光轴的夹角
实际航向角 θ:障碍物前进方向与自车前进方向的夹角。θ表示障碍物前进方向与自车前进方向的夹角,直接影响碰撞风险判断(例如:θ=0°表示同向行驶,θ=180°表示逆向行驶)
相对位置角 γ:障碍物中心在车辆坐标系中的方位角

在这里插入图片描述

三者满足几何关系:

α=θ+γ

步骤2:神经网络预测方法

DD3D采用双通道预测策略:

网络输出两个值:sin⁡α 和 cos⁡α
通过以下公式解码航向角:
α=arctan⁡2(sin⁡αpred,cos⁡αpred)
这避免了0°与360°的跳变问题(例如预测359°与1°时,sin/cos值相近)

步骤3: 基于γ几何约束增强

结合3D边界框投影约束: 3D框的8个顶点投影到图像平面时,必须与2D检测框对齐。这个过程可以看看【透视图像目标检测(3)】透视3D目标的航向角、观察角(局部方向)和相对位置角辨析,观察角的单目投影验证

3 物理尺寸(h, w, l)

物理尺寸(h, w, l)的计算主要通过解耦回归策略实现,具体流程如下:

步骤1:网络结构设计

  • 专用回归分支
    在检测头中设置独立的全连接层,直接从骨干网络(如ResNet)提取的特征图中预测尺寸残差:

    [ Δ h , Δ w , Δ l ] = F C d i m s ( F r o i ) [Δh,Δw,Δl]=FCdims(Froi) [Δh,Δw,Δl]=FCdims(Froi)

其中FroiFroi​是ROI对齐后的特征

  • 残差补偿机制

    结合数据集中类别先验尺寸均值进行预测:
    在这里插入图片描述
    μh​,μw​,μl​:KITTI数据集中各物体类别的平均尺寸(例如轿车的μl≈3.88m)
    α,β,γ:可学习缩放参数(初始化为0.1)

步骤2:训练优化

损失函数

  • 采用带温度系数的Smooth L1损失:
    在这里插入图片描述

τ:温度参数(默认0.1),用于平衡不同量纲

  • 几何一致性约束

通过3D投影验证尺寸合理性:通过预测的3D框投影到2D图像时,要求其与检测到的2D框在尺度上匹配。

公式约束:
在这里插入图片描述

步骤3:关键实现细节

  • 尺寸排序约束

通过后处理强制满足物理规律:

h, w, l = sorted([h, w, l], reverse=True)  # 确保 l > w > h
  • 类别敏感预测

不同物体类别使用独立的全连接层(例如汽车/行人/自行车有各自的FCdimsFCdims​)

  • 数据增强

在训练时对GT尺寸添加高斯噪声(σ=0.03mσ=0.03m),提升模型鲁棒性

4 输出值

DD3D输出的3D障碍物信息主要包括以下关键参数(以车辆检测为例):

  • 3D位置
    中心点坐标(x,y,z):在车辆坐标系下的三维坐标(单位:米),其中z为纵向距离
    通过外参矩阵可将坐标转换到全局坐标系

  • 物理尺寸
    高度/宽度/长度(h,w,l):例如典型轿车约为(1.5m,1.8m,4.5m)
    网络会学习不同物体类别的尺寸分布先验

  • 航向角
    偏航角θ:障碍物前进方向与车辆纵轴的夹角(-π到π)
    用sin⁡θ和cos⁡θ双通道预测避免角度跳变

  • 运动状态(部分改进版本支持)
    速度矢量(vx,vy):基于连续帧的位移变化估计
    加速度:通过时间序列预测
    这部分可以看DD3D中估计目标速度和属性

  • 语义信息
    类别标签(car/truck/pedestrian等)
    置信度分数(0-1):反映检测可靠性

例如,一个输出实例可能表示为:

[x=12.3m, y=-0.5m, z=30.1m, h=1.6m, w=1.7m, l=4.2m, θ=0.2rad, class=car, score=0.92]

这些参数可直接用于:

  • 碰撞时间计算(TTC)
  • 轨迹预测
  • 占据栅格地图构建
  • 多目标跟踪(MOT)

实际部署时,这些输出会与IMU、轮速计等数据融合,通过卡尔曼滤波提升稳定性。需要注意的是,单目方法在极端尺度变化场景(如远距离小物体)仍存在误差,因此L4级以上系统通常会融合激光雷达数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词