停车闸机的车牌识别、道路两侧的违法停车检测、繁忙路口的交通统计、茫茫车海中的车辆锁定……这些场景背后的技术原理你有没有简单构思过?
停车闸机的车牌识别、道路两侧的违法停车检测、繁忙路口的交通统计、茫茫车海中的车辆锁定……这些场景背后的技术原理你有没有简单构思过?还是想花时间自己存一个却不知道从何下手?——PP-Vehicle会告诉你答案。
继行人分析工具PP-Human之后,用于螺旋桨目标检测的端到端开发套件PaddleDetection正式成为开源车辆分析工具PP-Vehicle!
PP车辆的功能全景
PP-Vehicle是一款面向车辆分析相关场景的开源工具,其产品主要围绕以下几个方面进行设计和开发:
实用性:优化迭代车辆分析场景共性底层模型;针对几种高频场景设计了详细的后处理策略,能够满足快速上线服务的要求。同时提供丰富的二次开发教程,方便用户根据自身业务场景进行私有化开发。
泛化:在公共数据集和自采集数据集上进行充分训练,提供预训练模型,覆盖车辆分析中的监控视角、驾驶员视角、头顶视角等常见摄像头视角。
代码低:1行代码即可快速部署,可输入图片、文章、单/多rtsp文章流。通过修改配置文件,可以快速实现策略修改和管道合并。
接下来,我们具体看一下PP-Vehicle的工作。
还不如和源码一起吃!
https://github.com/PaddlePaddle/PaddleDetection
还记得明星系列吗,
防止迷路,实时关注更新!
总体规划
PP-车辆技术架构
PP-Vehicle分为三个部分:输入、核心算法和输出:
输入:支持离线图片、文章、rtsp文章流,可根据输入类型快速配置。如下图所示,输入被配置为rtsp pull stream的示例。
PP-Vehiclertsp拉流预测示例
核心算法:主要由预训练模型和逻辑策略组成。预训练模型有四个:车辆检测模型、车辆跟踪模型、车牌识别模型和车辆属性分析模型。各型号的性能如下表所示:
预训练模型
管道配置文件冲突的示例
输出:包括车牌信息、车辆轨迹、车辆属性、违法停车信息等。同时支持这些信息的可视化渲染输出。下图显示了直接配置的可视信息的rtsp推流显示。
Rtsp推流演示示例
可视化效果
参见:
https://github . com/paddle paddle/paddle detection/blob/release/2.5/deploy/pipeline/docs/tutorials/PP vehicle _ QUICK _ started . MD
方案简要分析
PP-Vehicle为一些高频车辆分析场景提供了详细的解决方案。这里简要分析一下主要思路。可以关注一下课后的海报,听听发展生的详细讲解。
车牌识别方案:
图片中的车辆检测帧由目标检测得到,模型方案为PP-YOLOE-L,当输入为文章时,基于车辆检测帧,使用OC-SORT跟踪模型完成车辆的多目标跟踪。
通过车辆检测框的坐标截取相应的位置图像;
车牌检测模型用于识别每张车辆截图中车牌的位置,同样截取车牌区域。模型方案是PP-OCRv3车牌检测模型。
字符识别模型用于识别车牌中的字符,模型方案为PP-OCRv3车牌识别模型。
此外,还采用了一些优化策略来提高速度和精度。
采用跳帧策略,每10帧进行一次车牌检测,避免了每帧车牌检测的计算功耗;
车牌结果稳定策略避免了单帧结果的波动,利用同一id的所有历史车牌识别结果进行投票,得到该id最可能的正确结果;
车辆检测模型结合BDD-100k和UA-DETRAC数据集进行训练,车牌检测方案使用CCPD数据集改进d
车辆属性识别模型使用PaddleClas的超轻型图像分类(PULC)。
在该模型的基础上,进一步使用以下优化方案:
使用SSLD预训练模型,在不改变推理速度的情况下,准确率提高约0.5个百分点;
结合EDA数据增强策略,准确率提高0.52个百分点;
利用SKL-UGI知识提取,准确率提高了0.23个百分点。
参见:
https://github . com/paddle paddle/paddle detection/blob/release/2.5/deploy/pipeline/docs/tutorials/PP vehicle _ attribute . MD
违规检测方案:
通过目标检测得到车辆检测框架,模型方案为PP-YOLOE;
基于跟踪算法得到每辆车的轨迹,模型方案为OC-SORT。车辆中心在违法停车区域,在规定时间内不移动的,视为违法停车;
车牌识别模型用于获取违章停车的车牌并可视化。
参见:
https://github . com/paddle paddle/paddle detection/blob/release/2.5/deploy/pipeline/docs/tutorials/PP vehicle _ illegal _ parking . MD
二次开发
此外,PP-Vehicle支持二次开发。您可以通过在自己的数据集上训练模型和重写策略来定制自己的PP-Vehicle。下图是车牌识别任务二次开发的一个例子:
二次开发示例
参见:
https://github . com/paddle paddle/paddle detection/blob/release/2.5/docs/advanced _ tutorials/customization/PP vehicle _ plate . MD
部署优化
特别是PP-Vehicle针对边缘部署场景进行了优化,比如为Jetson系列车型选择轻量级版本,同时开启跟踪跳帧功能进行优化,并提供丰富的部署选项,实现性能和速度的平衡。
Jetson配置参数
参见:
https://github . com/paddle paddle/paddle detection/blob/release/2.5/deploy/pipeline/docs/tutorials/PP vehicle _ QUICK _ STARTED _ en . MD #推论-部署
审核编辑:李倩
声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们