实战:基于深度学习和几何的3D边界框估计

重磅干货,第一时间送达

3D 对象检测问题在需要决策或与现实世界中的对象交互的机器人应用中尤为重要,3D 对象检测从图像中恢复对象的 6 DoF 姿态和尺寸。虽然最近开发的 2D 检测算法能够处理视点和杂波的较大变化,但准确的 3D 对象检测在很大程度上仍然是一个悬而未决的问题。

文章[1] 提出了一种从单个图像进行 3D 对象检测和姿态估计的方法,他们首先使用深度卷积神经网络回归相对稳定的 3D 对象属性,然后将这些估计与 2D 对象边界框提供的几何约束相结合,以生成完整的 3D 边界框。

给定估计的方向和尺寸以及 3D 边界框的投影,与 2D 检测窗口紧密匹配的约束,它们恢复平移和对象的 3D 边界框。

透视变换

为了从数学上研究这篇文章,我们需要一个坐标系。坐标系主要有两种,一种是相机坐标系,一种是世界坐标系。

在相机坐标系取摄像机的光学中心作为原点,X轴是水平方向,y轴是垂直方向,以及Z轴指向由照相机观察到的方向。世界坐标系的原点可以任意选择,与相机的具体位置无关。

相机模型中经常涉及到四个坐标系:

  • 图像像素坐标系

  • 成像平面坐标系

  • 相机坐标系

  • 世界坐标系

世界坐标系

在环境中选择一个参考坐标系来描述相机和物体的位置,该坐标系称为世界坐标系。相机坐标系和世界坐标系之间的关系可以用旋转矩阵R和平移向量t来描述。假设世界坐标系中P的坐标为(X,Y,Z)_w,则相机坐标系与世界坐标系之间存在如下转换关系:

这里使用齐次坐标,R和t代表这两个坐标系之间的变换。

相机坐标系如下图所示:

相机坐标系的原点是光心,Xc和Yc轴平行于像素坐标系的u轴和v轴,Zc轴是相机的光轴。从光学中心到像素平面的距离是焦距f。

从图中可以看出,相机坐标系上的点与成像平面坐标系上的点之间存在透视投影关系。假设p对应的相机坐标系中P点的坐标为(Xc,Yc,Zc),则成像平面坐标系与相机坐标系之间存在如下转换关系:

图像像素坐标系

图像像素坐标系通常简称为图像坐标系或像素坐标系,如下所示。

像素坐标系的平面就是相机的成像平面,原点在图像的左上角,u轴在右,v轴在下。像素坐标系的单位是像素,也就是我们常说的分辨率。

成像平面坐标系

成像平面坐标系与像素坐标系在同一平面上,原点为相机光轴与成像平面的交点,通常为成像平面的中点或主点。单位是物理单位,例如毫米。因此,成像平面坐标系和像素坐标系只是原点和测量单位不同,两个坐标系的区别在于缩放比例和原点平移。

假设p对应的成像平面的坐标为(x,y),dx和dy代表成像平面中图像中每个像素的物理尺寸,即上面提到的缩放比例。成像平面原点在像素坐标系中的坐标为(u_0, v_0),那么像素坐标系与成像平面坐标系之间的转换公式如下:

坐标系转换

世界坐标系和像素坐标系的转换可以通过以上四个坐标系来实现,如下图:

可以写成:

相机的内参矩阵K通常是已知的和固定的,而外参矩阵[R T]往往需要求解。

我们假设 2D 对象检测器已经过训练,可以生成与投影 3D 框的边界框相对应的框。3D 边界框由其中心 T = [t_x, t_y, t_z] 、尺寸 D = [d_x, d_y, d_z] 和方向 R(θ, φ, α) 描述,此处由方位角、仰角和滚转参数化角度。

左:汽车尺寸,汽车的高度等于 dy。右图:局部方向 θl 和汽车 θ 的全局方向的图示。局部方向是相对于穿过作物中心的光线计算的。

假设物体坐标系的原点在 3D 边界框的中心,并且物体尺寸 D 已知,那么 3D 边界框顶点的坐标可以简单地描述为

