3D Bounding Boxes for Road Vehicles

3D Bounding Boxes for Road Vehicles:A One-Stage, Localization Prioritized Approach Using Single Monocular Images

Abstract

  理解周围物体的三维语义是至关重要的,也是自动驾驶安全角度的一个具有挑战性的需求。我们提出了一种定位优先的方法来有效地定位物体在三维空间中的位置并围绕它计算出一个完整的3D框。我们的方法需要一个单一的图像,并以端到端的方式执行二维和三维检测。从单目图像中估计物体的深度通常不如姿态和尺寸。因此,我们通过有效地定位三维边界盒(CBF)底面中心到图像的投影来解决这个问题。在后期处理阶段,我们使用基于查找表的方法在3D空间中重新映射CBF。这个阶段是一个单一的时间设置和足够简单的部署在固定的地图社区,在那里我们可以存储关于地面的完整知识。使用一组共享的特性以多任务方式预测对象的尺寸和姿态。实验表明,该方法能够产生平滑的环绕物体轨迹,并在三维定位方面优于现有的基于图像的方法。

1 Introduction

  场景理解是关键的安全要求之一,使一个自主系统学习和适应的基础上,他与环境的互动。工作就像【16】讨论环绕分析的整体信号到语义。【15】和【17】提供了完整的基于视觉的环绕理解系统。从这些作品中获得灵感,我们的工作提出了一个完整的基于视觉的解决方案来估计周围物体的位置、尺寸和姿态。完整的环绕车辆三维知识有助于自主系统的有效路径规划和跟踪。三维目标检测涉及9个自由度,包括姿态、尺寸和位置。在正常的驾驶情况下,我们假设没有滚动和俯仰的物体和视觉偏航波动在0◦,±90◦和180◦。此外,道路上的物体(如汽车)的尺寸高度不变,峰度也很高。有效地定位物体在三维世界中的位置对于良好的三维物体检测变得越来越重要。
在这里插入图片描述
  在三维语义学习领域,大部分工作使用昂贵的激光雷达系统来学习目标建议,如【2】和【20】。在这项工作中,我们只使用一个单一相机的输入,并估计周围物体的3D位置。我们首先以端到端方式估计底端面中心(CBF)在图像上的投影以及其他参数,从而解决目标定位问题。在目标检测领域的最新进展可以大致分为两阶段和单阶段架构。这两个阶段的体系结构涉及到一个池化阶段,该阶段接受来自提案网络的输入,用于具有对象概率的所有区域。检测体系结构进一步扩展,如在【5】的perfrom关键点和实例掩码预测。另一方面,像【8,9,13】这样的架构提出了一种机制,在单一阶段学习图像中每个给定区域的类的后验分布。我们从这些方法的成功中获得灵感并考虑2D作为一个关键点的底面中心的投影。在驾驶场景中,当目标在车辆的一定范围内时,这个关键点的位置会有很大的波动。因此,我们的重点是开发一个有效的估计方案,优先定位这个关键点,以解决网络中的其他学习任务。
  所有的目标检测体系结构都使用不同比例和尺寸的锚点,这些锚点在不同的层次上对整个特征图进行回归。如果锚点与ground-truth位置重叠超过阈值,则标记为正。正例的锚点回归与对应的ground-truth匹配。同样的回归方法也可以用于定位三维边界盒中心在图像上的投影,在我们的工作中我们称之为CBF。然而,我们没有为CBF创建一个单独的回归头,而是改变了anchor标记方案来优先考虑它的学习。该方案减少了正例样本的总数,可能导致严重的类不平衡。为了避免这种情况,我们使用了Focal loss 【8】,它有助于完美地调节正负两个样本之间的损耗。实验结果表明,anchor标记方案的改变对二维检测任务没有影响。我们的修改隐式地帮助在特征图上分类那些靠近中心投影的位置。因此,网络根据关键点的位置来完成所有的学习任务,在我们的例子中,关键点的位置就是底面中心在图像平面上的投影。
我们的主要贡献提出了可以概括如下:

  1. 我们的3d边界框以一种端到端的方式学习和提出一个完整的基于图像的解决方案。
  2. 我们修改单级检测架构优先学习基于关键点的位置。
  3. 我们提出了一个代替传统方法的方法,它是对二维边界框的底部边缘执行IPM,以在真实世界中找到相应的位置坐标。
  4. 提出了一种基于查找表的方法reprojecting the 3D空间的中心。
2 Related Research

  我们重点介绍了应用不同传感器模式进行自主驾驶三维目标检测的一些代表性工作。大多数方法使用深度传感器,如激光雷达或立体声装置。Chen等人【2】从激光雷达点云的鸟瞰图中学习提案,并使用图像中相应的区域提案和激光雷达前视图生成池
  来自激光雷达和相机模式的特征图。经过一系列的融合操作后,进行最终的3D box回归和多类分类。在【20】中,他们将完整的激光雷达点云分布到体素中,并在体素化的特征图上进行学习。每个体素的特性捕获该体素内部所有点的局部和全局语义。在【11】中,他们在一个图像上运行一个2D对象探测器,并寻找与每个对象的截锥体对应的激光雷达点。一次,在约束激光雷达空间中,按照【12】中的方法对三维点进行实例分割。所有这些技术要么在深度空间中学习建议,要么用于后期分析。另一方面,我们的方法只使用单一的图像,并使用一个非常低廉的解决方案,可以应用近距离场景感知。我们的方法展示了反向透视映射(IPM)和基于深度网络的预测之间的完美结合。因此,在一个固定的地图环境中,有完整的地平面信息,我们的解决方案的性能表现在不变的范围内的车辆自身。
  以往利用图像进行三维目标检测的工作,如【1】,要么依靠图像中的3D anchor box,要么利用来自分割图、上下文池化和来自ground truth 数据的位置先验等复杂特征的线索进行回归。【10】从裁剪的图像特征中学习尺寸和姿态,并使用投影约束来计算来自当前的转换。他们还分析了如何在维度下回归3D box的中心,它对于学习准确的3D box非常敏感。这些方法要么计算复杂的特征来回归三维空间中的盒子,要么不是端到端的学习。我们的工作展示了一个简单而有效的方法来计算定位和一个后期处理阶段,以适应一个3D框的对象。我们利用像【7】这样的工作,为3D对象检测提供了一个端到端的学习平台。

