Print

发布时间: 2021-07-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.200511
2021 | Volume 26 | Number 7




    图像分析和识别    




  <<上一篇 




  下一篇>> 





局部双目视差回归的目标距离估计
expand article info 张羽丰1, 李昱希1, 赵明璧2, 喻晓源2, 占云龙3, 林巍峣1
1. 上海交通大学电子信息与电气工程学院, 上海 201100;
2. 华为技术有限公司华为云, 杭州 310051;
3. 深圳市海思半导体有限公司, 深圳 518116

摘要

目的 双目视觉是目标距离估计问题的一个很好的解决方案。现有的双目目标距离估计方法存在估计精度较低或数据准备较繁琐的问题,为此需要一个可以兼顾精度和数据准备便利性的双目目标距离估计算法。方法 提出一个基于R-CNN(region convolutional neural network)结构的网络,该网络可以实现同时进行目标检测与目标距离估计。双目图像输入网络后,通过主干网络提取特征,通过双目候选框提取网络以同时得到左右图像中相同目标的包围框,将成对的目标框内的局部特征输入目标视差估计分支以估计目标的距离。为了同时得到左右图像中相同目标的包围框,使用双目候选框提取网络代替原有的候选框提取网络,并提出了双目包围框分支以同时进行双目包围框的回归;为了提升视差估计的精度,借鉴双目视差图估计网络的结构,提出了一个基于组相关和3维卷积的视差估计分支。结果 在KITTI(Karlsruhe Institute of Technology and Toyota Technological Institute)数据集上进行验证实验,与同类算法比较,本文算法平均相对误差值约为3.2%,远小于基于双目视差图估计算法(11.3%),与基于3维目标检测的算法接近(约为3.9%)。另外,提出的视差估计分支改进对精度有明显的提升效果,平均相对误差值从5.1%下降到3.2%。通过在另外采集并标注的行人监控数据集上进行类似实验,实验结果平均相对误差值约为4.6%,表明本文方法可以有效应用于监控场景。结论 提出的双目目标距离估计网络结合了目标检测与双目视差估计的优势,具有较高的精度。该网络可以有效运用于车载相机及监控场景,并有希望运用于其他安装有双目相机的场景。

关键词

双目视觉; 目标距离估计; 视差估计; 深度神经网络; 3维卷积; 监控场景

Object distance estimation based on stereo regional disparity regression
expand article info Zhang Yufeng1, Li Yuxi1, Zhao Mingbi2, Yu Xiaoyuan2, Zhan Yunlong3, Lin Weiyao1
1. School of Electronic, Information and Electrical Engineering, Shanghai Jiao Tong University, Shanghai 201100, China;
2. Huawei Technologies Co., Ltd., Huawei Cloud, Hangzhou 310051, China;
3. Hisilicon Technologies Co., Ltd., Shenzhen 518116, China
Supported by: China Major Project for New Generation of AI (2018AAA0100400); National Natural Science Foundation of China (61971277)

Abstract

