浙江大学学报(工学版), 2020, 54(6): 1138-1146 doi: 10.3785/j.issn.1008-973X.2020.06.010

计算机技术

基于空间约束的自适应单目3D物体检测算法

张峻宁,, 苏群星,, 刘鹏远, 王正军, 谷宏强

Adaptive monocular 3D object detection algorithm based on spatial constraint

ZHANFG Jun-ning,, SU Qun-xing,, LIU Peng-yuan, WANG Zheng-jun, GU Hong-qiang

通讯作者: 苏群星,男,教授. orcid.org/0000-0002-3870-130X. E-mail: 374027210@qq.com

收稿日期: 2019-05-8  

Received: 2019-05-8  

作者简介 About authors

张峻宁(1992—),男,博士生,从事目标检测、SLAM研究.orcid.org/0000-0002-4349-3568.E-mail:zjn20101796@sina.cn , E-mail:zjn20101796@sina.cn

摘要

引入无须先验模版匹配的3D目标检测算法,通过简化消失点(VP)计算和改进角点提取等步骤,提出一种自适应的单目3D物体检测算法. 针对复杂场景下VP 计算易受干扰的问题,根据室内场景中世界坐标系、相机以及目标物体之间的空间关系,建立目标、相机偏航角与VP之间的约束模型,提出一种基于空间约束的 M 估计子抽样一致性(MSAC)消失点计算方法;为了提高3D框的估计精度,在VP透视关系的基础上,提出一种自适应估计3D框角点的方法,通过建立目标3D轮廓线与2D框的空间约束关系,实现目标物体的3D框快速检测. 相关数据集的实验结果表明,所提方法相比于其他算法不仅在室内场景下具有估计精度高、实时性好的优势,而且在室外场景实验下也具有更好的精度和鲁棒性.

关键词: 3D目标检测 ; 透视原理 ; 消失点(VP) ; 空间约束 ; M 估计子抽样一致性(MSAC)算法

Abstract

The 3D-Cube algorithm without prior template matching was introduced, and an algorithm for adaptive detection of 3D objects was proposed. Firstly, the relationship among the camera, the object and the VP vanishing point was established, according to the transformation relationship between the world coordinate system, the camera and the moving target. By combining the spatial constraint relationship, a space constrained M-estimator sample and consensus (MSAC) algorithm was proposed to improve the robustness in complex scenes. To improve the accuracy of 3D frame estimation, an adaptive method of 3D frame corner estimation was proposed based on the VP perspective relationship. The 3D bounding box of the target object could be detected quickly by building the spatial constraint relation between 3D contour and 2D frame of the target. The experimental results show that the proposed method has the advantages of high accuracy and real-time performance, compared with other algorithms in indoor scenes, which also has better accuracy and robustness in outdoor scene experiment.

Keywords: 3D target detection ; perspective principle ; vanishing point (VP) ; space constraint ; M-estimator sample and consensus (MSAC) algorithm

PDF (1050KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

张峻宁, 苏群星, 刘鹏远, 王正军, 谷宏强. 基于空间约束的自适应单目3D物体检测算法. 浙江大学学报(工学版)[J], 2020, 54(6): 1138-1146 doi:10.3785/j.issn.1008-973X.2020.06.010

ZHANFG Jun-ning, SU Qun-xing, LIU Peng-yuan, WANG Zheng-jun, GU Hong-qiang. Adaptive monocular 3D object detection algorithm based on spatial constraint. Journal of Zhejiang University(Engineering Science)[J], 2020, 54(6): 1138-1146 doi:10.3785/j.issn.1008-973X.2020.06.010

基于图像的目标物体检测技术在目标跟踪[1-2]、增强现实[3-4]、无人驾驶[5-7]等领域应用广泛. 目前,基于单目相机的目标物体检测技术凭借较低的成本在工业领域逐渐流行,但是大部分方法都需要额外的先验信息. 根据先验信息的种类可以将目标物体检测方法分为以下2种:

1)基于手工标记或已知特征点、线匹配的目标检测. 例如,Hodan等[8-9]利用已知特征点(线)的2D-3D对应关系,提出了基于二维局部特征描述子的目标检测算法,其在变化的光照条件下以及被用于检测复杂形状时比其他方法鲁棒性更强.

2)基于先验目标的2D-3D轮廓匹配检测. 柳培忠等[10]利用已有的CAD模版信息,提出了一种不断聚类匹配的位姿检测方法,该方法具有估计精度高、匹配速度快的特点.

上述方法都需要依赖先验信息,但该信息在实际环境中获取困难,这也是单目方法在增强现实、无人驾驶等领域发展受限制的原因[11].

随着人工智能的发展,不少学者开始将深度学习网络(CNN)用于物体的位姿估计[12],例如PoseCNN[13]、BB8[14]、SSD-6D[15]等,利用模版匹配训练估计单目图像中物体对应的最佳位姿. 虽然训练后的CNN模型能更准确地检测目标,但是这些CNN模型在训练中同样需要大量的先验目标数据集[16-18]. 综上所述,无论是传统方法还是深度学习算法都是基于先验信息对目标物体进行检测.

