劉 源,張榮芬,劉宇紅,程娜娜,劉昕斐,楊 雙
(貴州大學 大數據與信息工程學院,貴州 貴陽 550025)
世界衛生組織WHO 世界視力報告資料顯示,全球范圍內約有22 億人患有視力損傷和盲癥,中國盲人數量位列世界第一[1-2]。出行是盲人生活的一個難題,盲人出行的輔助工具主要有盲仗、導盲犬以及盲道。但盲杖的探測范圍有限、速度慢;導盲犬訓練周期長、數量少且有些場合對于犬類有出入限制;現實中盲道更是存在不連貫、有障礙物、觸感圓點被磨平以及磚塊受損等諸多問題[3-4]。傳統的盲人輔助手段實際上都不能滿足當前盲人的實際出行需求,但隨著深度學習的快速發展,基于計算機視覺的目標障礙物檢測方法帶來了新的機遇和發展方向。
自2012年Alex Krizhevsky等[5]提出了AlexNet模型,卷積神經網絡(CNN)開始迅猛發展并在計算機視覺領域廣泛應用[6],對目標物進行檢測的算法逐一被提出。2014 年,Ross Girshick 等提出R-CNN,首次利用CNN 進行目標檢測。2015 年,Ross Girshick 等人在提出fast RCNN 之后又與Kaiming He 團隊提出faster RCNN,之后Mask R-CNN 等一些網絡也相繼被提出[7-10]。這些基于區域提名的檢測網絡能達到很好的準確度,但是計算量較大,若應用于盲人出行時,不能滿足實時監測的要求。
2016 年YOLOv1 檢測算法被提出,同年SSD檢測算法被相繼提出以及2018 年Tsung-Yi Lin 的RetinaNet 檢測算法的發表,YOLO 系列以及SSD系列等一些單目標實時檢測算法得以發展[11-13],并廣泛應用于不同場景下的實時檢測任務中。戶外的目標檢測任務常常伴隨著光照強度的變化、采集圖像的失真等問題使得目標檢測的精度不高。2019 年,馬永杰等[14]基于原始的YOLOv2 模型和嵌入式系統實現了車輛自動跟蹤、車流量的實時檢測任務,由于未考慮光照原因對戶外檢測任務精度的影響,在車輛自動跟蹤、車流量的實時檢測任務上所取得的檢測精度并不理想。光學重建圖像、應用于深度學習圖像處理的光學計量等方法有效地減少了由于圖像失真曝光或噪點等光學因素造成的檢測精度的丟失[15-17]。隨著關注像素重要特征的注意力機制開始應用于神經網絡,注意力機制為單目標檢測算法在不同應用背景下的障礙物檢測的準確率帶來了巨大提升。2020 年,李文濤[18]改進了YOLOv3-tiny算法,融合淺層特征并使用SE-Net[19]通道注意力機制和CBAM[20]空間注意力機制作為混合注意力模塊,實現了農機田間作業時行人和農機障礙物的改進檢測模型,使得農機障礙物的檢測準確率得到了巨大提升。2021 年,劉力等也提出一種基于YOLOv4 的鐵道侵限障礙物檢測方法,在錨框選擇上對K-means 算法聚類中心的選取方法進行改進并引入了注意力機制,使得檢測速度和精度都有所提升[21]。2022 年,王海軍[22]基于YOLOv5 算法對鐵路的軌道障礙物進行檢測。雖然引入注意力機制為算法在識別目標的準確度帶來了一定程度的提升,然而上述方法都沒有很好地利用通道信息以及網絡主干提取的各個尺度的語義信息,且預測框位置回歸沒有很貼近檢測目標,預測框的回歸精度和速度都有待提升。
針對上述問題,本文出于對盲人出行中需要實時且精確地檢測各種可能會造成阻礙的目標類別的考慮,采用YOLOX[23]作為本文的基礎模型進行算法改進,主要貢獻在于:
(1)將原特征融合網絡改進為CE-PAFPN,以亞像素跳變融合模塊(Sub-pixel Skip Fusion,SSF)和亞像素上下文增強模塊(Sub-pixel Context Enhancement,SCE)來充分利用通道信息和不同尺度的語義信息,通道注意力引導模塊(Illustration of Channel Attention Guided Module,CAG)來減少混疊效應,有效地提升了的檢測模型的精度。
(2)在預測網絡之前引入全局注意力機制GAM,減少信息彌散和無用信息的干擾,并放大全局交互表示來提高模型性能,使網絡模型更加聚焦在障礙物的檢測上。
(3)將原有的位置回歸損失函數替換為SIOU-LOSS,解決了預測框與真實框之間方向不匹配的問題,也考慮到了預測框和真實框距離、形狀和交并比(Intersection-over-Union,IOU),對目標的定位更加精準,速度更快。
YOLOX 網絡結構由Input、Backbone、Neck、Prediction 4 個部分組成,如圖1 所示。