Objective Object distance estimation is a fundamental problem in 3D vision. However, most successful object distance estimators need extra 3D information from active depth cameras or laser scanner, which increases the cost. Stereo vision is a convenient and cheap solution for this problem. Modern object distance estimation solutions are mainly based on deep neural network, which provides better accuracy than traditional methods. Deep learning-based solutions are of two main types. The first solution is combining a 2D object detector and a stereo image disparity estimator. The disparity estimator outputs depth information of the image, and the object detector detects object boxes or masks from the image. Then, the detected object boxes or masks are applied to the depth image to extract the pixel depth in the detected box, are then sorted, and the closest is selected to represent the distance of the object. However, such systems are not accurate enough to solve this problem according to the experiments. The second solution is to use a monocular 3D object detector. Such detectors can output 3D bounding boxes of objects, which indicate their distance. 3D object detectors are more accurate, but need annotations of 3D bounding box coordinates for training, which require special devices to collect data and entail high labelling costs. Therefore, we need a solution that has good accuracy while keeping the simplicity of model training. Method We propose a region convolutional neural network(R-CNN)-based network to perform object detection and distance estimation from stereo images simultaneously. This network can be trained only using object distance labels, which is easy to apply to many fields such as surveillance scenes and robot motion. We utilize stereo region proposal network to extract proposals of the corresponding target bounding box from the left view and right view images in one step. Then, a stereo bounding-box regression module is used to regress corresponding bounding-box coordinates simultaneously. The disparity could be calculated from the corresponding bounding box coordinate at x axis, but the obtained distance from disparity may be inaccurate due to the reciprocal relation between depth and disparity. Therefore, we propose a disparity estimation branch to estimate object disparity accurately. This branch estimates object-wise disparity from local object features from corresponding areas in the left view and right view images. This process can be treated as regression, so we can use a similar network structure as the stereo bounding-box regression module. However, the disparity estimated by this branch is still inaccurate. Inspired by other disparity image estimation methods, we propose to use a similar structure as disparity image estimation networks in this module. We use groupwise correlation and 3D convolutional stacked-hourglass network structure to construct this disparity estimation branch. Result We validated and trained our method on Karlsruhe Institute of Technology and Toyota Technological Institute(KITTI) dataset to show that our network is accurate for this task. We compare our method with other types of methods, including disparity image estimation-based methods and 3D object detection-based methods. We also provide qualitative experiment results by visualizing distance-estimation errors on the left view image. Our method outperforms disparity image estimation-based methods by a large scale, and is comparable with or superior to 3D object detection-based methods, which require 3D box annotation. In addition, we also compare experiments between different disparity estimation solutions proposed in this paper, showing that our proposed disparity estimation branch helps our network to obtain much more robust object distance, and the network structure based on 3D convolutional stacked-hourglass further improves the object-distance estimation accuracy. To prove that our method can be applied to surveillance stereo-object distance estimation, we collect and labeled a new dataset containing surveillance pedestrian scenes. The dataset contains 3 265 images shot by a stereo camera, and we label all the pedestrians in the left-view images with their bounding box as well as the pixel position of their head and foot, which helps to recover the pedestrian distance from the disparity image. We perform similar experiments on this dataset, which proved that our method can be applied to surveillance scenes effectively and accurately. As this dataset does not contain 3D bounding box annotation, 3D object detection-based methods cannot be applied in this scenario. Conclusion In this study, we propose an R-CNN-based network to perform object detection and distance estimation simultaneously from stereo images. The experiment results show that our model is accurate enough and easy to train and apply to other fields.

Key words

stereo vision; object distance estimation; disparity estimation; deep neural network; 3D convolution; surveillance scene

0 引言

目标距离估计,即估计图像中目标物体和相机之间的距离,是3维视觉的一个基本问题。目标距离估计在很多领域都有应用。在自动驾驶领域,目标距离估计可以为车辆控制距离提供依据,防止碰撞;在机器人领域,可以帮助机器人寻路和目标定位;在监控领域,可以提供目标的3维位置及辅助目标3维跟踪。目标距离估计与图像深度估计类似,都涉及估计相机与场景之间的关系。不同的是,图像深度估计需要获得图像中每一个像素对应点的距离,而目标距离估计只关心图像中目标的距离。因此,目标距离估计往往更为容易。现有的目标距离估计系统大多依赖于距离传感器,如激光雷达、主动红外深度相机等,这些设备往往价格较高,或者应用场景有限。单纯的视觉设备更为便宜,如单目和双目相机,而其中双目相机对深度的感知能力强于单目相机,因此,基于双目视觉的目标距离估计算法有很大的应用前景。

若目标在左右两目图像中位置已知,利用相机参数可以从双目图像中准确计算出目标的深度。因此,基于双目图像的目标距离估计的关键是获取左右图像对应目标的匹配以及目标在两幅图像中的准确位置。获取匹配的算法在双目视差估计领域已有比较多的研究,算法相对较为成熟。目标在两幅图像中准确位置的获取则更为重要,特别是距离较远的物体,其视差相对较小,目标检测得到的位置稍有偏移,得到的距离就会有很大的差距。

目前,实用的双目目标距离估计系统实现方案如图 1所示。

图 1 双目目标距离估计的各种解决方案
Fig. 1 Solutions for binocular object distance estimation((a)disparity map estimation; (b) 3D detection; (c) distance regression)

1) 利用双目视差估计输出深度图。利用目标检测算法检测图像中目标框或者目标区域,并利用目标框或者目标区域从深度图中获取目标距离。这类方法如图 1(a)所示。

