涂宙霖 陳涵深



關鍵詞:YOLOv7;Jetson Orin;路面破損檢測;深度學習
0 引言
近年來,我國公路交通事業得到了快速發展,國家公路網不斷建成,截至2021年底,全國公路總里程達到528.07 萬公里,公路養護里程達到525.16 萬公里[1]。隨著國家公路網的不斷建設和運營,公路養護需求與日俱增,公路日常養護問題變得日益突出,交通路面的破損,如凹坑、裂縫、坑井以及塌陷[2]等異常問題直接影響交通效率和行車安全。國務院發布的《“十四五”現代綜合交通運輸體系發展規劃》明確提出,要加強交通基礎設施養護,加大養護新技術推廣力度[3]。因此,為加強道路養護,更好地保障道路質量和安全,對路面破損進行快速、準確的檢測已成為當務之急。
公路路面檢測主要分為人工檢測和自動化檢測兩類方法,由于人工檢測成本高、效率低、主觀性強等弊端,無法滿足路面破損快速、準確檢測的要求[4]。隨著傳感器、機器視覺、人工智能等新技術的發展,自動化檢測系統已成為研究熱點。國內外已有不少公司開發出商用路面檢測系統:如美國PSI 公司的Path?Runner 多功能道路檢測車[5]、加拿大Fugro Roadware 公司的ARAN系統[6]、國內中公高科的CiCS多功能快速檢測車[7]和武大卓越科技的ZOYON-RTM智能道路檢測系統[8]。這些商用路面檢測系統較多應用于路面質量的周期性檢測和評估,售價基本在百萬元級別,成本較高、無法推廣到日常路面巡檢工作。缺乏高性價比的自動化檢測設備,嚴重制約了檢測效率的提升和信息化管理系統的作用。
因此,研究一種檢測性能達到人工巡檢的診斷水平,同時又具有較低成本的路面破損自動化檢測系統具有深遠的意義。本文針對上述問題,設計了一種基于深度學習模型YOLOv7與邊緣檢測設備Jetson Orin 的路面破損檢測系統,利用攝像頭拍攝圖像,邊緣計算設備Jetson Orin進行圖像處理,利用YOLOv7算法進行路面破損檢測。該系統體積小、性能強、算法準確率高,可部署在普通的家用汽車進行道路破損實時檢測。
1 系統總體框架
系統整體設計如圖1所示,整個系統包含以下幾個模塊:圖像采集傳感器、路面破損檢測主機、顯示器、GPS模塊。
1.1 圖像采集傳感器
圖像采集傳感器可采用兩種方案,一種方案是選用羅技的StreamCam攝像頭,該USB攝像頭支持拍攝每秒60幀1080p Full HD的畫面,具備自動對焦及調整曝光,并采用USB-C 連接,實測效果很好;另一種方案選用海康威視MV-CA020-10GC工業相機,傳感器型號為IMX430,傳感器類型為CMOS,耙面尺寸為1/1.7″,像元尺寸為4.5μm,分辨率為1624×1240,最大幀率為60fps,GigE接口,選用鏡頭焦距為12mm,最大光圈F1.8。
1.2 破損檢測系統主機
破損檢測系統主機使用NVIDIA?最新的JetsonOrin開發套件,算力高達275 TOPS,性能是上一代產品Jetson AGX Xavier的8倍,適用于多個并發AI 推理管道,此外它還可以通過高速接口連接多個傳感器。主要配置為CPU:12 核Arm Cortex-A78AE v8.2 64 位處理器,具有3MB L2+6MB L3緩存,GPU具有2048個NVIDIA CUDA 內核和64 個張量內核@1GHz,采用NVIDIA Ampere 架構;內存32GB 256 位LPDDR5 @204.8 GB/s,硬盤為64GB eMMC 5.1 閃存,具有3 個USB3.2,整機功耗在15~50W可設定。
1.3 GPS 模塊
GPS模塊選用深圳星河微G6301模塊,內部采用ublox M8030 解決方案,支持GPS+GLONASS 雙模定位,內置FLASH,USB 供電,自適應1200~921600 波特率,1Hz輸出,NMEA-0183協議輸出。
2 軟件設計
如圖2所示,整個系統主要分為兩大模塊組成,第一部分為邏輯界面模塊,主要負責圖像輸入、圖像預處理、結果可視化等功能;第二部分為系統算法,實現路面破損的識別和分析功能。
路面破損檢測算法主要完成路面破損的自動識別,工作流程如圖3所示,采用YOLOv7識別當前圖像中的路面缺陷的類型及缺陷位置,并且輸出的結果可以用于計算路面破損狀況指數(PCI) 值。
3 深度學習算法
3.1 YOLOv7算法
YOLO算法作為one-stage目標檢測算法最典型的代表,其基于深度神經網絡進行對象的識別和定位,運行速度很快,可以用于實時系統。YOLOv7 是目前YOLO系列最先進的算法,在準確率和速度上超越了以往的YOLO系列。在5~160 幀/s范圍內,其速度和精度都超過了多數已知的目標檢測器,在GPU V100 已知的30 幀/s 以上的實時目標檢測器中,YOLOv7 的準確率最高[9]。YOLOv7的檢測思路與YOLOv4、YO?LOv5相似,YOLOv7整體的網絡架構圖如圖4所示:
從圖4可以看出,將neck層與head層合稱為head 層,實際上功能是一樣的。首先,先對輸入圖片預處理,對齊成640×640大小的RGB圖片,輸入backbone 網絡中,根據backbone網絡中的三層輸出,在head層通過backbone網絡繼續輸出三層不同size大小的fea?ture map,經過RepVGG block 和conv,對圖像進行預測,輸出最后的結果。YOLOv7的backbone層由若干BConv 層、E-ELAN 層以及MPConv 層組成,其中BConv層由卷積層+BN層+激活函數組成。YOLOv7 的head 層通過SPPCPC 層、若干BConv 層、若干MP?Conv 層、若干Catconv 層以及后續輸出三個head 的RepVGG block層組成[10-12]。
3.2 模型訓練
3.2.1 硬件環境
實驗的軟硬件環境如圖5所示,硬件為組裝的兼容機,CPU 為Intel i5-8500 處理器,24G DDR4 內存,256G硬盤和一塊Nvidia GTX3090 GPU。軟件的操作系統為Ubuntu18.04 64位。
3.2.2 訓練數據集
本文采用數據集為全球開放數據創新應用大賽道路路面病害智能分析算法賽道的公開數據集。該數據由車載監控相機拍攝的道路病害圖像,圖像數據為RGB JPG 圖像,分辨率為1600×1184,包含訓練集6000張,測試集A榜2000張,測試集B榜6000張。由于原數據集樣本標注一致性較差,所以召集了三位專業人員進行標識框和類型重新標注,把道路病害分為4個類型:裂縫1、井蓋2、坑槽3、修補4。本文把原訓練集和測試集A榜作為本文模型的訓練集(總計8000 張),測試集B榜中隨機選取3000個樣本作為驗證集,用于模型調參。
3.2.3 訓練過程
YOLOv7直接使用官方的PyTorch源碼,但對圖像增強方法中的一些參數做了適當修改,包括尺度變化設定為0.7,透視變換設置為0.001,隨機馬賽克系數為0.5,混淆系數為0.1,去除上下隨機翻轉,去除HSV隨機變化,以此來保障變換后的路面圖像仍能保存真實性。輸入圖像分辨率設定為960×960,訓練周期為200,其他參數使用默認值。
4 系統展示
4.1 系統原型機
組裝后的手持原型主機如圖6、圖7所示,手持操作時使用充電寶升壓供電,安裝在汽車上時可通過車站充電器供電,原型機可以實時采集路面圖像進行識別,準確率達到85%以上,檢測速率為15FPS。
4.2 實際道路測試
把原型機的攝像頭安裝在汽車的擋風玻璃上,主機放置在車輛上,研究開發的軟件設置成自動啟動后,Jetson Orin主機重啟后就會自動運行“路面破損自動檢測軟件”軟件,程序運行后,軟件實時顯示路面圖像,如圖8所示。
盒子上安裝一個按鈕,用于控制是否啟動路面破損狀況檢測,當用戶按下該按鈕時,系統就會調用內部的路面破損識別模塊,進行實時識別和數據上報。當路面不存在破損時,在圖像上方顯示綠色文字信息,內容為當前坐標信息;當路面存在破損時,如圖9 所示,就會根據破損類型使用不同顏色的邊框進行區域標注顯示,同時圖像上方顯示內容變成紅色,并增加顯示破損類型和破損等級。
5 結束語
本文設計了一種基于YOLOv7模型與邊緣檢測設備Jetson Orin的路面破損檢測系統,支持USB攝像頭或者工業相機進行道路圖像采集,利用邊緣計算設備Jetson Orin進行圖像預處理,選用YOLOv7模型進行道路破損檢測,模型的訓練和驗證上使用全球開放數據創新應用大賽道路路面病害智能分析算法賽道的公開數據集,可檢測出裂縫、井蓋、坑槽、修補四種類型的缺陷。系統體積小、成本低、性能強、算法準確率高,可部署在普通的家用汽車進行道路缺陷實時檢測。