一种基于卷积神经网络的单目视图的3D目标检测方法与流程

文档序号:21369386发布日期:2020-07-04 04:45阅读:314来源:国知局
一种基于卷积神经网络的单目视图的3D目标检测方法与流程

本发明属于计算机视觉领域,尤其涉及一种基于卷积神经网络的单目视图的3d目标检测方法。



背景技术:

视觉是人们在驾驶车辆过程感知周围环境时主要依赖的信息来源。人类的视觉经过漫长时间的进化,对周围的环境具有很好的感知能力,可以轻松识别出周围的目标对象和对周围目标对象进行定位感知。而计算机视觉技术正是想要赋予计算机人类的视觉识别和定位的功能。通过复杂的图像计算,计算机能够识别和定位出目标对象。

近年来自动驾驶无论在工业界还是学术界均受到了很大的关注,自动驾驶的目的是一定程度上或者完全代替人类的驾驶行为。随着近年来自动驾驶领域技术的向前推进,越来越多的自动驾驶功能逐步进入到人们的日常出行当中。为了在自动驾驶的过程中,保证车内人员和周围环境的车辆和行人的安全,自动驾驶对感知环境有极高的要求。在自动驾驶技术领域中,感知是进行人机交互的前提,感知直接影响到对车辆主体周围环境的认知情况。车辆主体对周围环境的准确感知,是车辆进行决策规划的前提,是保障车辆安全驾驶,保障车内乘客的人身安全的前提条件。在感知领域有众多的技术路线,按照传感器类型可以分为基于激光雷达、基于毫米波雷达和基于摄像头的。基于摄像头的方案又可以分为单目和双目,而本发明提出的是一种基于单目摄像头的3d目标检测方法。

3d目标检测是自动驾驶领域一个非常重要的基本任务,三维空间中的物体一般用一个3dbox进行表示,其参数包括空间坐标(x,y,z)、尺寸大小(l,w,h)和偏航角(θ)。相比较于激光雷达,单目摄像头有着低成本,高分辨率,成像稳定的优势,在自动驾驶领域被广泛应用。但是单目摄像头由于透视投影的关系,缺失了深度信息,3d目标的定位具有较大的挑战。近年来,深度卷积神经网络(cnn)已经极大地改善了2d目标检测的性能。卷积神经网络的性能不断提高,通用性也在不断增强,为单目3d目标检测提供了强有力的技术手段。本发明则是提出了一种基于卷积神经网络的单目视图的3d目标检测方法。



技术实现要素:

本发明的目的是针对现有的应用于自动驾驶场景的3d目标检测的不足,提供一种基于卷积神经网络的单目视图的3d目标检测方法。

本发明采取的技术方案是:

首先,从通过车载单目摄像头采集rgb图像和摄像头的标定参数;然后将图像进行预处理,输入至卷积神经网络当中,得到预测的参数,最后根据这些参数,利用相机模型计算出最终目标对象的3d边框,包括空间坐标和偏航角。

本发明解决其技术问题所采用的技术方案如下:

一种基于卷积神经网络的单目视图的3d目标检测方法,包括如下步骤:

步骤(1).获取车载摄像头采集的单目视图作为训练样本图像,并对训练样本图像中的目标对象进行标注,标注信息包括:相机的标定矩阵p、目标对象在图像上2d边框的中心位置(x2d,y2d)和宽高(w2d,h2d)、以及3d边框的中心位置(x3d,y3d,z3d)、长宽高(l3d,w3d,h3d)和偏航角(θ);

步骤(2).图像预处理:对训练样本图像的r、g、b通道分别进行中心化和标准化处理,公式如下:

x′=x-xmean(1)

xs=x′/xstd(2)

其中x是待预处理的图像,xmean是所有训练样本图像的均值,xstd是所有训练样本图像的标准差;

步骤(3).构建卷积神经网络,使用预处理后的训练样本图像对卷积神经网络进行训练;所述卷积神经网络包括主干网络和网络输出分支;

所述主干网络一共采用18个卷积块,每个卷积块内部均为残差结构;卷积块的内部结构包含两个分支,其中第一分支依次经过3*3的卷积层、归一化层、relu激活函数、3*3的卷积层、归一化层,第二分支用于将该卷积块的输入变换为与第一分支的输出具有同样的尺寸;将第一分支和第二分支的输出的特征图相加作为所述卷积块的输出;

将卷积块i定义为神经网络中按次序的第i个卷积块,卷积块3和卷积块4构成第一卷积组,卷积块5、6、7、8构成第二卷积组,卷积块9至16构成第三卷积组,卷积块17和18构成第四卷积组;卷积块1、卷积块2、第一卷积组、第二卷积组、第三卷积组、第四卷积组中卷积的通道数分别为16、32、64、128、256、512,整个主干网络中采用的卷积核尺寸为3*3或1*1;在各个卷积组内部,不同层级的卷积层得到的特征图通过树状的结构依次进行融合,所述的树状结构具体为:每一个卷积组内部的前两个卷积块进行组内特征融合,并将融合结果输入到下一个卷积块,依次类推,得到包含浅层信息和深层信息的特征图;在不同的卷积组之间进行组间特征融合,组间特征融合的过程具体为:首先将前一组卷积组得到的特征图经过行卷积,然后再和后一个卷积组得到的特征进行融合;