针对此问题,Bansal等[17]提出了一种不需要先验信息的3D立方体检测方法,该方法的原理是基于消失点(vanishing point,VP)的投影光线生成3D立方体. Chabot等[18]构建了一个具有类别属性的辨别检测器,扩大了对不同对象类别的长方体检测. 谢雨宁[19]结合M估计子抽样一致性(M-estimator sample and consensus,MSAC)算法,提出了一种适用于目标建筑物的检测方法. Hedau等[20]针对地面上的目标,通过对在地面上的目标进行3D边界框采样,基于上下文特征优化3D边界框. 与文献[20]的研究相似,Chen等[21]假设3D物体投影后紧贴于2D边界框,对满足VP光线投射的3D边界进行组合,生成多个3D物体的包围盒,并基于上下文特征选择最合适的3D边界框. 在此基础上,Yang等[22]将上述研究应用于道路场景,提出了一种单目的3D目标检测算法(简称3D-Cube),该方法可以在没有目标大小、方向等信息的情况下,仅利用相机的高度信息实现3D目标检测,极大地提高了基于单目的3D目标检测能力. 然而,在文献[20]的研究中,假定目标物体的位姿位于相机位姿的[−45°,45°]范围,需要采样每一个角度,并根据采样的角度确定目标空间投影关系,因而计算复杂,且目标位姿精度与角度采样频率十分相关.

针对此问题,本文在文献[22]研究的基础上,进一步优化3D物体检测技术,提出一种基于空间约束的自适应单目3D物体检测算法. 首先引入MSAC算法估计VP,通过改进直线检测和结合地面物体的几何约束,提出一种改进的MSAC消失点估计算法; 其次,针对单目视图中物体3D框角点估计困难的问题,提出一种基于物体轮廓直线的目标3D边界框检测算法.

1. 自优化的3D物体位姿估计模型

3D空间中的物体与相机投影视图密切相关,但是相机投影的物体2D框只有4条边界框,还不足以求解物体的8个空间角点. 为此,本文利用VP与目标的空间透视关系,提出一种基于空间约束的单目3D目标检测方法.

1.1. 基于几何约束的MSAC消失点估计

VP是指空间中2个平行线在透视投影中的交点. 根据VP透视投影原理,已知目标物体的旋转矩阵和目标物的一个角点位置,利用VP可求解目标立方体的其他角点. Yang等[22]对目标旋转矩阵和3D框顶角进行详尽采样,以确定3个方向的VP,但是该方法在复杂环境中容易失效且运算复杂. 为此,引入MSAC算法,提出一种基于几何约束的MSAC消失点估计算法.

1.1.1. MSAC模型

本研究中3个消失点正好对应于空间物体的xyz轴,可通过MSAC计算得到. 首先利用线段检测器(line segment detector,LSD)算法[22]检测出图像中的直线,再利用MSAC对检测到的直线进行VP估计,其中MSAC算法主要分为2个部分,并依次迭代完成.

定义直线集合 ${{H}} = \{ {l_i}\} _{i = 1}^N$,假定图像中有一个VP,可判断集合中每条直线 ${l_i}$是否指向该VP. 假设只有单一的主消失点,那么每条直线li都可以用sl={ON, OFF}这2个标签中的1个来表示是否指向消失点. 若样本满足独立分布,则

$\left.\begin{aligned} & p({{H}}|p_{vi}) = \prod\nolimits_{i = 1}^N {M({l_i}|p_{vi})}, \\ & M({l_i}|p_{vi}) = \sum\nolimits_{{s_l}} {M({s_l})} M({l_i}|p_{vi},\;{s_l}).\end{aligned}\right\}$

式中:M为概率. 其中,密度函数满足正态分布:

$M({l_i}|p_{vi},\;{s_l} = {\rm{ON}}) \in \exp\;\left[ { - \frac{{{d^2}({l_i}|p_{vi})}}{{2{\sigma ^2}}}} \right].$

式中: ${d^2}({l_i}|p_{vi})$为距离函数,σ为标准差.

每次迭代估计VP之后,将小于距离阈值的直线从选择集中剔除,然后进行下一个VP的迭代估计. 根据谢雨宁[19]的研究,越长的直线段越可能是物体轮廓的特点,为了缩短计算时间,随机从较长的直线段中挑选最小样本集. 依据经验,一般从全部剩余检测线段中挑选前30%的长直线段作为最小样本集,然后根据合适的距离函数对直线进行分类,常用的是VP到直线的距离函数,但是该距离函数不适用于远距离的直线. 本文将VP与特征点形成的直线与直线段组成的夹角的正弦绝对值作为衡量VP到直线的距离函数,具体为

$d({{l}\,}|p_{\rm v}) = \left| {\frac{{ - {l_2}{c_1} + {l_1}{c_2}}}{{\sqrt {l_1^2 + l_2^2} + \sqrt {c_1^2 + c_2^2} }}} \right|.$

式中:直线 ${{l}} = ({l_1},{l_2})$,消失点到特征点s组成的直线集合为 $c = ({c_1},{c_2})$. 其中,特征点为直线li 的中点。若选取的图像特征为直线段,则

其中, ${{a}}{\text{、}}{{b}}$为直线l的前、后端点,pv为消失点向量. 选用该夹角的正弦绝对值描述消失点到直线l的偏移距离,并定义偏移角度为[0,π/2]. 当偏移距离较小时,直接采用正弦值 $\sin \theta = \theta $作为偏移距离.

1.1.2. 基于几何约束的MSAC算法

MSAC算法虽然在直线分类和VP估计方面具有较高的鲁棒性,但是当被应用于复杂的场景或者非标准立方体上时,该方法并不能求出全部的VP. 为此,本文尝试通过地面场景中隐藏的几何约束关系确定非标准立方体的VP,并进一步优化VP的位置.

