背景介紹

近70年來,我國交通基礎設施極速發展。根據2018年末國家統計局發佈的最新數據,中國高鐵總里程已突破3萬公里,營業總里程達到14.6萬公里,覆蓋了大約99%的20萬人口以上的城市,居世界首位。

中國高鐵極大地方便了全國人民的工作及生活,鐵路也因此在我國有 “國民經濟大動脈” 之稱。而鐵路安全,作爲關係到國家和人民生命財產的大事,一直受到國家和鐵道部的高度重視。

要想將鐵路運輸中的各種治安事故降到最低,就需要鐵路管理中心的巡線員、檢修員對鐵路路基、路軌、岔道、信號燈、鐵路橋樑等基本路況進行全面巡查。

傳統的鐵路巡檢,一般會由專門的巡檢隊伍 24 小時不間斷的在萬里軌道上進行巡視。巡檢人員常年風吹日曬、跋山涉水,除了工作環境非常艱苦,還存在因巡檢人員身體狀況不穩定、判定標準不唯一等因素,造成巡查質量無法保證。

近些年,將無人機、機器人等搭載智能視覺識別系統的智能設備投放到自動化巡檢的相關技術越來越成熟,逐漸成爲鐵路管理單位積極推動的首選方案。

智能化鐵路缺陷檢測系統在搭建落地過程中,面臨諸多困難:

缺陷種類多,形狀、出現位置、面積等均不規則,且極其細微,傳統算法準確率低。單張圖片檢測速度要求高,終端部署硬件性能及成本需要權衡考慮。每類缺陷數據樣本少,模型訓練基礎素材有限。

基於飛槳自研算法

PP-YOLO的解決方案

目標檢測技術作爲計算機視覺的主要方向之一,應用非常廣泛。除了可以直接進行目標檢測,同時也是人臉檢測、行人檢測、文字檢測、關鍵點檢測、實例分割等複雜應用的基礎技術。

而說到目標檢測算法,就不得不提 YOLO 系列。YOLO 作爲單階段模型的代表之一,相較於更早提出的兩階段目標檢測算法,不僅擁有更快的預測速度,對於背景圖像(非物體)中的部分被包含在候選框的情況誤檢率更低,還擁有更好的算法通用性。以上這些特性,都使 YOLO 系列模型成爲工業目標檢測場景首選的算法。

PP-YOLO 是飛槳團隊在 YOLOv3 的基礎上又做了一系列深度優化。通過添加儘量不引入額外計算量的 trick 來提升 YOLOv3 模型的精度,最終在 COCO 數據集上達到了 45.9% 的精度;同時在 V100 單卡上達到了 72.9 FPS;在開啓 TensorRT 下,FP16 的推理速度達到 155.6FPS。這使得 PP-YOLO 在精度和速度上達到了最佳平衡,全面超越原生 YOLOv4 模型,成爲產業界最佳的目標檢測模型

在鐵軌缺陷檢測場景下,使用 PP-YOLO 對鐵軌進行缺陷檢測,檢測的精度和速度均達到了比較好的效果。

在一張 Tesla-V100 的顯卡上進行訓練,輸入尺寸爲 608*608,獲得了 99.13 的 mAP,在 trt_fp16 中實現了 1.86ms/幀的檢測速度。精度和速度雙雙滿足實際的生產需求。

方案詳細解讀

爲了兼顧 YOLOv3 模型的精度和預測速度,打造精度速度高性價比的工業實用模型,PP-YOLO 使用了精度速度更優的帶可變形卷積的 ResNet50vd 模型(ResNet50vd-DCN),預測速度提升 20%,精度也有小量提升。

在此基礎上,加入 Coord Conv 和 SPP 等運算量很小,但能有效提升特徵提取效率的 trick。

另外,還引入了基於 IoU 優化檢測框定位精度的 IoU Loss,IoU Aware 等方法。這些方法基本不引入額外的計算,但能有效地提高輸出預測框的定位精度,有效解決 YOLOv3 模型定位精度不高的問題。

在預測框後處理上,引入 Grid Sensitive 使得預測框學習和解碼更加穩定,同時 Matrix NMS 能更加快速有效地完成預測框的非極大值抑制,更高效地保留高質量的預測框,濾除低質量的預測框。

在訓練過程中,PP-YOLO 模型使用 DropBlock 這種更適用於目標檢測的 dropout 方法來減小過擬合,同時使用 EMA(指數滑動平均)的訓練方法,即使用梯度歷史加權平均值來平滑掉難樣本或者誤差樣本帶來的梯度抖動,讓訓練過程更加平滑穩定。

通過上述策略對 YOLOv3 模型進行深度優化,PP-YOLO 模型在精度和速度上都大幅優於 YOLOv3 模型,甚至優於更新的 YOLOv4 模型。因此 PP-YOLO 可以說是一個非常適用於工業項目的高性價比實用性模型。