3 Monocular 3D Localization
3.1 Problem Formulation

  对于单一的相机图像,我们必须估计出视野中所有物体的位置、尺寸和姿态。3D box底面的中心位于地平面上。利用这一约束条件,设计了一种监督学习方案,该方案能够实现中心在图像平面上的投影定位。然后通过在地面上拟合一定数量的平面,利用地面信息,找出具有the least inverse re-projection error。注意,此技术仅适用于地面上的点。因此,它不同于其他一些作品,使用中心作为对角线的交集的3D box。我们还扩展了我们的单阶段架构来预测尺寸和姿态,以适应一个完整的3D盒子。

3.2 CBF Based Region Proposal

  原始的基于锚点的区域提议方案以缩小后的特征图作为输入,在特征图上的每个位置,我们提出不同尺寸和比例的锚点。假设每个尺度上有N个锚点,只有那些与任何ground truth对象相交大于阈值的锚点被标记为正。然而,我们稍微偏离了这个策略。我们使用相机投影矩阵将物体的所有三维中心投射到图像上。投影的位置是在每个缩小的特征图上进行计算,它将用于监督。由于计算的位置不是整数,我们在每个feature map中标记与该ground truth位置对应的所有最近的整数邻居。Figure 2显示了选择的正锚的中心(红色)和CBF投影的位置(黄色)。我们在缩小了 1 2 i \frac{1}{2^i} 2i1特征图上进行回归,, ∀ i ∀_i i

### Oriented Bounding Boxes (OBB) 简介 Oriented Bounding Box(简称 OBB),即定向包围盒,是一种用于描述三维空间中物体边界的技术。与 Axis-Aligned Bounding Box(AABB,轴对齐包围盒)不同,OBB 不限于沿坐标轴方向排列,而是可以自由旋转以更好地贴合物体的实际形状[^3]。 #### OBB 的定义 OBB 是一种多边形或多面体结构,通常由五个参数组成:(xc, yc, w, h, ra),其中: - \( (x_c, y_c) \) 表示 OBB 中心点的二维坐标; - \( w \) 和 \( h \) 分别代表 OBB 的宽度和高度; - \( r_a \) 则表示 OBB 相对于其外接矩形(Horizontal Bounding Box, HBB)的面积比例[^1]。 这种表达方式使得 OBB 能够更精确地描绘复杂对象的轮廓,从而减少不必要的计算开销并提高精度。 ### 应用领域 由于具备灵活调整角度的能力以及较高的准确性,OBB 广泛应用于多个学科和技术场景之中: 1. **计算机图形学** 在虚拟现实(VR)/增强现实(AR)系统构建过程中,为了实现高效而真实的物理交互效果,常采用 OBB 进行碰撞检测操作。相比 AABB 方法而言,它能够提供更加紧密的对象封装形式,进而降低误判率。 2. **机器人导航** 自动驾驶汽车或者无人机路径规划阶段需要用到障碍物感知功能。通过运用带有方向性的 OBB 技术来识别道路上其他车辆的位置姿态信息,则有助于制定更为安全合理的行驶策略[^2]。 3. **图像处理与模式识别** 对遥感影像中的飞机、舰船等具有固定朝向的目标实施自动化提取任务时,利用旋转不变特征配合 OBB 描述符可显著提升分类性能表现。 ```python import numpy as np from shapely.geometry import Polygon def obb_representation(center_x, center_y, width, height, angle): """ Generate an oriented bounding box polygon given its parameters. Args: center_x (float): X-coordinate of the center point. center_y (float): Y-coordinate of the center point. width (float): Width of the OBB. height (float): Height of the OBB. angle (float): Rotation angle in radians. Returns: Polygon: Shapely geometry representing the OBB. """ half_width = width / 2 half_height = height / 2 # Define corner points relative to origin before rotation corners = np.array([ [-half_width, -half_height], [+half_width, -half_height], [+half_width, +half_height], [-half_width, +half_height] ]) # Apply rotation matrix transformation cos_theta = np.cos(angle) sin_theta = np.sin(angle) rotation_matrix = np.array([[cos_theta, -sin_theta], [sin_theta, cos_theta]]) rotated_corners = np.dot(corners, rotation_matrix.T) # Translate back to original position translated_corners = rotated_corners + np.array([center_x, center_y]) return Polygon(translated_corners) # Example usage obb_poly = obb_representation(50, 50, 40, 20, np.pi/4) print(obb_poly.wkt) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值