根据MSAC算法要求,计算VP位置的前提是从图中至少检测出2条平行长直线,但是由于图像像素模糊等问题,1条直线常被检测为2条直线,造成VP位置的计算偏差. 为了提取连续性更强、完整度更高的长直线,参考宋欣等[23]的研究,采用最小二乘法对每个VP方向上开合度最高的直线进行合并,并剔除短小直线和干扰直线; 建立相机偏航角与VP的约束关系,并结合MSAC算法对目标框中的直线进行分类,最后计算VP的位置.

在室内地面场景中,拍摄相机和地面物体的翻滚角和俯仰角固定不变(可近似为0),因此只需要考虑相机和目标物体的偏航角变化. 实际中相机的偏航角、翻滚角以及俯仰角可以通过即时定位与地图构建(simultaneous localization and mapping,SLAM)算法或者其他传感器测定. 另外,为了简化运算,对单目图像中的3D目标进行相对测量,初始化相机的偏航角为0. 因此,只需要考虑目标物体的偏航角变化.

为了减少变量参数,建立相机与目标物体的空间关系. 将目标物体的观测模型变换至相机坐标系下. 图1给出了世界坐标系 ${O_{\rm{w}}}{X_{\rm{w}}}{Y_{\rm{w}}}{Z_{\rm{w}}}$、物体坐标系 ${O_{\rm{b}}}{X_{\rm{b}}}{Y_{\rm{b}}}{Z_{\rm{b}}}$、相机坐标系 ${O_{\rm{c}}}{X_{\rm{c}}}{Y_{\rm{c}}}{Z_{\rm{c}}}$以及像素坐标系 ${O_{\rm{p}}}{u_{\rm{p}}}{v_{\rm{p}}}$之间的变换示意图,其相互变换的关系如下:

图 1

图 1   世界坐标系、相机坐标系、目标坐标系的变换关系

Fig.1   Transformation relationship between world coordinate system, camera coordinate system, and target coordinate system


$\left. \begin{array}{l} {P_{\rm{p}}} = {[u,v,1]^{\rm{T}}} = \dfrac{1}{Z}\left[ {\begin{array}{*{20}{c}} {{f_{{x}}}}&0&{{c_{{x}}}} \\ 0&{{f_{{y}}}}&{{c_{{y}}}} \\ 0&0&1 \end{array}} \right]\;\;\left[ {\begin{array}{*{20}{c}} {{x_{\rm{c}}}} \\ {{y_{\rm{c}}}} \\ {{z_{\rm{c}}}} \end{array}} \right], \\ {P_{\rm{c}}} = {[{x_{\rm{c}}},{y_{\rm{c}}},{z_{\rm{c}}}]^{\rm{T}}} = {{T}\;}_{{\rm{w,c}}}^{{\rm{trans}}}{P_{\rm{w}}}, \\ {P_{\rm{c}}} = {[{x_{\rm{c}}},{y_{\rm{c}}},{z_{\rm{c}}}]^{\rm{T}}} = {{T}\;}_{{\rm{ob,c}}}^{{\rm{trans}}}{P_{{\rm{ob}}}}. \end{array} \right\}$

式中: ${f_{{x}}}{\text{、}}{f_{{y}}}{\text{、}}{c_{{x}}}{\text{、}}{c_{{y}}}$为相机内参; 目标物体坐标为 ${p_{\rm{p}}} = ({u_{\rm{p}}},{v_{\rm{p}}})$,在相机坐标系下对应为 ${P_{\rm{c}}} = ({x_{\rm{c}}},{y_{\rm{c}}},{z_{\rm{c}}})$${P_{\rm{w}}} = ({x_{\rm{w}}},{y_{\rm{w}}},{z_{\rm{w}}})$为世界坐标系下的坐标,对应在物体坐标系下为 ${P_{{\rm{ob}}}} = ({x_{{\rm{ob}}}},{y_{{\rm{ob}}}},{z_{{\rm{ob}}}})$${{T}}_{{\rm{w,c}}}^{{\rm{\,trans}}}$${{T}}_{{\rm{ob,c}}}^{{\rm{\,trans}}}$分别为目标、世界坐标系到相机的变换矩阵,由 $3 \times 1$个欧拉角和 $3 \times 1$个平移向量组成.

定义地面坐标[0,0,1](xy轴在地面上,z轴垂直向上),根据物体位于地面上且滚动角和俯仰角为0的约束,计算物体的VP:

$\left. \begin{array}{l} {{ p}_{\rm{v1}}} = {{K}}{{{R}}^{{\rm{ - 1}}}}{[\cos\; {y_{\rm{b}}},\sin\; {y_{\rm{b}}},0]^{\rm{T}}}, \\ {{ p}_{\rm{v2}}} = {{K}}{{{R}}^{{\rm{ - 1}}}}{[ - \sin\;{y_{\rm{b}}},\cos\; {y_{\rm{b}}},0]^{\rm{T}}}, \\ {{ p}_{\rm{v3}}} = {{K}}{{{R}}^{{\rm{ - 1}}}}{[0,0,1]^{\rm{T}}}. \\ \end{array} \right\}$

式中:K为相机内参矩阵,由相机内参 ${f_x}{\text{、}}{f_y}{\text{、}} {c_x}{\text{、}}{c_y}$组成;R为目标物体到相机的旋转矩阵,由 $3 \times 1$个欧拉角组成; ${y_{\rm{b}}}$为物体的偏航角.