双目视差估计即从双目图像中估计所有对应点横坐标的像素距离,即视差。视差隐含了深度信息——越近的物体,在双目相机左右两视图成像的视差越大。双目视差估计的关键在于找到两幅图像中的对应点,即在世界空间中对应相同位置的图像坐标。这个过程称为双目立体匹配。根据Scharstein等人(2001)的描述,一个典型的双目视差估计算法包含4个步骤:(1)匹配代价函数计算;(2)代价聚合;(3)视差计算与优化;(4)视差图后处理。大多数工作基本围绕这4个步骤展开。传统方法一般手动设计图像特征,然后通过优化算法对特征进行匹配和视差估计。SGM(semi-global matching)算法(Hirschmuller,2008)是一个比较成功的双目视差估计算法,目前依然被广泛使用。该算法利用互信息熵计算代价函数,并利用动态规划进行视差估计。另有一些双目视差估计算法是基于SGM改进的(陈彬等,2014吕倪祺等,2018)。随着深度网络的发展,一些改进方案使用深度网络替代传统算法中的部分或全部步骤。bontar和LeCun(2016)提出利用深度神经网络来进行图像匹配,先将图像分割成小块,将图像小块成对输入网络中,以判断图像块是否匹配。Mayer等人(2016)提出的DispNet(disparity estimation network)借鉴光流估计的原理,设计了一个可以端到端训练的双目视差估计网络,直接输出视差图。Kendall等人(2017)提出的GC-Net(geometry and context network)将特征提取、代价聚合和视差估计等步骤都融合到一个网络中,并提出用3维卷积来进行代价聚合后特征的处理。Chang和Chen(2018)提出的PSMNet(pyramid stereo matching network)使用空间金字塔池化(spatial pyramid pooling, SPP)模块提取多尺度特征,并使用stacked hourglass模块进行从粗到细的视差图估计。Guo等人(2019)提出的GwcNet(group-wise correlation stereo network)通过在代价聚合模块中引入组相关操作,提升了视差估计效果。

这类方法适用性较为广泛,这是因为各个模块都有成熟的算法。但是,准确的目标深度提取依赖于准确的目标检测,而在复杂场景中目标检测的可靠性会下降,导致目标距离估计的误差。

2) 利用双目3维目标检测系统获取目标的3维包围框,用3维包围框计算出目标距离。这类方法如图 1(b)所示。

双目3维目标检测基本方法大多是基于2维目标检测方法的扩展,也有利用点云3维目标检测的方法。Chen等人(2018)提出的3DOP(3D object proposal)算法利用双目图像生成的点云生成3维候选框,然后提取候选框周围的图像特征回归出3维框。Li等人(2019)提出的Stereo R-CNN(region convolutional neural network)网络提出可以同时提取双目图像对应目标候选框的Stereo RPN(region proposal network)网络,并提出利用关键点和双目目标框限制的3维框回归算法。Chen等人(2020)提出的DSGN(deep stereo geometry network)网络是一个单步的双目3维目标检测网络,可以同时进行3维目标检测与深度图估计。另外,Wang等人(2019)提出将双目视差估计网络和3维点云检测结合的方法。该算法将双目视差估计网络输出的视差图转成点云,并使用基于点云的3维检测网络去检测物体。

这类方法往往可以获得准确的目标距离,但是需要标注3维框的数据集来进行训练。3维框往往需要从点云来标注,而采集点云又需要安装激光雷达、调试搭载平台以及相机—雷达标定等工作。目前有的数据集只有KITTI(Karlsruhe Institute of Technology and Toyota Technological Institute)(Geiger等,2012),nuScenes(Caesar等,2020)等用于自动驾驶的数据集,缺少其他领域的数据集。

3) 在基于单目相机的目标距离估计领域,一些算法采用基于回归模型的方法估计目标深度,取得不错的成果(Bertoni等,2019Zhu和Fang,2019),如图 1(c)所示。这类方法不需要对数据集中每个物体的3维框进行标注,只需要物体到相机的距离信息即可训练。本文采用类似的方法,提出了一个基于双目视觉的目标检测与距离估计网络, 网络结构如图 2所示,图中FPN(feature pyramid network)为特征金字塔网络。该网络采用Mask R-CNN(He等,2017)作为主干网络,利用Stereo RPN(Li等,2019)网络进行左右视图目标匹配,输出左右目标候选框。然后利用一个修改过的包围框估计分支进行准确的包围框位置估计。通过左右视图对应目标包围框横坐标位置之差,即可获得目标的视差,然后利用相机参数换算出目标距离。

