掌桥专利:专业的专利平台
掌桥专利
首页

一种道路目标检测方法、跟踪方法、检测系统及跟踪系统

文献发布时间:2023-06-19 18:35:48


一种道路目标检测方法、跟踪方法、检测系统及跟踪系统

技术领域

本发明涉及道路交通目标检测相关技术领域,尤其是涉及一种道路目标检测方法、跟踪方法、检测系统及跟踪系统。

背景技术

随着我国的经济发展速度加快以及城市的规模不断扩张,同时人均占有车辆的数量不断增加,然而城市交通规划跟不上发展脚步,公共交通有待完善。这使得城市交通拥挤,早晚高峰堵塞和撞车的现象时有发生。为了解决这些问题,早期的做法是修建更多的道路,增强道路的车容量,从而提高整个交通系统的通行能力,但是这种做法也存在弊端,首先成本高,其次容易出现规划不合理,再次过多的施工会给城市带来环境污染等一系列问题。为了解决这些问题,结合计算机技术,通信技术,电子控制技术,人工智能技术等一体的智能交通系统应运而生。通过实时检测道路上的行人与车流量的动态变化,迅速做出对应的解决方案。

基于智能视频检测的方法被广泛应用于智能交通系统中,依靠交通视频监控系统来获取数据,不需要另外的设备和工具来做检测,这种方法具有很好的便利性。但是这种方法对目标检测算法以及跟踪算法的要求很高,尤其是在运行速度和检测精度方面,传统的方法难以满足现在的要求。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种道路目标检测方法、跟踪方法、检测系统及跟踪系统,能提高道路交通目标检测和目标跟踪的准确度。

根据本发明的第一方面实施例的一种道路目标检测方法,所述道路目标检测方法包括:

获取包含目标的道路图片和道路视频,将所述道路图片和道路视频制作成VOC格式数据,并从所述VOC格式数据随机选取出训练数据;其中,所述目标包括车辆和行人;

设置Darknet53网络,所述Darknet53网络中的卷积层的filters数目为21,且classes数量为2;

通过所述训练数据训练所述Darknet53网络,得到训练完成的YOLOv3目标检测模型;

通过所述YOLOv3目标检测模型对待检测道路图片中的目标进行检测。

根据本发明实施例的道路目标检测方法,至少具有如下有益效果:

本方法采用深度学习的YOLOv3网络来实现道路交通的目标(行人和车辆)检测功能,首先需要收集包含目标的道路图片和道路视频,然后收集好的数据制作成YOLO格式的数据集,接着在Darknet框架上训练出最优的行人和车辆的YOLOv3目标检测模型。相较于现有网络,YOLOv3网络引入了FPN架构融合多尺度特征图信息来加强对小目标物体的检测,将深层特征与浅层特征相融合,从多个不同尺度的特征图提取图像特征作为网络输入来进行多尺度预测,能够提高道路交通目标检测的准确度。

根据本申请的一些实施例,在所述通过所述训练数据训练所述Darknet53网络之前,所述道路目标检测方法还包括:

使用K-Means聚类在所述训练数据中聚类出先验框,并将所述Darknet53网络中的初始先验框替换成聚类出的先验框。

根据本发明的第二方面实施例的一种基于所述道路目标检测方法的道路目标跟踪方法,所述道路目标跟踪方法包括:

从交通道路视频中提取出多帧连续图片;

在车道左右两侧标记两个点,并在每一帧所述图片中连接所述两个点,得到每一帧所述图片中的虚拟检测线;

将包含所述虚拟检测线的每一帧所述图片输入至所述YOLOv3目标检测模型中,得到所述YOLOv3目标检测模型输出的车辆的检测结果,并所述检测结果进行卡尔曼滤波检测,得到车辆的预测结果;

计算车辆的所述检测结果和所述预测结果的马氏距离和基于特征向量的余弦距离,并将所述马氏距离和基于特征向量的余弦距离融合,得到关联矩阵;基于所述关联矩阵,并利用匈牙利匹配算法以联级匹配的方式计算车辆的跟踪结果;

根据所述车辆的跟踪结果获取车辆的运动轨迹,当所述车辆的运动轨迹与所述虚拟检测线相交时,记录车辆的数量。