假设相机都是正对目标物体,且物体的偏航角被初始化至面对相机,即 ${y_{\rm{b}}} = {y_{\rm{c}}} - {90^{\rm{o}}}$,其中, ${y_{\rm{c}}}$为相机的偏航角. 定义地面场景中物体的偏航角范围为 $[ - {45^ \circ },{45^ \circ }]$,根据式(5)可计算得出VP的位置范围(见图5(a)). 可以发现, ${p_{{\rm{v3}}}}$仅仅与相机的偏航角相关,而 ${p_{{\rm{v2}}}}$${p_{{\rm{v1}}}}$同时与相机的偏航角以及物体的偏航角相关.

针对复杂环境中MSAC算法易失效的问题,首先基于MSAC算法检测强化后的直线并求解VP,再根据上述的地面场景空间关系,进一步确定VP的位置,具体分为2种情况:

1)MSAC只估计了一个VP.

利用获取的相机旋转矩阵,首先计算出 ${p_{{\rm{v3}}}}$的位置;将MSAC估计的VP位置与计算得到的VP位置进行比较,判断估计的VP是否为 ${p_{{\rm{v3}}}}$;如果是,则在 $[ - {45^ \circ },{45^ \circ }]$范围内以每隔2°的步幅分别采样偏航角,然后按照式(4)计算出 ${p_{{\rm{v1}}}}$${p_{{\rm{v2}}}}$的位置;如果不是,假定估计的VP为 ${p_{{\rm{v1}}}}$或者 ${p_{{\rm{v2}}}}$,根据式(4)逆计算目标物的偏航角,并计算其余VP的位置.

2)MSAC估计了多个VP.

利用已知的相机旋转矩阵,首先计算 ${p_{{\rm{v3}}}}$的位置;判断MSAC估计的VP是否为 ${p_{{\rm{v3}}}}$,如果是,则从估计的VP点集中去除该VP;

如果VP点集中还剩于一个VP,分别分析pv1pv2情形下的VP位置,并计算其余VP的位置;

如果VP集合中还剩2个VP,则分别对应pv1pv2,再按照式(4)求解出物体偏航角.

为了检验VP的有效性,按照式(4)求解全部VP的位置后,需要将其与估计值进行比较. 当结果差异较大时,则表明该VP估计有误,需要进一步缩小距离阈值,重新估计直线类别和VP位置.

1.2. 基于开合度直线的角点估计

根据VP透视原理,在立方体边框采样一个角,然后结合3个消失点就可以估计目标物体的3D边界框. Hedau等[20-22]通过对2D边框顶部直线进行详尽的顶角采样,并依据该角预测3D边界框,再通过评价指标评选出其中最优的3D边界框. 虽然采用该方法能获得较好的估计结果,但是计算过程复杂. 为了减小计算量并提高3D边界框的估计精度,本文结合消失点、轮廓、顶点之间的几何信息,提出一种基于物体轮廓直线的目标3D框检测算法.

分析大量的地面场景发现,物体的轮廓直线往往是图中VP方向上开合度最大的直线[19]. 这里开合度定义为水平方向的直线与水平线的夹角,或者竖直方向的直线与垂线的夹角. 为此,本文根据此规律确定物体3D框的第一个角点和轮廓线,然后结合3个消失点分析剩余的角点.

对于标准立方体,在VP方向上检测出的最大开合度直线就是其外轮廓直线,因此检测标准立方体时只要在不同的VP方向检测出轮廓线,则两轮廓线的交点就是角点. 然而,实际目标物体并不都是标准立方体,如马桶、椅子等. 为了确定出第一个角点,利用VP、2D边框以及检测的直线之间的几何关系确定物体的角点. 总结轮廓线、角点、VP之间的关系如下:

1)开合度最大的直线往往是物体的外轮廓线;

2)假设目标3D边界框紧贴于2D边界框[22],则越靠近2D边框的直线越可能是物体轮廓.

3)如果根据不同VP拟合的直线相交,则其交点可能是物体的角点.

4)在三维坐标系下,不同方向的轮廓线呈直角,相同方向的轮廓线相互平行,如果平行线的长度一致,则平行线可能是轮廓线.

根据上述规律,在像素平面和3D空间中定义4个判断因子:1)开合度最大角,2) 3D坐标系下的开合度角度,3)直线到边框的距离4)直线的囊括能力,如图2所示.

图 2

图 2   直线开合度、囊括能力示意图

Fig.2   Schematic diagram of opening and closing degree and tolerance capability of straight lines


为了确定开合度最大的直线,定义开合度角度计算公式:

${p_i} = {\beta _i}\bigg/{\sum\nolimits_i^n \beta _i}.$

式中:开合度 ${\beta _i}$是指水平方向的直线与水平线的夹角,或者垂直方向的直线与垂直线的夹角.

由于不同VP类别的直线在3D坐标下呈现垂直关系,尝试计算轮廓角以筛选出最可能的角点. 设 ${a_1}{\text{、}}{b_1}$分别为直线li的端点(见图2),以轮廓角∠a3b3b6为例,其计算公式为

${\phi _i} = \frac{{\rm{1}}}{{{\pi }}}\min\; (\left| \alpha \right|,\left| {{{\pi }} - \alpha } \right|){\text{。}}$

式中:

$\left.\begin{aligned} &\alpha = {\rm{arccos}}\;\left\{ {{\rm{dot}}\;\left[ {({C_{{\rm{b3}}}} - {C_{{\rm{a3}}}}),({C_{{\rm{b3}}}} - {C_{{\rm{b6}}}})} \right]} \right\}, \\& [{C_{{\rm{a3}}}},{C_{{\rm{b3}}}},{C_{{\rm{b6}}}}] = {k^{ - 1}}[{a_3},{b_3},{b_6}].\end{aligned} \right\}$

