编号:A169
大小:38M
环境:Python3.7、OpenCV4.5、Pycharm2020
简介:项目的编程环境为python3.7.7,编译器使用pycharm2019.3.4 x64,视频序列30帧每秒。项目采用虚拟线圈法估算车速,取线圈内平均灰度值相对于没有车辆的线圈内平均灰度值的变化c作为对象特征,当c的绝对值大于某一阈值时,判断有汽车通过线圈。
基于虚拟线圈的车速检测算法
虚拟线圈法是利用虚拟感应线圈代替真实感应线圈,工作原理类似于地埋式线圈检测器。在图像上垂直于道路方向上定义2个检测线圈的位置,系统通过检测线圈的灰度变化来判断车辆经过,由车辆经过前后两个线圈的间隔帧数p、两个线圈在现实中的距离l和第二个线圈与停止线的距离s,可以估算出当前车辆的速度及撞线时间。该方法的优点是操作简单,耗时短,能够实时完成速度和撞线时间估计。算法的具体步骤如下:
1. 确定两个虚拟线圈的位置、大小和倾斜角度,确保首帧序列的虚拟线圈内没有车辆,在视频序列中把虚拟线圈标注出来;
2. 计算首帧序列在2个虚拟线圈中的平均灰度值,记为aaa、bbb;
3. 逐一计算视频帧在2个虚拟线圈中的平均灰度值,记为mmm、nnn,并与首帧的计算结果aaa、bbb进行比较。当∣m−a∣\left|m-a\right|∣m−a∣大于某一阈值时,判断第一个线圈有车辆通过,记录当前帧的序号iii,如图3-1所示,当∣n−b∣\left|n-b\right|∣n−b∣大于某一阈值时,判断第二个线圈有车辆通过,记录当前帧的序号jjj;
4. 当车辆通过第二个虚拟线圈时,由iii、jjj、实际现实中两虚拟线圈的间距、第二个虚拟线圈与停止线的间距和视频的帧率等信息,即可估算出车辆的车速和撞线时间。
总结
考虑到实际应用中,摄像头可以固定在道路中,稳定程度和角度都要好于我在楼顶手持录像,所以实际应用理论要好于实验。但也存在一些问题,比如对白色车辆不敏感,只是通过黑色后视窗进行识别,原因可能是特征选择为灰度图的平均灰度值差异,白色车辆跟道路的平均灰度值差异不够明显,改进的话可以使用SHV图像的颜色做判别,这也比较符合人的判断;比如实验视频时间短,只考虑白天,实际现实还要工作于夜晚,可以运用动态阈值进行改进。
运行展示
配套文件
我们提供完整项目文件清单如下:
文件目录
├ 1.项目源码
├ 2.运行截图
└ 3.演示视频
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者文档,可以与我们交换,分享有积分奖励和额外收入!
4. 本站提供的源码、文档等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.2zcode.com",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:网站内的所有源码都经过我们亲自测试,均可以正常使用.
索炜达.猿创 » 基于Python+OpenCV虚拟线圈法的车速识别和撞线预测
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 你们有qq群吗怎么加入?