根据本发明实施例的道路目标跟踪方法,至少具有如下有益效果:

本方法利用YOLOv3目标检测模型定位当前帧图片中的车辆的位置和大小等信息,利用卡尔曼滤波器对其信息进行跟踪预测,从而预测到下一帧图片中车辆的位置和大小等信息。然后需要将检测结果与追踪结果进行关联,通过一定的度量规则,将检测结果与追踪结果进行关联匹配,得到最终的跟踪结果。本方法考虑了运动信息的关联和目标外观信息的关联,使用了融合度量的方式计算检测和跟踪轨迹之间的匹配程度,对频繁出现的目标赋予优先权使用级联匹配,具有优秀的目标跟踪性能;而且本方法还能通过设置一条虚拟检测线来统计道路上过往车辆的数量。

根据本申请的一些实施例,在所述记录车辆的数量之后,所述道路目标跟踪方法包括:

根据所述车辆的数量计算车道的车流量。

根据本申请的一些实施例,所述在车道左右两侧标记两个点,并在每一帧所述图片中连接所述两个点,包括:

通过python在需要跟踪的车道左右两侧标记两个点;

通过matplotlib读取每一帧所述图片中的所述两个点;

通过OpenCV进行划线连接所述图片中的两个点。

根据本申请的一些实施例,所述道路目标跟踪方法还包括:

确定当前帧图片的车辆的第一中心点,和所述当前帧图片的前一帧图片的车辆的第二中心点;

以车道的方向构建坐标系;

根据所述第一中心点与所述第二中心点在所述坐标系中的位置变化,判断车辆的运行方向。

根据本发明的第三方面实施例的一种道路目标检测系统,所述道路目标检测系统包括:

数据获取单元,用于获取包含目标的道路图片和道路视频,将所述道路图片和道路视频制作成VOC格式数据,并从所述VOC格式数据随机选取出训练数据;其中,所述目标包括车辆和行人;

网络设置单元,用于设置Darknet53网络,所述Darknet53网络中的卷积层的filters数目为21,且classes数量为2;

模型训练单元,用于通过所述训练数据训练所述Darknet53网络,得到训练完成的YOLOv3目标检测模型;

目标检测单元,用于通过所述YOLOv3目标检测模型对待检测道路图片中的目标进行检测。

由于道路目标检测系统采用了上述实施例的道路目标检测方法的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果。

根据本发明的第四方面实施例的一种道路目标跟踪系统,所述道路目标跟踪系统包括:

图片获取单元,用于从交通道路视频中提取出多帧连续图片;

虚拟检测线设置单元,在车道左右两侧标记两个点,并在每一帧所述图片中连接所述两个点,得到每一帧所述图片中的虚拟检测线;

车辆检测单元,用于将包含所述虚拟检测线的每一帧所述图片输入至YOLOv3目标检测模型中,得到所述YOLOv3目标检测模型输出的车辆的检测结果,并所述检测结果进行卡尔曼滤波检测,得到车辆的预测结果;其中,所述YOLOv3目标检测模型通过如下方式得到:

设置Darknet53网络,其中,所述Darknet53网络中的卷积层的filters数目为21,且classes数量为2;通过训练数据训练所述Darknet53网络,得到训练完成的YOLOv3目标检测模型;

跟踪结果计算单元,用于计算车辆的所述检测结果和所述预测结果的马氏距离和基于特征向量的余弦距离,并将所述马氏距离和基于特征向量的余弦距离融合,得到关联矩阵;基于所述关联矩阵,并利用匈牙利匹配算法以联级匹配的方式计算车辆的跟踪结果;

车辆数量计算单元,用于根据所述车辆的跟踪结果获取车辆的运动轨迹,当所述车辆的运动轨迹与所述虚拟检测线相交时,记录车辆的数量。

由于道路目标跟踪系统采用了上述实施例的道路目标跟踪方法的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果。

根据本发明的第五方面实施例的电子设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如上述的道路目标检测方法和道路目标跟踪方法。由于电子设备采用了上述实施例的道路目标检测方法和道路目标跟踪方法的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果。

根据本发明的第六方面实施例的计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上述的道路目标检测方法和道路目标跟踪方法。由于计算机可读存储介质采用了上述实施例的道路目标检测方法和道路目标跟踪方法的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是本发明一实施例提供的Darknet-53的残差连接块示意图;