其中,k为直线斜率因子.

定义直线边框距离 ${D_i}$,以筛选出距离2D边框最近的直线:

${D_i} = \frac{{(H + W) - \min\; ({v_i})}}{{\displaystyle\sum\nolimits_i^n {[(H + W) - \min\; ({v_i})]} }}.$

式中:HW分别为2D边框的长度和宽度,vi为直线端点到边框的最小距离.

定义直线的囊括能力,以筛选出能最大程度包围所有直线的轮廓线. 定义垂直直线的囊括能力,以筛选出能最大程度包围所有直线的轮廓线. 定义水平指向pv1pv2的直线lj$x_{c_i} $为左侧垂直方向轮廓线的端点横坐标, $ x_{l_j}(a)$为检测的直线左侧端点横坐标值, $x_{l_j}(b) $为检测的直线右侧端点横坐标,则垂直直线的囊括能力计算如下:

$\left. \begin{aligned} &c_i^{\rm l} = \sum\nolimits_j^s {{l_j},\;\;{x_{{c_i}}} \geqslant } {x_{{l_j}}}(a),\;{x_{{c_i}}} \geqslant {x_{{l_j}}}(b);\\ &c_i^{\rm r} = \sum\nolimits_j^s {{l_j},\;\;{x_{{c_i}}} \leqslant } {x_{{l_j}}}(a),\;\;{x_{{c_i}}} \leqslant {x_{{l_j}}}(b);\\ &{C_i} = \frac{{\min\; (c_i^{\rm l},c_i^{\rm r})}}{{\displaystyle\sum\nolimits_i^n {\min\; (c_i^{\rm l},c_i^{\rm r})} }}. \end{aligned} \right\}$

式中: $c_i^{\rm l}{\text{、}}c_i^{\rm r}$分别为从左、右侧方向的直线检测.

判断检测直线是否是轮廓的评价标准如下:

$\left. \begin{array}{l} {O_i} = {\eta _1}{P_i} + {\eta _2}{V_i} + {\eta _3}{C_i} + {\eta _4}{\phi _i},\\ W = \{ {l_i}|\max\;({O_i})\} . \end{array} \right\}$

式中:Pi为开合角度,Ci为囊括能力,Oi为直线是轮廓的评价标准; ${\eta _1}{\text{、}}{\eta _2}{\text{、}}{\eta _3}{\text{、}}{\eta _4}$分别为 ${P_i}{\text{、}}{V_i}{\text{、}} {C_i}{\text{、}}{\phi _i}$的权重因子,且 ${\eta _1} + {\eta _2} + {\eta _3} + {\eta _4} = 1$W为最大Oi对应的直线,即轮廓线.

根据目标3D框是紧贴于2D边界框的假设[22],连接轮廓W和对应的VP,可认为其与2D边界框产生的交点是3D边界框的角点. 需要注意的是,该连线一般会与2D边界框产生2个交点,按照就近原则,确定离边界更近的交点为3D边界框的角点,再结合3个消失点就可以估计出目标物体的3D框,不同情形下的VP与立方体角点关系如图3所示[21].

图 3

图 3   基于消失点(VP)估计目标3D边界框

Fig.3   Target 3D bounding box estimation based on vanishing point (VP)


分析图3可知,当可见面数N=3时,能观察到的立方体角点为7个(标为“1~7”). 当拟合直线与边界框相交于“2”时,首先确定出3D边界框的第一个角点“2”;接着将该点与pv1连线,并交于2D边界框的角点“1”,按照相同方法确定同一个面上的其他角点;然后确定底面的4个角点:确定下边缘角点“5”;依次求出左、右面交叉角点“6”和“8”;确定底面的交叉角点“7”,具体的求取角点顺序编号为2→1→4→3→5→6→8→7. 当直线与边界框的相交点不同时,其确定角点的方法类似. 此外,由于可见面数目不同,确定剩余角点的顺序也不同,如图3(b)所示. 为此,分别讨论不同情形下、不同初始角点位置的情况,具体见图4,其中编号定义如图3(a)所示,在图中左侧“1”、“2”、“4”、“5”分别表示各情形下的3D边界框的第一个角点,图中右侧“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”表示确定其余角点的顺序.

图 4

图 4   不同情形下的角点求解顺序

Fig.4   Corner solution order in different cases


1.3. 目标物体3D边界框评价

在单目图像中目标物体的采样有多种方式,如:语义分割、HOG特征等. 本文针对地面场景选择深度学习网络YOLOV2作为分割目标物、提取2D边界框的模型,该模型具有识别精度高、鲁棒性强的特点. 此外,为了验证算法效果,引入成本函数[22]评价本文算法的有效性. 当成本函数大于经验阈值时,需要重新确定轮廓线和第一个角点. 设O为目标2D边框,M为估计的3D边界盒,具体的成本函数为

$\!\!\!\left. \begin{array}{l} E(M/O) = {\varsigma _{{\rm{dist}}}}(M) + {w_1}{\varsigma _{{\rm{angle}}}}(M) + {w_2}{\varsigma _{{\rm{shape}}}}(M),\\ {\varsigma _{{\rm{angle}}}} = \left\| {\theta (a,b) - \theta ({p_{\rm{v}}},b)} \right\|, {\varsigma _{{\rm{shape}}}} = \max (s - \varepsilon ,0). \end{array} \right\}$