更多關於 PP-YOLO 模型的介紹和文檔,可見

https://github.com/PaddlePaddle/PaddleDetection/blob/release/0.4/configs/PP-YOLO/README_cn.md

針對鐵軌缺陷檢測這一場景,PPYOLO 的能力得到了很好的發揮,具體如下所述。

更高的定位精度 -- 引入 IoU Aware 等方法

PP-YOLO 的一個特點就是定位精度高。採用了 IoU Loss ,IoU Aware ,Matrix NMS 等提升定位精度的方法,將訓練好的模型在驗證集上進行驗證時,預測框和真實框基本重合。

因此,在實際的測試過程中,不僅很精準地將缺陷識別出來,而且預測框的位置十分貼近缺陷,可以利用預測庫的長度和寬度實現缺陷的擬合。不僅利用 PP-YOLO 實現了缺陷的定位,也給缺陷的定量分析提供了依據。

從圖中可以看出,預測框緊貼缺陷。最終根據實際的缺陷像素和預測框的大小進行擬合,以預測框的內切橢圓面積計算缺陷的大小。

2. 更多尺度範圍的檢測 -- 融合 SPP

Yolov3 引入了多尺度檢測,兼容了對大小目標的識別。但是工業場景的缺陷往往非常小,只有幾十個像素。PP-YOLO 在 YOLOv3 的基礎上融合了 SPP,進一步提升模型對不同尺度的特徵提取能力,更好地應用於缺陷檢測。

下圖中的缺陷,大的缺陷將近 40mm,而小缺陷只有 2mm。

如何實現大小缺陷均可被檢測出,PP-YOLO 交出了滿意的答卷。

3. 使用數據增強策略提升樣本豐富度

產業中缺陷數據樣本少,是產業普遍面臨的困難。而數據增強策略是最常見、最容易實現的緩解數據樣本少問題的方法。

在本項目中使用鏡像轉置、模糊處理、亮度變化、圖像合成等多種手段進行數據增強。

4. 在 Window 上實現高性能部署

最終模型部署系統爲 Windows10 系統,計算設備爲 1080ti。整體解決方案思路是利用 C# 調用 C++dll 的方式:

C# UI 界面從工業相機直接獲取二進制流傳文件傳給 C++ 的 dll;C++ 將二進制流文件轉成 Mat 數組,進而實現預測;預測的結果列表返回給 C#,C# 將結果畫在圖上。

利用 Paddle-Tensor-RT 高性能 C++ 預測庫,實現了高效率部署。最終實現單幀預測最快速度爲 1.38ms。

除了在 Windows 上的部署,PP-YOLO 根據不同的硬件平臺提供了多種部署方式。例如:

Nvidia-Jetson 設備部署Android/Ios/ 樹莓派部署英特爾設備上通過 OpenVINO 實現加速部署

至此 PaddleDetection 的 PP-YOLO 就順利部署在快速行駛的鐵軌檢測車上。此方案可以精準、實時地檢測鐵軌的缺陷,保障鐵路及乘客的安全。

搭載 PP-YOLO 檢測算法的自動鐵軌檢測車,極大的減少了鐵軌檢測人員長時間風吹日曬;同時,免去了檢測人員爲了避開車輛行駛的正常時段,不得不黑白顛倒作業的艱辛,爲鐵路行業智能化升級又貢獻了一股力量。

參考鏈接

如果您想詳細瞭解更多 PaddleDetection 的相關內容,請參閱以下文檔。

PaddleDetection 項目地址:

GitHub:

https://github.com/paddlepaddle/paddledetection

Gitee:

https://gitee.com/paddlepaddle/PaddleDetection

PP-YOLO 模型的介紹和文檔:

https://github.com/PaddlePaddle/PaddleDetection/blob/release/0.4/configs/PP-YOLO/README_cn.md

飛槳(PaddlePaddle)以百度多年的深度學習技術研究和業務應用爲基礎,是中國首個開源開放、技術領先、功能完備的產業級深度學習平臺,包括飛槳開源平臺和飛槳企業版。

飛槳開源平臺包含核心框架、基礎模型庫、端到端開發套件與工具組件,持續開源核心能力,爲產業、學術、科研創新提供基礎底座。飛槳企業版基於飛槳開源平臺,針對企業級需求增強了相應特性,包含零門檻 AI 開發平臺 EasyDL 和全功能 AI 開發平臺 BML。

EasyDL 主要面向中小企業,提供零門檻、預置豐富網絡和模型、便捷高效的開發平臺;BML 是爲大型企業提供的功能全面、可靈活定製和被深度集成的開發平臺。

相關文章