图2是本发明一实施例提供的一种道路目标检测方法的流程示意图;

图3是本发明一实施例提供的一种道路目标检测方法的流程框图;

图4是本发明一实施例提供的一种道路目标跟踪方法的流程示意图;

图5是本发明一实施例提供的一种道路目标跟踪方法的流程框图;

图6是本发明一实施例提供的设置虚拟检测线的示意图;

图7是本发明一实施例提供的车流量统计的示意图;

图8是本发明一实施例提供的计数器设置的示意图;

图9是本发明一实施例提供的图片集的示意图;

图10是本发明一实施例提供的avg Loss与mAP的示意图;

图11是本发明一实施例提供的多个YOLOv3目标检测模型的mAP数据对比示意图;

图12是本发明一实施例提供的第一张检测图片;

图13是本发明一实施例提供的第二张检测图片;

图14是本发明一实施例提供的第三张检测图片;

图15是本发明一实施例提供的第一张测试视频截图;

图16是本发明一实施例提供的第二张测试视频截图;

图17是本发明一实施例提供的第三张测试视频截图;

图18是本发明一实施例提供的一种电子设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,如果有描述到第一、第二等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

本发明的描述中,需要说明的是,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。

在介绍本申请实施例之前,先对YOLOv3算法进行介绍:

目前使用深度学习思想的目标检测算法可分为两类:two-stage和one-stage检测器;one-stage算法没有候选区域,而是在图片上直接回归出目标类别和位置。其核心组件有CNN(卷积神经网络)主干网络和回归网络。

two-stage算法由于都需要使用RPN(Region Proposal Network,区域生成网络)模块,虽然这样可以使得检测目标的准确率提高,但其检测的速度慢的缺点也非常明显,无法满足大部分现实生活场景的实时检测需求。YOLO选择直接输入整张图像进入网络,然后直接回归出边框的位置和目标所属的类别。

官方版本的YOLO可以达到45帧每秒的检测速度,专注速度的快速版本YOLO的检测速度可以达到150帧每秒。这意味着这个系统可以实时处理视频流而使延迟低于25毫秒。在准确率保证的情况下,YOLO速度快于其他方法。除了速度的优势,YOLO的迁移能力也很强,可以快速运用到其他检测物体。

相较于YOLOv1和YOLOv2,YOLOv3重新设计了Darknet网络,并使用了残差结构,新的Darknet网络比Darknet-19设计的更加深。主干网络总共有53个卷积层,所以被称为Darknet-53。Darknet-53没有网络连池化层,调整卷积运算里的步长进行下采样操作,去除池化带来的梯度负面效果。Darknet-53的输出是在13*13、26*26和52*52大小的特征图上检测大中小三种尺寸的目标。

Darknet-53主要由卷积层和卷积核为3*3和1*1的残差连接块组成,共有23个这样的残差连接块。如图1所示,x是残差连接块的输入,F(x)是x经过两层卷积层后的输出,残差连接就是将输入x与F(x)相加。

针对Softmax分类器对于不同标签类别的目标物体是互斥的问题,YOLOv3使用binary cross-entropy loss分类器代替原来的Softmax分类器,实现了多标签分类。

YOLOv3使用逻辑回归为每个检测框预测目标性得分。YOLOv3网络引入了FPN架构,融合多尺度特征图信息来加强对小目标物体的检测,将深层特征与浅层特征相融合,从多个不同尺度的特征图提取图像特征作为网络输入来进行多尺度预测。YOLOv3的anchor(先验框)框的数量比YOLOv2的增加多了4个,一共使用9个anchor框。

实施例部分;

参照图2,本申请的一个实施例,提供了一种道路目标检测方法,所述道路目标检测方法包括步骤S101至S104,具体的:

步骤S101、获取包含目标的道路图片和道路视频,将道路图片和道路视频制作成VOC格式数据,并从VOC格式数据随机选取出训练数据;其中,目标包括车辆和行人。

步骤S102、设置Darknet53网络,Darknet53网络中的卷积层的filters数目为21,且classes数量为2。

步骤S103、通过训练数据训练Darknet53网络,得到训练完成的YOLOv3目标检测模型。