式中: ${\varsigma _{{\rm{dist}}}}(M)$为距离误差,在基于Canny算子的距离图上进行目标物体的距离累加,以检测3D立方体是否与物体2D边缘对齐; ${\varsigma _{{\rm{angle}}}}(M)$为角度误差,用以检验立方体相同方向的轮廓直线ab是否交于VP; ${\varsigma _{{\rm{shape}}}}$为形状误差,以惩罚比例(s=长度/宽度)不协调的长方体,;w1w2分别对应 $\varsigma_{\rm{angle}} $$\varsigma_{\rm{shape}} $的权重,为比例阈值; $\varepsilon $为比例阈值 ${w_1}、{w_2}$分别为对应的权重.

1.4. 算法步骤

本文针对文献[22]的算法运算量大、估计精度不高的问题,改进MSAC消失点的计算方法和基于轮廓直线的3D框检测步骤,在保证运行效率和检测精度的前提下,提出一种空间约束单目3D物体边界框的检测算法.

2. 实验与分析

所有实验均在Ubuntu16.04系统下完成,电脑配置如下:CPU(2.0 GHz Intel i7),运行内存为8 GB. 实验数据分别来自Sun RGB-D[24]和KITTI[25]数据集. 主要进行以下研究:1)验证VP位置精度;2)比较3D-Cube[22]、Primitive[26]、3dgp[27]、Deep[28]、SubCNN[29]以及本文改进算法对于目标物体检测、3D包围盒估计的效果;3)验证所提算法的室外检测性能.

2.1. 消失点估计效果对比

从SUN-RGBD数据集中选取50幅图像进行验证,根据已知的相机位姿,手工标记出图像目标的VP,主要验证改进算法的计算精度和运算效率. 为了评价采用本文算法得到的VP与手工标记的VP的位置误差,将文献[30]研究中的误差率 ${D_{{\rm{Nor}}}}$作为评价指标:

${D_{{\rm{Nor}}}} = {{\left\| {P - {P_{\rm g}}} \right\|} / {{L_D}}}.$

式中:P为计算得到的VP的位置坐标,Pg是手工标记的VP位置,LD为单目图的对角线长度. ${D_{{\rm{Nor}}}}$越趋近于0,表明计算得到的VP与理论的VP位置误差越小;相反地,若 ${D_{{\rm{Nor}}}}$越趋近于1,则位置误差越大.

表1给出了采用不同算法计算Sun RGB-D数据消失点的误差率 $\theta $. 在实验中分别将4种图像不同分辨率(600×450、500×375、400×300以及300×225)的图片作为输入,分别采用不同算法计算VP. 经分析,相比于其他算法,所提算法的计算精度更高.

表 1   不同算法计算VP的误差率

Tab.1  Error rate of VP calculated by different algorithms

%
算法 $600 \times 450$ $500 \times 375$ $400 \times 300$ $300 \times 224$
MSAC 0.074 0.085 0.091 0.098
3D-Cube[21] 0.053 0.062 0.070 0.074
本文算法 0.051 0.059 0.067 0.072

新窗口打开| 下载CSV


表2给出了采用不同算法计算VP所需的运算时间T. 在实验中同样设置4种不同分辨率( $600 \times 450$$500 \times 375$$400 \times 300$以及 $300 \times 225$)的图片,经分析,相比于3D-Cube[22]算法,所提算法的运算时间更短,并且图片尺寸越大,运算速度越快. 虽然所提算法的运算时间不及原始算法MSAC,但是其检测精度更高.

表 2   不同算法计算VP的运算时间

Tab.2  Calculation time of VP by different algorithms

ms
算法 $600 \times 450$ $500 \times 375$ $400 \times 300$ $300 \times 224$
MSAC 72 57 45 39
3D-Cube[22] 163 128 96 77
本文算法 102 82 67 58

新窗口打开| 下载CSV


2.2. 目标物体检测

为了评价目标3D边界框的效果,引入交并比(3D intersection over union,IoU)指标评价估计的3D框,该指标是指产生的候选框与原标记框的交叠率,即其交集与并集的比值. 当IoU<25%时,认为估计的3D框错误. 参考3D-Cube[22]的目标3D框计算方法,根据相机位姿和相机内参计算物体的3D边界框. 另外,本文没有利用先验的CAD模型,只是利用相机的高度作为尺度,因此在实验中只是比较了与相机高度接近的地面物体.

首先, 利用文献[29]的方法训练Sun RGB-D数据集中的目标物体, 并将其作为验证和对比的标准; 然后,将所提算法估计的结果与其他2个深度学习模型[26-27]以及3D-Cube方法比较, 具体结果如表3所示. 在所有比较的算法中,所提算法在指标“IoU”上的精度是最高. 相比于3D-Cube[22],本文算法对室内场景物体的3D框检测具有更好的精度,其3D框更紧密地贴合目标物体本身,即使应用在非3D标准物体上(见图5),估计的3D框从视觉上、IoU指标上都满足实际物体的尺寸. 以图中黑色椅子为例,所提算法更好地包围了椅子的下边部分,估计的角点更靠近于真实物体角点,比例更加合适. 原因是本文在基于MSAC求解VP的方法中,建立了VP与空间中目标的空间透视投射关系,利用更多的约束关系求解VP,因而提高了VP的位置精度;基于检测的物体轮廓线寻找角点,充分利用了图像中目标的直线信息,缩短了计算时间并提高了角点估计的准确率. 因而在与3D-Cube算法精度相近的情况下,所有算法,具有计算量更小、耗时更短的优势,由此验证了本文改进算法用于估计VP位置的有效性.

表 3   不同算法在Sun RGB-D数据集下的检测精度和数量对比