圖1 YOLOX 網絡結構圖Fig.1 YOLOX network structure
Input 輸入端采用Mocsicp 和Mixup 數據增強,豐富了檢測圖片的背景以及目標個數,對小目標的檢測效果有所提升。Backbon 主要采用了Focus模塊、殘差組件以及跨階段局部融合網絡CSPNet[24]。Focus 采用切片重組操作把高分辨率的圖片拆分成多個低分辨率的圖片,有效減少了下采樣帶來的信息損失。殘差組件由1×1卷積和3×3 卷積組成主干與不做任何處理的殘差邊構成,使模型更易優化,通過增加網絡的深度也提高了模型的準確率。Neck 部分采用FPN 結構和PAN 結構構成的路徑聚合網絡PANet[25],自上而下將高層的特征信息與不同層的CSP 模塊輸出的特征進行融合,再通過至下而上的路徑聚合結構聚合淺層特征,從而充分融合了不同層的圖像特征。Prediction 預測部分采用了解耦頭,由一個公共卷積、兩個分支的額外卷積和3 個單獨任務(Reg、Obj、Cls)的卷積構成,將3 個預測結果進行堆疊后進行解碼操作,通過無錨點的方式減少預測結果,完成初步的篩選,再利用SimOTA 算法對預測結果進行精細化的篩選,得到最終的預測結果。
基于YOLOX 算法,本文提出了融合多尺度的注意力加權檢測算法CE-YOLOX。較原模型主要改進部分為特征融合網絡Neck,采用CE-FPN[26]的融合思想,以亞像素跳變融合模塊SSF 和亞像素上下文增強模塊SEC 來充分利用通道信息,充分考慮各個尺度的特征進行融合,并采取輕量的通道注意力引導模塊CAG 減輕多尺度融合帶來的混疊效應,引入全局注意力機制GAM 來聚焦有效信息。預測部份Prediction 采用SIOU-LOSS來加快邊框回歸的精度和速度。總體結構如圖2所示。

圖2 CE-YOLOX 網絡結構圖Fig.2 Structure of CE-YOLOX network
傳統的特征融合網絡大多存在通道縮減的內在缺陷,這導致語義信息的丟失,且各尺度融合的特征圖可能會導致嚴重的混疊效應。2021 年,華中科技大學提出了一種通道增強的特征金字塔CE-FPN。CE-FPN 受亞像素卷積的啟發,提出了SSF 和SCE 兩種新的通道增強方法,擴展了亞像素卷積固有的上采樣功能,將豐富的通道信息集成到模塊I 中,以輕量級的通道注意引導模塊(CAG)減少各個尺度融合產生的混疊效應混淆定位和檢測目標。
SSF 模塊主要將低分辨率的特征采用亞像素卷積作為上采樣的方式與臨近的高分辨率特征進行通道融合,主干提取出的后3 個特征具有豐富的通道信息,SSF 模塊將臨近的特征圖兩兩連接,有效利用了高層特征豐富的通道信息來增加特征融合網絡的表征能力。SSF 結構如圖3所示。

圖3 SSF 模塊Fig.3 Sub-pixel skip fusion (SSF) module
PAFPN 雖然融合了不同尺度的特征信息,但高級語義特征沒有很好地作用到更大的感受野。為了更好地解決高分辨率的特征圖只具有單一的上下文信息且需要更大的感受野獲取更多語義信息的問題,本文采用集成的特征圖I 的框架,并且采用SCE 模塊利用feature4 豐富的通道信息。SCE 的核心思想是融合大范圍的局部信息和全局的上下文信息來生成更具有辨識力的特征,假設本文輸入的特征為2w×2h×8C,輸出集成特征圖I 為4w×4h×C,本文模型C設定為64。SCE 模塊如圖4 所示。3 條路徑的作用分別為提取局部的特征信息、為更大的感受野獲取豐富的上下文信息以及獲取全局上下文信息,最后將3個特征映射聚合為集成映射I。

