一种基于改进YOLOv2的无人驾驶中行人检测方法与流程

文档序号:16250287发布日期:2018-12-11 23:57阅读:356来源:国知局
一种基于改进YOLOv2的无人驾驶中行人检测方法与流程

本发明涉及行人检测技术领域,尤其涉及一种基于改进yolov2的无人驾驶中行人检测方法。

背景技术

无人驾驶中的行人检测算法不仅要判断摄像头所捕获图像中是否存在行人,同时要对行人目标进行精准定位。从特征学习的角度,可以将行人检测分为基于浅层机器学习的检测算法与基于深度学习的检测算法[5]。基于浅层机器学习的行人检测技术主要通过分析行人动、静态特性,手动设计特征描述该特性,结合相应的图像处理与模式识别算法,达到识别与定位行人的目的。而基于深度学习的行人检测技术主要通过构建多层神经网络,依据一定的训练策略,通过大数据反复迭代训练、学习的方式实现行人检测。

基于浅层机器学习的行人检测又可以细分为基于全局特征、基于人体部件以及基于运动特征3类检测方法。其中基于运动特征的行人检测方法需要首先获取视频序列,再进行运动特征分析,导致该类方法必然存在检测延时的问题,无法满足无人驾驶的实时性要求。

基于全局特征的行人检测方法优选合适的特征描述子,表达行人的外貌、轮廓、纹理等全局静态特性,通过训练分类器的方式实现行人检测。常用的特征描述子包括的harr小波特征、hog特征、edgelet特征以及shapelet特征等。其中hog特征对行人的描述相对较为全面,能够很好地区分背景与行人,对于姿态的变化也有较强的鲁棒性,是行人检测领域最为广泛使用的特征。而单一的特征往往难以满足检测精度的要求,因此研究人员通常采用多特征融合的方式,来实现对行人更为详尽的描述,这也是行人检测技术发展的方向之一。

基于全局特征的行人检测方法通常难以应对实际场景中行人部分遮挡的问题,而基于人体部件的检测方法在一定程度上可以克服遮挡问题。研究人员按照不同的标准将行人划分为不同的部件单元,分别进行检测,如有的将人体划分为头肩部、腿部、左手臂和右手臂4个部件单元。也有人考虑了角度因素将人体细分为更多的部件单元,提出了dpm算法,该算法结合hog特征,融合了行人不同位置的几何关系,其对应改进算法连续多年获得voc检测任务的冠军。该类方法通过目标特征的分解,允许部件单元几何关系的弹性连接,使得漏检率大大降低,但该类方法存在着训练样本标定复杂、处理行人多姿态问题。



技术实现要素:

本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于改进yolov2的无人驾驶中行人检测方法。

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

本发明提供一种基于改进yolov2的无人驾驶中行人检测方法,该方法包括以下步骤:

s1、获取用于行人检测的kitti数据集,采用yolov2网络对数据集进行训练,将yolov2网络的输出设置为行人和非行人两类,对kitti数据集的行人标定框长和宽进行kmeans聚类,并将聚类测度设置为iou测度;训练时,通过对数据集进行扩充,并采用ohem方法从含有大量非行人的候选样本的数据集中选择行人样本进行训练,得到训练模型;

s2、通过车载摄像头获取捕捉视频,从视频中提取每一帧的待检测图像作为改进的yolov2网络的输入,并将训练模型导入改进的yolov2网络,初步检测出的行人的位置信息和概率,得到包含行人初步检测结果的建议框;最后对其中的行人目标区域的建议框进行筛除,利用非极大值抑制得到最终行人检测框。

进一步地,本发明的步骤s1中进行数据集扩充的方法为:对kitti数据集中的图片,通过翻转图片将数据集扩充一倍。

进一步地,本发明的步骤s1中通过kitti数据集对yolov2网络结构进行训练的方法具体为:

s11、针对行人检测改进原始yolov2网络结构:对原始的yolov2网络,将其多类输出修改为行人和非行人两类输出,网络每个候选框同时对应两类输出;

s12、对行人标定框的长和宽进行聚类分析:对kitti数据集的行人标定框长和宽进行kmeans聚类,并将聚类结果作为先验;将聚类测度设置为iou测度,iou测度为聚类中心与各个标定框的重叠区域占聚类中心和标定框所占区域之和的比值,并根据平均iou选择设定数量的聚类中心作为初始候选框;

s13、通过数据扩充和ohem策略训练修改后的yolov2网络:在训练时,通过翻转图片将数据集扩充一倍以增加样本数量,并且在原始yolov2网络的基础上采用ohem方法,对非行人的候选样本,按改进的yolov2网络中间层输出的样本属于背景的概率大小排序,从中选取行人样本进行训练,得到训练模型。

进一步地,本发明的步骤s2中对车载摄像头捕捉视频用改进的yolov2网络进行行人检测的方法具体为:

s21、通过改进的yolov2初步检测行人:首先通过车载摄像头捕捉视频,将视频中的每一帧作为yolov2网络的输入,并将训练模型导入yolov2网络并运行网络,初步检测出的行人的位置信息和概率;

