基于SSD神经网络的违章停车车辆实时检测方法与流程

文档序号:12826553阅读:2025来源:国知局
基于SSD神经网络的违章停车车辆实时检测方法与流程

本发明属于图像识别和计算机视觉技术领域,尤其涉及一种停车车辆的检测方法,可用于城市环境中对违章停车车辆的检测。



背景技术:

随着现代社会经济的快速发展和城市化的普及,汽车作为一种重要的交通工具,其数量呈井喷式增长,据公安部交管局统计,截止2016年底,全国汽车保有量达1.94亿辆,新注册量和年增长量均达历史最高水平。汽车数量的增长给人们带来便利的同时,也引发了诸如交通堵塞等一系列问题,其中汽车的违章停车现象是导致交通堵塞的一种重要原因。因此,急需一种实时可靠的违章停车的检测方法。

目前,针对违章停车检测方法的研究,主要集中在利用视频目标识别和跟踪技术对禁停区域内的违章停车车辆进行检测。其实现方案是利用背景分割技术,先提取可能的运动前景目标,再结合人工车辆特征判断前景目标是否为车辆,最后利用跟踪算法判断车辆是否违章停车。这种利用背景分割提取前景的方法,易受天气和光照的影响,在复杂场景下无法准确获得前景车辆目标,并且人工设计的特征具有设计难度大,不具有鲁棒性等缺点,不适用于复杂多变的城市交通环境。



技术实现要素:

本发明的目的在于针对上述已有的违章停车检测方法的不足,提出一种基于ssd神经网络的违章停车车辆实时检测方法,以提高检测的准确率和鲁棒性。

本发明的技术思路是:利用ssd神经网络能快速和精确识别目标的优势,通过k-means聚类方法,对训练数据集进行聚类;根据聚类结果搭建针对车辆检测的ssd网络框架,识别禁停区域内的行驶车辆;通过模板匹配算法对检测的行驶车辆进行追踪,根据其运动轨迹判断车辆是否为违章停车。其实现步骤包括如下:

1)构建训练数据集:

1a)采集若干个不同场景、不同拍摄角度、不同光照变化和天气情况下的车辆行驶视频,将这些视频每隔25帧保存成一张图片;

1b)在每张图片上划定感兴趣区域,并对感兴趣区域内的车辆进行标注,再将标注车辆的坐标、宽高以及类别信息存入到txt格式的标签文件中;

1c)合并所有标签文件,并将文件的txt格式转换为xml格式,获得与训练图像相对应的车辆类别以及位置信息的标签文件,即训练数据集;

2)k-means聚类获得车辆宽高比的k个聚类中心:

2a)使用matlab函数importdata()读入1b)生成的txt格式的标注文件,获取标注车辆的坐标、宽高以及类别信息,将所有标注车辆的宽和高存成一个二维矩阵x,其中矩阵的列代表车辆的宽高,矩阵的行代表不同的标注车辆;

2b)使用matlab函数kmeans()对二维矩阵x进行k-means聚类,得到k个聚类的车辆宽高,用聚类后的宽除以高得到k个宽高比的聚类中心;

3)使用2b)得到的车辆聚类宽高比,对ssd网络模型进行优化,得到优化后的ssd网络模型;

4)利用优化后的ssd网络模型和跟踪算法进行违章停车检测:

4a)读取视频,得到视频流,并在视频图像中设定禁止停车区域;

4b)从视频流中取第1帧图像,使用优化后的ssd网络模型对图像中禁停区域内的行驶车辆进行检测,获取车辆的位置信息;

4c)取视频流中第2~25帧图像,对4b)获取的目标车辆,调用opencv函数matchtemplate()使用模板匹配算法进行追踪,得到目标车辆的运动状态和位置信息;

4d)设定交叠率阈值u=0.6,重复4b),根据本次ssd检测到的车辆位置与4c)跟踪结束后的车辆位置,计算交叠率u,将交叠率与交叠率阈值进行比较:若u>u,则将本次ssd检测出的目标车辆与追踪后的目标车辆判断为同一辆车,若u≤u,则判断本次ssd检测出的目标车辆为新进入禁止停车区域的车辆;

4e)重复4c)-4d),直到视频流结束,得到车辆的运动轨迹,将在设定时间阈值内保持静止的车辆判断为违章停车车辆。

本发明与现有技术相比具有以下优点:

1.检测准确率高:

现有的违章停车检测方法是通过背景分割的方法进行车辆的提取,对光照天气的变化过于敏感,易出现误检漏检的情况。而本发明采用深度学习的方法,搭建适用于车辆检测的ssd神经网络,对视频中的车辆直接进行识别,无需对车辆进行提取的步骤,规避了背景分割的弊端,提升了检测的准确率;另外,相较于人工车辆特征的检测算法,ssd网络能自学习车辆的多尺度特征,可以准确检测出各种不同大小和角度的车辆,进一步提高了检测的准确率。经实际测试,本发明对汽车违章停车的检测准确率可以达到99%。

2.鲁棒性好:

现有的违章停车检测方法只能在交通状况良好、天气状况优良的前提下有相对较好的检测效果,监控视频拍摄角度、拍摄场景的不同以及监控探头的抖动都会影响检测结果。而本发明基于ssd神经网络对违章停车车辆进行检测,对各种交通状况及天气情况都有很好的普适性,能克服不同角度、场景以及监控探头抖动对检测带来的不良影响,具有较强的鲁棒性。

附图说明

图1为本发明的实现流程图;

图2为本发明中的k-means聚类车辆宽高比的结果图;

图3为用本发明在不同道路状况和不同天气下对车辆的检测效果图。

具体实施方式

下面结合附图和实例对本发明进行详细说明。

参照图1,本发明的实现步骤如下:

步骤1,构建训练数据集。

1a)采集若干个不同场景、不同拍摄角度、不同光照变化和天气情况下的车辆行驶视频,将这些视频每隔25帧保存成一张图片,根据视频分辨率设置图片大小为1280*720,放入jpegimages文件夹中,本实例生成的训练图像为2000张;

1b)在采集的车辆行驶视频中,将视频内下方三分之二的车道形成的t型区域作为感兴趣区域,并在每张图片上划定出该感兴趣区域,并对感兴趣区域内的车辆进行标注,再将标注车辆的坐标、宽高以及类别信息存入到txt格式的标签文件中,标注完成后,每一张图片对应一个标签文件;

1c)合并所有标签文件,并将文件txt格式转换为xml格式,获得与训练图像相对应的车辆类别以及位置信息的标签文件,即构成训练数据集。

步骤2,通过k-means聚类获得车辆宽高比的k个聚类中心。

2a)通过商业软件matlab的函数importdata()读入(1b)生成的txt格式的标注文件,把标注车辆的宽和高导入matlab工作区,再把导入工作区的数据存入矩阵x,其中矩阵的列代表车辆的宽高,矩阵的行代表不同的标注车辆;

2b)通过商业软件matlab的函数kmeans()对(2a)中生成的二维矩阵x进行聚类计算,得到k个聚类的车辆宽和高,用聚类后的宽除以高得到k个宽高比的聚类中心,本实例中k取值为10;

2c)将车辆宽高比的k个聚类中心保存到txt文档中,结果如图2所示,从图2中能够得出普遍适用的车辆宽高比为:0.5,0.6,0.7;

所述的importdata()函数和kmeans()函数,均为商业软件matlab的自带函数。

步骤3,使用(2c)得到的车辆聚类宽高比,对ssd网络模型进行优化,得到优化后的ssd网络模型。

本发明网络的搭建以及训练参数的设置均以python文件的方式编辑实现,其实现步骤如下:

3a)在linux系统下,下载和安装caffe-ssd深度学习平台;

3b)根据(2c)中k-means宽高比聚类结果修改文件ssd_pascal.py中aspect_ratios的参数,本实例修改为:aspect_ratios=[0.5,0.6,0.7];

3c)修改caffe_ssd平台下的标签字典labelmap_voc.prototxt,将标签字典改为“汽车”和“背景”这两个类别;

3d)运行create_data.sh程序,将(1)中准备好的数据集转换为lmdb格式文件;

3e)运行ssd_pascal.py文件,开始训练ssd网络,直到网络训练收敛,得到最终的网络模型;

所述的create_data.sh程序为caffe-ssd深度学习平台自带程序。

步骤4,利用优化后的ssd网络模型和跟踪算法进行违章停车检测。

本发明的违章停车检测算法的具体实现以c++语言和opencv视觉库为载体,实现过程如下:

4a)读取视频,得到视频流,并在视频图像中设定禁止停车区域;

4b)从视频流中取第1帧图像,使用优化后的ssd网络模型对图像中禁停区域内的行驶车辆进行检测,获取车辆的位置信息;

4c)取视频流中第1~25帧图像,调用opencv函数matchtemplate(),利用(4b)获取的目标车辆作为模版,在视频流中找出目标车辆的位置,实现对车辆的追踪,得到目标车辆的运动状态和位置信息,所述的matchtemplate()函数,为opencv开源计算机视觉库的自带函数;

4d)设定交叠率阈值u=0.6,重复(4b),根据本次ssd检测到的车辆位置与(4c)跟踪结束后的车辆位置,计算交叠率u,将交叠率与交叠率阈值进行比较:

若u>u,则将本次ssd检测出的目标车辆与追踪后的目标车辆判断为同一辆车;

若u≤u,则判断本次ssd检测出的目标车辆为新进入禁止停车区域的车辆;

4e)重复4c)-4d),直到视频流结束,得到车辆的运动轨迹,将在设定时间阈值内保持静止的车辆判断为违章停车车辆,本实例时间阈值设为15秒,检测结果如图3所示,其中图3(a)为晴天下检测效果图,图3(b)为雨天下检测效果图;

从图3的检测结果可以明显的看出:本发明的基于深度学习的违章停车检测方法适用于各种复杂的交通环境,对各种恶劣天气下的检测具有鲁棒性,准确率高且能达到实时检测,满足实际违章停车检测的需求。

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