[0042] 附图仅用于示例性说明,不能理解为对本专利的限制;
[0043] 应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
[0044] 在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0045] 下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
[0046] 此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。以下结合附图和实施例对本发明做进一步的阐述。
[0047] 为了解决现有技术的局限性,本实施例提供了一种技术方案,下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0048] 请参考图1,一种车辆检测计数方法,包括以下步骤:
[0049] S01,运用设有基于注意力机制的显著性增强单元的SSD检测器,获取车辆以预设的位置识别线为参照基准的相对状态;
[0050] S02,根据所述相对状态,对所述位置识别线两侧预设范围内的车辆进行跟踪;
[0051] S03,对在所述位置识别线两侧预设范围内所述相对状态发生变化的车辆进行计数。
[0052] 相较于现有技术,本发明针对车辆状态检测存在漏检和误检率高等问题,通过将定量坐标位置的车辆目标检测转换为定性相对状态的车辆状态检测,同时使用深层次的注意力优化更浅层的权重信息和利用最大化的方式获取显著的特征映射,运用基于车辆状态的计数算法完成了车辆计数,并减少了计数过程中的有效计数区域,在获得整体更好的计数效果的情况下,还减少了约47.36~70.53%的过检测目标。
[0053] 具体的,在可选的实施例中,所述设有基于注意力机制的显著性增强单元的SSD检测器作为一种针对车辆状态检测的神经网络,可通过以MobileNetV1网络架构作为Backbone,结合Single‑Shot Object Detection(SSD)以及本发明实施例中提供的基于注意力机制的显著性增强(Attention‑based saliency enhancement,ASE)单元来构建,经预设的数据集训练后得到可用于获取车辆以预设的位置识别线为参照基准的相对状态的SSD检测器。至于选用其它网络架构如MobileNet系列的其它版本作为Backbone,亦或是用其它卷积神经网络模型替代SSD,甚至是仅用于检测目标的状态而未执行后续计数步骤,只要是卷积神经网络模型基础上结合了ASE的方案,均可视为在本发明的精神和原则之内所作修改或同等替换,理应纳入本专利的保护范围之内。
[0054] 在可选的实施例中,在步骤S02中,可采用Kernel Correlation Filter(KCF)算法对被检车辆,即所述位置识别线两侧预设范围内的车辆,进行跟踪。当跟踪车辆的相对状态发生变化时,则进行计数。计数时,根据相对状态的变化顺序,判断车辆的前进方向并对该类别的车辆进行计数。
[0055] 作为一种优选实施例,所述相对状态包括up、mid、down以及far;其中,相对状态up表示车辆位于所述位置识别线上侧区域的预设范围内,相对状态mid表示车辆到所述位置识别线的距离为零,相对状态down表示车辆位于所述位置识别线下侧区域的预设范围内,相对状态far表示车辆位于所述位置识别线两侧预设范围外。
[0056] 具体的,所述位置识别线的所谓“上侧区域”或“下侧区域”仅用于对所述位置识别线对画面造成的分隔区域进行区别,本实施例中提及的“上下”概念仅为在表述中采用固定的视角来对方案进行描述,上述称谓本身不能作为对本发明方案的限定,也不能理解为指示或暗示相对重要性。作为一种可选的实施例,所述位置识别线在画面中为水平线;在其它实施例中,所述位置识别线在画面中还可以为竖直线等,所述位置识别线两侧也可以称为“左侧区域”或“右侧区域”,相关内容也可相应进行调整,但以上改动与本实施的方案并无实质性区别,故不再赘述。
[0057] 作为一种优选实施例,所述相对状态vehicle state通过以下公式表示:
[0058]
[0059] 其中,D表示车辆到所述位置识别线的距离,D>0表示车辆位于所述位置识别线上侧区域,D<0表示车辆位于所述位置识别线下侧区域;H表示画面高度。
[0060] 具体的,可参阅图2车辆相对状态示意图:中间实线为用于获取车辆相对状态的位置识别线,虚线为界定预设范围的参考线。车辆与位置识别线的最小距离表示为|D|,画面高度表示为H。如果车辆在位置识别线中间(|D|=0),则其相对状态为mid,如车辆c。如果车辆在位置识别线上侧区域,且满足|D|≤0.2*H,则相对状态为up,如车辆b。如果车辆在位置识别线下侧区域,且满足|D|≤0.2*H,则相对状态为down,如车辆d。如果车辆在位置识别线上侧区域或下侧区域,但满足|D|>0.2*H,则状态为far,如车辆a,e,f。
[0061] 所述数据集可来自于现有的车辆监控视频;对车辆监控视频进行预处理,在视频中添加位置识别线并标记出车辆的相对状态,并在完成数据增强后,即可用于神经网络的训练。
[0062] 所述数据集中以及实际检测过程中被检测的车型包含car,bus,truck和other四种,car表示私家车,bus表示公交车、客运大巴等,truck表示货车,other表示前述三种车型以外的所有其他车型,而每种车型都包括up,mid,down和far四种相对状态。由于本实施例中不需要对far状态下的车辆进行计数,所以远离位置识别线的所有车辆类别的far状态都不区分车型,直接标记为far类。因此在本实施例,数据集中的车辆数据类型共有十三种:car_up、car_mid、car_down、bus_up、bus_down、bus_down、other_up、other_mid、other_down以及far。
[0063] 请参阅图3车辆数据类型示意图,其中,(G)car的up状态,标记为car_up类;(H)bus的down状态,标记为bus_down类;(I)truck的mid状态,标记为truck_mid类;(J)other类型车辆的down状态,标记为other_down类;(K)car的far状态,标记为far,此时车辆在位置识别线下侧区域;(L)bus的far状态,标记为far,此时车辆在位置识别线的上侧区域。
[0064] 更具体的,在跟踪计数过程中,由于是在跟踪车辆的状态发生变化时进行计数,且计数时是根据相对状态的变化顺序,判断车辆的前进方向并对该类别的车辆进行计数。例如,若开始检测到的一个对象类别为car_up,该对象变化为car_down,则对自上而下运动的car类计数。
[0065] 由于在本实施将远离位置识别线所有车辆类型都定义为far类,其包括了所有位于图片上方的较小车辆或图片上方和下方出现部分截断的车辆。而这部分车辆不但会对车辆的类型分类造成干扰,且far状态的车辆所在的位置空间对计数的贡献值不太,属于可缩减的空间。所以,在计数过程中只对除far类外的其他类别进行跟踪计数,从而达到压缩计数空间,减少计算量的目的。
[0066] 进一步的,所述基于注意力机制的显著性增强单元用于以SSD检测器中较深层特征映射来对较浅层特征映射进行显著性增强。
[0067] 进一步的,请参阅图4以及图5,所述基于注意力机制的显著性增强单元以SSD检测器中较深层特征映射来对较浅层特征映射进行显著性增强的步骤如下:
[0068] T01,通过对较深层特征映射Fb的反卷积结果进行Sigmoid操作,获得注意力关注的特征映射S;
[0069] T02,通过将特征映射S与较浅层特征映射Fa进行点积运算,获得注意力增强的特征映射P;
[0070] T03,通过对较深层特征映射Fb的卷积结果进行线性插值操作,获得与所述特征映射P的空间分辨率相同的特征映射L;
[0071] T04,通过将所述特征映射P与所述特征映射L相加,获得融合后的特征映射A;
[0072] T05,通过对所述特征映射A与较浅层特征映射Fa进行最大值操作,获得显著性增强的特征映射M。
[0073] 通过以上改进,能有效增大浅层特征映射的感受野和融合多尺度特征。
[0074] 在图5中,Deconv表示为反卷积操作,作用是将Fb特征映射的尺度放大到与Fa,且通道数一致;Conv表示为convolution操作,在本实施例中参数设置为:pad=1,stride=1,kernel_size=3,并将通道数设置与特征映射Fa相等;Max是获取特征最大值的操作。
[0075] 作为一种优选的实施例,所述SSD检测器包括六层用于进行检测的特征映射,其中由浅到深的前三层特征映射分别设有基于注意力机制的显著性增强单元,所述基于注意力机制的显著性增强单元分别以相邻的较深层特征映射来对当前层特征映射进行显著性增强。
[0076] 具体的,请参阅图6,SSD中用于目标检测的特征映射一共有6个,分别为conv11,conv13,conv14_2,conv15_2,conv16_2,conv17_2层,且考虑到SSD中前三层特征映射的感受野较小和特征信息表征相对不充分,故在本实施例中对前三层特征映射即conv11,conv13与conv14_2中使用ASE单元进行优化;集成ASE单元的每层均使用相邻的更深层作为输入对当前层进行显著性增强。而SSD的后三层具有较大的感受野,若集成了ASE单元,检测精度的提高并不明显,且增加了计算量,所以作为优选的实施例。后三层没有集成ASE单元。在本实施例中,可将改进后的车辆检测器(detector)称为SSD‑ASE。
[0077] 接下来,本实施例以实验测试的方式来对本发明的方案以及效果作进一步演示和证明:
[0078] 本实施例的实验环境是Ubuntu 16.04,深度学习框架是caffe 1.0。服务器使用的硬件配置为:CPU使用的是Intel(R)Core(TM)i5‑4690 CPU@3.50GHz,GPU使用的是NVIDA GeForce GTX1070Ti,内存为8G。
[0079] 本实施例实验测试使用的数据集主要来源于reld2016的测试视频和自行采集的车辆行驶视频。自行采集的视频分辨率为1920x1080,彩色,其帧速率为19.9~45.04帧/秒。对于每个样本图像,根据前述vehicle state的公式自动添加4种状态的位置识别线,并为添加了识别线的样本设置对应的标签。最后,采用水平镜像horizontal flipping和高斯模糊等操作对样本进行数据增强。数据集的样本分布如表1所示,共包含24794张样本图像。将背景label设置为0,其他如车辆类型为car且状态为down的样本数量为2336,且label设置为1,则记为2336/1。我们按照6:1:3的比例将数据集划分为训练集(14873张)、验证集(2482张)和测试集(7439张)。在进行车辆计数测试时,使用了不同场景下的两段视频Video 1 and 2,Video 1为单向车道,时长为7min 45s,车辆总数为160辆车。Video 2为双向车道,时长为5min 42s,车辆总数为240辆。
[0080] 表1:车辆状态数据集样本分布及标签设置
[0081]
[0082] 对于本实施例进行的实验测试,车辆检测的准确性可采用mAP和漏检率进行评估:
[0083]
[0084]
[0085]
[0086] 其中N表示为测试集中样本的数量,Pr(i)为识别i张图片的精度值,ΔRe(i)为识别第i‑1张图片到i张图片的Recall变化值,m表示所有检测样本的类别数。TP为检测的样本被正确识别,且样本为正样本的数量;FP为检测样本被错误识别,其负样本被错误地识别为正样本的数量。FN为检测样本被错误识别,且将正样本错误识别为负样本的数量。
[0087] 同时,本实施例的实验测试使用Log‑average miss rate来比较检测器发生漏检的程度,Log‑average miss rate表示Calculated by averaging miss rates at 9 evenly spaced FPPI(False Positive Per Image)points between 10e‑2 and10e0,in log‑space。这个数值越小,表明模型的检测准确度越高。
[0088] 车辆计数采用计数准确率进行评估,计数准确率Acc可表示为:
[0089]
[0090] 其中,车辆被错误计数的数量为Nw(包括重复计和漏计的数量),Na为真实的车辆的总数。
[0091] 计数计算量采用车辆跟踪次数Ntrace进行比较,其中对于传统基于非相对状态的方法Ntrace即为被检测的所有目标车辆数,而对于基于相对状态的方法Ntrace是被检测的非far状态的目标数量。
[0092] 首先,本实施例以MobileNetV1+SSD作为基准网络(Baseline Network)来对ASE单元进行消融实验,表2展示了添加ASE单元后的检测性能比较。由表2可知,随着新的ASE单元的加入,车辆检测mAP成上升趋势。当基准网络中添加了ASE1时,mAP比基准网络提高了0.33%;当添加了ASE1和ASE2时,mAP提高了0.62%;当添加了3个ASE单元时,mAP达到最高(95.94%),比基准网络提高了1%;当每增加一个ASE结构,mAP都有约0.3%的提升。
[0093] 表2 ASE消融实验
[0094]Network Name Detector ASE1 ASE2 ASE3 mAP
Baseline SSD 94.94%
Baseline+ASE1 SSD‑ASE1 √ 95.27%
Baseline+ASE1,2 SSD‑ASE1,2 √ √ 95.56%
Baseline+ASE1,2,3 SSD‑ASE1,2,3 √ √ √ 95.94%
[0095] 请参阅图7,对比Baseline网络与添加了ASE单元的改进网络的Log‑average miss rate,Baseline网络在添加了ASE单元的网络后,大部分类别都比Baseline具有更低的漏检率。添加了ASE1后,car_up,car_down,truck_up的漏检率降低较为明显,分别减低了0.03,0.02和0.02。而使用ASE1,2之后,car_up,car_down和far的漏检率减低明显,分别减低了
0.05,0.02,0.04。而添加ASE1,2,3之后,绝大部分的漏检率都变得更低。其中car_up,truck_up和far类的漏检率下降比较明显,分别为0.05,0.11和0.17。far类的漏检率比Baseline下降了约23%。
[0096] 表3展示了本实施例与基准网络等几种the state‑of‑the‑art方法的车辆检测比较。由表3可知,本实施例的优选网络(MobileNetV1+SSD‑ASE1,2,3)总体上实现了速度和精度的均衡,既满足了检测的实时性要求(约56FPS),又取得了最好的mAP值(95.94%)。本实施例的优选网络与基线网络相比,mAP值提高了1%,检测性能与基线网络接近;另外,与VGG16+SSD相比,本实施例的优选网络的mAP和FPS均略高于VGG16+SSD;而与Faster RCNN作为检测器,且使用ZF和VGG‑16的两种网络相比,本实施例的优选网络在检测精度和性能上都有较大的优势。
[0097] 表3不同方法的检测结果
[0098]Backbone Detector mAP FPS(f/s)
MobileNetV1 SSD 94.94% 66
VGG16 SSD 95.73% 49
VGG16 Faster RCNN 92.11% 9
ZF Faster RCNN 79.52% 26
MobileNetV1 SSD‑ASE1,2,3 95.94% 56
[0099] 在后续的车辆计数实验上,本实施例将本发明基于相对状态的方法(检测网络采用Baseline+ASE1,2,3)与非基于相对状态的传统方法(采用Baseline网络)进行了对比,其中Non‑state based计数方法使用数据增强后的没有位置识别线的数据集进行训练。
[0100] 请参阅图8以及图9,实验对比了不同帧间隔(Finter=15,10,5)下的video 1(单向车道)和video 2(双向车道)的计数准确率。可知,当Finter=15时,对video 1和video 2的计数准确率均在90%以下。随着Finter的减小,两种方法的准确率都有一定的提高,这是由于更小的Finter值能减少错检或漏检的概率,从而减少漏计或重复计数的发生。而这也是为什么现有技术要选择较小帧间隔进行车辆计数的原因。在较小的帧间隔时(Finter=5或者10),本实施例的方法比传统方法的Acc更高。图8展示了针对video 1的计数实验,与传统方法相比,本实施例的方法的Acc在Finter=5和10时分别提高了0.62%和4.39%。图9展示了针对video 2的计数实验,而对于video2,由于是双车道场景,车辆在相同视野范围内相较于video 1更小,本实施例的方法的Acc分别提高了3.75%和7.08%,较传统方法提升更为明显,可见本实施例的SSD‑ASE检测器对于小目标检测的优势。
[0101] 请参阅图10以及图11,图10展示了在不同帧间隔(Finter=15,10,5)下的video 1(单向车道)的计数跟踪次数(Ntrace)比较,图11展示了在不同帧间隔(Finter=15,10,5)下的video 2(双向车道)的计数跟踪次数(Ntrace)比较。由图10以及图11可知,随着Finter的减小,本实施例的方法和传统方法的Ntrace都有较大幅度的上升,但在相同帧间隔时,本实施例基于状态的方法的Ntrace明显低于传统方法。图10展示了video 1在Finter=15,10,5时,本实施例的方法的Ntrace较传统方法分别减少了70.53%,70.46%和69.81%。在video 2中(图11)则分别减少了47.36%,58.71%和56.28%。由于利用far类的检测对计数过程的目标范围进行了压缩,所以基于状态的计数方法大幅度减少了的跟踪次数。
[0102] 本发明还提供以下内容:
[0103] 一种车辆检测计数系统,请参阅图12,包括:
[0104] 车辆相对状态获取模块1,用于运用设有基于注意力机制的显著性增强单元的SSD检测器,获取车辆以预设的位置识别线为参照基准的相对状态;
[0105] 车辆跟踪模块2,用于根据所述相对状态,对所述位置识别线两侧预设范围内的车辆进行跟踪;
[0106] 车辆计数模块3,用于对在所述位置识别线两侧预设范围内所述相对状态发生变化的车辆进行计数。
[0107] 一种储存介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现如前述的车辆检测计数方法的步骤。
[0108] 一种计算机设备,包括储存介质、处理器以及储存在所述储存介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现前述的车辆检测计数方法的步骤。
[0109] 显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。