羅舜, 于娟
(福州大學經濟與管理學院,福建 福州 350108)
基于深度卷積神經網絡的計算機視覺技術已取得了令人矚目的成就,這些成就推動了自動駕駛技術的發展.行車過程中的行人目標檢測是自動駕駛技術中的一項重要研究內容,也是計算機視覺領域的研究熱點,是保障行人和駕駛員安全的重要技術.基于計算機視覺的行人目標檢測方法通常使用車載拍攝設備來獲取行車中的圖像,以此從序列或圖像中判斷行人的存在并得到準確的位置信息.目前,常用的行人檢測方法主要分為基于人工設計特征的淺層機器學習模型的傳統方法和基于深層機器學習模型的方法[1].
傳統的行人檢測方法主要使用人工設計的提取規則,并采用淺層機器學習模型反映圖像局部的變化實現行人檢測.但是傳統方法的檢測速度慢、 對復雜的行人目標適應性差并且泛化能力不足,難以滿足實際應用需求[2].
隨著深度卷積神經網絡在目標檢測任務中的發展,以及大規模行人檢測公共數據集的出現,基于深度神經網絡的行人檢測算法已在實際問題中得到應用.2012年Krizhevsky等[3]提出的卷積神經網絡(convolutional neural networks,CNN)結構AlexNet, 使用激活函數ReLu[4]與Dropout[5]方法并在減少過擬合方面取得了顯著的效果后,基于深度神經網絡的目標檢測算法分為了二階段目標檢測算法和一階段目標檢測算法.二階段目標檢測算法為基于候選區域的深層卷積網絡,首先生成可能包含檢測目標的候選區塊,再使用卷積神經網絡對候選區塊進行分類和位置回歸并得到檢測框,其代表算法有R-CNN (region CNN)[6]、 Fast R-CNN (fast region-based CNN)[7]和Faster R-CNN (faster region-based CNN)[8]等.一階段目標檢測算法為基于回歸計算的深層卷積網絡的目標檢測.這類方法將目標定位整合在單一CNN網絡中,只需進行向前運算就能預測不同目標的位置與類別,其標志性算法有YOLO (you only look once)[9]、 SSD (single shot multibox detector)[10]和YOLOv4 (YOLO version 4)[11]等.目前已有許多研究人員使用這兩類算法解決行人檢測問題并取得了一系列的研究成果.例如,陳澤等[12]提出一種基于改進Faster R-CNN的目標檢測方法,通過引入基于雙線性插值的對齊池化層,并設計基于級聯的多層特征融合策略,較好地解決小尺度行人在深層特征圖中特征信息缺乏的問題.舒壯壯等[13]提出基于YOLOv3的改進行人檢測算法,優化生成先驗框算法為K-means++算法,并且改進主干特征提取網絡和損失函數,在MSCOCO數據集上的檢測精度指標達到了48.3,檢測速度達到了19.73 f·s-1.
雖然現有的兩類目標檢測算法在行人檢測方面已取得了一些研究進展,但仍存在許多重疊和被遮擋的行人目標被誤檢、 漏檢的問題.此外,在自動駕駛應用場景下,行人目標檢測算法應當同時具備準確性和實時性,對于復雜場景和多目標都能及時做出準確的響應[14].Faster R-CNN等二階段方法由于實時性難以得到保證而較難實現應用,而YOLOv3、 YOLOv4等一階段算法在經過不斷的改進后,在檢測的實時性方面性能達到了要求,但在檢測精度方面依然存在一定的不足.針對上述問題,提出一種基于多尺度網絡YOLOv5的卷積神經網絡模型,構建同時考慮通道間關系和特征空間位置信息的多重協調注意力模塊,然后將原損失函數改進為具有雙重懲罰項的切比雪夫距離交并比損失函數,最后設計瓶頸狀DSP1_X和DSP2_X模塊,減少重疊和遮擋的行人目標的漏檢情況發生.
在YOLO系列目標檢測網絡中,YOLOv5屬于最新的改進版本,是集合之前各版本YOLO算法后檢測能力較好的單階段目標檢測網絡[15].在目標檢測任務中,其整合了之前版本及其他網絡的優點,在檢測準確度和實時性上都有所提高.YOLOv5按照模型規模從大到小排序分為4個版本,依次是YOLOv5x、 YOLOv5l、 YOLOv5m、 YOLOv5s,其中YOLOv5s因其輕巧性和可部署性被廣泛使用.
原算法在面對具有復雜背景的圖像檢測任務時,檢測精度和實時性都大幅減低.為了提高算法在圖像具有大量特征信息的情況下提取目標任務關鍵信息的能力,引入注意力機制.深度學習中的注意力機制通過快速瀏覽整個圖像,對關鍵目標領域投入注意力資源,從而高效地篩選出所需信息,抑制其他無效信息.借鑒壓縮和激勵網絡(squeeze-and-excitation networks, SENet)思想[16],引入一種同時考慮通道間關系和特征空間位置信息的多重協調注意力模塊并置于YOLOv5的主干網絡backbone部分,將位置信息嵌入到通道注意力中,旨在增強網絡特征的表達能力.
以往的注意力機制模塊SENet先對卷積得到的特征圖進行壓縮,然后再進行激活操作,得到更佳的特征表示.然而SENet只考慮通過建立通道關系來重新衡量每個通道的重要性,忽視了對于生成空間選擇性十分重要的位置信息.因此引入一種多重協調注意力模塊,如圖1所示,不僅僅考慮了通道間的關系,還考慮了特征空間的位置信息.
給定輸入的特征圖X∈RC×H×W,首先使用尺寸為(H, 1)或(1,W)的池化核分別沿著水平坐標和垂直坐標對每個通道進行編碼.因此,高度為h的第c個通道的輸出可以表示為:
(1)
同理,寬度為w的第c個通道的輸出可以寫成:

(2)
上述2種變換分別沿兩個空間方向聚合特征,得到一對方向感知的特征圖.這2種轉換也允許注意力模塊捕捉到沿著一個空間方向的長期依賴關系,并保存沿著另一個空間方向的精確位置信息,這有助于網絡更準確地定位感興趣的目標.然后對上面的變換進行拼接操作,使用1×1卷積變換函數對其進行變換操作:

(3)
式中: [,]為沿空間維數的拼接操作;δ為非線性激活函數,將其定義為Relu激活函數;f∈RC/r×1×(H+W)為對空間信息在水平方向和垂直方向進行編碼的中間特征映射,r是用來控制通道數量的縮減率.
沿著空間維數將f分解為2個單獨的張量和,并利用另外2個卷積變換和分別將和變換為具有相同通道數的張量到輸入X,得到:
gh=σ(Fh(fh))
(4)
gw=σ(Fw(fw))
(5)
式中:σ為Sigmoid激活函數.
為了降低模型計算參數,這里使用縮減比r來減少f的通道數, 并對輸出gh和gw進行擴展,分別作為注意力權重.最后得到協調注意力的輸出:

(6)
由于原模型中的邊界框損失函數GIOU_Loss嚴重依賴IOU項[17],需要多次的迭代才能收斂,使得模型表現下降,并且沒有考慮到水平和垂直邊界框比例變化對損失的影響,導致預測框準確度降低.因此,提出切比雪夫距離交并比 (Chebyshev distance IOU, CDIOU)來解決上述問題[18].GIOU損失函數如下式所示:

(7)
式中:A和B分別為預測框和真實框;C為覆蓋檢測框和真實框的最小框.雖然相比IOU損失函數來說GIOU損失函數考慮到了檢測框與真實框重疊部分缺失的情況并加上了懲罰項,但是其懲罰項事實上僅與檢測框和真實框的空間位置有關聯,忽略了檢測框與真實框之間的距離,導致梯度下降速度比較緩慢.因此,將GIOU損失函數的懲罰項刪除,添加新的懲罰項, 而新的懲罰項可以使得兩個檢測框中心點的距離最小化.同時,CDIOU考慮到檢測框與真實框的長寬比之間的關聯,再添加一個懲罰項,增加網絡損失的收斂速度.CDIOU損失函數的公式如式(8)所示:
(8)
式中:xi、yi是預測框A=(xi,yi)中心點的橫坐標和縱坐標;xj、yj是真實框B=(xj、yj)中心點的橫坐標和縱坐標;C為預測框A和真實框B的最小包圍框的對角線長度;L表示檢測框與真實框中心點之間的切比雪夫距離;wi、hi、wj、hj分別表示預測框和真實框的長和寬.CDIOU損失函數的示意圖如圖2所示.
從圖2可以看出,預測框與真實框之間的距離越遠,LossDMIOU的值就越大,距離越近,則LossDMIOU的值就越小并且趨近于0.改進懲罰項之后的損失函數對于預測檢測框和真實檢測框更加敏感,增加了尺度不變性,提高了檢測框精度并使得網絡收斂速度加快.
原多尺度網絡中的CSPnet結構使用跨階段層次結構拼接基礎層的特征層,導致梯度混淆更易發生.因此,借鑒mobilenetv3網絡[19]的思想,將網絡backbone部分的CSP1_X和CSP2_X模塊分別改進為瓶頸狀DSP1_X和DSP2_X模塊.改進后兩個模塊結構如圖3所示,不同于普通的卷積方式,DSP1_X和DSP2_X在去掉拼接操作的同時,先將3 px×3 px大小的深度空間卷積層Dwise移動到多維殘差模塊的左端,再把兩個1 px×1 px卷積核置于深度空間卷積層和殘差模塊的兩端.兩次逐點卷積和一次深度空間卷積減少了參數量,降低了梯度混淆的幾率,從而提高網絡的整體運算速率.
搭建OpenCV深度學習平臺,具體測試環境: 顯卡為Nvidia Tesla K80,顯存為12 GB,編譯語言為Python3.7,共訓練200個epochs; 主要參數設置: 輸入圖像大小為608 px×608 px,batch_size為64,學習率learning_rate為0.001.輸入圖像統一固定為608 px×608 px方便模型運行.本研究旨在構建一個在自動駕駛過程中魯棒的行人目標檢測算法,因此采用Wider Person數據集中行車記錄儀拍下的包含行人的子集進行訓練,包括單目標圖像、 多目標圖像和有遮擋與重疊目標圖像.由于原圖片數據集樣本數量較少,使用對稱、 裁剪和對比度變換等方式將數據集擴充.圖4為幾種典型的行人目標示例圖,其中圖4 (b)為經過對比度變換后的圖像,圖4(c)為經過對稱變換后所得圖像.
在目標檢測領域中通常使用精準率(precision)、 召回率(recall)和平均精度 (mean average precision,mAP)對圖像目標檢測方法的性能進行評價[20].精準率針對最后的預測結果,用于描述所有正例中預測出來的正例的所占比率,計算公式如下:

(9)
式(9)中:P表示精準率; FP表示將樣本中負例預測為正例的個體數量,即檢測錯誤的目標.召回率針對正類樣本,計算公式如下:

(10)
式(10)中:R表示召回率; TP表示方法將樣本正類檢測為正類的個數; FN表示將樣本正類檢測為負類的個數,即遺漏檢測的個數.一般情況下召回率和精準率相互制約,同時維持在高水平的情況較少出現,因此使用綜合檢測指標mAP值來衡量檢測網絡的算法性能,計算公式如下:

(11)
式(11)中:N表示test集中的樣本個數;P(k)是精準率P在同時檢測k個樣本時的大小; ΔR(k)表示召回率R在檢測樣本個數從k-1個變為k個時的變化情況;C為多分類檢測任務重類別的個數.
首先對改進后網絡整體訓練的收斂性進行分析,對YOLOv5和改進后的YOLOv5進行相同epoch數量的訓練,同時,在相同實驗環境下使用YOLOv4網絡訓練做多元對比.為了方便比對,將改進后的模型命名為YOLOv5-walking.首先對比各模型之間損失下降的情況,圖5為3種模型的損失曲線圖,橫坐標為epoch個數,縱坐標為損失值,虛線、 實線和點線分別代表3種不同的模型.可以看出,YOLOv5-walking的loss下降速度比YOLOv5和YOLOv4的損失下降速度更快,表明改進后的算法損失收斂更快,并且其收斂后損失值更趨近于0且更為平滑.
為了比較YOLOv5和經本研究改進后的YOLOv5模型的檢測精度和實時性,對其進行相同epoch數量的訓練[20],同時,加入PP-YOLO檢測網絡[21]、 PP-YOLOv2[22]和雙階段檢測網絡Faster RCNN的測試結果進行多元分析,結果如表1所示.
表1中,檢測速度單位f·s-1(frame per second)表示每秒鐘內檢測圖像的數量.對比表中的數據可以看出,YOLOv5-walking在檢測速度方面總體優于其他算法,并且YOLOv5-walking的檢測精度指標相較于之前的網絡有所提高,mAP提高了5.57%,說明改進后的網絡在檢測行人目標的能力上有比較顯著的提升[23],并且檢測速度也有較大提升,提高了2.44 f·s-1.Faster RCNN使用雙階段檢測機制微調錨框區域,其mAP較其他模型只超過了YOLOv3,但檢測速度與遠不如其他算法.

表1 不同目標檢測算法對比
接著對本研究提出的改進YOLO模型進行消融實驗以驗證各模塊功能,對部分網絡模塊進行更換,并組合部分模塊進行實驗[24],實驗結果如表2所示.由表中數據可知,CDIOU模塊和DSP1_X模塊的應用對于檢測的精度與速度的提升較為明顯,而MCAM模塊雖然提高了檢測精度,但檢測速度有所下滑.MCAM模塊對于檢測精度的提升最為明顯,mAP提高了2.04%,但也導致檢測速度降低; CDIOU模塊提高了檢測框的精確度并且減少了損失下降的迭代次數,使得檢測精度和速度有了較大提升,分別提高了1.35%和1.74 f·s-1; DSP1_X和DSP2_X模塊減少梯度混淆,降低了參數計算量,對于檢測速度有一定的提升.接著將模塊MCAM分別和DSP1/2_X、 CDIOU模塊結合在原模型上,兩種測試的檢測精度均較前模型有所提高,但檢測速度幾乎與原模型持平甚至低于原模型.再單獨將CDIOU與DSP1/2_X模塊結合在原模型上,結果表明檢測速度較之前提高較多,但檢測精度提高幅度不大,這也側面說明3種模塊結合對于檢測速度和精度同時提高的必要性.

表2 消融實驗結果[24]
此外,改進后的算法減少了漏檢情況的發生,并且在檢測被遮擋的行人目標方面表現良好,檢測結果如圖6所示.由于車載攝像頭拍攝角度等問題,原圖中有部分行人重疊和被遮擋目標,而改進后的算法在檢測被遮擋和未被遮擋的行人目標時均有良好表現,沒有出現誤檢和漏檢的情況,說明改進后的網絡能夠更好地對行人目標特征進行提取,提高了有效信息完整性,減少了重疊目標與被遮擋目標漏檢現象的發生.
針對自動駕駛中行人目標因重疊與遮擋所導致的檢測精度低、 實時性差的問題,提出一種改進多尺度網絡的行人圖像檢測算法.本研究使用Wider Person數據集中行車記錄儀拍下包含行人的圖像作為數據集,在YOLOv5網絡中構建多重協調注意力模塊MCAM,并將原損失函數改進為切比雪夫距離交并比損失函數,最后分別設計瓶頸狀DSP1_X和DSP2_X模塊替換網絡中的CSP1_X與CSP2_X模塊.實驗分析結果表明,改進后的算法損失收斂速度更快,對于行人特征的提取能力更強,并且與原YOLOv5相比mAP提高了5.57%,達到94.41%; 檢測速度提高了3.29 f·s-1,達到42.63 f·s-1,說明本研究提出的模型檢測精度高且具有實時性,可以應用于自動駕駛中的行人目標檢測.未來的工作將在訓練過程中采集更多環境下的行人數據集,提高模型的泛化能力,進一步增強行人目標的檢測精度和速度.