3D 边界框与 2D 检测窗口紧密配合的约束要求 2D 边界框的每一侧都被至少一个 3D 框角的投影所触及。

例如,考虑一个 3D 角的投影

它接触坐标 x_{min} 的 2D 边界框的左侧,这个点对边对应约束导致等式:

其中 (.)_x 指的是透视投影的 x 坐标,可以为剩余的 2D 盒边参数 x_{max} , y_{min} , y_{max} 推导出类似的方程。

2D 边界框的边总共为 3D 边界框提供了四个约束。第一步,得到一个二维矩形后,利用回归学习估计方位角θ和物体尺寸D=[d_x,d_y,d_z],这里忽略仰角和翻转角(φ=α=0)。直接估计全局方位角θ非常困难,通常选择的是估计物体相对于相机的旋转角的局部角θ_l。

用于方向和维度估计的 MultiBin 估计的建议架构。它由三个分支组成,左分支用于估计感兴趣对象的尺寸,其他分支用于计算每个 bin 的置信度,并计算每个 bin 的 cos(Δθ) 和 sin(Δθ)。

与Faster-RCNN为目标位置设置anchor位置类似,局部角度θ_l的估计也采用离散划分。该方法首先分为n个不同的区间,将预测目标转化为第i个角度区间的概率c_i以及角度偏差cos(Δθ_i)和sin(Δθ_i)的余弦值和正弦值。

在 KITTI 数据集中,车辆大致分为 4 个类别,类别实例的对象维度分布是低方差和单峰的。因此,他们没有使用像上面的 MultiBin 损失那样的离散连续损失,而是直接使用 L2 损失。按照标准,对于每个维度,他们估计相对于在训练数据集上计算的平均参数值的残差。维度估计的损失 L_{dims} 计算如下:

其中 D* 是基准大小,D¯ 是某个类别对象的平均维度,δ 是相对于网络预测的均值的估计残差。

使用 CNN 和 2D 检测框的 3D 框的回归尺寸和方向,我们可以求解平移 T,从而最小化相对于初始 2D 检测框约束的重投影误差。2D 检测框的每一边可以对应于 3D 框的八个角中的任何一个,这导致 8^4 = 4096 个配置,每种不同的配置都涉及求解一个过约束的线性方程组,该系统计算速度快,可以并行完成。

他们在具有挑战性的 KITTI 对象检测基准上评估了他们的方法,包括 3D 方向估计的官方度量以及获得的 3D 边界框的准确性。尽管概念上很简单,但所提出的方法优于利用语义分割、实例级分割和平坦先验和子类别检测的更复杂且计算成本高的方法。

参考

1.Arsalan Mousavian,Dragomir Anguelov,John Flynn.3D Bounding Box Estimation Using Deep Learning and Geometry

2.Peiliang Li, Tong Qin, Shaojie Shen .Stereo Vision-based Semantic 3D Object and Ego-motion Tracking for Autonomous Driving

下载1:OpenCV-Contrib扩展模块中文版教程
(0)

