停车场闸机的车牌识别、道路两侧的违停检测、繁华路口的车流统计、茫茫车海中的车辆锁定…这些场景背后的技术原理大家是否在心中简单构思过?抑或想要抽时间自己攒一套出来可却又不知如何下手?
PP-Vehicle来告诉你答案!
继行人分析工具PP-Human之后,飞桨目标检测端到端开发套件PaddleDetection正式开源车辆分析工具PP-Vehicle!
▲ PP-Vehicle功能全景图
PP-Vehicle是一款针对车辆分析相关场景的开源工具,产品主要围绕以下几个方面进行设计开发:
接下来让我们具体看一下PP-Vehicle的工作。源码链接如下:
https://github.com/PaddlePaddle/PaddleDetection
记得Star收藏,防止走丢又实时关注更新!
整体方案
▲ PP-Vehicle技术架构
PP-Vehicle整体分为输入、核心算法、输出三部分:
输入
支持离线图片、视频以及rtsp视频流等形式,可根据输入类型快速配置,如下图为输入配置为rtsp拉流的示例。
▲ PP-Vehicle rtsp拉流预测示例
核心算法
主要由预训练模型以及逻辑策略组成。预训练模型主要有4个:车辆检测模型、车辆跟踪模型、车牌识别模型、车辆属性分析模型。各个模型性能见下表。
▲ 预训练模型
▲ 违停pipeline配置文件示例
输出
包括车牌信息、车辆轨迹、车辆属性、违停信息等。同时支持这些信息的可视化渲染输出,如下图为直接配置可视化信息rtsp推流显示。
▲ rtsp推流展示示例
▲ 可视化效果
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/deploy/pipeline/docs/tutorials/PPVehicle_QUICK_STARTED.md
方案简析
PP-Vehicle针对一些高频车辆分析场景提供了详细的解决方案,在这里就主要思路进行讲解,更多方案细节欢迎大家关注文末课程,听一听开发同学的详解。
车牌识别方案
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/deploy/pipeline/docs/tutorials/ppvehicle_plate.md
车辆属性识别方案
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/deploy/pipeline/docs/tutorials/ppvehicle_attribute.md
违停检测方案
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/deploy/pipeline/docs/tutorials/ppvehicle_illegal_parking.md
二次开发
此外,PP-Vehicle支持二次开发,大家可以在自己的数据集上进行模型训练、策略改写等,定制化自己的专属PP-Vehicle。如下图为车牌识别任务二次开发示例:
▲ 二次开发示例
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/docs/advanced_tutorials/customization/ppvehicle_plate.md
部署优化
特别的是,PP-Vehicle针对边缘端部署场景进行了优化,如针对Jetson系列模型选择轻量级版本,同时开启跟踪跳帧功能进行优化,并提供了丰富的部署选项以达到性能-速度的平衡。
▲ Jetson配置参数
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/deploy/pipeline/docs/tutorials/PPVehicle_QUICK_STARTED_en.md#Inference-Deployment