丁小可
(貴陽學(xué)院,貴州貴陽550005)
在無人駕駛技術(shù)中,對汽車周圍環(huán)境的感知是無人駕駛系統(tǒng)的基礎(chǔ)部分,是保證無人車安全、準(zhǔn)確行駛的必要條件。為了達(dá)到這個目的,無人駕駛系統(tǒng)中使用了各種類型的傳感器,其中屬于“視覺”的傳感器包括毫米波雷達(dá)、超聲波雷達(dá)、激光雷達(dá)及攝像頭。使用攝像頭所采集到的二維圖像來推斷無人車在三維世界中的位置,這項技術(shù)和傳統(tǒng)計算機(jī)視覺相結(jié)合,伴隨著“大數(shù)據(jù)”和“云計算”的成熟,在激光雷達(dá)成本高昂的當(dāng)代,必然會在無人駕駛定位中發(fā)揮更大的作用。
在基于計算機(jī)視覺和攝像頭的物體檢測中,卷積神經(jīng)網(wǎng)絡(luò)CNN是一種適合使用在連續(xù)值輸入信號上的深度神經(jīng)網(wǎng)絡(luò)。
在深度學(xué)習(xí)出現(xiàn)之前,傳統(tǒng)的目標(biāo)檢測方法分為三步:區(qū)域選擇、特征提取、分類器。這種檢測方法存在兩個問題:一方面,滑窗的選擇策略沒有針對性,時間復(fù)雜度高,窗口冗余;另一方面,人為設(shè)計的特征魯棒性差。深度學(xué)習(xí)出現(xiàn)后,目標(biāo)檢測技術(shù)有了重大突破,比較矚目的有兩個方面:(1)以R-CNN為代表的基于Region Proposal的深度學(xué)習(xí)目標(biāo)檢測算法[1];(2)以YOLO為代表的基于回歸的目標(biāo)檢測算法。FAST R-CNN在速度上沒有滿足實時性的要求,而采用回歸的YOLO算法計算速度較快。
如圖1所示,YOLO檢測流程為:
(1)輸入某個特定的圖片,YOLO將圖片分解成S×S個網(wǎng)格,如果某個目標(biāo)物體的中心落在此網(wǎng)格中,網(wǎng)格就負(fù)責(zé)檢測這個物體。
(2)在每個網(wǎng)格中,模型都會自動生成兩個邊框,生成邊框的目的在于通過邊框來預(yù)測某類目標(biāo)物是否存在,除此之外還要反映此目標(biāo)物存在的概率是多大,以此判斷邊框的預(yù)測是否準(zhǔn)確。這個所預(yù)測的值稱之為目標(biāo)的置信度(confidence scores)。
置信度的公式定義為:
如果這個網(wǎng)格中不存在一個物體,則置信度為0;否則,置信度為預(yù)測的邊框和實際邊框的重合度(IOU)。
圖1 YOLO檢測流程
圖2 YOLO網(wǎng)絡(luò)結(jié)構(gòu)
YOLO中每個網(wǎng)格的預(yù)測邊框有五個參數(shù):x,y,w,h,confidence。其中,x,y分別代表了預(yù)測邊框相對于所在網(wǎng)格的中心坐標(biāo);w,h分別代表預(yù)測邊框相對于整幅圖像的寬和高;confidence代表了預(yù)測邊框和物體所在實際邊框的重合度。此外,每個網(wǎng)格還要預(yù)測C個條件類別概率(conditional class probability),記作Pr(Classi|Object),這個概率只考慮每個網(wǎng)格中的目標(biāo)概率而不考慮邊框中的目標(biāo)。在測試階段將條件類別概率與每個邊框的預(yù)測置信度相乘,就得到了每個邊框中物體屬于某一類別的置信度,公式如下:
(3)依據(jù)上一步的的操作,模型建立了S×S×2個邊框,然后計算出每個邊框的置信度,最后采用非極大值抑制(NMS)[2]消除那些置信度較低的邊框。
YOLO檢測網(wǎng)絡(luò)包括24個卷積層和2個全連接層(用1×1),如圖2所示。其中,卷積層用來提取圖像特征,全連接層用來預(yù)測圖像位置和類別概率值[3]。
與其他基于視覺檢測的模型相比,YOLO具有一系列的優(yōu)點:
(1)能夠迅速識別目標(biāo)物體。YOLO與FASTER R-CNN具有一定的相似性,但在YOLO中精簡了卷積神經(jīng)網(wǎng)絡(luò)。原來在識別圖像中物體時,先要判定圖像中的元素到底是背景還是目標(biāo)物,然后再辨別其類別和概率。而在YOLO中采用回歸的機(jī)制代替前述兩步,圖像被直接分解成S×S個網(wǎng)格,以此來替代原來的滑動窗口機(jī)制,從而使得候選框的數(shù)量減小,在犧牲一定精度的情況下使得檢測速度提高。
(2)產(chǎn)生背景錯誤的概率較低。之前其他的基于視覺檢測的模型在對圖片進(jìn)行處理時,一般使用了滑動窗口機(jī)制來找到最有可能包含檢測目標(biāo)的區(qū)域,而每次候選框中的圖像都是獨立的。YOLO是利用端到端的回歸方式來處理圖像,可以利用網(wǎng)格的聯(lián)系和圖像的統(tǒng)一更準(zhǔn)確識別背景上的物體,從而降低檢測失誤率。和Fast R-CNN相比,YOLO的背景錯誤不到Fast R-CNN的一半[4]。
(3)模型的泛化能力較好。先讓自然圖像數(shù)據(jù)集在YOLO上訓(xùn)練,然后將訓(xùn)練得到的模型用于對非自然圖像的檢測,模型的準(zhǔn)確率相較于YOLO之前的檢測模型更高。因此模型的泛化性較好,能夠適用于涉及圖像識別的其他行業(yè)。
盡管如此,YOLO也有一系列缺點:
(1)YOLO中利用全連接層的數(shù)據(jù)完成對邊框的定位,會丟失太多位置信息;
(2)由于在YOLO的每個網(wǎng)格中只定義了兩個邊框,當(dāng)多個(大于二)物體處于一個網(wǎng)格中時,YOLO就不能很好地預(yù)測到。
在采用YOLO模型對物體進(jìn)行檢測時,只對物體的類別作了檢測,但在無人駕駛系統(tǒng)中,除了對物體的識別外,還需要在此基礎(chǔ)上對所檢測物體的具體位置進(jìn)行判斷,以達(dá)到預(yù)警或?qū)⑿畔⒐┙o無人駕駛決策系統(tǒng)使用的目的。之后筆者將結(jié)合其他傳感器,采用多信息融合的方式,改進(jìn)相關(guān)算法和模型。