所述的网络输出分支设置在主干网络后面,对于所需的每个输出设置1个分支,一共12个分支;每个分支内部依次为卷积核尺寸为3*3的卷积层、relu激活函数、卷积核尺寸为3*3的卷积层;所述的12个分支相对应的输出为:目标对象的置信度(score),2d边框的中心位置(x2d,y2d)和宽高(w2d,h2d)以及3d边框的长宽高(l3d,w3d,h3d)、观察角(θl)、中心位置的z坐标(z3d)、中心位置在平面图像上的投影与2d边框中心的偏移量(xoffset,yoffset);

利用训练集上标注的信息,计算出每张图像所对应的神经网络输出的真值,并以此监督卷积神经网络的学习;其中目标对象的置信度的设置方式为:当输出特征图上该处对应的原输入图像出现了目标对象,则设为1,否则为0;偏移量(xoffset,yoffset)的真值的计算方法如下:

xoffset=u-x2d(4)

yoffset=v-y2d(5)

其中p,即(x3d,y3d,z3d)表示3d目标的中心点坐标,(u,v)表示3d目标的中心点在2d图像上的投影坐标,k矩阵表示相机的内参矩阵,通过相机厂商或者标定确定相机的内参矩阵;

所述观察角(θl)的真值的计算方式如下:

θl=θ-θray(6)

步骤(4).在使用阶段,将图片输入至步骤(3)训练好的卷积神经网络模型,输出相应的目标对象;使用非极大值抑制算法对神经网络输出的目标对象进行去重叠处理;

步骤(5).从步骤(4)得到的结果中,保留置信度前靠前的k个目标对象,然后再选出置信度大于设定阈值(t)的目标对象;

步骤(6).根据步骤(5)筛选后的目标对象参数,利用摄像头标定矩阵计算每一个目标对象在3d空间中的具体位置:

根据相机模型:

其中p表示3d目标的中心点坐标,(u,v)表示3d目标的中心点在2d图像上的投影坐标,k矩阵表示相机的内参矩阵,通过相机厂商或者标定确定相机的内参矩阵;

所以:

u=x2d+xoffset(11)

v=y2d+yoffset(12)

步骤(8).根据步骤(6)筛选后的目标对象参数(θl),和步骤(6)中计算得出空间坐标(x3d,y3d,z3d),计算得到3d目标的偏航角(θ):

θ=θl+θray(13)

其中θl表示观察角,θray表示相机到3d目标中心的射线与相机坐标系x轴的夹角。

作为本发明的优选,所述的步骤(3)卷积神经网络的主干网络的特征融合过程中使用行卷积,行卷积与普通卷积的不同之处在于普通卷积在整个特征图上的滑动卷积操作中均共享权重,而行卷积只在特征图进行一次行滑动卷积操作内共享卷积核的权重,不同行的卷积操作则不共享卷积核的权重。

本发明的有益效果:

本发明通过仅通过单目摄像头的图像检测出3d立体空间中的目标对象,应用于自动驾驶领域,有助于自动驾驶车辆对周围环境的准确感知。单目摄像头成本较低,但有分辨率高,成像稳定的有点。本发明提出的一种基于单目视图的3d目标检测方法,利用成本低的传感器,达到较高的准确度,在自动驾驶领域具有较大的应用前景。通过在训练集对卷积神经网路的权重参数进行优化,在测试集上与真实值具有较高的一致性。不仅能够正确识别不同类别的3d目标,而且对目标的定位和姿态估计等也具有很高的准确性。证明本发明具有较高的准确度和鲁棒性。

附图说明

图1为目标对象的偏航角和观察角的关系示意图;

图2为本发明的一种基于卷积神经网络的单目视图的3d目标检测方法结构框图;

图3为主干网络的结构示意图。

具体实施方式

下面结合附图对本发明方法作进一步说明。

如图2所示,一种基于卷积神经网络的单目视图的3d目标检测方法,其具体实施步骤如下:

步骤(1).输入图像为车载摄像头采集的单目视图;

步骤(2).将训练样本分为训练集和测试集,将训练集样本放进卷积神经网络中利用反向传播法进行训练。测试集样本则用于测试模型的泛化能力。

步骤(3).对输入图像的r、g、b通道分别进行中心化和标准化处理,即减去训练集上统计得到的均值,再除以标准差:

x′=x-xmean

xs=x′/xstd

其中,x是待预处理的图像,xmean是所有训练样本图像的均值,xstd是所有训练样本图像的标准差;

