停車場閘機的車牌識別、道路兩側的違停檢測、繁華路口的車流統計、茫茫車海中的車輛鎖定…這些場景背后的技術原理大家是否在心中簡單構思過?抑或想要抽時間自己攢一套出來可卻又不知從何下手?——PP-Vehicle來告訴你答案。
繼行人分析工具PP-Human之后,飛槳目標檢測端到端開發套件PaddleDetection正式開源車輛分析工具PP-Vehicle!
PP-Vehicle功能全景圖
PP-Vehicle是一款針對車輛分析相關場景的開源工具,產品主要圍繞以下幾個方面進行設計開發:
-
實用性:針對車輛分析場景共性的底層模型進行優選迭代;針對幾個高頻場景進行了詳細的后處理策略設計,可以滿足業務的快速上線需求。同時提供豐富的二次開發教程,方便用戶根據自己的業務場景進行私有化開發。
-
泛化性:在公開數據集以及自采數據集上進行充分訓練,并且提供預訓練模型,覆蓋車輛分析中監控視角、駕駛員視角、俯拍視角等常見相機視角。
-
低代碼:實現1行代碼快速部署,支持圖片、視頻、單路/多路rtsp視頻流輸入,修改配置文件即可快速實現策略修改以及pipeline的組合。
接下來讓我們具體看一下PP-Vehicle的工作。
搭配源碼食用更佳!
https://github.com/PaddlePaddle/PaddleDetection
記得Star收藏,
防止走丟又實時關注更新!
整體方案
PP-Vehicle技術架構
PP-Vehicle整體分為輸入、核心算法、輸出三部分:
-
輸入:支持離線圖片、視頻以及rtsp視頻流等形式,可根據輸入類型快速配置,如下圖所示,為輸入配置為rtsp拉流的示例。
PP-Vehiclertsp拉流預測示例
-
核心算法:主要由預訓練模型以及邏輯策略組成。預訓練模型主要有4個:車輛檢測模型、車輛跟蹤模型、車牌識別模型、車輛屬性分析模型。各個模型性能見下表:
預訓練模型
違停pipeline配置文件示例
-
輸出:包括車牌信息、車輛軌跡、車輛屬性、違停信息等;同時支持這些信息的可視化渲染輸出,如下圖為直接配置可視化信息rtsp推流顯示。
rtsp推流展示示例
可視化效果
詳見:
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/deploy/pipeline/docs/tutorials/PPVehicle_QUICK_STARTED.md
方案簡析
PP-Vehicle針對一些高頻車輛分析場景提供了詳細的解決方案,在這里就主要思路進行簡析,詳細的解析大家可以關注課后的海報,聽一聽開發同學的詳解。
車牌識別方案:
-
通過目標檢測來獲取圖片中的車輛檢測框,模型方案為PP-YOLOE-l。當輸入為視頻時,會基于車輛檢測框,使用OC-SORT跟蹤模型來完成車輛的多目標跟蹤;
-
通過車輛檢測框的坐標截取對應位置圖像;
-
使用車牌檢測模型在每張車輛截圖中識別車牌所在位置,同理截取車牌區域,模型方案為PP-OCRv3車牌檢測模型;
-
使用字符識別模型識別車牌中的字符,模型方案為PP-OCRv3車牌識別模型;
-
此外還使用了一些優化策略提升速度以及準確率。
-
使用跳幀策略,每10幀做一次車牌檢測,避免每幀做車牌檢測的算力消耗;
-
車牌結果穩定策略,避免單幀結果的波動,利用同一個id的歷史所有車牌識別結果進行投票,得到該id最大可能的正確結果;
-
車輛檢測模型聯合BDD-100k和UA-DETRAC數據集訓練, 車牌檢測方案采用CCPD數據集在車牌場景finetune提升檢測精度。
詳見:
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/deploy/pipeline/docs/tutorials/ppvehicle_plate.md
車輛屬性識別方案:
-
車輛屬性識別模型使用了PaddleClas的超輕量圖像分類方案(PULC,Practical Ultra Lightweight image Classification)。
-
并在該模型的基礎上,進一步使用了以下優化方案:
-
使用SSLD預訓練模型,在不改變推理速度的前提下,精度提升約0.5個百分點;
-
融合EDA數據增強策略,精度提升0.52個百分點;
-
使用SKL-UGI知識蒸餾, 精度提升0.23個百分點。
詳見:
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/deploy/pipeline/docs/tutorials/ppvehicle_attribute.md
違停檢測方案:
-
通過目標檢測來獲取車輛檢測框,模型方案為PP-YOLOE;
-
基于跟蹤算法獲取每輛車的軌跡,模型方案為OC-SORT。如果車輛中心在違停區域內且在指定時間內未發生移動,則視為違章停車;
-
使用車牌識別模型得到違章停車車牌并可視化。
詳見:
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
審核編輯 :李倩
-
代碼
+關注
關注
30文章
4801瀏覽量
68735 -
車牌識別
+關注
關注
5文章
82瀏覽量
15672 -
車輛檢測
+關注
關注
0文章
31瀏覽量
10870
原文標題:最新優秀開源!車牌識別、車輛檢測、車輛跟蹤、違停檢測一網打盡!
文章出處:【微信號:CVer,微信公眾號:CVer】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論