首页 / 专利库 / 人工智能 / 人工智能 / 机器学习 / 半监督学习 / 一种基于卷积神经网络的自动驾驶汽车前方物体检测方法

一种基于卷积神经网络的自动驾驶汽车前方物体检测方法

阅读:945发布:2020-05-17

专利汇可以提供一种基于卷积神经网络的自动驾驶汽车前方物体检测方法专利检索,专利查询,专利分析的服务。并且本 发明 属于 计算机视觉 中利用神经网络对图像中物体进行检测的领域,具体的说是一种基于 卷积神经网络 的自动驾驶 汽车 前方物体检测方法。本发明利用 深度学习 中的卷积神经网络(Faster RCNN)对摄像头拍摄出的图像进行目标物体提取、分类等工作,较好地提高了对自动驾驶车辆前方目标物的识别准确率。同时,本发明中改进了Faster RCNN模型的结构,将传统的卷积层、 池化 层堆叠的结构改成了CBLP 块 结构,并加入dropout层有效地避免了过拟合现象。卷积神经网络是仿造 生物 的视知觉机制构建的, 图像处理 属于半 监督学习 范围,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对 像素 进行学习且有稳定的效果。,下面是一种基于卷积神经网络的自动驾驶汽车前方物体检测方法专利的具体信息内容。

1.一种基于卷积神经网络的自动驾驶汽车前方物体检测方法,其特征在于,该检测方法包括以下步骤:
步骤一、获取训练集样本和测试集样本并且对数据进行标记;
从公开数据集KITTI上收集某城市道路上拍摄到的图片,取其中的60%作为训练集样本和40%作为测试集样本,利用MATLAB图像处理计算机视觉工具箱中的Image Labeler标注工具对图片中的汽车这一目标物进行标记,标记好的图片数据保存在.mat文件中;
步骤二、在MATLAB平台搭建改进的Faster RCNN卷积神经网络;
在MATLAB平台搭建Faster RCNN卷积神经网络模型,将传统的Faster RCNN卷积层、池化层堆叠的结构改为如下的结构,改进后的特征提取部分的网络结构为:一个图片输入层和5个CBLP块结构,其中每个块结构包含一个卷积层、一个批量标准化层、一个激活函数层和一个池化层;上述块结构提取出输入特征图的R、G、B各个色彩分量的像素特征后,特征图继续输入到全连接层中将上述各层提取出来的特征整合到一起;改进后的网络结构在全连接层之后加入一个dropout层;最终输出的特征图继续输入到softmax分类器实现对特征图中的目标物进行分类,并最终输出带有检测框和准确率的检测图;
步骤三:设置每层网络中的具体参数;
该网络结构的具体参数包括:卷积层、池化层数量,激活函数,卷积核大小,卷积核滑动步长,每一层中卷积核数量,学习率数值,权重更新方法以及权重初始值;
步骤四、训练上述搭建好的卷积神经网络模型;
首先,将标记好的训练集图片输入到上述搭建好的卷积神经网络模型中,设置训练过程中的批次minibatch和训练轮数;其次,在MATLAB平台上编写代码,通过不断调整训练的轮数以及上述学习率、卷积核大小、卷积核数量参数的值,不断重复训练该网络,直到得到了一个鲁棒性较好的且训练好卷积核中的权重和各个超参数的带有CBLP块结构的Faster RCNN卷积神经网络模型;最后,保存该模型,以便于后续将测试集图片输入到该神经网络模型中进行目标物检测;
步骤五、利用训练好的网络对测试集图片进行检测;
将测试集中待检测的图片输入到上述训练完成的卷积神经网络模型中,输出带有检测框和检测置信度的检测图;
步骤六、计算测试集平均检测准确率并且绘制测试集Precision-Recall曲线;
将测试集图片生成的检测框与提前标记好的框进行比较,计算测试集所有检测图片的检测准确率,绘制Precision-Recall即查准率-查全率曲线,统计得到测试集平均检测准确率。
2.根据权利要求1所述一种基于卷积神经网络的自动驾驶汽车前方物体检测方法,其特征在于,所述步骤三中各层中基本参数的具体设置为:
(1)五个卷积层:各层中卷积核大小均为3*3,卷积核数量分别为第一层32个,第二层64个,第三层128个,第四层256个,第五层512个;卷积核每次滑动一个步长,且采用零补位方法即在原始图像数据的基础上加上一层零数据,使卷积层输出的特征图尺寸与输入时相同;
(2)五个激活函数层:均采用relu激活函数,与传统的sigmoid函数相比,relu激活函数避免了训练过程中由于权重梯度消失导致的损失函数陷入局部极小值的问题;输入的数据x经过relu激活函数后输出的表达式为:
f(x)=max(0,x);
(3)五个正则化层:均采用Batch Normalization方法,对每个卷积层输出的数据xi按如下方式进行处理,以提高网络的稳定性
yi=γxi+β
其中,μ为输入数据的均值,σ2为数据的方差,γ为需要学习的数据的标准差,β为需要学习的数据的均值,m为数据总数,xi为每一个输入的数据,ε为一个常数小值常取1e-7,为经过归一化变换后的数据值,yi为经过正则化变换之后输出的数据值;
(4)五个池化层:其中卷积核大小均为2*2,滑动步长均为2;池化层的作用在于对输入的图像进行降采样处理同时减少网络中的参数量;池化层采用的方法为最大值池化,每经过一次池化层,图像尺寸缩减为原来的一半;
(5)卷积核中的权重值初始化方法为随机选取一组符合高斯分布的数据作为权重初始值,同时每次训练时都随机选取一个小批量minibatch的图像数量,所有图像共输入到网络中重复训练4个批次;
(6)权重更新方法为SGD+Momentum即SGDM方法,即在传统随机梯度下降法加急SGD的基础上加上权重更新速度对权重更新的影响,可以有效避免训练过程中当某一点权重梯度为零时,权重值无法更新陷入局部极小值的问题;当采用SGDM权重更新方法时,即加入了权重更新速度对权重更新的影响时,在梯度消失时速度值仍很大,因此可以越过loss局部极小值,找到损失函数真正的最小值;权重更新方法为:
ω′=ω-αvt+1
其中,vt为上一时刻权重更新速率,vt+1为下一时刻权重更新速率, 为权重梯度,α为权重更新的步长即学习率,ρ为速率因子,取0.9,ω'为权重更新后的值,ω为之前的权重值;
(7)权重更新步长即学习率α初始值设置为1e-3,训练网络时保证学习率为一个定值
1e-3,记录测试集平均检测准确率;若学习率过小,则损失函数loss收敛速度过慢,网络训练时间过长;若学习率过大,则损失函数收敛速度过快,会导致在loss最小值之前提前收敛,网络训练得不够;
(8)dropout层超参数设置:由于输入的图片数量有限易出现过拟合现象,因此在网络搭建时设置dropout以防止出现过拟合现象;设置一个神经元抑制因子为0.3,即在网络训练中使30%的神经元处于抑制状态时,测试集检测准确率达到最高值。

