孫嘉鑫,吳琳
(北方工業(yè)大學信息工程學院,北京100144)
根據(jù)相關的調(diào)查表明,我國有著六百萬盲人,出行問題一直困擾著盲人群體。盡管國家建設了許多有關盲人輔助的設施,但設施的管理,大眾的保護意識缺乏依然對他們的出行產(chǎn)生了極大的干擾,如在盲道上停放車輛、盲道上有瓶子等,給盲人出行帶來了困難。所以本文希望通過圖像識別技術,幫助盲人在出行時識別前方障礙物。
相比于傳統(tǒng)的檢測算法通過提取目標特征來實現(xiàn)檢測,近年來基于深度學習的計算機視覺算法可以有效地提高準確度和識別速度。本文將基于回歸的檢測方法中的YOLOv3算法實現(xiàn)通過單目攝像頭實時檢測障礙物。
近年來人工智能技術快速發(fā)展,其中有關計算機視覺方面的YOLOv3算法憑借其優(yōu)秀的性能引起了廣大研究員的興趣。2018年王殿偉等人[1],通過改進YOLOv3,利用K-means聚類方法選取目標候選框個數(shù)和寬高比維度,調(diào)整網(wǎng)絡參數(shù)并提高輸入圖像分辨率,多尺度訓練出最優(yōu)檢測模型,提升了紅外檢測行人的準確度并降低了漏檢率。2019年張富凱等人[2]實現(xiàn)基于改進YOLOv3的快速車輛檢測方法,通過增強深度殘差網(wǎng)絡提取特征,設計不同尺度的卷積特征圖,最終實現(xiàn)車輛預測任務。2019年趙德安等人[3],基于YOLOv3實現(xiàn)在不同光線環(huán)境下對遮擋、粘連和套袋等多種情況下的蘋果定位方法,其方法可以為機器人快速長時間高效率在復雜環(huán)境下識別蘋果提供理論基礎。
YOLOv3[3]是以YOLOv1和YOLOv2為基礎的改進版。YOLOv3采用Darknet-53網(wǎng)絡結構,Darknet-53借鑒了ResNet的殘差思想[3],在基礎網(wǎng)絡中大量使用殘差連接,因此將網(wǎng)絡結構設計地更深,解決了梯度爆炸以及梯度消失的問題。YOLOv3通過使用上采樣與Concat操作,融合了深、淺層的特征,最終輸出了3種尺寸的特征圖。分為應深層、中層和淺層的特征。深層的特征圖尺寸小,感受野大,利于檢測大尺度的物體,淺層的特征圖便于檢測小尺度的物體。
YOLOv3的另一種改進是將對象分類功能函數(shù)用Logistic取代了Softmax,Logistics可以實現(xiàn)多類別的預測,并且準確率不會下降。在輸出時可以顯示出一個物體的多重標簽。
圖1為一張常見的盲道圖片,顏色與周圍道路明顯不同,將原始圖片轉(zhuǎn)化到Lab色彩空間后,提取盲道圖片的b色彩分量,其對應的b分量圖片如圖1所示。
圖1盲道處理對比圖
獲取到b分量圖片之后,為了提取盲道,使用Otsu算法對b分量圖像進行二值化。所獲取的二值化圖像中有很多干擾,為了消除干擾,對圖像進行開操作,消除圖像中的零碎像素點,同時盡量保留盲道部分圖像信息。
獲取了盲道的二值圖之后,利用Canny算法對圖像進行輪廓提取,再利用Hough算法獲取盲道邊緣的直線數(shù)據(jù)。
算法的運行順序如圖2所示,先將圖片中的盲道提取出來,再通過YOLO檢測器進行障礙物檢測,最后得到結果圖片。
圖2完整流程
考慮到真實行走過程中會遇到的障礙,我們將類型分為自行車、摩托車、汽車、人、動物。在圖片的選取上,我們挑選不同時間、不同光照、不同地點、不同天氣的照片共2000張,其內(nèi)容為真實出行會遇到的各種路況。識別過程如圖3所示。
圖3 YOLO訓練流程圖
YOLO檢測過程:輸入YOLOv3模型的圖片大小為(416,416,3),分辨率不同的圖像將在輸入后被轉(zhuǎn)化為此分辨率。主干網(wǎng)絡為Darknet-53,Darknet-53網(wǎng)絡通過不斷的下采樣,降低分辨率,圖片通道數(shù)在不斷增加,從中提取shape為(52,52,256)、(26,26,512)、(13,13,1024)的圖片作為特征層提取特征。
獲取特征層之后,一部分用于物體檢測,一部分經(jīng)過上采樣之后與其他特征層結合后用于物體檢測。其中52×52的特征層用于大物體的檢測,26×26和13×13的特征層用于檢測中小物體。
YOLO利用上述三個特征層提取特征并用于檢測,由于本算法的數(shù)據(jù)集類別可識別8個種類,因而檢測結束后將輸出三個shape分別為(52,52,39),(26,26,39),(13,13,39)的檢測結果,其中包括了檢測的分類結果classes,檢測物體的中心位置(x,y),檢測出來方框的寬高w,h和最后檢測物體的置信度。
訓練過程:訓練時,將YOLO的輸出結果與實際結果進行計算loss,其中包括真實框與預測框iou的loss,(x,y)和寬高的loss和分類結果的loss,再利用優(yōu)化器調(diào)整參數(shù),經(jīng)過不斷地迭代訓練,不斷地降低損失,并對訓練圖像進行縮放、旋轉(zhuǎn)等操作,提高YOLO識別模型的識別準確度。
實驗需要的硬件環(huán)境為處理器Intel Corei5-8400,GPU為NVIDIA GTX1050Ti,操作系統(tǒng)為Windows 10,深度學習框架為PyTorch。實驗結果如圖4,盲道的檢測算法將圖片要檢測的部分提取出來,有效地減少圖像的識別范圍,減少無效識別,提升識別速率。經(jīng)過有效區(qū)域提取,YOLO檢測器依舊可以檢測出物體的輪廓以及物體類別。實驗結果表明經(jīng)過處理可以有效識別出存在于盲道上的物體。
本實驗中,mAP數(shù)值為96%左右如圖5,識別物體準確度高。正常人的行走速度為1m/s,YOLO的檢測速率為每秒15幀左右,盲道提取的速率為每秒33幀左右,該運算速率滿足常人步行速度需求,達到實時檢測的目的。
通過單目攝像頭實現(xiàn)實時測障具有價格低的特點,其產(chǎn)品受眾更廣,使用簡單。在日常的出行中,將攝像頭佩戴在身上,可以很好地輔助盲人的行走,躲避并識別前方物體。極大地提高了盲人出行的安全性,可以鼓勵更多的盲人走出家門。
圖4實驗結果圖
圖5 mAP圖
本文基于YOLOv3目標檢測算法實現(xiàn)了實時檢測物體,結合盲道提取算法識別出盲道上的障礙物,實現(xiàn)輔助盲人出行的效果。結果表明,在運算速度上和精準度上都可以為盲人的出行提供有效幫助。對于基數(shù)如此之大的盲人群體,該系統(tǒng)擁有著廣闊的應用前景。
由于實際情況中的復雜性,該系統(tǒng)存在對于重疊物體識別不完整的問題,下一步的工作將是提升疊放物體的識別準確率,以應對實際路況中出現(xiàn)的特殊情況。