步骤S104、通过YOLOv3目标检测模型对待检测道路图片中的目标进行检测。

本方法采用深度学习的YOLOv3网络来实现道路交通的目标(行人和车辆)检测功能,首先需要收集包含目标的道路图片和道路视频,然后收集好的数据制作成YOLO格式的数据集,接着在Darknet框架上训练出最优的行人和车辆的YOLOv3目标检测模型。

参照图3,本申请的一个实施例,提供了一种道路目标检测方法,由于本方法只检测车辆和行人这两类类别,将使用Darknet53网络在Darknet框架下训练模型,再检测模型的精确度,具体步骤如下:

(1)需要收集的车辆和行人数据集。因使用Darknet框架只能训练yolo格式的数据集,所以先把收集好的数据集制作成VOC格式,然后运行脚本生成训练所需要的训练数据、测试数据和验证数据,同时确保各部分数据相互独立且互不包含。

(2)对yolov3.cfg文件进行对应的修改。由于只有两类目标,所以需要修改卷积层的filters数目为3×2+5=21,同时修改classes数量为2。

(3)使用K-Means聚类算法调优anchors。为了提高检测框的更适合车辆和行人,需要对anchors做一定的修改,采用K-Means聚类方法在训练数据上聚类出适合车辆和行人的anchors,替换掉yolov3.cfg文件里面原来的anchors。通过调优能够明显提高YOLOv3目标检测模型的检测准确度。

(4)使用处理好的训练数据的数据集和调优后的Darknet53网络来训练模型。

(5)使用测试数据和验证数据对模型进行性能测试。

本道路目标检测方法,采用深度学习的YOLOv3网络来实现道路交通的目标检测功能,相较于现有网络,YOLOv3网络引入了FPN架构融合多尺度特征图信息来加强对小目标物体的检测,将深层特征与浅层特征相融合,从多个不同尺度的特征图提取图像特征作为网络输入来进行多尺度预测,能够提高道路交通目标检测的准确度。而且,由于目标检测中车型大小不一,用原本的anchors锚框大小差不多,尺度集中,效果并不好,预测框得分很低,且容易对小的车型产生漏检情况。为了提高训练过程中预测框均能对大小车型特征的抓取,使用K-means聚类线性尺度的缩放方式产生anchors,产生的anchors中的锚框尺度大小都有,体现了多尺度输出的优势,从而提高道路交通目标检测的准确度。

参照图4,本申请的一个实施例,提供一种基于上述的道路目标检测方法的道路目标跟踪方法,本方法包括步骤S201至S205,具体的:

步骤S201、从交通道路视频中提取出多帧连续图片。

步骤S202、在车道左右两侧标记两个点,并在每一帧图片中连接两个点,得到每一帧图片中的虚拟检测线。

步骤S203、将包含虚拟检测线的每一帧图片输入至YOLOv3目标检测模型中,得到YOLOv3目标检测模型输出的车辆的检测结果,并检测结果进行卡尔曼滤波检测,得到车辆的预测结果。

步骤S204、计算车辆的检测结果和预测结果的马氏距离和基于特征向量的余弦距离,并将马氏距离和基于特征向量的余弦距离融合,得到关联矩阵;基于关联矩阵,并利用匈牙利匹配算法以联级匹配的方式计算车辆的跟踪结果。

步骤S205、根据车辆的跟踪结果获取车辆的运动轨迹,当车辆的运动轨迹与虚拟检测线相交时,记录车辆的数量。

本方法利用上述实施例提供的YOLOv3目标检测模型定位当前帧图片中的车辆的位置和大小等信息,利用卡尔曼滤波器对其信息进行跟踪预测,从而预测到下一帧图片中车辆的位置和大小等信息。然后需要将检测结果与追踪结果进行关联,通过一定的度量规则,将检测结果与追踪结果进行关联匹配,得到最终的跟踪结果。本方法考虑了运动信息的关联和目标外观信息的关联,使用了融合度量的方式计算检测和跟踪轨迹之间的匹配程度,对频繁出现的目标赋予优先权使用级联匹配,具有优秀的目标检测性能和目标跟踪性能;而且本方法还能通过设置一条虚拟检测线来统计道路上过往车辆的数量。

参照图5,进一步阐述步骤S201至S205,主要包括:

(1)参照图6,获取需要检测的交通视频里的一帧图片,然后使用python(matplotlib)打开图片,在需要检测交通流量的车道的左右两侧标记A和B两个点,通过matplotlib可以读取到图片中的坐标点,利用OpenCV进行划线连接得到图片中的虚拟检测线。

(2)接着运行代码,读取交通视频并对视频进行车辆和行人进行目标检测,其中,车辆目标会作为YOLOv3目标检测模型的检测结果输入到上述步骤S201至S205示出的跟踪算法中。由上述的跟踪算法对车辆目标进行卡尔曼滤波检测,和对每一帧图片进行数据关联。计算预测结果与检测结果的马氏距离和基于特征向量的余弦距离,之后将两种度量方式进行融和,得到关联矩阵;最后利用匈牙利匹配算法,并采用联级匹配的方式更新最终的跟踪结果。

(3)在对车辆进行跟踪后,当车辆目标经过虚拟检测线后,计数器加一。

(4)参照图7,计算不同方向的车道上的车流量,需要判断车辆的运动方向。选取当前帧图片的目标中心坐标设为P0,前一帧图片的目标中心坐标设为P1。假设车道平行于y坐标轴,当前帧图片的目标中心坐标P0大于前一帧图片的目标中心坐标P1时,记为行驶在左侧车道上车辆;当前一帧图片的目标中心坐标P0小于前一帧图片的目标中心坐标P1时,记为行驶在右侧车道上的车辆。

如图8,图中type表示统计up和down两个方向,car表示检测的类型,cumulativecount表示up和down方向检测出的数量,target number表示当前在视频帧的检测目标数辆,fps表示当前帧率变化,detector表示使用的检测算法是YOLOv3。

参照图9至图17,以下提供一组实验过程和测试过程:

1、实验环境;

实验平台的配置信息如下:

硬件配置信息:

GPU型号:msiGEFORCEGTX1660SUPER

显存:6G

GPU型号:

RAM容量:16G

软件配置信息:

操作系统:Ubuntu18.04

编程语言:Python2/3

编程工具:Pycharm

框架/工具:Darknet,Tensorflow,OpenCV

2、用于车辆和行人的YOLOv3目标检测模型的训练及测试;

2.1、数据集建立;

在道路环境下,行人与车辆的识别有着一定的挑战,原因有以下几点:

(1)道路环境复杂,干扰物多;(2)行人作为非刚体,有着多种姿态,穿着不一;(3)道路中行人的尺寸较小,且容易被遮挡;(4)道路上车辆多,速度快。

针对以上问题,采集关于行人与车辆的图片,不同角度拍摄到的和不同场景拍摄到的车辆与行人的图片。为了进一步提高图片的质量,对获取到的图片进行筛选,最终得到7000张车辆与行人的图片。如图9所示。

YOLOv3目标检测模型训练过程中,图片及其标注信息需要输入到YOLOv3网络,标注信息包括目标的类别和目标框的四个角点坐标信息,本实施例使用labelImg图像工具来标注图片信息,可以制作出符合YOLO目标检测网络标准格式的标注数据。标注时,以车辆或行人作为目标,其他视为背景,使用矩形框将目标框选出来,并给予类别标签。

图片标注信息保存后,会在相应的文件夹中成一个xml文件,每个xml文件里面会保存有该图片的完整信息:1)图片名称;2)图片的保存地址;3)图片的尺寸;4)目标的标注类别;5)目标框的四个角点坐标信息。

接着运行VOCdevkit/VOC2008根目录下的makeTxt.py和voc_label.py脚本,在labels文件为每一个xml文件转成txt文件,txt文件记录了类别,以及人工标注框的位置。

在darknet主目录可以得到train.txt,test.txt,val.txt三个记录了图片路径的文件。训练模型就会使用到train.txt文件,读取里面的图片进行训练。

2.2、使用Darknet框架训练以及测试;

在移植好Darknet框架到该设备上以及安装好CUDA环境后,下一步修改Darknet根目录下的Makefile文件,为了开启了GPU加速,需将CUDNN、OPENCV等选项默认值设为1,然后重新编译。