说明书全文

一种基于卷积神经网络的自动驾驶汽车前方物体检测方法

技术领域

[0001] 本发明属于计算机视觉中利用神经网络对图像中物体进行检测的领域,具体的说是一种基于卷积神经网络的自动驾驶汽车前方物体检测方法。

背景技术

[0002] 近年来,由于全球范围内电控信息和技术的迅速发展,逐渐兴起的自动驾驶汽车正在成为各大汽车企业和高等学府的研究焦点。作为自动驾驶汽车的第一步,环境感知主要应用摄像头、雷达等传感器拍摄出的图像识别自动驾驶汽车附近的行人、车辆或其他障碍物。基于上述传感器检测出的这些障碍物信息,系统可以进一步规划出一条自动驾驶汽车可以行驶的区域范围,从而选择一条最佳的行驶轨迹,通过对整车的底盘系统进行控制实现车辆的自主驾驶。
[0003] 目标检测与跟踪是近年来计算机视觉领域的热研究课题,它融合了图像处理模式识别人工智能、自动控制等许多领域的前沿技术,在智能化交通系统、智能监控系统、工业检测、航天航空等诸多领域得到了广泛的应用。目前,检测算法分为基于视频图像的动态目标检测和基于图片的静态目标检测,基于静态图片的目标检测难点主要在于图片中的目标会因光照、视以及目标内部等变化而产生变化,因此对检测结果产生影响。
[0004] 自动驾驶汽车前方物体的检测综合利用摄像头、激光雷达、毫米波雷达等传感器对周围环境进行感知。而视觉传感器摄像头的拍摄效果很容易受到拍摄角度、环境清晰度和目标物体重叠等因素的干扰,无法保证百分之百的查全率和查准率。而在自动驾驶汽车中,准确且快速地检测出车辆前方障碍物是进行后续决策行为的基础,因此计算机图像处理技术在自动驾驶汽车中起着十分重要的作用。

