丁小可
(貴陽學院,貴州貴陽550005)
在無人駕駛技術中,對汽車周圍環境的感知是無人駕駛系統的基礎部分,是保證無人車安全、準確行駛的必要條件。為了達到這個目的,無人駕駛系統中使用了各種類型的傳感器,其中屬于“視覺”的傳感器包括毫米波雷達、超聲波雷達、激光雷達及攝像頭。使用攝像頭所采集到的二維圖像來推斷無人車在三維世界中的位置,這項技術和傳統計算機視覺相結合,伴隨著“大數據”和“云計算”的成熟,在激光雷達成本高昂的當代,必然會在無人駕駛定位中發揮更大的作用。
在基于計算機視覺和攝像頭的物體檢測中,卷積神經網絡CNN是一種適合使用在連續值輸入信號上的深度神經網絡。
在深度學習出現之前,傳統的目標檢測方法分為三步:區域選擇、特征提取、分類器。這種檢測方法存在兩個問題:一方面,滑窗的選擇策略沒有針對性,時間復雜度高,窗口冗余;另一方面,人為設計的特征魯棒性差。深度學習出現后,目標檢測技術有了重大突破,比較矚目的有兩個方面:(1)以R-CNN為代表的基于Region Proposal的深度學習目標檢測算法[1];(2)以YOLO為代表的基于回歸的目標檢測算法。FAST R-CNN在速度上沒有滿足實時性的要求,而采用回歸的YOLO算法計算速度較快。
如圖1所示,YOLO檢測流程為:
(1)輸入某個特定的圖片,YOLO將圖片分解成S×S個網格,如果某個目標物體的中心落在此網格中,網格就負責檢測這個物體。
(2)在每個網格中,模型都會自動生成兩個邊框,生成邊框的目的在于通過邊框來預測某類目標物是否存在,除此之外還要反映此目標物存在的概率是多大,以此判斷邊框的預測是否準確。這個所預測的值稱之為目標的置信度(confidence scores)。
置信度的公式定義為:

如果這個網格中不存在一個物體,則置信度為0;否則,置信度為預測的邊框和實際邊框的重合度(IOU)。

圖1 YOLO檢測流程

圖2 YOLO網絡結構
YOLO中每個網格的預測邊框有五個參數:x,y,w,h,confidence。其中,x,y分別代表了預測邊框相對于所在網格的中心坐標;w,h分別代表預測邊框相對于整幅圖像的寬和高;confidence代表了預測邊框和物體所在實際邊框的重合度。此外,每個網格還要預測C個條件類別概率(conditional class probability),記作Pr(Classi|Object),這個概率只考慮每個網格中的目標概率而不考慮邊框中的目標。在測試階段將條件類別概率與每個邊框的預測置信度相乘,就得到了每個邊框中物體屬于某一類別的置信度,公式如下:

(3)依據上一步的的操作,模型建立了S×S×2個邊框,然后計算出每個邊框的置信度,最后采用非極大值抑制(NMS)[2]消除那些置信度較低的邊框。
YOLO檢測網絡包括24個卷積層和2個全連接層(用1×1),如圖2所示。其中,卷積層用來提取圖像特征,全連接層用來預測圖像位置和類別概率值[3]。
與其他基于視覺檢測的模型相比,YOLO具有一系列的優點:
(1)能夠迅速識別目標物體。YOLO與FASTER R-CNN具有一定的相似性,但在YOLO中精簡了卷積神經網絡。原來在識別圖像中物體時,先要判定圖像中的元素到底是背景還是目標物,然后再辨別其類別和概率。而在YOLO中采用回歸的機制代替前述兩步,圖像被直接分解成S×S個網格,以此來替代原來的滑動窗口機制,從而使得候選框的數量減小,在犧牲一定精度的情況下使得檢測速度提高。
(2)產生背景錯誤的概率較低。之前其他的基于視覺檢測的模型在對圖片進行處理時,一般使用了滑動窗口機制來找到最有可能包含檢測目標的區域,而每次候選框中的圖像都是獨立的。YOLO是利用端到端的回歸方式來處理圖像,可以利用網格的聯系和圖像的統一更準確識別背景上的物體,從而降低檢測失誤率。和Fast R-CNN相比,YOLO的背景錯誤不到Fast R-CNN的一半[4]。
(3)模型的泛化能力較好。先讓自然圖像數據集在YOLO上訓練,然后將訓練得到的模型用于對非自然圖像的檢測,模型的準確率相較于YOLO之前的檢測模型更高。因此模型的泛化性較好,能夠適用于涉及圖像識別的其他行業。
盡管如此,YOLO也有一系列缺點:
(1)YOLO中利用全連接層的數據完成對邊框的定位,會丟失太多位置信息;
(2)由于在YOLO的每個網格中只定義了兩個邊框,當多個(大于二)物體處于一個網格中時,YOLO就不能很好地預測到。
在采用YOLO模型對物體進行檢測時,只對物體的類別作了檢測,但在無人駕駛系統中,除了對物體的識別外,還需要在此基礎上對所檢測物體的具體位置進行判斷,以達到預警或將信息供給無人駕駛決策系統使用的目的。之后筆者將結合其他傳感器,采用多信息融合的方式,改進相關算法和模型。