Tab.3  Comparison of detection accuracy and quantity of different algorithms in Sun RGB-D data set

算法 IOU Nt
注:1)表示仅对前10个目标提案进行结果分析
Primitive[26] 0.36 125
3dgp[27] 0.42 221
3D-Cube[22] 0.40 1904
3D-Cube1) 0.48 270
本文算法 0.42 1958
本文算法1) 0.51 320

新窗口打开| 下载CSV


图 5

图 5   不同算法的3D检测效果可视化

Fig.5   Visualization of 3D detection effect via different algorithms


2.3. 室外场景的应用比较

所提算法不仅适用于室内立方体的检测,也适用于道路场景中汽车等目标物体的检测. 为了验证本文算法在室外场景的应用能力,对开源的驾驶场景KITTI数据集进行分析.

对于室外场景,本文将深度学习网络SubCNN模型[13]作为分割目标物、2D边界框提取的模型,并利用所提算法进行3D目标检测. 为了弱化2D检测的影响,只是选择IoU>0.7的提案,同时与3D-Cube[22]一样,对全部目标提案以及前10个提案进行结果分析. 表4给出了不同算法的目标3D框检测精度, 可视化结果如图6所示.

表 4   不同算法在KITTI数据集的目标检测精度和数量对比

Tab.4  Comparison of detection accuracy and quantity of different algorithms on KITTI dataset

算法 IoU Nt
注:1)表示仅对前10个目标提案进行结果分析
Deep[28] 0.33 10 957
SUBCNN[29] 0.21 8 730
3D-Cube[22] 0.20 10 571
3D-Cube1) 0.36 10 571
本文算法 0.21 10 593
本文算法1) 0.38 10 593

新窗口打开| 下载CSV


图 6

图 6   不同算法在KITTI数据集上的3D检测效果可视化

Fig.6   Visualization of 3D detection effect via different algorithms on KITTI dataset


由以上分析可知,本文算法的性能优于3D-Cube算法. 由此说明,本文算法在室外目标物体的检测上具有一定的优势. 但是,进一步分析图6可以发现,所提算法目前只能检测近距离的汽车,当目标在较远距离时,检测的效果较差. 原因主要是远距离物体在图像中呈现的区域较小且图像分辨率较低,造成所检测的直线较少且长度较短,影响了目标的检测精度. 未来研究将建立更多的空间约束,以进一步提高远距离目标物体的检测精度.

3. 结 语

本文利用消失点与空间中目标的空间透视投射关系求解目标边界框,该方法具有精度高和计算量小的优势. 但是,此类求解算法目前只能检测近距离的规则目标, 在复杂背景下或当目标较远时,检测效果较差. 原因主要是远距离物体在复杂的图像中呈现的区域较小且图像分辨率较低,造成检测到的直线较少且长度较短,影响了目标检测的精度. 未来将引入深度学习技术,尝试结合深度学习技术与空间法联合求解.

参考文献

袁公萍, 汤一平, 韩旺明, 等

基于深度卷积神经网络的车型识别方法

[J]. 浙江大学学报: 工学版, 2018, 52 (4): 694- 702

[本文引用: 1]

YUAN Gong-ping, TANG Yi-ping, HAN Wang-ming, et al

Vehicle recognition method based on deep convolution neural network

[J]. Journal of Zhejiang University: Engineering Science, 2018, 52 (4): 694- 702

[本文引用: 1]

CAI H P. Fast detection of multiple textureless 3D objects [C] // International Conference on Computer Vision Systems. Petersburg: ICCVS, 2013: 103-112.

[本文引用: 1]

养明起. 基于深度神经网络的视觉位姿估计[M]. 安徽: 中国科学技术大学, 2018.

[本文引用: 1]

HODAN T, HALUZAS P. T-LESS: an RGB-D dataset for 6D pose estimation of texture-less objects [C] // IEEE Winter Conference on Applications of Computer Vision. Santa Rosa: IEEE WCACS, 2017: 880-888.

[本文引用: 1]

OHNO K, TSUBOUCHI T, SHIGEMATSU B, et al

Differential GPS and odometry-based outdoor navigation of a mobile robot

[J]. Advanced Robotics, 2004, 18 (6): 611- 635

DOI:10.1163/1568553041257431      [本文引用: 1]

FUENTES P J, RUIZE A J, RENDON J M

Visual simultaneous localization and mapping: a survey

[J]. Artificial Intelligence Review, 2012, 43 (1): 55- 81

ENDRES F, HESS J, STURM J, et al

3D mapping with an RGB-D camera

[J]. IEEE Transactions on Robotics, 2014, 30 (1): 177- 187

DOI:10.1109/TRO.2013.2279412      [本文引用: 1]

HODAN T, ZABULIS X. Detection and fine 3D pose estimation of texture-less objects in RGB-D images [C] // IEEE International Conference on Computer Vision. Sydney: IEEE CVPR, 2014: 4421-4428.

[本文引用: 1]

DAVID G L

Distinctive image features from scale-invariant keypoints

[J]. International Journal of Computer Vision, 2004, 60 (2): 91- 110

DOI:10.1023/B:VISI.0000029664.99615.94      [本文引用: 1]

柳培忠, 阮晓虎, 田震, 等

一种基于多特征融合的视频目标跟踪方法

[J]. 智能系统学报, 2015, (57): 319- 324

[本文引用: 1]

LIU Pei-zhong, RUAN Xiao-hu, TIAN Zhen, et al

A video target tracking method based on multi-feature fusion

[J]. Journal of Intelligent Systems, 2015, (57): 319- 324