圖4 SCE 模塊Fig.4 Illustration of sub-pixel context enhancement (SCE)
對于特征融合網絡的改進,SSF 和SCE 模塊融合了更多的跨尺度的特征映射,因此混疊效應較原模型更為嚴重,這會影響模型的定位和識別任務。為了減輕鋸齒效應產生的負面影響,加入了受CBAM 啟發的通道注意力引導模塊(CAG),如圖5 所示。首先采用全局平均池化和全局最大池化來聚合兩個不同空間的上下文信息,分別通過全連接層后進行元素求和,最后通過sigmoid函數對輸出特征向量進行合并。該過程可用公式(1)表述為:

圖5 通道注意力引導模塊示意圖Fig.5 Illustration of channel attention guided module(CAG)
注意力機制能更加關注特征圖中的有效信息,抑制無效信息,同時也能減輕在特征融合網絡中由于跨尺度特征融合產生的混疊效應,有效地提升網絡特征提取的性能。各種注意力機制在卷積神經網絡中的應用為計算機視覺任務的性能帶來了顯著提高。Woo等人提出的CBAM 注意力機制結合空間注意力機制和通道注意力機制相較于SE-Net 有效地解決了抑制特征圖中不重要的信息效率低的問題,但也忽略了通道與空間的相互作用,從而丟失了跨維信息。Misra 等[27]人在2021 年提出的三元注意模塊(TAM)通過對每一對三維空間(通道、空間寬度和空間高度)之間的注意力來提升效率,但每次只應用在其中的2 個維度,并不是3 個維度。為了減少信息彌散和放大跨維度的交互作用捕捉所有3 個維度的重要特征,2021年,YIchao Liu 等人在CBAM 的基礎上進行改進,提出全局注意力機制(GAM)。
GAM 采用CBAM 中的順序通道-空間注意力機制,并對子模塊進行重新設計。GAM 的基本結構如圖6 所示。
通道注意力子模塊如圖7 所示,使用三維排列在3 個維度上保留信息,再用雙層MLP(多層感知機MLP 是一種編碼-解碼結構,與BAM 相同,其壓縮比為r)放大跨維通道-空間的依賴性。

圖7 通道注意力子模塊Fig.7 Channel attention submodule
空間注意力子模塊如圖8 所示。為了關注空間信息,使用兩個卷積層進行空間信息的融合,還從通道注意力子模塊中使用了與BAM 相同的縮減比r。同時,由于最大池化操作會減少信息的使用,產生消極的影響,在該子模塊中去除了池化操作以進一步保留特性映射。

圖8 空間注意力子模塊Fig.8 Spatial attention submodule
3.3.1 目標框回歸損失函數
傳統的目標檢測損失函數依賴于邊框回歸度量的聚合,如預測框與真實框中心點之間的距離、重疊面積和長寬比(GIOU、CIOU、DIOU等)[28-29],卻沒有一種方法考慮到真實框與預測框之間的方向不匹配問題,這會導致模型在收斂過程中的速度較慢。本文選用SIOU-LOSS[30]替換原模型中的IOU-LOSS 來計算位置回歸損失函數。SIOU 具體由4 個部分組成,分別是角度損失(Angle cost)、距離損失(Distance cost)、形狀損失(Shape cost)和IoU 損失。
角度損失的公式如式(2)所示:

圖9 角度損失對損失函數的貢獻Fig.9 Scheme for calculation of angle cost contribution to the loss function
考慮角度損失,重新定義距離損失,公式如式(3)所示:
就全國范圍而言,較之人均轉移支付額,人均GDP對中國教育水平提高的貢獻率要更高,為2.7%;而人均轉移支付額對中國教育水平提高的貢獻率為0.96%,僅為人均GDP貢獻率的35.6%。可見較之財政轉移支付資金的支持,地方經濟實力的提升更能有效地推動中國地區間教育水平的趨同。

