周裔揚,鄧三鵬,祁宇明,王 振,陳 偉,李丁丁
(1.天津職業技術師范大學機器人及智能裝備研究院,天津 300222;2.天津市智能機器人技術及應用企業重點實驗室,天津 300352)
移動機器人目標檢測是機器人對抗、軍事偵察和物料搬運等領域的關鍵技術。移動機器人通過所部署的視覺傳感器了解周圍的復雜環境,識別周圍的目標,并對其進行定位。近年來,基于深度學習的目標檢測算法在檢測效果方面取得了進展,同傳統方法相比,在復雜環境下的準確率和檢測速度有著質的飛躍。深度學習檢測算法在語音識別、圖像識別和自然語言處理等領域得到應用,基于卷積神經網絡的移動機器人檢測算法具有廣泛的應用前景和重大的實用價值[1]。卷積神經網絡是一種通過對現有的大量數據進行訓練從而搭建一個具有特定特征的模型來進行特征學習的機器學習方法,目前為止已經有R-CNN,Faster R-CNN,Fast R-CNN 和YOLO 等檢測算法。YOLO 采用徹底的端到端的檢測方法,不需要區域建議尋找目標,具有檢測速度快,背景誤判率低等優點[2]。目前經過幾年的更新迭代,已經更新到YOLOv5。
Yolov5 目標檢測網絡中有Yolov5s、Yolov5m、Yolov5l 和Yolov5x 一共四個版本。Yolov5s 網絡是Yolov5 系列中深度最小,特征圖寬度最小的網絡,是其它3 種的基礎。鑒于研究的檢測目標是移動機器人,根據檢測的目標大小,為了保證檢測目標的速度和精度以及后續的研究目的,由此選擇Yolov5s 作為主干網絡。Yolov5s 的網絡結構如圖1 所示。

圖1 YOLOv5 的網絡結構
YOLOv5 核心的運行流程為:
(1)輸入端部分:輸入端首先使用Mosaic 數據增強的方式對數據集進行隨機縮放、隨機裁剪、隨機排布,通過選取4 張圖片進行拼接后投入訓練,這樣的方式豐富了圖像的背景,同時也增強了網絡檢測小目標的能力,大大提高了網絡的魯棒性[3]。在YOLO算法中,根據數據集的差異,初始都會有設定長寬的錨框。在訓練過程中,網絡會在初始錨框的基礎上,先輸出預測框然后同真實框ground truth 進行比較,計算出雙方的差距,再反向更新錨框,迭代網絡參數,這樣就可以獲取訓練集中最佳的錨框值。
(2)骨干網絡部分:骨干網絡部分包括Focus 結構和CSP 結構。Focus 結構指的是輸入608×608×3的圖像,隨后進行切片操作,從而得到304×304×12的特征圖,隨后再經過一次32 個卷積核的卷積操作,最后輸出304×304×32 的特征圖[4]。在Yolov5s中,含有兩種CSP 結構,其中,Backbone 主干網絡使用CSP1_X 結構,Neck 則使用CSP2_X 結構。
(3)多尺度特征融合模塊[5]部分:多尺度特征融合模塊使用的是FPN(Feature Pyramid Networks,特征金字塔網絡)+PAN(Pyramid Attention Network,金字塔注意力網絡)結構。FPN 是通過由上而下的方式將頂端的特征信息與骨干網絡的特征信息相融合,傳遞強語義特征信息,隨后PAN 再通過由下而上的方式進一步實現強定位特征的傳遞。兩者相結合構成了多尺度特征融合模塊部分,加強網絡的特征信息。
(4)預測端部分:預測端輸出3 個尺度的特征圖,分別為19×19、38×38 和76×76 的網格,對應檢測大目標、中目標、小目標。在最后,使用非極大值抑制(NMS)的方法,篩選掉重復冗余的預測框,保留下置信度最高的預測框信息,完成預測。
使用Varifocal Loss 替換原先的Focal Loss 來訓練密集目標檢測器來預測IACS(置信度和定位精度的IoU 感知分類評分)[6]。Varifocal Loss 源自于Focal Loss。在密集目標檢測器訓練中,常常會有前景類和背景類之間及其不平衡的問題,所以我們常常會使用Focal Loss 在解決此類問題。Focal Loss 定義為:

其中y∈{±1}為ground truth 類,而p∈[1,-1]則為前景類的預測概率。如公式所示,調制因子(為前景類和為背景類)的作用是減少簡單樣例的損失貢獻,同時相對增加誤分類樣例的重要性。
因此,Focal Loss 防止了訓練過程中大量的簡單負樣本淹沒檢測器,并將檢測器聚焦在稀疏的一組困難的例子上。
在訓練密集目標檢測器時,通過借鑒Focal Loss的加權方法來解決在對連續IACS 進行回歸時類別不平衡的問題。但與此同時,不同的Focal Loss 處理的正負相等,存在不對稱的對待。這里Varifocal loss也是基于binary cross entropy loss,定義為:

其中p為預測的IACS,代表目標分數。對于前景點時,將其ground truth 類q設為生成的邊界框和它的ground truth(gt_IoU)之間的IoU,否則為0,在對于背景點時,所有類的目標q為0。
如公式所示,使用q的因子縮放損失后,Varifocal loss 僅減少了負例(q=0)的損失貢獻,并沒有以同樣的方式降低正例(q>0)的權重。因為positive 樣本相對于negatives 樣本非常罕見,由此保留它們的學習信息。另一方面,受PISA 的啟發將正例與訓練目標q加權。如果一個正例的gt_IoU 比較高,則它對損失的貢獻就會比較大。因此需要把訓練的重點放在那些高質量的正面例子上,高質量的正面例子同低質量的例子相比,其可以獲得更高的AP,對訓練也更為重要。
移動機器人數據集包含了醫療機器人、巡邏機器人、防爆機器人、消防機器人、物流機器人等各個機器人功能領域,并在不同的移動機器人移動視頻中截取了一部分圖片作為數據集,在數據集選擇方面涵蓋了絕大部分主流的移動機器人,同時也涵蓋了各種移動機器人工作場景,具有豐富的多樣性和優秀的泛化能力。
實驗設計的整體框架流程圖如圖2。

圖2 整體框架流程圖
首先在平臺上訓練好基于YOLOv5 的移動機器人模型,然后將訓練好的模型部署在Jetson TX2 開發板上,移動機器人利用攝像頭實時采集現場圖像后傳輸到Jetson TX2 開發板中進行處理,Jetson TX2 開發板利用訓練好的模型實時監測圖像中是否含有移動機器人,最后將檢測結果通過串口發送給終端STM32,STM32 控制移動機器人采取追蹤,撤退等操作。最終搭建的機器人系統硬件如圖3,RGB-D 相機固定在移動機器人前端,處理采集環境信息的開發板固定在移動機器人后端。二維激光雷達位于移動機器人最上方,其通過高速旋轉的激光發射器和接受器來獲得移動機器人周圍二維水平面上的點云信息,幫助移動機器人獲取自身的位置,為移動機器人自主導航提供支持。

圖3 移動機器人硬件平臺
實驗中的運行環境:CPU 為Intel i7 9750H,GPU為NVIDIA GeForce RTX 2060,內存為16G,操作系統為windows 10,安裝CUDA11.2 庫文件,開發語言為Python,訓練平臺是Pycharm,訓練采用的深度學習框架為pytorch1.8.1。訓練選用的batchsize 為16,epochs為300,選用的權重為YOLOv5s。
圖為改進后的YOLOv5 網絡損失函數曲線,由圖4 可以看出,訓練模型迭代80 次后損失函數收斂。直到訓練完成時,都未產生過擬合的現象,訓練效果理想。

圖4 改進的YOLOv5 損失函數曲線
實驗檢測效果如圖5 所示,各種類型的移動機器人可以被很好的檢測出來。

圖5 部分檢測識別效果
在機器學習模型評估中,混淆矩陣解析法是評價模型準確度中最基本和直觀的方法?;煜仃嚾鐖D6 所示。

圖6 混淆矩陣解析法
準確率(Precision)指的是所得數值與真實值之間的精確程度;預測正確的正例數占預測為正例總量的比率,一般情況下,準確率越高,說明模型的效果越好。準確率公式如下:

召回率(Recall):預測對的正例數占所有正例的比率,一般情況下,Recall 越高,說明有更多的正類樣本被模型預測正確,模型的效果越好。召回率公式如下:

模型評估中,單一追求Precision 或者單一追求Recall 都會造成非常嚴重的錯誤檢測,所以我們需要對模型的Precision 和Recall 兩者進行結合,綜合考量。由此我們使用mAP(mean Average Precision)對目標檢測算法性能進行評價。AP指的是,利用不同的Precision 和Recall 的點的組合作圖以后所圍成圖形的面積,這個面積就是某個類的AP值,而mAP就是所有的類的AP值求平均。
通過分析訓練數據,并使用Python 繪制mAP圖像,圖像如圖7。

圖7 模型性能評估
通過數據結果,該模型的mAP達到了94.6%,檢測效果優異,絕大部分的移動機器人樣本都可以被該模型很好的檢測出來。
為了驗證YOLOv5 改進算法的性能,研究選取相同的數據集并在不同的算法上進行對比實驗。對比實驗包含的算法有SSD 算法、Faster R-CNN 算法、YOLOv5 算法和改進后的YOLOv5 算法,對比結果如表1。

表1 不同算法檢測性能對比
分析數據可以看出,改進后的YOLOv5 目標檢測算法相對于Faster R-CNN 算法和SSD 算法的各項模型評估指標都有顯著提升。而比起改進前的YOLOv5目標檢測算法在mAP上提升了1.69%,識別速度也達到了89 幀/秒。
研究將YOLOv5 目標檢測網絡模型應用到移動機器人目標檢測領域,使用訓練集對目標檢測網絡模型迭代80 次后損失函數收斂。通過使用Varifocal Loss 替換原先的Focal Loss 來訓練密集目標檢測器來預測IACS 改進后的檢測網絡性能提升,目標檢測模型mAP 達到94.6%,且對環境具有一定的魯棒性,實現了移動機器人的目標檢測精確度提升。但移動機器人種類較多,后續將在數據集完善、提高不同情形下的識別準確率等方面進一步研究。