相关推荐

  • 3D线激光成像数学模型简析与实现

    点云的获取方式有多种,比如三维成像传感器.Lidar激光探测与测量.逆向工程等... 对于寻常百姓家,后2者的成本是十分昂贵的,所以我们可以尝试玩一下自己搭建三维成像传感器中的一种--3D线激光,一个 ...

  • 三位重建技术综述

    来源 https://blog.csdn.net/qq_30815237/article/details/91897736 前言 三维重建技术通过深度数据获取.预处理.点云配准与融合.生成表面等过程, ...

  • 相机模型与张氏标定

    视觉测量使用的日益广泛和频繁,对于基础知识的学习是掌握机器视觉的学习的关键:本文针对成像模型,坐标系转换和相机标定等知识进行简介,虽然网上相关资料很多,但是本人在学习过程中同样为某些概念所困扰,写下学 ...

  • 双目视觉焦距

    双目摄像头测距算法 输入输出接口 Input: (1)左右两个摄像头采集的实时图像视频分辨率(整型int) (2)左右两个摄像头采集的实时图像视频格式 (RGB,YUV,MP4等) (3)摄像头标定参 ...

  • 自动化设计基础讲解-机械手,相机(CCD)9点标定

    在机器视觉应用中,相机标定技术需要准确的相机内参数和外参数作为重构算法的输入和先决条件,通过标定算法,可以计算相机的投影矩阵.本文讲解机械手-相机9点标定原理 1.目的 建立相机坐标系与机械手坐标系的 ...

  • 原创 | 《相机标定》深入理解原理与实战(一)

    第 一 章 引言 1.1 为什么要相机标定 首先来看相机标定的意义,我们都知道,我们拍摄的图片是二维的,但是真实世界是三维的.一个场景是如何从三维变成二维的呢?相机起到的就是这个作用.我们可以把相机看 ...

  • 机器人视觉感知原理

    机械人的蓝海,机器人的世界, 如果机器人需要和外界环境进行交互,那么机器人首先必须要感知周围的环境.机器视觉是最为常用的一种感知周围环境的方法.这里,我们将简单介绍机器视觉领域一些基本的概念.机器视觉 ...

  • 实战:基于深度学习的道路损坏检测

    重磅干货,第一时间送达 1.简介 道路基础设施是一项重要的公共资产,因为它有助于经济发展和增长,同时带来重要的社会效益.路面检查主要基于人类的视觉观察和使用昂贵机器的定量分析.这些方法的最佳替代方案是 ...

  • (4条消息) [OpenCV实战]7 使用YOLOv3和OpenCV进行基于深度学习的目标检测

    目录 1 YOLO介绍 1.1 YOLOv3原理 1.2 为什么要将OpenCV用于YOLO? 1.3 在Darknet和OpenCV上对YOLOv3进行速度测试 2 使用YOLOv3进行对象检测(C ...

  • [OpenCV实战]7 使用YOLOv3和OpenCV进行基于深度学习的目标检测

    目录 1 YOLO介绍 1.1 YOLOv3原理 1.2 为什么要将OpenCV用于YOLO? 1.3 在Darknet和OpenCV上对YOLOv3进行速度测试 2 使用YOLOv3进行对象检测(C ...

  • 基于深度学习的特征提取和匹配方法介绍

    转载于 :黄浴博士知乎 https://zhuanlan.zhihu.com/p/78053406 计算机视觉需要图像预处理,比如特征提取,包括特征点,边缘和轮廓之类.以前做跟踪和3-D重建,首先就得 ...

  • 【隐创119期】基于深度学习的自动目标识别技术研究(一)

    编者按: 深度学习算法正重新定义目标检测和分类技术.算法训练需要大量数据集,而数据集搜集通常是复杂和耗时的.在国防和安全领域,如果数据具有敏感性,例如军用舰船红外图像,训练可能难以实现.算法开发和训练 ...

  • 基于深度学习的无监督磁共振图像去噪方法

    MRI图像是一种以不同灰度显示不同结构的解剖和病理的断面图像,广泛应用于疾病的检测.诊断以及治疗监测.然而,MRI图像的成像过程往往伴随着随机噪声,这导致了低质MRI图像的产生.MRI图像的质量不仅会 ...

  • 极市直播丨朱思语:基于深度学习的视觉稠密建图和定位

    一直以来,为让大家更好地了解学界业界优秀的论文和工作,极市已邀请了超过90位技术大咖嘉宾,并完成了82期极市线上直播分享.往期分享请前往bbs.cvmart.net/topics/149或直接阅读原文 ...

  • 在OpenCV中基于深度学习的边缘检测

    重磅干货,第一时间送达 本文转自:AI算法与图像处理 导读 分析了Canny的优劣,并给出了OpenCV使用深度学习做边缘检测的流程,文末有代码链接. 在这篇文章中,我们将学习如何在OpenCV中使用 ...

  • 基于深度学习的文本自动生成

    导读:本章主要介绍如何通过文本到文本的文本复述技术,进行基于深度学习的文本自动生成.文本复述技术的现有方法能够为给定的文本生成具有较小差异的复述文本,但是难以有效生成具有很大差异的高质量复述文本.原因 ...