[本文引用: 1]

贾祝广, 孙效玉, 王斌, 等

无人驾驶技术研究及展望

[J]. 矿业装备, 2014, (5): 44- 47

[本文引用: 1]

JIA Zhu-guang, SUN Xiao-yu, WANG Bin, et al

Research and prospect of unmanned driving technology

[J]. Mining Equipment, 2014, (5): 44- 47

[本文引用: 1]

RUSU R B, BRADSKI G, THIBAUX R. Fast 3D recognition and pose using the viewpoint feature histogram [C] // IEEE/RSJ International Conference on Intelligent Robots and Systems. Taiwan: IEEE ICIRS, 2010: 148-154.

[本文引用: 1]

YU X, TANNER S. Pose-CNN: a convolutional neural network for 6D object pose estimation in cluttered scenes [C] // IEEE Conference on Computer Vision and Pattern Recognition. Saltlake: IEEE CVPR, 2018.

[本文引用: 2]

RAD M, LEPETIT V. BB8: a scalable, accurate, robust to partial occlusion method for predicting the 3D poses of challenging objects without using depth [C] // IEEE International Conference on Computer Vision. Venice: IEEE ICCV, 2017: 3848-3856.

[本文引用: 1]

KEHL W, MANHARDT F, TOMBARI F, et al. Ssd-6D: making RGB-based 3D detection and 6D pose estimation great again [C] // IEEE International Conference on Computer Vision. Venice: IEEE ICCV, 2017: 1530-1538.

[本文引用: 1]

REDMON J, FARHADI A. YOLO9000: Better, faster, stronger [C] // IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE CVPR, 2017: 6517-6525.

[本文引用: 1]

BANSAL A, RUSSELL B, GUPTA A. Marr revisited: 2D-3D alignment via surface normal prediction [C] // IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE CVPR, 2016: 5965-5974.

[本文引用: 1]

CHABOT F, CHAOUCH M, RABARISOA J, et al. Deep manta: a coarsetone many-task network for joint 2D and 3D vehicle analysis from monocular image [C] // IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE CVPR, 2017: 1827-1836.

[本文引用: 2]

谢雨宁. 融合形态学与特征点检测的建筑物自动三维重建关键技术研究[D]. 南京: 东南大学, 2016.

[本文引用: 3]

XIE Yu-ning. Research on key technologies of automatic 3D reconstruction of buildings fused with morphology and feature detection [D]. Nanjing: Southeast University, 2016.

[本文引用: 3]

HEDAU V, HOIEM D, FORSYTH D. Thinking inside the box: using appearance models and context based on room geometry [C] // European Conference on Computer Vision. Heraklion: ECCV, 2010: 224-237.

[本文引用: 4]

CHEN X, KUNDU K, ZHANG Z, MA et al. Monocular 3D object detection for autonomous driving [C] // IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE CVPR, 2016: 2147-2156.

[本文引用: 3]

YANG S, SCHERER S. CubeSLAM: monocular 3D object detection and SLAM without prior models [C] // IEEE Conference on Computer Vision and Pattern Recognition. Saltlake: IEEE CVPR, 2018: 1-16.

[本文引用: 17]

宋欣, 王正玑, 程章林, 等

多分辨率线段提取方法及线段语义分析

[J]. 集成技术, 2018, 7 (9): 67- 78

[本文引用: 1]

SONG Xin, WANG Zheng-ju, CHENG Zhang-lin, et al

Multiresolution line segment extraction method and semantics analysis

[J]. Integrated Technology, 2018, 7 (9): 67- 78

[本文引用: 1]

SONG S, LICHTENBERG S P, XIAO J. Sun RGB-D: a RGB-D scene understanding benchmark suite [C] // IEEE Conference on Computer Vision and Pattern Recognition. Boston: IEEE CVPR, 2015: 567-576.

[本文引用: 1]

GEIGER A, LENZ P, URTASUN R. Are we ready for autonomous driving? The KITTI vision benchmark suite [C] // IEEE Conference on Computer Vision and Pattern Recognition. Rhode: IEEE CVPR, 2012: 3354–3361.

[本文引用: 1]

XIAO J, RUSSELL B, TORRALBA A. Localizing 3D cuboids in single-view images [C] // 25th International Conference on Neural Information Processing Systems. Cambodia: NIPSF 2012: 746-754.

[本文引用: 3]

CHOI W, CHAO Y W, PANTOFARU C, et al. Understanding indoor scenes using 3D geometric phrases [C] // IEEE Conference on Computer Vision and Pattern Recognition. Oregon: IEEE CVPR, 2013 : 33-40.

[本文引用: 3]

MOUSAVIAN A, ANGUEALOV D, FLYNN J, et al. 3D bounding box estimation using deep learning and geometry [C] // IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE CVPR, 2017: 5632-5640.

[本文引用: 2]

XIANG Y, CHOI W, LIN Y, et al. Subcategory-aware convolutional neural networks for object proposals and detection [C] // Applications of Computer Vision. Santa Rosa: IEEE ACV, 2017: 924-933.

[本文引用: 3]

梁苍, 曹宁, 冯晔

改进的基于gLoG滤波实时消失点检测算法

[J]. 国外电子测量技术, 2018, 37 (12): 36- 40

[本文引用: 1]

LIANG Cang, CAO Ning, FENG Ye

Improved real-time vanishing point detection algorithm based on gLoG filter

[J]. Foreign Electronic Measurement Technology, 2018, 37 (12): 36- 40

[本文引用: 1]

/