步骤(4).将经过步骤(3)处理得到的图像送入到所设计卷积神经网络当中,得到卷积神经网络的输出:2d边框的中心位置(x2d,y2d)和宽高(w2d,h2d)以及3d边框的长宽高(l3d,w3d,h3d)、观察角(θl)、中心位置的深度(z3d)、中心位置在平面图像上的投影与2d边框中心的偏移量(xoffset,yoffset)。网络的输出均为中心化和标准化后的结果,均值和标准差计算出真实场景下的结果:

ydn=y×ystd+ymean

步骤(5).从步骤(4)中得到的这些目标对象中进行筛选,首先使用非极大值抑制算法,剔除掉重叠过大的目标对象。

步骤(6).保留置信度靠前的k个目标对象,k取100;然后再选出置信度大于设定阈值的目标对象,这里的阈值t取0.7。

步骤(7).根据步骤(6)筛选后的目标对象参数,结合摄像头的标定矩阵,计算目标对象在3d空间中的具体位置:

根据相机模型:

所以:

u=x2d+xoffset

v=y2d+yoffset

其中,(x3d,y3d,z3d)表示3d目标的中心点坐标,(u,v)表示3d目标的中心点在2d图像上的投影坐标,k矩阵表示相机的内参矩阵,通过相机厂商或者标定确定相机的内参矩阵;

步骤(8).目标对象的偏航角θ和观察角的关系如图1所示;根据步骤(6)筛选后的目标对象参数(θl),和步骤(7)中计算得出空间坐标(x3d,y3d,z3d),计算得到3d目标的偏航角(θ):

θ=θl+θray

如图3所示为本发明的主干网络的结构示意图,所述主干网络一共采用18个卷积块,每个卷积块内部均为残差结构;卷积块的内部结构包含两个分支,其中第一分支依次经过3*3的卷积层、归一化层、relu激活函数、3*3的卷积层、归一化层,第二分支用于将该卷积块的输入变换为与第一分支的输出具有同样的尺寸;将第一分支和第二分支的输出的特征图相加作为所述卷积块的输出;

将卷积块i定义为神经网络中按次序的第i个卷积块,卷积块3和卷积块4构成第一卷积组,卷积块5、6、7、8构成第二卷积组,卷积块9至16构成第三卷积组,卷积块17和18构成第四卷积组;卷积块1、卷积块2、第一卷积组、第二卷积组、第三卷积组、第四卷积组中卷积的通道数分别为16、32、64、128、256、512,整个主干网络中采用的卷积核尺寸为3*3或1*1;

在各个卷积组内部,不同层级的卷积层得到的特征图通过树状的结构依次进行融合,每一个卷积组内部的前两个卷积块进行组内特征融合,并将融合结果输入到下一个卷积块,依次类推,得到包含浅层信息和深层信息的特征图;

在不同的卷积组之间进行组间特征融合,组间特征融合的过程具体为:首先将前一组卷积组得到的特征图经过行卷积,然后再和后一个卷积组得到的特征进行融合;

所述的网络输出分支设置在主干网络后面,对于所需的每个输出设置1个分支,一共12个分支;每个分支内部依次为卷积核尺寸为3*3的卷积层、relu激活函数、卷积核尺寸为3*3的卷积层;所述的12个分支相对应的输出为:目标对象的置信度(score),2d边框的中心位置(x2d,y2d)和宽高(w2d,h2d)以及3d边框的长宽高(l3d,w3d,h3d)、观察角(θl)、中心位置的z坐标(z3d)、中心位置在平面图像上的投影与2d边框中心的偏移量(xoffset,yoffset)。所述目标对象的置信度的设置方式为:当输出特征图上该处对应的原输入图像出现了目标对象,则设为1,否则为0。

偏移量(xoffset,yoffset)的真值的计算方法如下:

xoffset=u-x2d

yoffset=v-y2d

其中,(u,v)表示3d目标的中心点在2d图像上的投影坐标。

为了验证本发明所述的基于单目的3d目标检测方法的优越性,我们在卡尔斯鲁厄技术学院和芝加哥丰田技术学院共同发布的kitti项目中的3d目标检测数据集(http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d)上进行了实验。

kitti项目中的3d目标检测数据集提供了一共7481张单目视图数据,以及与之相对应的标签。实验中将图像分成了测试集和验证集,其中测试集3712张单目图像,验证集3769张单目图像。每张图像提供了相机的标定矩阵,以及图像中3d目标的真值。表1给出了本发明所述方法在验证集中的性能。表中的map(meanaverageprecision)是验证3d目标检测算法性能的重要指标。表1罗列的是car类目标iou3d≥0.7,pedestrian类目标iou3d≥0.5,cyclist类目标iou3d≥0.5的性能情况。iou的计算公式如下:

根据遮挡情况的多少,kitti数据集将每一类目标对象分为了容易(easy),中等难度(moderate)和困难(hard)三个难度,本发明在kitti数据集上的性能结果如表1所示。

表1本发明所述算法在kitti3d目标检测数据集上的实验结果(单位:%)

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1