图 2 本文网络结构图
Fig. 2 Structure of proposed network

但是,直接利用包围框横坐标之差换算出目标距离的算法误差较大。因此,提出了一个改进方案,新增一个视差估计分支专门用于估计目标距离。为了提高目标距离估计的精度,本文提出使用基于双目视差图估计网络GwcNet(Guo等,2019)的结构设计的视差估计分支来进行更精确的视差回归,以此换算出更准确的目标深度。

在KITTI 3维目标数据集(Geiger等,2012)上训练并验证了本文算法。根据双目视差估计的特点,利用数据集标注的3维框在两视图中的偏移作为视差,以此换算出实际目标距离。使用多种评判标准来定量检验模型,同时也展示了一些定性的效果。实验结果表明,本文算法相对基于视差图估计的方法具有更高的精度;相比基于3维目标检测的方法虽然精度略逊一筹,但是训练的要求更低,应用更广泛。

为了验证本文算法在监控领域也适用,另外采集并标注了一个由双目相机拍摄的监控场景行人数据集。同样在该数据集上进行相同实验,表明本文算法在监控场景下也能精确地进行目标距离估计。

1 本文算法

1.1 基本网络结构

首先,利用去掉了mask分支的Mask R-CNN为主干,搭建一个基本网络。在此基础上,为了获取左右图像中相同目标的匹配,使用Stereo RPN(Li等,2019)网络来得到左右视图对应目标的候选框。其次,为了获得目标的视差,可以使用Mask R-CNN原有的包围框回归分支来进行类别判定以及分别回归左右视图目标的包围框,然后计算包围框在两视图的$x$轴坐标距离,得到目标的视差${d_i}$。值得注意的是,这里的包围框都是指2维包围框。设左视图中回归的目标包围框左上角坐标为$\left({x_1^1, y_1^1} \right)$,右下角坐标为$\left({x_2^1, y_2^1} \right)$;右视图对应目标包围框左上角坐标为$\left({x_1^{\rm{r}}, y_1^{\rm{r}}} \right)$,右下角坐标为$\left({x_2^{\rm{r}}, y_2^{\rm{r}}} \right)$,求得视差应为

$ {d_i} = \frac{{x_1^1 + x_2^1 - x_1^{\rm{r}} - x_2^{\rm{r}}}}{2} $ (1)

最后,通过目标视差$v$及相机的$x$轴焦距${{f_x}}$及双目相机瞳距$b$换算出目标距离

$ d = \frac{{b{f_x}}}{{{d_i}}} $ (2)

1.2 视差回归分支

直接利用左右视图对象包围框计算视差存在一些问题。首先,包围框的回归误差对视差的影响是线性的,即在视差本身较小的情况下,包围框回归的微小误差会给计算的深度带来很大的差别。其次,左右视图分别计算包围框就舍弃了左右视图之间存在的关联性,导致误差上升。因此,本文提出使用一个专门的视差回归分支来进行视差的回归。该分支使用左右视图合并的目标框为基准框,输入该基准框内的左右视图合并的图像特征,对左右视图合并的目标框相对于该基准框的视差进行回归。设基准框左上角坐标为$\left({x_1^{\rm{u}}, y_1^{\rm{u}}} \right)$,右下角坐标$\left({x_2^{\rm{u}}, y_2^{\rm{u}}} \right)$,左视图目标框左上角坐标为$\left({x_1^1, y_1^1} \right)$,右下角坐标$\left({x_2^1, y_2^1} \right)$,右视图目标框左上角坐标为$\left({x_1^{\rm{r}}, y_1^{\rm{r}}} \right)$,右下角坐标$\left({x_2^{\rm{r}}, y_2^{\rm{r}}} \right)$,基准框与左右目标框之间的关系为

$ x_1^{\rm{u}} = \min \left({x_1^1, x_1^{\rm{r}}} \right) $ (3)

$ y_1^{\rm{u}} = \min \left({y_1^1, y_1^{\rm{r}}} \right) $ (4)

$ x_2^{\rm{u}} = \max \left({x_2^1, x_2^{\rm{r}}} \right) $ (5)

$ y_2^{\rm{u}} = \max \left({y_2^1, y_2^{\rm{r}}} \right) $ (6)