按照提出需求修改YOLOv3检测器,首先把Darknet框架里根目录cfg文件里的voc.data文本中的classes类别修改为2,并把训练集(包含训练数据)以及测试集(包含测试数据)的路径修改为刚刚制作成功的数据集路径,然后修改data目录下的voc.names中的检测类别,删掉所有其他的类别,只留下car和person。最后再修改对应的yolov3.cfg文件,将yolo层的fileters参数改为21,并开启training模式,设batch=16,subdivisions=8,最大迭代次数max_batches=5000。将初始学习率设置为0.001,最大迭代次数为5000次。并设置学习率在第3500次迭代和第4500次迭代的时候分别衰减十倍,即第3500次到4500次之间的学习率为0.0001,第4500次到5000次的学习率为0.00001。接下来运行指令./darknetdetectorcalc_anchorscfg/voc.data-num_of_clusters9-width416-height416,利用K-Means聚类算法在训练集上聚类找到更适合车辆和行人目标的anchors。将配置文件中的anchors修改为聚类得到的anchors。

由于从头开始训练网络太过耗时,所以采用迁移学习的策略,下载YOLO官方的的权重文件Darknet53.conv.74,并在这个权重文件的基础上开始新的训练。使用了Darknet框架提供的在训练过程中保存权重文件的备份策略,每1000次迭代保存一次权重文件。

表1

执行指令进行训练:

./darknet detector train cfg/voc.data backup3/yolov3.cfgdarknet53.conv.74-map

训练完成后,获得了YOLOv3目标检测模型以及可视化的训练过程中的Loss曲线图。参照图10,图中下方曲线为avgLoss曲线图,上方曲线为mAP曲线图。

可见,在训练开始阶段,0到1000次迭代时,avgLoss的曲线下降得非常快,之后,从1000到5000次迭代的过程中,下降的速度比较稳定,由此可知,此时Loss开始收敛。mAP的曲线从1500次迭代开始上升,检测精度在不断提高,最终在5000次迭代结束,mAP为91.5%。

经过训练之后,得到了多个YOLOv3目标检测模型。

依次执行以下指令,得出每个模型的thresh0.5和thresh0.75的mAP值,根据mAP判断每个检测模型的检测性能。由此选择最佳的检测模型作为检测器的检测模型。得到以下数据,图11是各个检测模型的0.5mAP和0.75mAP。可以看出yolov3_5000.weights的thresh0.5和thresh0.75的mAP最高。所以选取yolov3_5000.weights为检测模型。以下三个表格是yolov3_5000.weights检测模型在测试集上的表现。

表2

FP:False Positive,负样本被认定成正样本;

TN:True Negative,负样本被认定成负样本;

TP:True Positive,正样本被认定成正样本。

表3

precision(精确率):正确结果数量;

recall(召回率):在正确答案里找出的正确结果数量;

F1:对precision和recall的综合评价。

表4

AP:表示训练出来的模型在当前类别上的好坏。

采用图片和视频来测试YOLOv3目标检测模型的实际检测效果。

如图12所示,图中只检测出了两个行人和一辆汽车,图上较远的目标较小,YOLOv3目标检测模型没能检测出来。

如图13所示,图中检测出了一个骑自行车的行人与两辆汽车,汽车在光照较强烈且汽车出现反光的情况下仍能检测出来。

如图14所示,图中检测出了六辆车,此照片在阴雨天的情况下拍摄的,光照偏弱的情况下骑摩托的行人未能检测出来,较远的车辆也未能检测出来。

3、道路目标跟踪方法的构建及测试;

使用Tensorflow实现基于YOLOv3的目标检测模型和上述跟踪算法的道路目标跟踪检测器。

首先,在Ubuntu系统上安装Tensorflow框架。然后将在Darknet上训练好的YOLOv3目标检测模型,以及相应的配置文件迁移到该框架的对应目录下。接着部署上述跟踪算法,把视频序列输入至YOLOv3目标检测模型,YOLOv3目标检测模型输出的检测结果作为上述跟踪算法的输入。

设置虚拟检测线坐标line=[(12,368),(1228,368)];加载YOLOv3目标检测模型utils.load_weights(model,"/home/winer/darknet/backup/yolov3_best.weights");加载检测视频video_path="/home/winer/darknet/data/video-08.mp4"。下面的检测视频中的路段在天桥上拍摄,加载相应的视频路径,并根据视频里面的合适位置设置虚拟检测线,以下是实际的检测效果:

