停车场闸机的车牌识别、道路两侧的违停检测、繁华路口的车流统计、茫茫车海中的车辆锁定…这些场景背后的技术原理大家是否在心中简单构思过?抑或想要抽时间自己攒一套出来可却又不知如何下手?
PP-Vehicle来告诉你答案!
继行人分析工具PP-Human之后,飞桨目标检测端到端开发套件PaddleDetection正式开源车辆分析工具PP-Vehicle!
▲ PP-Vehicle功能全景图
实用性:针对车辆分析场景共性的底层模型进行优选迭代;针对几个高频场景进行了详细的后处理策略设计,可以满足业务的快速上线需求。同时提供丰富的二次开发教程,方便用户根据自己的业务场景进行私有化开发。
泛化性:在公开数据集以及自采数据集上进行充分训练,并且提供预训练模型,覆盖车辆分析中监控视角、驾驶员视角、俯拍视角等常见相机视角。
低代码:实现1行代码快速部署,支持图片、视频、单路/多路rtsp视频流输入,修改配置文件即可快速实现策略修改以及pipeline的组合。
记得Star收藏,防止走丢又实时关注更新!
输入
核心算法
主要由预训练模型以及逻辑策略组成。预训练模型主要有4个:车辆检测模型、车辆跟踪模型、车牌识别模型、车辆属性分析模型。各个模型性能见下表。
▲ 违停pipeline配置文件示例
输出
▲ 可视化效果
详见链接:
方案简析
PP-Vehicle针对一些高频车辆分析场景提供了详细的解决方案,在这里就主要思路进行讲解,更多方案细节欢迎大家关注文末课程,听一听开发同学的详解。
车牌识别方案
通过目标检测来获取图片中的车辆检测框,模型方案为PP-YOLOE-l。当输入为视频时,会基于车辆检测框,使用OC-SORT跟踪器来完成车辆的多目标跟踪;
通过车辆检测框的坐标截取对应位置图像;
使用车牌检测模型在每张车辆截图中识别车牌所在位置,同理截取车牌区域,模型方案为PP-OCRv3车牌检测模型;
使用字符识别模型识别车牌中的字符,模型方案为PP-OCRv3车牌识别模型;
此外还使用了一些优化策略提升速度以及准确率:
使用跳帧策略,每10帧做一次车牌检测,避免每帧做车牌检测的算力消耗;
车牌结果稳定策略,避免单帧结果的波动,利用同一个id的历史所有车牌识别结果进行投票,得到该id最大可能的正确结果;
车辆属性识别方案
车辆属性识别模型使用了PaddleClas超轻量图像分类方案(PULC,Practical Ultra Lightweight image Classification)
在该模型的基础上,进一步使用了以下优化方案:
使用SKL-UGI知识蒸馏, 精度提升0.23个百分点。
详见链接:
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/deploy/pipeline/docs/tutorials/ppvehicle_attribute.md
违停检测方案
使用车牌识别模型得到违章停车车牌并可视化。
二次开发
部署优化
直播预告
关注【飞桨PaddlePaddle】公众号
获取更多技术内容~