训练时回归的目标,即相对视差${{{\hat d}_i}}$满足

$ \hat d_i^{'} = \frac{{{{\hat d}_i}}}{{x_2^{\rm{u}} - x_1^{\rm{u}}}} = \frac{{\hat x_1^1 + \hat x_2^1 - \hat x_1^{\rm{r}} - \hat x_2^{\rm{r}}}}{{2\left({x_2^{\rm{u}} - x_1^{\rm{u}}} \right)}} $ (7)

式中,${\hat x}$代表数据集中对应目标框的真实值。

测试阶段,设回归结果为$d_i^{'}$,目标视差$d_i$计算为

$ {d_i} = d_i^{'}\left({x_2^{\rm{u}} - x_1^{\rm{u}}} \right) $ (8)

该分支结构如图 3所示。由于该任务可以看做回归的过程,因此可以使用与上述包围框回归分支相同的结构,如图 3(a)所示,下称分支a。不过由于该任务与双目视差估计十分相似,都是从一块图像中估计视差,因此使用专门的双目视差估计网络会有更好的效果。这类网络通过对左右图像像素特征进行不同程度的偏移,利用神经网络对偏移后的图像特征进行比较计算,选择匹配最好的偏移值作为图像像素的视差。对于目标视差估计的情况,输入池化后的感兴趣区域目标特征,并对图像特征块进行偏移,使用双目视差估计分支来处理图像块的特征,最后将特征展开后输入全连接层输出图像块的视差。

图 3 视差估计分支结构图
Fig. 3 Disparity estimation branch structure ((a)direct regression; (b)disparity estimation based regression)

采用类似双目视差估计网络GwcNet的结构来构造该分支,结构如图 3(b)所示,下称分支b(图中,N代表目标类别数量)。该分支将左右图像特征通过2维卷积层进行通道数变换后,将左右图像特征块偏移后的结果与偏移后组相关的计算结果相结合,然后通过一个由3维卷积构成的stacked hourglass模型,最后把处理结果展开后通过全连接层输出目标视差。不同之处在于,在3维卷积层的stacked hourglass部分只取最后一层的输出用于训练和测试,因为经实验发现使用每一层的输出进行训练会使效果变差;另外,最后通过全连接层输出图像块的整体视差,而非GwcNet中的逐像素视差。

1.3 损失函数

网络的训练可以看做一个多任务学习的过程,因此损失函数就是将所有任务的损失函数加权求和。

$ L = {L_{{\rm{RPN}}}} + {L_{{\rm{cls}}}} + {L_{{\rm{box}}}} + \lambda {L_{{\rm{disp}}}} $ (9)

式中, ${L_{{\rm{RPN}}}}$${L_{{\rm{cls}}}}$${L_{{\rm{box}}}}$分别指R-CNN结构中RPN部分的损失函数、包围框分支的分类损失函数及包围框分支的框位置回归损失函数,与Mask R-CNN所使用的损失函数相同,$\lambda $代表视差估计分支的损失函数权重。视差估计分支使用L1损失函数,即

$ {L_{{\rm{disp}}}} = \left| {d_i^{'} - \hat d_i^{'}} \right| $ (10)

2 实验与对比

2.1 算法实现

本文算法基于maskrcnn-benchmark(Francisco和Ross,2018)实现。模型使用在COCO(common objects in context)数据集上预训练的Mask R-CNN模型作为初始化,并沿用maskrcnn-benchmark的训练方案。初始学习率设置为0.01。在KITTI数据集上,图像被等比缩放至短边为384像素,batch size设置为6,总共迭代20 000次,在迭代15 000次后学习率下降为原来的0.1倍,视差分支损失函数权重取1。在行人监控数据集上,图像被等比缩放至短边为600像素,其余参数设置相同。

2.2 数据集

2.2.1 KITTI数据集

该数据集由车载数据采集系统采集,采集到的信息包括多个相机拍摄的图像,对应的相机参数、场景的3维点云等,另外还有完整的3维框标注,可以从中获取目标的距离数据来用于训练。选取KITTI数据集作为比较基准的原因是其发布较早,许多相关论文都在该数据集上进行实验;且横跨多个领域,包括双目视差估计、3维目标检测等。这使得不同类型算法间对比变得十分便利。相比之下,nuScenes相关的比较实验不多,且主要集中在自动驾驶领域。

由于KITTI 3维目标数据集的测试集没有公开标注数据,本文按照3DOP(3D object proposal)(Chen等,2018)的方法,将训练集分成两部分,一部分用于训练,另一部分用于验证。仅选取数据集中车辆(car)、行人(pedestrian)和骑车人(cyclist)类别的目标,因为其他类别的目标样本数很少。另外,对于左右视图中任一视图超出边界的目标也予以去除,因为这些目标的视差无法使用左右视图目标框中心距离表示。

KITTI 3维目标数据集提供了左视图目标的2维及3维框标注,因此目标的右视图包围框及距离信息需要生成。利用3维框在两视图的投影边界各自重新生成新的2维框,取两个框中心点的偏移值作为目标视差,再用相机参数换算出深度。然后,将数据集标注目标左视图的2维框,使用生成的目标视差进行整体偏移,生成右视图的2维框。网络训练时,输入目标左右视图的2维框即可。

2.2.2 行人监控数据集

本文重新采集并标注了一个监控场景数据集。该数据集包含一台双目相机摄制于上午8时至下午18时,5个不同地点,40个不同相机角度的3 265幅分辨率为1 920×1 080像素的双目图像。每幅图像拍摄同时记录相机的外参信息。标注时使用左目图像,标注所有行人目标的包围框及头顶、脚底两个关键点。行人到相机的距离通过双目图像得到的视差图计算。对于每个行人目标的可见关键点,获取关键点像素位置的深度,并取其中较近的一个。对于深度缺失或关键点都不可见的目标,不用于视差估计分支的训练。类似KITTI数据集,对于左右视图中任一视图超出边界的目标也不用于训练和测试;右视图的包围框也使用目标视差从左视图包围框移动生成。根据拍摄的场景来划分训练集与测试集,最终获得2 911组数据作为训练集及354组数据作为测试集。

2.2.3 评判标准

目标距离估计的目的与深度图估计相似,因此针对成功检测的目标使用了深度图估计常用的几个评判标准,包括绝对比值误差(absolute & relative error, AbsRel),根均方误差(root mean square error, RMSE),相对误差阈值(δ < t), 成功检测的标准是检测框与数据集标注框之间的交并比(intersection over union, IoU)大于等于0.5。

另外,由于目标检测也是本文算法的任务之一,评判标准也应当考虑检测的精度。使用相对误差阈值(δall < t), 其中未检测成功的物体的误差认为是正无穷。

2.3 实验结果

2.3.1 KITTI数据集

首先在KITTI数据集上训练并验证了提出的模型。除此之外实验并对比了其他算法,包括基于视差图估计的方法和基于3维目标检测的算法。基于视差图估计的方法使用Mask R-CNN作为检测器,距离估计采用Zhu和Fang(2019)算法,将检测到的属于目标的像素按深度从小到大排序,取第n个深度值作为目标距离估计值,n取目标像素数量的50%。对比算法为GwcNet + Mask R-CNN。基于3维目标检测的方法在估计出3维框后,直接使用3维框中心点的深度坐标值作为估计的目标距离。实验算法包括3DOP(Chen等,2018),Stereo R-CNN(Li等,2019)及PseudoLidar(Wang等,2019)算法。实验结果如表 1所示。

表 1 KITTI数据集实验结果
Table 1 Experiment results on KITTI dataset

下载CSV
AbsRel RMSE δ < 1.05 δall < 1.05
(A)GwcNet 0.113 3.394 0.508 0.381
(B)3DOP 0.069 3.155 0.578 0.408
(B)Stereo R-CNN 0.056 1.767 0.773 0.549
(B)PseudoLidar 0.039 1.080 0.854 0.554
无分支 0.083 7.812 0.477 0.349
分支a 0.051 2.134 0.613 0.441
分支b 0.032 1.384 0.805 0.579
注:加粗字体为每列最优值。标记(A)表示基于视差图估计的方法,标记(B)表示基于3维目标检测的算法。

可以看到,本文算法比基于视差图估计的方法精确度高很多,甚至与使用3维框训练的基于3维目标检测的方法相当。添加的视差分支对本文算法精确度提升很大。无视差分支情况下RMSE数值很大,其原因是框回归的微小误差导致一部分视差较小的目标距离估计误差非常大。此外,基于双目视差估计网络的分支b比包围框回归的分支a结构精度更高。这是由于基于组相关和3维卷积网络的网络结构比单纯的全连接层能更好地提取像素在空间域上的偏移特征。

绝对比值误差的可视化结果如图 4所示,每个目标的误差值以颜色和数字表示,颜色与误差值的对应关系参照图 4上方图例, 如0.2表示误差值为20%。GT指真实值,即无误差情况。

图 4 KITTI数据集误差展示图
Fig. 4 Error visualization result of KITTI dataset

可以看到,基于视差图估计的方法对无遮挡的目标距离估计比较准确,对有遮挡的目标则经常出现较大的误差;基于3维目标检测的方法大多数目标可以准确估计距离;本文算法在不加视差分支情况下误差普遍较大,添加视差分支后误差减小。

2.3.2 行人监控数据集

由于基于双目视差估计方法的预训练模型不适用于监控场景,运用到该数据集效果更差,因此不做对比。而3维目标检测的方法因为该数据集没有3维框标注而无法训练。作为对比,仅用单目目标距离估计算法Monoloco(Bertoni等,2019)进行了实验。实验结果如表 2所示。

表 2 行人监控数据集实验结果
Table 2 Experiment results on pedestrain surveillance dataset

下载CSV
AbsRel RMSE δ < 1.05 δall < 1.05
Monoloco 0.087 1.946 0.403 0.354
无分支 0.495 17.00 0.228 0.208
分支a 0.077 1.689 0.481 0.438
分支b 0.046 1.184 0.734 0.668
注:加粗字体为每列最优值。

可以看到,本文算法在监控场景也可以准确地估计行人的距离,且明显优于单目算法。这也表明本文算法在应用方面的泛化能力。

定性实验结果如图 5所示。可以看到在监控场景中情况和KITTI数据集类似,无视差估计分支的模型估计误差普遍较大,视差估计分支有效地降低了误差。

图 5 行人监控数据集误差展示图
Fig. 5 Error visualization result of pedestrian surveillance dataset

3 结论

提出了一个基于双目图像的目标检测与目标距离估计网络。该网络基于Mask R-CNN改进,使用双目候选框提取网络提取左右视图对应物体的候选框,并添加了一个视差估计分支以更准确地估计物体视差。将该网络在KITTI数据集上进行训练和验证,发现本文网络能够较为准确地估计目标距离,且新增的视差估计分支能够有效地提升距离估计精度。另外也在全新采集并标注的监控场景行人数据集上进行实验,验证了本文算法在监控视频领域的有效性。综上,本文网络在双目目标距离估计问题中具有较高的精度及广泛的应用场景。

本文算法在实际的目标距离估计场景中存在实用性不足的问题。首先,市面上的双目相机产品比较少见;其次,用单目相机搭建的双目系统需要固定、标定、校准等一系列步骤,运用较为烦琐;而且,基于双目视觉的算法虽然精度比单目视觉的算法高一些,但也没有高到引起质变的程度,比起基于点云的算法精度更是远远不如,这导致基于双目视觉的算法在实际场景中并不常用。在实际场景中,往往更青睐搭建更便利的单目相机,或者是精度更高的激光雷达等设备。

由于项目时间及数据来源的限制,本文仅在车载相机和监控相机两种场景下进行了实验,无法完美证明所提算法有广泛的应用场景。今后可以在其他的场景进行更广泛的实验,如室内导航场景、移动设备场景等。另外也可以在算法的效率上进行改进,如使用运行更快的单步目标检测算法来构建网络。

参考文献

  • Bertoni L, Kreiss S and Alahi A. 2019. MonoLoco: monocular 3D pedestrian localization and uncertainty estimation//Proceedings of the 2019 IEEE/CVF International Conference on Computer Vision. Seoul, Korea (South): IEEE: 6860-6870[DOI: 10.1109/ICCV.2019.00696]
  • Caesar H, Bankiti V, Lang A H, Vora S, Liong V E, Xu Q, Krishnan A, Pan Y, Baldan G and Beijbom O. 2020. nuScenes: a multimodal dataset for autonomous driving//Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle, USA: IEEE: 11618-11628[DOI: 10.1109/CVPR42600.2020.01164]
  • Chang J R and Chen Y S. 2018. Pyramid stereo matching network//Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City, USA: IEEE: 5410-5418[DOI: 10.1109/CVPR.2018.00567]
  • Chen B, Chen H P, Li X H. 2014. Near real time linear stereo cost aggregation on GPU. Journal of Image and Graphics, 19(10): 1481-1489 (陈彬, 陈和平, 李晓卉. 2014. GPU近实时线性双目立体代价聚合. 中国图象图形学报, 19(10): 1481-1489) [DOI:10.11834/jig.20141010]
  • Chen X Z, Kundu K, Zhu Y K, Ma H M, Fidler S, Urtasun R. 2018. 3D object proposals using stereo imagery for accurate object class detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 40(5): 1259-1272 [DOI:10.1109/TPAMI.2017.2706685]
  • Chen Y L, Liu S, Shen X Y and Jia J Y. 2020. DSGN: deep stereo geometry network for 3D object detection//Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle, USA: IEEE: 12533-12542[DOI: 10.1109/CVPR42600.2020.01255]
  • Francisco M and Ross G. 2018. Maskrcnn-benchmark: fast, modular reference implementation of instance segmentation and object detection algorithms in PyTorch[CP/OL]. [2020-07-24]. https://github.com/facebookresearch/maskrcnn-benchmark
  • Geiger A, Lenz P and Urtasun R. 2012. Are we ready for autonomous driving? The KITTI vision benchmark suite//Proceedings of 2012 IEEE Conference on Computer Vision and Pattern Recognition. Providence, USA: IEEE: 3354-3361[DOI: 10.1109/CVPR.2012.6248074]
  • Guo X Y, Yang K, Yang W K, Wang X G and Li H S. 2019. Group-wise correlation stereo network//Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, USA: IEEE: 3268-3277[DOI: 10.1109/CVPR.2019.00339]
  • He K M, Gkioxari G, Dollár P and Girshick R. 2017. Mask R-CNN//Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy: IEEE: 2980-2988[DOI: 10.1109/ICCV.2017.322]
  • Hirschmuller H. 2008. Stereo processing by semiglobal matching, mutual information. IEEE Transactions on Pattern Analysis and Machine Intelligence, 30(2): 328-341 [DOI:10.1109/TPAMI.2007.1166]
  • Kendall A, Martirosyan H, Dasgupta S, Henry P, Kennedy R, Bachrach A and Bry A. 2017. End-to-end learning of geometry and context for deep stereo regression//Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy: IEEE: 66-75[DOI: 10.1109/ICCV.2017.17]
  • Li P L, Chen X Z and Shen S J. 2019. Stereo R-CNN based 3D object detection for autonomous driving//Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, USA: IEEE: 7636-7644[DOI: 10.1109/CVPR.2019.00783]
  • Lyu N Q, Song G H, Yang B W. 2018. Semi-global stereo matching algorithm based on feature fusion and its CUDA implementation. Journal of Image and Graphics, 23(6): 874-886 (吕倪祺, 宋广华, 杨波威. 2018. 特征融合的双目半全局匹配算法及其并行加速实现. 中国图象图形学报, 23(6): 874-886) [DOI:10.11834/jig.170157]
  • Mayer N, Ilg E, Häusser P, Fischer P, Cremers D, Dosovitskiy A and Brox T. 2016. A large dataset to train convolutional networks for disparity, optical flow, and scene flow estimation//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA: IEEE: 4040-4048[DOI: 10.1109/CVPR.2016.438]
  • Scharstein D, Szeliski R and Zabih R. 2001. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms//Proceedings of 2001 IEEE Workshop on Stereo and Multi-Baseline Vision. Kauai, USA: IEEE: 131-140[DOI: 10.1109/SMBV.2001.988771]
  • Wang Y, Chao W L, Garg D, Hariharan B, Campbell M and Weinberger K Q. 2019. Pseudo-LiDAR from visual depth estimation: bridging the gap in 3D object detection for autonomous driving//Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, USA: IEEE: 8437-8445[DOI: 10.1109/CVPR.2019.00864]
  • Žbontar J, LeCun Y. 2016. Stereo matching by training a convolutional neural network to compare image patches. The Journal of Machine Learning Research, 17(65): 1-32
  • Zhu J and Fang Y. 2019. Learning object-specific distance from a monocular image//Proceedings of 2019 IEEE/CVF International Conference on Computer Vision. Seoul, Korea (South): IEEE: 3838-3847[DOI: 10.1109/ICCV.2019.00394]