s22、对部分不可能包含行人的目标区域建议框进行筛除:根据行人目标的特殊性,依据区域建议框的长宽比α和区域面积s进行筛选;对标定框长宽比和区域面积使用kmeans算法进行聚类,再根据选取的聚类中心对检测出的候选框进行筛选;

s23、非极大值抑制得到最终行人检测框:对于步骤s22中筛选过后的行人检测框进行非极大值抑制,目标检测中的非极大值抑制从候选建议框中优选出最终位置框。

进一步地,本发明的步骤s23中进行非极大值抑制的方法具体为:

(1)对所有筛选之后的候选建议框,依据对应的置信度得分进行排序,选取得分最高的候选建议框;

(2)遍历剩余的建议框,若和所选取得分最高的候选建议框的重叠率大于设定阈值,则删除对应建议框;

(3)从剩余未处理的建议框中重新选取得分最高的建议框,重复步骤(2),直至所有建议框均被处理完成,输出最终得到的行人检测框。

本发明产生的有益效果是:本发明的基于改进yolov2的无人驾驶中行人检测方法,(1)大量基于深度学习的行人检测方法即使在gpu加速的条件下,速度依然较慢。本发明优选yolov2框架为基础来检测行人,保证了检测速度。(2)针对直接使用yolov2的精度较低的问题,本发明对yolov2的结构进行了调整,并通过初始候选框的选择、ohem方法这些训练策略,和通过标定框先验的筛选策略的提高了算法的精度。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为基于改进yolov2的行人检测的基本流程图;

图2为kitti数据集中部分行人样本图片;

图3为标定框长宽分布散点图;

图4为标定框长宽分布密度图;

图5为kitti数据集训练样本聚类结果;

图6为改进yolov2在kitti数据集上的测试样例;

图7为yolov2和本文改进算法对于行人目标的pr曲线。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明的基本流程如图1所示,首先通过kitti数据集训练yolov2网络,得到训练模型。然后,通过车载摄像头捕捉视频,将视频中的每一帧作为yolov2网络的输入,并将训练模型导入yolov2网络。接着运行网络,初步得到检测出的行人的位置信息和概率。最后对部分不可能包含行人目标区域建议框进行筛除之后,再利用非极大值抑制得到最终行人检测框。本发明能有效的应用于无人驾驶中行人检测。其具体步骤如下。

步骤s1对kitti数据集用yolov2网络训练

为研究行人检测算法,首先要采集视频,制作行人检测数据集。研究之初,国内外学者自行采集数据进行算法设计与分析,其算法评价标准也千差万别,难以形成有权威性的研究成果。目前已有部分公共数据集,通过在相同数据集上的测试,可以公平合理地进行不同算法性能的对比分析。

常用的行人检测数据集既有针对单纯行人检测任务制作的数据集,也有针对多目标检测任务制作的数据集。5种具有代表性的公共目标检测数据集描述及其优缺点如表1所示。

表1各种目标检测数据集对比结果

本发明算法以卷积神经网络为基础,需要分别进行训练、验证和测试过程,相应地也要对数据集划分出训练集、验证集以及测试集,因此准确的样本标注显得尤为重要。kitti数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大、认可度最高的无人驾驶场景下的相关算法评测数据集。从表2中可以看出,该数据集样本标注最为完备,且专用于无人驾驶,故将之选为本发明的实验数据集,部分交通场景下的行人样本图片如图2所示。

kitti数据集是无人驾驶试验车在实际行驶过程中采集的,包含了大量的远距离微小行人目标,这类目标检测难度较大。因此,kitti在样本标注过程中将图片进行了分级处理,按照大小、遮挡、截断情况划分为简单、中等和困难3个等级,具体划分标准如表2所示。

表2kitti数据集难度等级划分标准

步骤s11针对行人检测修改yolov2网络结构

为将yolov2网络用于行人检测,首先分析其网络结构。yolov2以darknet-19作为分类网络,在imagenet数据集上预训练,网络参数如表3所示。而fine-tuning训练网络也以darknet-19网络为基础进行微调,由于darknet-19网络删除了全连接层,使得输入图像无需要固定输入尺度,从而保证了多尺度训练。

表3darknet-19网络结构及其对应参数

分析表3,可以发现其最后一个卷积层的输出与imagenet中所需分类的数量是相同的,均为1000个。而本发明为了使其适合用于行人检测,直接从倒数第二个卷积层通过核为3*3卷积层分别输出对每个类检测出的概率和位置信息。其中输出的卷积核个数分别为2(类别数)*5(初始候选框的个数)、4(在图像中的位置信息)*5(初始候选框的个数)。

步骤s12对行人标定框的长和宽进行聚类分析

对标定框的长和宽进行聚类,为此,本发明先分析其长和宽的概率分布,如图3和图4所示。图3为其长宽分布的散点图。图4是根据散点图生成的密度图。图中的颜色越深,标定框密度越大。

接下来,对标定框的长和宽进行聚类分析。这里选择的聚类算法为k均值聚类算法,而与传统的k均值聚类算法不同,本发明的聚类测度选为iou聚类测度。其距离计算公式为:

