百度PP-Vehicle开发套件学习

🚘 车辆分析工具PP-Vehicle

PaddleDetection深入探索核心行业的高频场景,提供了车辆场景的开箱即用分析工具,支持图片/单镜头视频/多镜头视频/在线视频流多种输入方式,广泛应用于智慧交通、智慧城市、工业巡检等领域。支持服务器端部署及TensorRT加速,T4服务器上可达到实时。

  • 🚗🚙 PP-Vehicle囊括四大交通场景核心功能:车牌识别、属性识别、车流量统计、违章检测。

📣 近期更新

  • 🔥🔥🔥 2022.8.20:PP-Vehicle首发,提供车牌识别、车辆属性分析(颜色、车型)、车流量统计以及违章检测四大功能,完善的文档教程支持高效完成二次开发与模型优化

🔮 功能简介与效果展示

⭐ 功能 💟 方案优势 💡示例图
车牌识别 支持传统车牌和新能源绿色车牌

车牌识别采用长间隔采样识别与多次结果统计投票方式,算力消耗少,识别精度高,结果稳定性好。 检测模型 hmean: 0.979; 识别模型 acc: 0.773
车辆属性分析 支持多种车型、颜色类别识别

使用更强力的Backbone模型PP-HGNet、PP-LCNet,精度高、速度快。识别精度: 90.81
违章检测 简单易用:一行命令即可实现违停检测,自定义设置区域

检测、跟踪效果好,可实现违停车辆车牌识别
车流量计数 简单易用:一行命令即可开启功能,自定义出入位置

可提供目标跟踪轨迹显示,统计准确度高

🗳 模型库

端到端模型效果(点击展开/折叠) | 任务 | 端到端速度(ms)| 模型方案 | 模型体积 | | :---------: | :-------: | :------: |:------: | | 车辆检测(高精度) | 25.7ms | [多目标跟踪](https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_l_36e_ppvehicle.zip) | 182M | | 车辆检测(轻量级) | 13.2ms | [多目标跟踪](https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_s_36e_ppvehicle.zip) | 27M | | 车辆跟踪(高精度) | 40ms | [多目标跟踪](https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_l_36e_ppvehicle.zip) | 182M | | 车辆跟踪(轻量级) | 25ms | [多目标跟踪](https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_s_36e_ppvehicle.zip) | 27M | | 车牌识别 | 4.68ms | [车牌检测](https://bj.bcebos.com/v1/paddledet/models/pipeline/ch_PP-OCRv3_det_infer.tar.gz)
[车牌字符识别](https://bj.bcebos.com/v1/paddledet/models/pipeline/ch_PP-OCRv3_rec_infer.tar.gz) | 车牌检测:3.9M
车牌字符识别: 12M | | 车辆属性 | 7.31ms | [车辆属性](https://bj.bcebos.com/v1/paddledet/models/pipeline/vehicle_attribute_model.zip) | 7.2M |

点击模型方案中的模型即可下载指定模型,下载后解压存放至./output_inference目录中

📚 功能补充说明

车牌识别

方案说明

  1. 目标检测/多目标跟踪获取图片/视频输入中的车辆检测框,模型方案为PP-YOLOE,详细文档参考[PP-YOLOE]
  2. 通过车辆检测框的坐标在输入图像中截取每个车辆
  3. 使用车牌检测模型在每张车辆截图中识别车牌所在位置,同理截取车牌区域,模型方案为PP-OCRv3_det模型,经CCPD数据集在车牌场景fine-tune得到。
  4. 使用字符识别模型识别车牌中的字符。模型方案为PP-OCRv3_rec模型,经CCPD数据集在车牌场景fine-tune得到。

性能优化措施:

  1. 使用跳帧策略,每10帧做一次车牌检测,避免每帧做车牌检测的算力消耗。
  2. 车牌结果稳定策略,避免单帧结果的波动,利用同一个id的历史所有车牌识别结果进行投票,得到该id最大可能的正确结果。

车辆属性分析

方案说明

车辆属性识别模型使用了PaddleClas 的超轻量图像分类方案(PULC,Practical Ultra Lightweight image Classification)。关于该模型的数据准备、训练、测试等详细内容,请见PULC 车辆属性识别模型.

车辆属性识别模型选用了轻量级、高精度的PPLCNet。并在该模型的基础上,进一步使用了以下优化方案:

  • 使用SSLD预训练模型,在不改变推理速度的前提下,精度可以提升约0.5个百分点
  • 融合EDA数据增强策略,精度可以再提升0.52个百分点
  • 使用SKL-UGI知识蒸馏, 精度可以继续提升0.23个百分点

违章检测

方案说明

  1. 目标检测/多目标跟踪获取图片/视频输入中的车辆检测框,模型方案为PP-YOLOE,详细文档参考[PP-YOLOE]
  2. 基于跟踪算法获取每辆车的轨迹,如果车辆中心在违停区域内且在指定时间内未发生移动,则视为违章停车;
  3. 使用车牌识别模型得到违章停车车牌并可视化。

车辆跟踪、车流计数与轨迹记录

方案说明

【实现方案及特色】

  1. 使用目标检测/多目标跟踪技术来获取图片/视频输入中的车辆检测框,检测模型方案为PP-YOLOE,详细文档参考[PP-YOLOE]和[ppvehicle]。
  2. 多目标跟踪模型方案采用OC-SORT,采用PP-YOLOE替换原文的YOLOX作为检测器,采用OCSORTTracker作为跟踪器,详细文档参考[OC-SORT]。