圖10 真實框與預測框之間距離的計算方案Fig.10 Scheme for calculation of the distance between the ground truth bounding box and the prediction of it
形狀損失定義為:
3.3.2 分類置信度損失函數
VarifocalLOSS[31]新型焦變損失是基于交叉熵損失函數進行的改進,用加權方法解決類別不平衡的問題,但對于正負樣本處理策略是不對等的。定義為:
其中:α是用來平衡正負樣本的權重,pγ為調背景類的調制因子,p為預測的分類得分。對于正樣本,q是預測框與真實框之間的IOU;對于負樣本,q為0。對負樣本進行衰減,對正樣本q進行加權,可以使訓練更聚焦于正樣本,避免大量的負樣本對訓練時損失函數的影響。
對于本文在盲人出行時常見的可能會對其造成阻礙的目標數據集的制作,從路面上凸出(如fire hydrant、road-cone 等)、路面凹陷(如puddle、pothole 等)以及步行中突然出現的物體(如cat、dog 等)這3 種情況考慮,收集VOC、ImageNet 等公共數據集以及在不同光照、天氣及角度采集拍攝的圖片。拍攝圖片使用labeling 圖形圖像注釋工具進行數據的標注。本實驗數據集將檢測障礙物分為20 類,共計15 805 張圖片。表1 所示為各類別的具體數量。訓練集和驗證集按9∶1 的比例隨機進行劃分。

表1 數據集中各類別檢測物的數量Tab.1 Number of each type of test in the dataset
如表2 所示,本文實驗均在服務器Ubuntu 16.04操作系統下運行,計算機處理器型號為AMD 3900X,顯卡型號為NVIDIA GTX 3090,內存為32G。采用Pytorch 1.6.1 框架,所使用的編程語言為Python 3.6,加速環境為CUDA 11.4。

表2 實驗條件Tab.2 Experimental conditions
本文采用遷移學習的思想,前50 輪凍結模型主干,加快訓練速度,迭代批次為64;50 輪之后解凍訓練,迭代批次為32。共訓練113 輪。具體訓練參數如表3 所示。

表3 實驗參數設置Tab.3 Experimental parameter setting
本文采用準確率(Precision)和召回率(Recall)計算所有障礙物類別的平均精度mAP(mean Average Precision)來評估模型的整體性能,用平均精度AP(Average Precision)對每一類障礙物的檢測結果進行評估。P、R、AP 和mAP 計算公式如式(7)~(10)所示:
其中:n表示為檢測目標的類別數,TP 表示預測正確的正樣本數,FN 為預測錯誤的正樣本數,FP表示為預測錯誤的正樣本數,TP+FN 為全部正樣本數量,TP+FP 為全部被分為正樣本的數量。
4.3.1 不同模塊分析效果
為了檢驗本文改進算法的檢測性能,以YOLOX原模型為參照,通過多個模塊組合的方式進行5 組實驗,驗證各個模塊的有效性,如表4 所示。

表4 消融實驗結果Tab.4 Results of ablation experiment
在第一組實驗中,將原模型的損失函數更改為SIOU-LOSS 之后,mAP 從88.08%提升至88.22%。在第二組實驗中,在第一組實驗的基礎上將特征增強網絡PAFPN 改進為CE-PAFPN后,特征融合網絡在減少丟失通道信息的同時充分利用了主干網絡產生的4 個尺度的特征進行特征融合,增加了模型檢測的準確性,降低了漏檢率,使檢測模型整體的mAP 從88.22%提升至90.02%。在第三組實驗中,嘗試將原模型的分類置信度損失替換為VariFocalLOSS,與第一組實驗中單獨替換為SIOU 相比,整體mAP 提高了0.13%,但VariFocalLOSS 在加入CE-PAFPN、GAM 后的第四、五組實驗中并沒有比SIOU 加入CE-PAFPN、GAM 后的第二、六組實驗表現更好。第六組實驗在第二組實驗的基礎上加入GAM注意力機制后,mAP 從90.02%提升至90.53%,增加了0.51%,構成本文模型。原模型與本文模型的各類目標精度如圖11 所示。比較各個類別檢測的精度,CE-YOLOX 的檢測效果都有不同程度的提升。在YOLOX 模型上表現不好的類別,如bench、pottedplant 的精度也分別提升了0.6%及0.7%。

