汽车的日益普及在给人们带来极大便利的同时,也导致了拥堵的交通路况,以及更为频发的交通事故。智能交通技术已成为推动现代技术交通技术发展的重要力量,智能交通不仅能够提供实时的交通路况信息,帮助交通管理者规划管理策略,而且还能优化出行者的出行策略。还可以减轻交通道路的堵塞情况,降低交通事故的发生概率,提高道路运行的安全系数。
本项目分两个模块:
- 一个是基于视频的车辆跟踪及流量统计,是一个可跟踪路面实时车辆通行状况,并逐帧记录不同行车道车流量数目的深度学习项目,在视频中可看出每个车辆的连续帧路径,该项目可拓展性强,可根据企业业务外接计费结算系统、LED显示系统、语音播报系统、供电防雷系统等,
- 另一个是车道线检测项目,是实现自动驾驶的首要任务,广泛应用于自动驾驶厂家,能够根据车载摄像头的输入,对安全驾驶区域进行预判,提醒驾驶员进行安全驾驶,减少交通事故的发生。
该项目的架构图如下所示:
- 用户层:通过摄像头或人工选择视频送入服务层中进行处理,处理完成后可输出经渲染后的视频,或触发报警装置
- 服务层:主要包含两个模块,
- 一是车辆追踪及计数,该模块模块一对输入的视频进行处理,使用yoloV3模型进行目标检测,然后使用SORT进行目标追踪,使用卡尔曼滤波器进行目标位置预测,并利用匈牙利算法对比目标的相似度,完成车辆目标追踪,利用虚拟线圈的思想实现车辆目标的计数,并根据计数完成车道拥堵的判断;
- 另一个是车道线的检测,该模块使用张氏较正法对相机进行较正,利用较正结果对图像去畸变,然后利用边缘与颜色提取车道线,利用仿射变换转换成鸟瞰图,并利用直方图和滑动窗口的算法精确定位车道线,利用最小二乘法进行拟合,实现车道线的检测,并计算车辆偏离车道中心的距离,触发报警装置。
- 效果展示:
2.环境安装
该项目中使用的工具包包含以下:
NumPy 是使用 Python 进行科学计算的基础包。
Numba 是一个开源 JIT 编译器,它将 Python 和 NumPy 代码的子集转换为快速机器码。
SciPy 是数学、科学和工程的开源软件。SciPy 库依赖于 NumPy,它提供方便快捷的 N 维数组操作。
h5py 从 Python 读取和写入 HDF5文件。
pandas 用于数据分析、时间序列和统计的强大的数据结构。
opencv-python 用于 Python 的预构建 OpenCV 包。
moviepy 用于进行视频处理的工具包
Filterpy 实现了卡尔曼滤波器和粒子滤波器等
具体版本见requirements文件中。
安装方法:
# 创建虚拟环境 conda create -n dlcv python # 激活虚拟环境 source activate dlcv # 激活虚拟环境(window) activate dlcv # 安装对应的工具包 pip install -r requirements.txt requirements.txt 见文末
总结
1.智慧交通中包含两个模块:多目标车辆跟踪及流量统计和车道线检测
2.智慧交通项目分为用户层和服务层,用户层进行视频或摄像头的操作,服务层对视频进行处理,完成多目标车辆的跟踪及车流量的统计和车道线检测
requirements.txt:
amqp==2.5.2 billiard==3.6.3.0 celery==4.4.2 certifi==2019.11.28 chardet==3.0.4 click==7.1.1 colorama==0.3.9 cycler==0.10.0 Cython==0.29.19 decorator==4.4.2 Django==2.2.10 django-redis==4.11.0 filterpy==1.4.5 fire==0.1.3 Flask==1.1.1 h5py==2.8.0 idna==2.8 imageio==2.8.0 imageio-ffmpeg==0.4.1 importlib-metadata==1.6.0 imutils==0.5.3 itsdangerous==1.1.0 Jinja2==2.11.1 Kalman==0.1.3 kiwisolver==1.1.0 kombu==4.6.8 llvmlite==0.31.0 MarkupSafe==1.1.1 matplotlib==2.2.3 moviepy==1.0.1 numba==0.39.0 numpy==1.15.4 opencv-python==3.4.3.18 pandas==0.23.4 Pillow==7.0.0 proglog==0.1.9 protobuf==3.11.3 pyparsing==2.4.6 python-dateutil==2.8.1 pytz==2019.3 redis==3.4.1 requests==2.21.0 scipy==1.1.0 six==1.14.0 sqlparse==0.3.1 tensorboardX==1.6 torch==0.4.1 torchvision==0.2.1 tqdm==4.29.1 urllib3==1.24.3 vine==1.3.0 Werkzeug==1.0.0 zipp==3.1.0