发明内容

[0005] 本发明提供了一种旨在利用深度学习中的卷积神经网络(Faster RCNN)对摄像头拍摄出的图像进行目标物体提取、分类等工作,较好地提高了对自动驾驶车辆前方目标物的识别准确率的基于卷积神经网络的自动驾驶汽车前方物体检测方法,解决已有的图像处理算法存在的问题。
[0006] 本发明技术方案结合附图说明如下:(该部分同权利要求书,权利要求书写好了再补充)
[0007] 本发明的有益效果为:
[0008] 1)本发明中的网络深度并没有达到Alexnet网络和VGG网络的深度,但也同样达到了较高的检测准确率,且训练的时间也不是很长。因此该发明中改进的网络结构可以应用在CPU等常规计算机上,对计算机硬件要求没有那么高,扩展了Faster RCNN的实用性;
[0009] 2)本发明中基于改进的Faster RCNN结构,增加了CBLP结构,可以使图像特征提取具有规则性和可扩展性,即当有大量的数据输入时,可以在该网络结构的基础上通过叠加CBLP块结构更加完整地提取出图像特征,因此该网络结构具有更好的应用性;
[0010] 3)在实际训练该卷积神经网络时,由于增加了CBLP块,网络深度增大,但不需要像其他网络一样考虑由于网络深度增大带来的过拟合现象,即对待不同问题不需要改变网络结构,可以通过dropout层中神经元抑制因子的值来抑制一部分神经元,使其不参与对输入图片的特征提取,可以有效地防止过拟合现象。

附图说明

[0011] 图1为本发明的模型训练和检测算法流程图
[0012] 图2为本发明改进后的卷积神经网络结构图;
[0013] 图3为检测得到的Precision-Recall即查准率-查全率曲线图;
[0014] 图4为测试集中的一个检测效果图;
[0015] 图5为测试集中车辆有遮挡时的一个检测效果图。

具体实施方式