如图15至图17所示,从图中可以看出,在虚拟线附近的车辆会被检测出来,当车辆经过虚拟线时,左上角的记数器就会发生变化。

本申请实施例提供了一种道路目标检测系统,道路目标检测系统包括数据获取单元1100、网络设置单元1200、模型训练单元1300和目标检测单元1400,其中:

数据获取单元1100用于获取包含目标的道路图片和道路视频,将道路图片和道路视频制作成VOC格式数据,并从VOC格式数据随机选取出训练数据;其中,目标包括车辆和行人。

网络设置单元1200用于设置Darknet53网络,Darknet53网络中的卷积层的filters数目为21,且classes数量为2。

模型训练单元1300用于通过训练数据训练Darknet53网络,得到训练完成的YOLOv3目标检测模型。

目标检测单元1400用于通过YOLOv3目标检测模型对待检测道路图片中的目标进行检测。

需要注意的是,由于本道路目标检测系统实施例与上述的道路目标检测方法实施例是基于相同的发明构思,因此上述的方法实施例同样适用于本系统实施例,此处不再赘述。

本申请实施例提供了一种道路目标跟踪系统,道路目标跟踪系统包括图片获取单元2100、虚拟检测线设置单元2200、车辆检测单元2300、跟踪结果计算单元2400和车辆数量计算单元2500:

图片获取单元2100用于从交通道路视频中提取出多帧连续图片。

虚拟检测线设置单元2200用于在车道左右两侧标记两个点,并在每一帧图片中连接两个点,得到每一帧图片中的虚拟检测线。

车辆检测单元2300用于将包含虚拟检测线的每一帧图片输入至YOLOv3目标检测模型中,得到YOLOv3目标检测模型输出的车辆的检测结果,并检测结果进行卡尔曼滤波检测,得到车辆的预测结果;其中,YOLOv3目标检测模型通过如下方式得到。

设置Darknet53网络,其中,Darknet53网络中的卷积层的filters数目为21,且classes数量为2;通过训练数据训练Darknet53网络,得到训练完成的YOLOv3目标检测模型。

跟踪结果计算单元2400用于计算车辆的检测结果和预测结果的马氏距离和基于特征向量的余弦距离,并将马氏距离和基于特征向量的余弦距离融合,得到关联矩阵;基于关联矩阵,并利用匈牙利匹配算法以联级匹配的方式计算车辆的跟踪结果。

车辆数量计算单元2500用于根据车辆的跟踪结果获取车辆的运动轨迹,当车辆的运动轨迹与虚拟检测线相交时,记录车辆的数量。

需要注意的是,由于本道路目标跟踪系统实施例与上述的道路目标跟踪方法实施例是基于相同的发明构思,因此上述的方法实施例同样适用于本系统实施例,此处不再赘述。

参照图18,本申请实施例还提供了一种电子设备,本电子设备包括:

至少一个存储器;

至少一个处理器;

至少一个程序;

程序被存储在存储器中,处理器执行至少一个程序以实现本公开实施上述的道路目标检测和道路目标跟踪方法。

该电子设备可以为包括手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)、车载电脑等任意智能终端。

电子设备包括:

处理器1600,可以采用通用的中央处理器(Central Processing Unit,CPU)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开实施例所提供的技术方案;

存储器1700,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器1700可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1700中,并由处理器1600来调用执行本公开实施例的道路目标检测和道路目标跟踪方法。

输入/输出接口1800,用于实现信息输入及输出;

通信接口1900,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;

总线2000,在设备的各个组件(例如处理器1600、存储器1700、输入/输出接口1800和通信接口1900)之间传输信息;

其中处理器1600、存储器1700、输入/输出接口1800和通信接口1900通过总线2000实现彼此之间在设备内部的通信连接。

本公开实施例还提供了一种存储介质,该存储介质是计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行上述道路目标检测和道路目标跟踪方法。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本公开实施例描述的实施例是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。

本领域技术人员可以理解的是,图中示出的技术方案并不构成对本公开实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序的介质。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

上面结合附图对本发明实施例作了详细说明,但本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

技术分类

06120115628984