d(box,centroid)=1-iou(box,centroid)(1)

其中box为标定框,centroid为此时的聚类中心。iou的计算公式为:

式中,∩和∪分别表示两个区域的交集和并集,|*|为该区域像素数,聚类中心为rt和标定框为ra。此时认为聚类中心代表的框与标定框的中心在同一点。

根据以上原理,并综合计算效率和性能因素考虑,选择的候选框的个数为5个。聚类结果为:

[[123.60377358,216.53584906],[69.83248082,164.0370844],[15.06982872,41.88274045],[26.13131313,69.85555556],[42.56361323,108.45038168]]。

步骤s13通过数据扩充和ohem策略训练修改后的yolov2网络

通过所述步骤s11和s12修改yolov2网络的结构后,就可以开始对kitti数据集训练修改后的网络了。但为了提升算法性能,本发明还采用的数据扩充和ohem策略训练网络。本发明采用的数据扩充方式为将图像进行水平翻转处理。通过这种处理,可将kitti中的训练集扩充1倍。

而采用的ohem策略的核心为选择最难区分的负样本进行训练。由于本发明所选的负样本为非行人,在图像中会出现大量的负样本。而由于我们在训练时只会选择部分负样本,因而选择最难分类的负样本进行训练有利于提升训练性能。

步骤s2对车载摄像头捕捉视频用改进的yolov2网络检测行人

本发明选用kitti数据集来评判算法。kitti采用精度ap和测试帧率fps作为算法的评价指标,其中ap的计算需要统计正确检测行人目标的样本数,判断是否正确检测标准主要依据最终预测框和标定框的iou,其计算公式与式(2)提到的相同。kitti数据集要求预测框和标定框之间的iou大于50%才认为行人被正确检测。

步骤s21通过改进的yolov2初步检测行人技术

本发明行人检测算法采用darknet作为开发框架。该框架是由rossgirshick等用c++编写的小型深度学习框架,功能精简,适合以yolo为基础的算法开发,因此可快速部署本文检测算法网络结构,方便测试分析。此外,darknet是专用于图像领域的深度学习框架,依赖opencv实现相关图像处理算法。opencv是由intel公司主导开发的跨平台开源计算机视觉库,提供了大量底层图像处理函数,在实现本发明检测算法时,可直接调用。

测试时,加载步骤s1得到的训练模型到修改后的网络中。使用kitti中通过摄像头采集到的图像作为网络的输入,并运行网络,可以初步得到检测出的行人的位置信息和其属于行人这一类的概率。

步骤s22对部分不可能包含行人目标区域建议框进行筛除

为合理筛选行人目标区域建议框,先选取kitti数据集中的400组样本进行k-means聚类。首先按照标注的位置坐标计算得到特征向量(α,s),实验过程中忽略了部分数量较少的样本目标,如自行车、卡车等,最终选择k=2,最终样本的聚类结果如图5所示。

从图5中可知,行人样本分布比较集中,而车辆样本较为分散,且可以直观地看到长宽比是聚类的主要特征,面积主要起到限制作用。由于kitti数据集包含大量远距离小样本,因此车和行人的面积下限值均较低。最终本发明将行人候选建议框筛选的范围设置为α∈[0.3,0.9],s∈[0,3000]。

利用上述得到的行人候选建议框筛选的范围,筛选步骤s21中初步检测到的行人。

步骤s23非极大值抑制得到最终行人检测框

对于步骤s22中筛选过后的行人检测框进行非极大值抑制。目标检测中的非极大值抑制从候选建议框中优选出最终位置框,其过程是一个不断迭代、抑制的过程,具体如下:

(1)对所有筛选之后的候选建议框,依据对应的置信度得分进行排序,选取得分最高的候选建议框;

(2)遍历剩余的建议框,若和所选取得分最高的候选建议框的重叠率大于设定阈值,则删除对应建议框;

(3)从剩余未处理的建议框中重新选取得分最高的建议框,重复步骤(2),直至所有建议框均被处理完成。

本文改进算法在kitti数据集上的测试结果示例如图6所示。

从图6可以看出,本文算法同时框定多个行人目标,并依据softmax分类结果给出了目标属于行人的概率。对kitti数据集上所有样本进行测试,本文改进yolov2算法和原始算法的精度ap和速度fps对比结果及其对应pr曲线分别如表4和图7所示。

表4kitti数据集精度和速度测试结果对比

从表4和图7中法可以看出,本发明改进算法和yolov2算法行人检测精度均随着难度等级的增加逐步降低,对应pr曲线线下面积也逐步减少。但本发明改进算法各项精度均优于yolov2算法,随着难度等级的增加,ap提升依次为9.03%、6.37%和5.91%,对于检测困难的小目标提升最低。这是由于本发明改进网络和yolov2由于在预测过程中对于每个锚点采用5个固定尺度的预测框进行预测,其尺度范围的局限性决定了算法对于小目标的检测精度不高,但实时确实满足要求。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

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