[0016] 参阅图1,一种基于卷积神经网络对自动驾驶汽车前方目标物检测的方法,其具体实施步骤如下:
[0017] 步骤一、获取训练集样本和测试集样本;
[0018] 深度学习属于半监督学习算法,因此前期应提供足够多的样本数据输入到卷积神经网络中,以便充分学习到图片的特征。本发明收集了800张来自KITTI数据集的外国某城市道路采集的图片,图片中包括亮天和黑暗环境下的,充分考虑到了光照对训练效果的影响。取其中480张图片作为训练集样本,其余320张为测试集样本。
[0019] 利用MATLAB图像处理与计算机视觉工具箱中的Image Labeler标注工具对训练集和测试集的每张图片进行手动标记。
[0020] 步骤二、在MATLAB平台搭建改进的Faster RCNN卷积神经网络;
[0021] 参阅图2,图2中images表示输入的训练集图像;conv表示卷积层;Batch Normalization 表示数据正则化层;relu表示激活函数;max pooling表示最大池化层;CBLP块结构是由卷积层、正则化层、激活函数层、最大池化层共同组成的。FC表示全连接层;
dropout表示防止过拟合层。
[0022] 具体网络结构为:
[0023] (1)第一层为图片输入层:输入到网络中的图片尺寸统一为228*128*3(3表示图像是RGB三通道图像)。
[0024] (2)第二层为第一个卷积层:共32个卷积核,卷积核大小为3*3,滑动步长为1。
[0025] 由于一张图片的像素值变化范围为0~255,0表示黑色即背景,因此为了使输出图像的尺寸和输入图像相同,采用零元素补位Zero Padding的方法使得卷积层只对输入图像进行特征提取,不进行降采样处理,之后经过该卷积层输出的特征图继续输入到下一层。
[0026] (3)第三层为正则化层:本发明中将卷积层输出的图片进行批量标准化方法采用Batch Normalization,使得输入到激活函数中的数据落在非线性函数较敏感的区域,使梯度增大,避免梯度消失的问题,进而大大加快收敛速度。数据正则化计算公式如下:
[0027]
[0028]
[0029]
[0030] yi=γ xi+β   (4)
[0031] 其中,xi为每一个输入的数据,m为数据总数,μ为输入数据的均值,σ2为数据的方差,为经过归一化变换后的数据值,ε为一个常数小值常取1e-7,γ为需要学习的数据的标准差,β为需要学习的数据的均值,yi为经过正则化变换之后输出的数据值。
[0032] (4)第四层为非线性函数层:采用relu激活函数,使神经网络由线性层和非线性层堆叠而成,能更好地提取输入图片的特征。与传统的sigmoid激活函数相比,relu函数有效地避免了损失函数对权重值梯度为0的情况,更加有利于后面的随机梯度下降法。relu激活函数f(x)公式如下,
[0033] f(x)=max(0,x)   (5)
[0034] 经过激活函数层输出的特征图x2计算如下:
[0035] x2=f(ω x1+b)
[0036] 其中,x2表示输出的特征图矩阵,ω表示权重向量,x1表示输入的特征图矩阵,b表示加入的常数偏置项,f()为激活函数表达式;
[0037] (5)第五层为第一个池化层:采用最大池化的方法,相比于平均池化的方法,最大池化能更好地保留原始数据值,卷积核大小为2*2,滑动步长为2。池化层的作用在于对特性图进行降采样处理,使输出的特征图尺寸减小,同时减少了网络中的参数量。
[0038] 本实施例中将步骤(2)~(5)中的卷积层、标准化层、非线性函数层、池化层构成了一个CBLP块结构,该块结构构成了该卷积神经网络特征提取部分的核心。不断重复CBLP 块结构,块的数量设置为5。
[0039] (6)第六层为第一个全连接层:全连接层的所有神经元与前一层所有神经元相连接,用于将前面提取到的所有特征综合起来。输出的特征图被转化为一个列向量与训练好的权重向量相乘再加上常数偏置项,得到一个列向量输入到下一层。
[0040] (7)第七层为激活函数层:将经过全连接层输出的列向量输入到relu激活函数中加入非线性特征。
[0041] (8)第八层为dropout层:本实施例中输入的图片数量只有800张,在网络训练过程中,由于图片数量较少而网络深度较大容易导致过拟合现象,因此在全连接层后加入dropout 层,即抑制一部分的神经元使其不工作,这样可以保证在不改变原网络深度的情况下,当输入的图片数量不够时,可以通过调节dropout层的参数避免过拟合现象发生。
[0042] 本实施例中,由于训练集图片数量有限,为防止过拟合取dropout层神经元抑制参数值为0.3,即有30%的神经元不参与工作。
[0043] (9)第九层为第二个全连接层:用于对目标物体进行分类操作。
[0044] (10)第十层为分类层:本实施例中使用softmax分类器对测试集图像中的目标物进行分类输出,并计算平均检测准确率。
[0045] 步骤三、设置每层网络中的具体参数;
[0046] (1)卷积层:第一个卷积层中卷积核的数量为32,第二~五个卷积层中的卷积核数量分别为:64、128、256、512个;每个卷积层中卷积核大小均为3*3;卷积核每次滑动的步长均为1;
[0047] 卷积层中采用零补位的方法即输入到卷积层中的特征图在原有像素值的基础上增加一圈零元素,保证在不改变特征图像素信息的基础上使输入的特征图大小与输出的相同,便于下一个卷积层继续提取特征图信息。
[0048] (2)池化层:5个CBLP块结构共有5个池化层,每一个池化层中卷积核大小均为2*2,滑动步长均为2。池化层采用的方法为最大值池化法,即每次输出选定像素值中的最大值。池化层的作用是用来对特征图进行降采样处理,即保证每次经过池化层后输出的特征图尺寸均为输入时的一半。
[0049] (3)权重值:在网络训练的过程中最初的权重值随机给出,卷积核中权重值更新方法为:SGD+Momentum(SGDM)。为了缩短训练时间,每次只取一个小批量minibatch参与训练,要使损失函数达到最小值,权重ω应沿着负梯度方向变化即传统的随机梯度下降法 SGD法。本实施例是在SGD方法的基础上加上权重更新速度对权重更新的影响,可以有效避免训练过程中当某一点权重梯度为零时,权重值无法更新陷入局部极小值的问题。当采用SGDM权重更新方法时,即加入了权重更新速度对权重更新的影响时,在梯度消失时速度值仍很大,因此可以越过Loss局部极小值,找到损失函数真正的最小值。权重更新方法为:
[0050]
[0051] ω'=ω-α vt+1   (8)
[0052] 其中,ρ表示速率更新因子常取值0.9,vt为上一时刻权重更新速率,vt+1为下一时刻权重更新速率, 为权重梯度,α为权重更新的步长即学习率,ω表示之前的权重值,ω' 表示权重更新后的值。
[0053] (4)学习率:作为权重值更新的步长,学习率是卷积神经网络中一个很重要的参数。若学习率过小,则损失函数loss收敛速度过慢,网络训练时间过长;若学习率过大,则损失函数收敛速度过快,会导致在loss最小值之前提前收敛,网络训练得不够。本发明中通过多次试验尝试将学习率的值设定为0.001。
[0054] 步骤四、训练上述搭建好的卷积神经网络模型
[0055] 在网络训练过程中,当标记的目标物所在的框与预测的目标物所在的框重叠率在70%以上时才认为该预测框为有效的前景框,否则判定为无效的背景框。网络将有效的前景框提取出来下一阶段继续训练,无效的背景框被踢除。
[0056] 步骤五、利用训练好的网络对测试集图片进行检测
[0057] 利用上述训练好的神经网络对测试集的图片进行检测,输出其目标物所在的框,以及对应的置信度
[0058] 步骤六、计算测试集平均检测准确率并且绘制测试集Precision-Recall曲线;
[0059] 对测试集所有图片进行检测,将检测出来的目标物所在的框和真实的框按照IOU方法计算交并比:
[0060]
[0061] 其中,Soverlap表示检测框和真实框重叠部分的面积(交集面积),Sunion表示检测框和真实框总共占据的面积(并集面积),IOU即表示检测框和真实框面积重叠的百分率,本实施例中取该值为0.5,即计算检测框与真实框的IOU结果,只有当其值大于0.5时,才对检测框进行输出,其值作为目标物的检测置信度,即有多大把握认为此处有一个目标物,该值越接近1表示此处有目标物的概率越大。
[0062] 本实施例的网络结构如上所述,设置dropout层有30%的神经元不工作时训练该神经网络,得到测试集平均检测准确率可达到95%。
[0063] 横坐标recall为召回率,即表示检测出的目标物数量占目标物总数的百分比(查全率),纵坐标precision为查准率,即表示检测正确的目标物数量占检测出的目标物总数量的百分比,因此二者的乘积即为得到的平均检测准确率95%,检测曲线见附图3,图3中横坐标 Recall表示检测出的目标物数量占目标物总数的百分比;纵坐标Precision表示检测正确的目标物数量占检测出的目标物总数的百分比。
[0064] 步骤七:将测试集中的图片输入到训练好的网络模型中进行检测:
[0065] 将测试集图片输入到上述训练好的网络模型中,对测试图片中的目标物进行检测。首先,对图片中的目标物进行提取,即用一个矩形框将其框出来;其次,计算每个目标物的检测置信度,即确定此处有个目标物的概率。附图4中,共有四个目标物,将其提取出来之后,从左至右置信度依次为:0.99998、0.99999、0.997、0.99778。附图5中,各个目标物之间有遮挡的情况下,从左至右检测的置信度依次为:1、1、0.999、1、1、0.63627、1。附图中目标物的检测置信度均较高,说明该模型在实际检测过程中,检测效果较好。
[0066] 本发明旨在利用深度学习中的卷积神经网络(Faster RCNN)对摄像头拍摄出的图像进行目标物体提取、分类等工作,较好地提高了对自动驾驶车辆前方目标物的识别准确率。卷积神经网络是仿造生物的视知觉机制构建的,可以进行监督学习和半监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对像素进行学习且有稳定的效果。目前,卷积神经网络已经能够较好地应用在计算机视觉中对图像进行识别与检测的领域,且能保证有较高的检测准确率,从而更好地保证自动驾驶汽车的行驶安全性。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