# 基于计算机视觉的交通场景智能应用
### 一、环境依赖
- ununtu16.04LTS
- python3.5
### 二、部署步骤
1. 进入目录内
> cd Intelligent-Traffic-Based-On-CV
2. 创建python虚拟环境
> python3 -m venv .
3. 安装python依赖包
> pip install -r requirements.txt
4. 下载YOLOv3权重
- [官方下载地址](https://pjreddie.com/media/files/yolov3.weights)
- [百度网盘下载链接](https://pan.baidu.com/s/1CVgvP4hQQvDNbKmXhmkxqw)
下载完成后将weights文件放在 **yolov3/weights** 目录下
5. 进入`scripts`目录,运行命令`python3 main.py`即可运行总程序.
### 三、运行实例
![](./resources/running.png)
### 四、代码结构说明
1. **scripts** : python脚本
- main.py : 主程序入口
- core.py : UI界面脚本
- bbox.py darknet.py video_demo.py util.py : YOLO相关代码
- detect.py : 颜色检测
- plateRecognition.py preprocess.py HyperLPRLite.py : 车牌检测相关代码
2. **ui** : 程序UI界面
- Core.ui : 使用`Qt Designer`设计的界面ui文件
- core.py : 使用命令`pyuic5 -o core.py Core.ui`将Core.ui文件转为python脚本
3. **yolov3** : YOLO模型配置文件
- cfg : YOLO网络模型
- data : YOLO识别类型
- weights : YOLO模型权重
4. **PlateRecognition** : 中文车牌识别HyperLPR项目配置文件
5. **videos** : 提供的道路测试视频
6. **log** : 程序运行过程中保存的日志
### 五、软件总体设计
1. **软件结构图**
![](./resources/软件结构图.png)
2. **软件流程图**
![](./resources/总体流程图.png)
### 六、各模块功能详细说明
1. **加载模型模块**
本模块主要用于提前加载多目标识别算法和车牌识别算法所用到的神经网络模型。
2. **载入视频流模块**
(1)功能介绍:本模块用于打开存储在本地文件系统上的交通监控视频并将视频流实时显示在软件界面视频播放模块中。
(2)详细实现:由于整个应用程序是基于pyqt5开发的,因此为了不影响整个软件其他功能模块的使用,我们使用opencv读入视频流并给这一模块加入单独的线程,将opencv视频流读取的图像帧显示在之前使用qt设计的视频播放模块内。
3. **目标识别模块**
(1)功能介绍:本模块通过使用YOLOv3多尺度目标识别技术对视频流的图像帧进行识别,并将事先在训练类别中的目标在视频画面中实时标注出来,并将识别的信息提供给其他模块使用,比如红绿灯检测模块,车流量检测模块等。
(2)详细实现:本模块我们使用著名的YOLO(You Only Look Once)模型对图像中的物体进行识别。首先在模型构建方面,我们读取darknet框架使用的yolov3.cfg 卷积神经网络模型文件,对网络的结构进行分析然后转换为相应的pytorch模型,使用已经加载的yolov3.weight权重模型,至此我们的CNN识别模块已经搭建完成。然后将opencv读取的图像帧丢入已经定义的卷积神经网络模型对结果进行预测,得到输出信息(包括置信度、位置坐标),使用opencv作图模块将这些输出信息实时标注在对应的图像帧上。最后将处理过的图像帧显示在界面上即可。
4. **红绿灯检测模块**
(1)功能介绍:本模块使用目标识别模块的输出信息得到交通灯的位置坐标,使用颜色识别算法对交通灯状态进行分析。
(2)详细实现:首先对pytorch预测输出的信息进行分析,得到交通灯对应的位置信息。接着,调用opencv模块将交通灯对应的ROI区域截取出来,由于HSV空间能够非常直观的表达色彩的明暗,色调,以及鲜艳程度,方便进行颜色之间的对比,因此将截取出区域的RGB图像先转换为HSV图像。最后将每种颜色对应的HSV阈值与截取区域中的HSV颜色进行比对,重合率最高的即为识别到的颜色种类。
5. **车流量检测模块**
(1)功能介绍:本模块对图像帧中出现的车辆数目进行统计,实时分析交通路口的车流量,提供参考数据给使用人员。
(2)详细实现:首先对pytorch预测输出的信息进行分析,得到图像帧中所有识别到的车辆信息,对车辆信息进行统计,然后实时在界面上显示。
6. **人流量检测模块**
(1)功能介绍:本模块对图像帧中出现的行人数目进行统计,实时分析交通路口的人流量,提供参考数据给使用人员。
(2)详细实现:首先对pytorch预测输出的信息进行分析,得到图像帧中所有识别到的行人信息,对行人信息进行统计,然后实时在界面上显示。
7. **车牌识别模块**
(1)功能介绍:本模块对图像帧中出现的车辆车牌号进行识别,并将识别到车牌的图像区域和OCR识别结果实时显示在界面上。
(2)详细实现:使用HyperLPR 车牌识别开源项目,首先利用利用cascade进行车牌定位,其次利用左右边界回归模型,预测出车牌的左右边框,进一步裁剪,进行精定位,最后利用CRNN进行车牌字符识别。
8. **系统日志模块**
(1)功能介绍:本模块对视频分析中得到的信息进行汇总,并实时在在画面上进行刷新,使用者可以方便地查看当前以及之前的分析结果;
(2)详细实现:首先定义一个日志消息队列,在视频分析开始运行之后将得到的信息使用put函数加载到队列当中,然后在日志显示模块使用get函数得到最新的消息并实时显示在画面上。
#### 七、参考资料
[1][A PyTorch implementation of the YOLO v3 object detection algorithm](https://github.com/ayooshkathuria/pytorch-yolo-v3.git)
[2][基于深度学习高性能中文车牌识别HyperLPR](https://github.com/zeusees/HyperLPR.git)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于计算机视觉的端到端交通路口智能监控系统.采用的设计架构由SRS流媒体服务器、GPU服务器、Local客户端三部分组成.可将远端视频流通过rtmp协议传输到流媒体服务器,然后经过目标检测等一些列算法对视频进行分析,最后在本地客户端查看分析结果.项目主要用Pytho… 【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
本项目是基于计算机视觉的端到端交通路口智能监控系统.采用的设计架构由SRS流媒体服务器、GPU服务器、Local客户端三部分组成.可将远端视频流通过rtmp协议传输到流媒体服务器,然后经过目标检测等一些列算法对视频进行分析,最后在本地客户端查看分析结果.项目主要用Pytho….zip (73个子文件)
资料总结
resources
running.png 590KB
总体流程图.png 49KB
软件结构图.png 70KB
yolov3
data
voc.names 135B
coco.names 625B
pallete 908B
cfg
tiny-yolo-voc.cfg 1KB
yolo.cfg 3KB
yolo-voc.cfg 3KB
yolov3.cfg 8KB
PlateRecognition
image.png 1.18MB
plateRecognition.py 3KB
HyperLPRLite.py 7KB
model
model12.h5 69KB
char_judgement1.h5 39KB
char_judgement.h5 295KB
char_rec.h5 1.77MB
ocr_plate_all_w_rnn_2.h5 14.57MB
char_chi_sim.h5 2.2MB
plate_type.h5 147KB
ocr_plate_all_gru.h5 15.95MB
cascade_lbp.xml 30KB
cascade.xml 348KB
Font
platech.ttf 14.01MB
Images
test1.jpg 199KB
.DS_Store 6KB
test3.jpg 412KB
6.jpg 71KB
test4.jpg 90KB
test2.jpg 130KB
3.jpg 54KB
7.jpg 2.07MB
4.jpg 29KB
__pycache__
HyperLPRLite.cpython-35.pyc 7KB
HyperLPRLite.pyc 8KB
requirements.txt 201B
videos
video3.avi 4.82MB
video.mp4 18.93MB
video2.avi 6.06MB
ui
Core.ui 16KB
core.py 14KB
README.md 6KB
log
log_info.txt 1.14MB
scripts
preprocess.py 2KB
util.py 13KB
main.py 9KB
plateRecognition.py 3KB
HyperLPRLite.py 7KB
darknet.py 17KB
core.py 15KB
detect.py 4KB
video_demo.py 12KB
__pycache__
plateRecognition.cpython-35.pyc 3KB
util.cpython-35.pyc 9KB
core.cpython-35.pyc 9KB
core3.cpython-35.pyc 8KB
main2.cpython-35.pyc 7KB
core4.cpython-35.pyc 8KB
core2.cpython-35.pyc 8KB
bbox.cpython-35.pyc 4KB
color_detect.cpython-35.pyc 1KB
core7.cpython-35.pyc 9KB
core6.cpython-35.pyc 9KB
preprocess.cpython-35.pyc 2KB
core1.cpython-35.pyc 8KB
darknet.cpython-35.pyc 13KB
core5.cpython-35.pyc 8KB
sort.cpython-35.pyc 9KB
HyperLPRLite.cpython-35.pyc 7KB
detect.cpython-35.pyc 3KB
video_demo.cpython-35.pyc 7KB
draw_plot.cpython-35.pyc 5KB
bbox.py 3KB
共 73 条
- 1
资源评论
妄北y
- 粉丝: 9666
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功