本发明涉及一种目标检测方法,尤其是涉及一种车辆检测方法。
背景技术
随着我国经济的持续快速增长,车辆的持有率大幅度上升,汽车已成为不可缺少的代步工具,人们对于汽车的舒适度和安全度也提出了更高的要求。随着2016年世纪围棋大战的落幕,2017年迎来了人工智能年,无人驾驶作为人工智能的热门应用迎来了巨大的发展。在无人驾驶领域,车辆检测是车辆感知外界环境的基础环节,也是计算机视觉和图像处理方向的重要分支。
车辆检测方法主要分为传统的手工特征设计并通过机器学习的方法和深度学习的方法。传统的手工特征设计并通过机器学习的方法对于特征设计要求较高,需要具体问题具体分析;深度学习的方法主要依赖于大量的训练数据集,但对于常见的诸如光照、遮挡等问题具有一定的抗干扰性。近年来,深度学习的方法在目标检测领域已发展起来了,主要分为不基于区域建议和基于区域建议两种方式。
不基于区域建议的算法主要采用回归的思想,通过计算图像中可能出现感兴趣区域的概率得分并加以比较,具有速度快的优点,基本可以实现实时监测,但这类算法的检测效果略逊于基于区域建议的算法。基于区域建议的算法主要分为两步,第一步:通过卷积神经网络提取特征,从而找到感兴趣区域;第二步:通过卷积神经网络对感兴趣区域进行检测得到目标,并标定矩形框确定目标的具体位置,这类算法由于分为两步走,检测速度略慢,但是检测精度较高。
技术实现要素:
本发明所要解决的技术问题是提供一种车辆检测方法,其检测速度快,且检测精度高。
本发明解决上述技术问题所采用的技术方案为:一种车辆检测方法,其特征在于包括训练阶段和测试阶段两个过程;
所述的训练阶段过程的具体步骤如下:
步骤①_1:选取包含车辆的原始图像和不包含车辆的原始图像共q幅原始图像,并构成图像集,将图像集中的第q幅原始图像记为{iq(i,j)};然后将图像集中的每幅包含车辆的原始图像中的每辆车辆用矩形框框出,假设{iq(i,j)}为包含车辆的原始图像,则将{iq(i,j)}中框出的任意一个包含一辆车辆的矩形框记为t(xq,yq,hq,wq);其中,q≥5,q为正整数,1≤q≤q,1≤i≤w,1≤j≤h,w表示{iq(i,j)}的宽度,h表示{iq(i,j)}的高度,iq(i,j)表示{iq(i,j)}中坐标位置为(i,j)的像素点的像素值,xq表示t(xq,yq,hq,wq)的中心像素点的横坐标,yq表示t(xq,yq,hq,wq)的中心像素点的纵坐标,hq表示t(xq,yq,hq,wq)的高,wq表示t(xq,yq,hq,wq)的宽;
步骤①_2:将图像集中的每幅原始图像输入到神经网络中的squeezenet网络框架中,输出图像集中的每幅原始图像的多幅特征图,将{iq(i,j)}的第k幅特征图记为
步骤①_3:将图像集中的每幅原始图像的所有特征图及其对应的所有建议窗口输入到神经网络中的感兴趣区域池化层中,输出图像集中的每幅原始图像对应的m幅感兴趣区域图像,将{iq(i,j)}对应的第m幅感兴趣区域图像记为
步骤①_4:将图像集中的每幅原始图像对应的每幅感兴趣区域图像输入到神经网络中的全连接层中,输出图像集中的每幅原始图像对应的所有感兴趣区域图像通过神经网络中的全连接层映射到该原始图像上形成的包含特征信息的图像,将{iq(i,j)}对应的所有感兴趣区域图像通过神经网络中的全连接层映射到{iq(i,j)}上形成的包含特征信息的图像记为
步骤①_5:按大小对步骤①_4得到的q个损失函数值进行排序;然后将值最大的l个损失函数值对应的原始图像构成疑难样本集合;接着将疑难样本集合中的每幅原始图像的所有特征图及其对应的所有建议窗口输入到神经网络中的感兴趣区域池化层中,输出疑难样本集合中的每幅原始图像对应的m幅感兴趣区域图像;之后将疑难样本集合中的每幅原始图像对应的每幅感兴趣区域图像输入到神经网络中的全连接层中,输出疑难样本集合中的每幅原始图像对应的所有感兴趣区域图像通过神经网络中的全连接层映射到该原始图像上形成的包含特征信息的图像;将疑难样本集合中的每幅原始图像上形成的包含特征信息的图像输入到神经网络中的多分类层中,输出疑难样本集合中的每幅原始图像上形成的包含特征信息的图像的分类得分;根据疑难样本集合中的每幅原始图像上形成的包含特征信息的图像的分类得分,判定疑难样本集合中的每幅原始图像上形成的包含特征信息的图像是否包含车辆,分类得分大于或等于0.8时判定包含车辆,分类得分小于0.8时判定不包含车辆;再采用线性回归方式在疑难样本集合范围内判定为包含车辆的包含特征信息的图像中框出包含每辆车辆的矩形框;最后计算疑难样本集合中的每幅原始图像与其上形成的包含特征信息的图像的损失函数值;至此得到疑难样本集合中的所有原始图像对应的损失函数值与图像集中排除疑难样本集合外的所有原始图像对应的损失函数值共q个损失函数值,并构成损失函数值子集;其中,1<l<q;
步骤①_6:重复执行步骤①_1至步骤①_5共v次,训练得到神经网络模型,并将v个损失函数值子集中共q×v个损失函数值中的最小损失函数值对应的权值矢量和偏置项对应作为神经网络模型的最优权值矢量和最优偏置项,对应记为wbest和bbest;其中,v>1;
所述的测试阶段过程的具体步骤如下:
步骤②_1:令
步骤②_2:将
与现有技术相比,本发明的优点在于:
1)本发明方法利用神经网络中的squeezenet网络框架用于提取图像的多幅特征图,能在保证特征图提取精度的前提下通过多尺度的卷积核(如3×3和1×1两种尺寸的卷积核),有效地减少训练过程中的神经网络的拟合参数个数,从而提高了本发明方法的运算性能。
2)本发明方法通过对神经网络中的感兴趣区域池化层输出的感兴趣区域图像对应的损失函数值进行排序,对于疑难样本集合进行再学习,保证了训练过程中样本学习的充分率,利于提高检测精度。
3)本发明方法最后输出车辆的具体位置时,考虑到可能会出现重叠的矩形框的存在性,通过soft-nms算法有效减少了重叠的矩形框的存在。
4)本发明方法利用了神经网络自主学习的特性,对于车辆检测中常见的尺度变化、姿态变化等问题具有一定的抗干扰性。
附图说明
图1为本发明方法的总体实现框图;
图2a为测试集中的其中一幅待检测图像(有重叠车辆)的测试结果;
图2b为测试集中的另一幅待检测图像(车辆小尺度)的测试结果。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种车辆检测方法,其总体实现框图如图1所示,其包括训练阶段和测试阶段两个过程。
所述的训练阶段过程的具体步骤如下:
步骤①_1:选取包含车辆的原始图像和不包含车辆的原始图像共q幅原始图像,并构成图像集,将图像集中的第q幅原始图像记为{iq(i,j)};然后将图像集中的每幅包含车辆的原始图像中的每辆车辆用矩形框人工框出,假设{iq(i,j)}为包含车辆的原始图像,则将{iq(i,j)}中框出的任意一个包含一辆车辆的矩形框记为t(xq,yq,hq,wq);其中,q≥5,如取q=100,包含车辆的原始图像与不包含车辆的原始图像的比率为4:1~6:1,即若共选择q=6幅原始图像,则选取包含车辆的原始图像5幅,选取不包含车辆的原始图像1幅,q为正整数,1≤q≤q,1≤i≤w,1≤j≤h,w表示{iq(i,j)}的宽度,h表示{iq(i,j)}的高度,iq(i,j)表示{iq(i,j)}中坐标位置为(i,j)的像素点的像素值,xq表示t(xq,yq,hq,wq)的中心像素点的横坐标,yq表示t(xq,yq,hq,wq)的中心像素点的纵坐标,hq表示t(xq,yq,hq,wq)的高,wq表示t(xq,yq,hq,wq)的宽。
步骤①_2:由于神经网络中的squeezenet网络框架在不牺牲精度的前提条件下可以减少必需的参数个数,能有效提高计算效率,因此本发明将图像集中的每幅原始图像输入到现有的神经网络中的squeezenet网络框架中,输出图像集中的每幅原始图像的多幅特征图,将{iq(i,j)}的第k幅特征图记为
步骤①_3:将图像集中的每幅原始图像的所有特征图及其对应的所有建议窗口输入到现有的神经网络中的感兴趣区域(roi)池化层中,输出图像集中的每幅原始图像对应的m幅感兴趣区域图像,将{iq(i,j)}对应的第m幅感兴趣区域图像记为
步骤①_4:将图像集中的每幅原始图像对应的每幅感兴趣区域图像输入到现有的神经网络中的全连接层中,输出图像集中的每幅原始图像对应的所有感兴趣区域图像通过神经网络中的全连接层映射到该原始图像上形成的包含特征信息的图像,将{iq(i,j)}对应的所有感兴趣区域图像通过神经网络中的全连接层映射到{iq(i,j)}上形成的包含特征信息的图像记为
步骤①_5:通过步骤①_4中的损失函数值的计算,发现有疑难样本的存在,这些疑难样本具有损失函数值较高的特点,因此按大小对步骤①_4得到的q个损失函数值进行排序;然后将值最大的l个损失函数值对应的原始图像构成疑难样本集合;接着将疑难样本集合中的每幅原始图像的所有特征图及其对应的所有建议窗口输入到现有的神经网络中的感兴趣区域(roi)池化层中,输出疑难样本集合中的每幅原始图像对应的m幅感兴趣区域图像;之后将疑难样本集合中的每幅原始图像对应的每幅感兴趣区域图像输入到现有的神经网络中的全连接层中,输出疑难样本集合中的每幅原始图像对应的所有感兴趣区域图像通过神经网络中的全连接层映射到该原始图像上形成的包含特征信息的图像;将疑难样本集合中的每幅原始图像上形成的包含特征信息的图像输入到现有的神经网络中的多分类层中,输出疑难样本集合中的每幅原始图像上形成的包含特征信息的图像的分类得分;根据疑难样本集合中的每幅原始图像上形成的包含特征信息的图像的分类得分,判定疑难样本集合中的每幅原始图像上形成的包含特征信息的图像是否包含车辆,分类得分大于或等于0.8时判定包含车辆,分类得分小于0.8时判定不包含车辆;再采用现有的线性回归方式在疑难样本集合范围内判定为包含车辆的包含特征信息的图像中框出包含每辆车辆的矩形框;最后计算疑难样本集合中的每幅原始图像与其上形成的包含特征信息的图像的损失函数值;至此得到疑难样本集合中的所有原始图像对应的损失函数值与图像集中排除疑难样本集合外的所有原始图像对应的损失函数值共q个损失函数值,并构成损失函数值子集;其中,1<l<q,在本实施例中取l=600,损失函数值的计算方式与步骤①_4中的损失函数值的计算方式相同。
步骤①_6:重复执行步骤①_1至步骤①_5共v次,训练得到神经网络模型,并将v个损失函数值子集中共q×v个损失函数值中的最小损失函数值对应的权值矢量和偏置项对应作为神经网络模型的最优权值矢量和最优偏置项,对应记为wbest和bbest;其中,v>1,在本实施例中取v=2000。
所述的测试阶段过程的具体步骤如下:
步骤②_1:令
步骤②_2:将
由于现有的线性回归方式对于同一位置的同一辆车辆会输出多个重叠的矩形框,通常利用现有的非极大值抑制(nonmaximumsuppression,nms)算法对检测获得的多个矩形框进行筛选,只保留覆盖面积最广的一个矩形框,然而一幅待检测图像中可能存在两辆甚至多辆车辆相互位置重叠的情况,此时若只通过现有的非极大值抑制算法会出现漏检的情况,考虑到此种情况,因此本发明利用现有的soft-nms算法进行矩形框筛选,这样有效地提高了检测精度。
为了验证本发明方法的可行性与有效性,进行如下实验。
选用kitti官网提供的数据集作为测试集,通过对测试集中的每幅待检测图像进行一定的格式处理之后,将测试集中的每幅待检测图像输入到卷积神经网络模型中,并利用wbest和bbest进行测试,得到测试结果。图2a给出了测试集中的其中一幅待检测图像(有重叠车辆)的测试结果,图2b给出了测试集中的另一幅待检测图像(车辆小尺度)的测试结果。图2a和图2b中的“cardetectionswithp(car|box)>=0.8”表示分类得分值大于或等于0.8。从图2a和图2b中可以看出,当待检测图像存在不同问题时,如车辆重叠、车辆尺寸较小等,利用本发明方法都能够很好地检测到车辆信息,针对视角不同的车辆也能精确地检测出来,对于复杂情况具有一定的抗干扰性。