圖11 YOLOX 與CE-YOLOX 測試結果對比圖Fig.11 Comparison of YOLOX and CE-YOLOX test results
注意力機制在網絡中添加的位置不同,模型的檢測效果也會有差異。在第二組實驗的基礎上,進行了兩組對比實驗,最終確定注意力機制在模型中的添加位置,組成本文最后的網絡結構。
由此可見,由于特征增強網絡融合了多尺度信息,導致網絡產生了混疊效應,GAM 注意力機制添加在特征增強網絡之前并不合適,對網絡的整體檢測效果提升有限。GAM 注意力機制添加在特征增強網絡之后就很好地緩解了在特征增強網絡部分產生的混疊效應問題。
4.3.2 不同模型效果對比
為了驗證本文改進算法的有效性,本文將RetineNet、Efficiented、SSD、YOLOv5 和本文基礎算法YOLOX 在同一數據集下進行對比實驗,結果如表5 所示。

表5 不同位置GAM 注意力機制效果對比Tab.5 Comparison of the effects of different position GAM
由表6可知,對于盲人出行道路障礙物檢測的整體mAP,本文模型優于RetineNet、Efficiented、SSD、YOLOv5、YOLOX。在單張圖片的檢測速度上,YOLOX 原型最快。雖然本文模型單張圖片的檢測速度低于原模型,但依然滿足實時目標檢測的需求,達到了模型精度與速度的平衡。
圖12 為本文所提改進模型及YOLOX 和YOLOv5 三種檢測模型對幾類在出行過程中會對盲人造成阻礙的障礙物的檢測效果。從圖12 可以看出,所提的改進模型CE-YOLOX 的預測框與真實框的重合度更高,對于目標的定位更準確,對檢測目標的準確率更高。

圖12 3 種模型檢測對比圖Fig.12 Comparison of three model checks
為了驗證改進的檢測算法CE-YOLOX 在實際工程中的應用,將其在服務器上訓練完成后部署在邊緣計算平臺進行實驗。實驗所設計的主從式的視障人群出行監測系統包括高性能NVIDIA Xavier NX邊緣計算板(導盲系統)、基于LD3320的語音交互模塊、藍牙模塊、雙目攝像頭、基于香橙派Range Pi 實現的定點導骯等工具、Ubuntu18.04操作系統、OpenCV3.4、TensorFlow1.15 等工具與框架。圖13 為導盲系統流程框圖。

圖13 導盲系統流程框圖Fig.13 Flow diagram of guide system
將CE-YOLOX 以及YOLOv5、YOLOX 移植到導盲系統實物平臺中進行對比實驗,其檢測效果如表7 所示。在NVIDIA Xavier NX 邊緣計算板上,各算法檢測的準確度與表5 相同。YO-LOv5、YOLOX 的檢測速度雖略高于本文所提出的CE-YOLOX,但CE-YOLOX 對目標識別的準確度要優于YOLOv5、YOLOX,同時也滿足了盲人出行檢測所要求的實時性,在實際應用中更符合對盲人出行可能造成障礙的物體目標的檢測實時性和準確度的要求。

表7 3 種算法在Nvidia Xavir NX 上的檢測效果對比Tab.7 Comparison of detection effects of the three algorithms on Nvidia Xavir NX
為了解決盲人出行難的問題,本文提出了一種基于YOLOX 的改進模型CE-YOLOX 用來檢測對盲人出行造成阻礙的目標。通過將特征融合網絡PAFPN 改進為CE-PAFPN,以亞像素跳變融合模塊SSF 和亞像素上下文增強模塊SCE 來充分利用通道信息和不同尺度的語義信息,通道注意力引導模塊CAG 來減少混疊效應,有效提升了檢測模型的精度。通過加入GAM 全局注意力機制,使模型在訓練過程中更關注有效信息,抑制無效信息,同時也有效緩解了多尺度特征融合產生的混疊效應。采用SIOU 損失函數,SIOU 引入的角度損失解決了預測框與真實框之間方向不匹配的問題,也考慮到了預測框和真實框距離、形狀和IOU,使得對目標的定位更加精準,也加快了訓練過程中模型的收斂。實驗結果表明,本文算法在速度上滿足了實時檢測的需求,檢測目標的準確率也優于現有的YOLOv5、YOLOX 等其他算法,mAP 達到了90.53%,單張檢測速度達到了75.93 FPS,部署在邊緣檢測設備上的NVIDIA Xavier NX 也滿足盲人出行實時檢測的要求。后續工作需要考慮模型在檢測精度不下降太多的情況下對模型進行輕量化的改進,從而提升模型的檢測速度,使模型部署在邊緣計算設備上擁有更好的實時性,使盲人日常出行能夠快速準確識別障礙物。