日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車測(cè)試網(wǎng)

    • 在線課堂

    • 電車測(cè)試

一文讀懂2D感知算法

2022-01-03 21:07:59·  來源:智駕最前沿  
 
自動(dòng)駕駛中的視覺感知模塊通過圖像或視頻數(shù)據(jù)來了解車輛周圍環(huán)境,具體的任務(wù)包括物體檢測(cè)和跟蹤(2D或3D物體),語(yǔ)義分割(2D或3D場(chǎng)景),深度估計(jì),光流估計(jì)等。這

自動(dòng)駕駛中的視覺感知模塊通過圖像或視頻數(shù)據(jù)來了解車輛周圍環(huán)境,具體的任務(wù)包括物體檢測(cè)和跟蹤(2D或3D物體),語(yǔ)義分割(2D或3D場(chǎng)景),深度估計(jì),光流估計(jì)等。

這篇文章里我們先介紹一下基于圖像或視頻的2D物體檢測(cè)和跟蹤,以及2D場(chǎng)景的語(yǔ)義分割。這幾個(gè)任務(wù)在自動(dòng)駕駛中應(yīng)用的非常廣泛,各種綜述文章也已經(jīng)非常多了,所以這里我只選擇介紹一些經(jīng)典的算法,以脈絡(luò)和方向的梳理為主。

深度學(xué)習(xí)自從2012年在圖像分類任務(wù)上取得突破以來,就迅速的占領(lǐng)了圖像感知的各個(gè)領(lǐng)域,所以下面的介紹也以基于深度學(xué)習(xí)的算法為主。


物體檢測(cè)

兩階段檢測(cè)


傳統(tǒng)的圖像物體檢測(cè)算法大多是滑動(dòng)窗口,特征提取和分類器的組合,比如Haar特征+AdaBoost分類器,HOG特征+SVM分類器。這類方法的一個(gè)主要問題在于針對(duì)不同的物體檢測(cè)任務(wù),需要手工設(shè)計(jì)不同的特征。因此,在深度學(xué)習(xí)興起之前,特征設(shè)計(jì)是物體檢測(cè)領(lǐng)域的主要增長(zhǎng)點(diǎn)。
R-CNN[1]作為深度學(xué)習(xí)在物體檢測(cè)領(lǐng)域的開創(chuàng)性工作,其思路還是有著很多傳統(tǒng)方法的影子。首先,選擇性搜索(Selective Search)代替了滑動(dòng)窗口,以減少窗口的數(shù)量。其次,也是最重要的一點(diǎn)改變,采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)提取每個(gè)窗口的圖像特征,以代替手工特征設(shè)計(jì)。這里的CNN在ImageNet上進(jìn)行預(yù)訓(xùn)練,對(duì)于通用圖像特征的提取非常有效。最后,每個(gè)窗口的特征采用SVM進(jìn)行分類,以完成物體檢測(cè)的任務(wù)。
R-CNN的一個(gè)主要問題在于選擇性搜索得到的窗口數(shù)量重疊太多,這樣導(dǎo)致特征提取部分做了很多的冗余的操作,嚴(yán)重影響了算法的運(yùn)行效率(一張圖片大約2000個(gè)候選框,GPU上也需要10秒以上的運(yùn)行時(shí)間)。

R-CNN
為了重復(fù)利用不同位置的特征,F(xiàn)ast R-CNN[2]提出首先由CNN提取圖像特征,然后再將選擇性搜尋得到的候選框進(jìn)行ROI Pooling,得到同樣長(zhǎng)度的特征向量。最后采用全連接網(wǎng)絡(luò)進(jìn)行候選框分類和邊框回歸。這樣就避免了重疊候選框的冗余運(yùn)算,大幅提高了特征提取的效率。
與R-CNN相比,F(xiàn)ast R-CNN將VOC07數(shù)據(jù)集上的mAP從58.5%提高到70.0%,檢測(cè)速度則提高了約200倍。但是,F(xiàn)ast R-CNN仍然采用選擇性搜索來得到候選區(qū)域,這個(gè)過程還是比較慢,處理一張圖片大約需要2秒,這對(duì)于對(duì)實(shí)時(shí)性要求較高的應(yīng)用來說還是遠(yuǎn)遠(yuǎn)不夠的。

Fast R-CNN
既然選擇性搜索是算法速度的瓶頸,那么人們自然就會(huì)想到,能否用神經(jīng)網(wǎng)絡(luò)來完成這個(gè)步驟呢?問題的答案就是Faster R-CNN[3]。它利用一個(gè)區(qū)域候選網(wǎng)絡(luò)(RPN)在特征圖的基礎(chǔ)上生成候選框。接下來的步驟與Fast R-CNN類似,都是ROI Pooling生成候選框的特征,然后再用全連接層來做分類和回歸。
Faster RCNN里出現(xiàn)了一個(gè)重要的概念,也就是Anchor。特征圖的每個(gè)位置會(huì)生成不同大小,不同長(zhǎng)寬比的Anchor,用來作為物體框回歸的參考。Anchor的引入,使得回歸任務(wù)只用處理相對(duì)較小的變化,因此網(wǎng)絡(luò)的學(xué)習(xí)會(huì)更加容易。
Faster RCNN是第一個(gè)端到端的物體檢測(cè)網(wǎng)絡(luò),VOC07上的mAP達(dá)到73.2%,速度也達(dá)到了17 FPS,接近于實(shí)時(shí)。

Faster R-CNN
后續(xù)的FPN[4](Feature Pyramid Network)在特征提取階段又進(jìn)行了優(yōu)化,采用了類似U-Shape網(wǎng)絡(luò)的特征金字塔結(jié)構(gòu),來提取多尺度的信息,以適應(yīng)不同大小的物體檢測(cè)。

FPN

單階段檢測(cè)


兩階段的檢測(cè)器需要處理大量的物體候選框,每個(gè)候選框通過ROI Pooling來生成統(tǒng)一長(zhǎng)度的特征,這個(gè)過程相對(duì)比較耗時(shí),因此影響了算法的整體速度。單階段檢測(cè)器的主要思路是利用全卷積網(wǎng)絡(luò),在特征圖的每個(gè)位置進(jìn)行物體分類和邊框回歸。這其實(shí)相當(dāng)于在每個(gè)位置都生成候選框,但是因?yàn)槭÷粤速M(fèi)時(shí)的ROI Pooling,而只采用標(biāo)準(zhǔn)的卷積操作,因此算法的運(yùn)行速度得到了提升。
SSD[5]采用了上述全卷積網(wǎng)絡(luò)的思路,并且在多個(gè)分辨率的特征圖上進(jìn)行物體檢測(cè),以提高對(duì)物體尺度變化的適應(yīng)能力。同時(shí),在特征圖的每個(gè)位置上采用不同尺度和長(zhǎng)寬比的Anchor來做邊框回歸。
在特征圖的每個(gè)位置上進(jìn)行稠密的物體檢測(cè),這樣做雖然省略了ROI Pooling,但會(huì)帶來一個(gè)新的問題,那就是正負(fù)樣本的不平衡。稠密的采樣導(dǎo)致負(fù)樣本(非物體)的數(shù)量遠(yuǎn)遠(yuǎn)大于正樣本(物體)的數(shù)量,在訓(xùn)練中大量容易分類的負(fù)樣本所產(chǎn)生的Loss會(huì)起支配作用,而真正有價(jià)值的困難樣本反而得不到很好的學(xué)習(xí)。

SSD
為了解決這個(gè)問題,RetinaNet[6]提出了Focal Loss,根據(jù)Loss的大小自動(dòng)調(diào)節(jié)權(quán)重,以代替標(biāo)準(zhǔn)的Cross Entropy,使得訓(xùn)練過程更多的關(guān)注困難樣本。在特征提取方面,RetinaNet也采用了FPN的結(jié)構(gòu)。

Focal Loss vs. Cross Entropy
最后,還是得說一下YOLO[7]系列的檢測(cè)器,這也是工業(yè)界使用最廣泛的算法,甚至可以不加之一。YOLOv1采用卷積和Pooling結(jié)合提取特征,最后的特征圖空間大小為7*7。與SSD和RetinaNet不同,YOLOv1采用全連接層直接輸出每個(gè)7*7位置的物體類別和邊框,并不需要Anchor的輔助。每個(gè)位置輸出兩個(gè)物體,并選擇置信度較大的那一個(gè)。當(dāng)場(chǎng)景中小物體比較多的時(shí)候,相近位置的物體有可能會(huì)被丟掉,這也是YOLOv1的一個(gè)主要問題。
之后YOLO又推出四個(gè)改進(jìn)的版本(v2-v5),增強(qiáng)了特征提取網(wǎng)絡(luò),采用多尺度特征圖,利用了Anchor和IOU Loss來輔助邊框回歸,以及很多其他物體檢測(cè)領(lǐng)域的Trick,大幅提高了檢測(cè)的準(zhǔn)確率,在運(yùn)行速度和部署的靈活性上也仍然保持了YOLO一貫的優(yōu)勢(shì)。

YOLO

無Anchor檢測(cè)


之前介紹的方法大都采用Anchor來輔助物體框的回歸。Anchor的參數(shù)是需要手工設(shè)計(jì)的,通常需要根據(jù)不同的檢測(cè)任務(wù)設(shè)計(jì)不同的Anchor,影響了算法的通用性。此外,為了覆蓋任務(wù)中的所有物體,Anchor的數(shù)量會(huì)比較大,對(duì)算法的速度也有一定影響。
因此,如何避免使用Anchor或者說讓網(wǎng)絡(luò)自動(dòng)的學(xué)習(xí)Anchor參數(shù),目前受到了越來越多的重視。這類方法一般是將物體表示為一些關(guān)鍵點(diǎn),CNN被用來回歸這些關(guān)鍵點(diǎn)的位置。關(guān)鍵點(diǎn)可以是物體框的中心點(diǎn)(CenterNet),角點(diǎn)(CornerNet)或者代表點(diǎn)(RepPoints)。
CenterNet[8]采用多層卷積神經(jīng)網(wǎng)絡(luò)處理輸入圖像,將其轉(zhuǎn)換成物體類別的Heatmap,其上的Peak位置對(duì)應(yīng)物體中心。中心點(diǎn)處的特征被用來進(jìn)行邊框的回歸。整個(gè)網(wǎng)絡(luò)可以完全通過卷積操作來實(shí)現(xiàn),非常的簡(jiǎn)潔。

Objects as Center Points
只用物體中心點(diǎn)的特征來回歸物體框是有一定局限性的,因?yàn)橹行狞c(diǎn)處的特征有時(shí)并不能夠很好的描述這個(gè)物體,尤其是當(dāng)物體比較大的時(shí)候。CornerNet[9]通過卷積神經(jīng)網(wǎng)絡(luò)和Corner Pooling操作預(yù)測(cè)物體框的左上角和右下角,同時(shí)輸出每個(gè)角點(diǎn)的特征向量,用于匹配屬于同一物體的角點(diǎn)。

CornerNet
無論是中心點(diǎn)還是角點(diǎn),物體都是被表示為矩形框。這種表示方法雖然有利于計(jì)算,但是沒有考慮到物體的形狀變化,矩形框內(nèi)也包含了很多來自背景的特征,從而影響物體識(shí)別的準(zhǔn)確率。RepPoints[10]提出將物體表示為一個(gè)代表性點(diǎn)集,并且通過可變形卷積來適應(yīng)物體的形狀變化。點(diǎn)集最后被轉(zhuǎn)換為物體框,用于計(jì)算與手工標(biāo)注的差異。

最后來說一下物體檢測(cè)領(lǐng)域的最新趨勢(shì),那就是采用在自然語(yǔ)言處理(NLP)中取得巨大成功的Transformer結(jié)構(gòu)。Transformer是完全基于自注意力機(jī)制的深度學(xué)習(xí)網(wǎng)絡(luò),在大數(shù)據(jù)和預(yù)訓(xùn)練模型的輔助下,性能超過經(jīng)典的循環(huán)神經(jīng)網(wǎng)絡(luò)方法。2020年以來,Transformer在各種視覺任務(wù)中被應(yīng)用,取得了不錯(cuò)的效果。
Transformer在NLP任務(wù)中可以提取單詞的長(zhǎng)時(shí)間依賴關(guān)系(或者說上下文信息),對(duì)應(yīng)到圖像中就是提取像素的長(zhǎng)距離依賴(或者說擴(kuò)大的感受野)。
DETR[11]是Transformer在物體檢測(cè)領(lǐng)域的代表性工作。前面介紹的所有物體檢測(cè)網(wǎng)絡(luò)無論兩階段還是單節(jié)段,無論采用Anchor與否,都是在圖像空間上進(jìn)行稠密的檢測(cè)。而DETR將物體檢測(cè)看作set prediction問題,直接輸出稀疏的物體檢測(cè)結(jié)果。具體的流程是先采用CNN提取圖像特征,然后用Transformer對(duì)全局的空間關(guān)系進(jìn)行建模,最后得到的輸出通過二分圖匹配算法與手工標(biāo)注進(jìn)行匹配。
DETR一般需要更長(zhǎng)的訓(xùn)練收斂時(shí)間,由于感受野的擴(kuò)大,在大物體的檢測(cè)上效果較好,而在小物體上相對(duì)較差。

DETR

性能對(duì)比


下面我們來對(duì)比一下以上介紹的部分算法,準(zhǔn)確度采用MS COCO數(shù)據(jù)庫(kù)上的mAP作為指標(biāo),而速度則采用FPS來衡量。從下表的對(duì)比中可以看出,YOLOv4在準(zhǔn)確率和速度上表現(xiàn)都很好,因此也是目前工業(yè)界采用最廣泛的模型。最新的DETR模型也有著非常不錯(cuò)的準(zhǔn)確率,后續(xù)應(yīng)該還有更多的改進(jìn)工作出現(xiàn)。這里需要說一下的是,由于網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)中存在很多不同的選擇(比如不同的輸入大小,不同的Backbone網(wǎng)絡(luò)等),各個(gè)算法的實(shí)現(xiàn)硬件平臺(tái)也不同,因此準(zhǔn)確率和速度并不完全可比,這里只列出來一個(gè)粗略的結(jié)果供大家參考。



物體跟蹤


在自動(dòng)駕駛應(yīng)用中,輸入的是視頻數(shù)據(jù),需要關(guān)注的目標(biāo)有很多,比如車輛,行人,自行車等等。因此,這是一個(gè)典型的多物體跟蹤任務(wù)(MOT)。對(duì)于MOT任務(wù)來說,目前最流行的框架是Tracking-by-Detection,其流程如下:
  • 由物體檢測(cè)器在單幀圖像上得到物體框輸出。
  • 提取每個(gè)檢測(cè)物體的特征,通常包括視覺特征和運(yùn)動(dòng)特征。
  • 根據(jù)特征計(jì)算來自相鄰幀的物體檢測(cè)之間的相似度,以判斷其來自同一個(gè)目標(biāo)的概率。
  • 將相鄰幀的物體檢測(cè)進(jìn)行匹配,給來自同一個(gè)目標(biāo)的物體分配相同的 ID。


Tracking-by-Detection方法流程[12]
深度學(xué)習(xí)在以上這四個(gè)步驟中都有應(yīng)用,但是以前兩個(gè)步驟為主。
在步驟1中,深度學(xué)習(xí)的應(yīng)用主要在于提供高質(zhì)量的物體檢測(cè)器。理論上說,所有的物體檢測(cè)器都可以用來提供檢測(cè)框,但是由于檢測(cè)的質(zhì)量對(duì)Tracking-by-Detection方法來說非常重要,因此一般都選擇準(zhǔn)確率較高的方法,比如說Faster R-CNN。SORT[13]是這個(gè)方向早期的工作之一,作者采用Faster R-CNN代替ACF物體檢測(cè)器,在MOT15數(shù)據(jù)庫(kù)上將物體跟蹤準(zhǔn)確率指標(biāo)(MOTA)的絕對(duì)值提高了18.9%。SORT采用卡爾曼濾波來預(yù)測(cè)目標(biāo)的運(yùn)動(dòng)(得到運(yùn)動(dòng)特征),并采用匈牙利算法來計(jì)算物體的匹配。
在步驟2中,深度學(xué)習(xí)的應(yīng)用主要在于利用CNN提取物體的視覺特征。SORT算法后續(xù)采用CNN進(jìn)行特征提取,這個(gè)擴(kuò)展算法被稱為DeepSORT[14]。

DeepSORT中的視覺特征提取網(wǎng)絡(luò)
深度學(xué)習(xí)在步驟3和4中的應(yīng)用較少。其中一個(gè)比較典型的方法由Milan等人[15]提出的一個(gè)端對(duì)端的物體跟蹤算法。在這個(gè)算法中,一個(gè)RNN網(wǎng)絡(luò)被用來模擬貝葉斯濾波器,完成主要的檢測(cè)工作,其包含運(yùn)動(dòng)運(yùn)動(dòng)預(yù)測(cè)模塊,狀態(tài)更新模塊和Track管理模塊。其中狀態(tài)更新模塊可以完成物體匹配(Association)的工作,Association向量則由一個(gè)LSTM來提供。這個(gè)方法的跟蹤效果并不是很好,但是由于特征簡(jiǎn)單,速度可以達(dá)到165FPS (不包含物體檢測(cè)模塊)。

Milan等人提出的端對(duì)端物體跟蹤網(wǎng)絡(luò)
除了Tracking-by-Detection以外,還有一種框架稱之為Simultaneous Detection and Tracking,也就是同時(shí)進(jìn)行檢測(cè)和跟蹤。CenterTrack[16]是這個(gè)方向的代表性方法之一。CenterTrack來源于之前介紹過的單節(jié)段無Anchor的物體檢測(cè)算法CenterNet。與CenterNet相比,CenterTrack增加了前一幀的RGB圖像和物體中心Heatmap作為額外輸入,增加了一個(gè)Offset分支用來進(jìn)行前后幀的Association。與之前介紹的多個(gè)階段Tracking-by-Detection策略相比,CenterTrack將檢測(cè)和匹配階段用一個(gè)網(wǎng)絡(luò)來實(shí)現(xiàn),提高了MOT系統(tǒng)的速度。

CenterTrack

語(yǔ)義分割


深度學(xué)習(xí)在語(yǔ)義分割上最早的應(yīng)用比較直接,也就是對(duì)固定大小的圖像塊進(jìn)行語(yǔ)義分類。這里對(duì)圖像塊進(jìn)行分類的網(wǎng)絡(luò)其實(shí)就是一些全連接層,因此塊的大小需要固定。顯然,這種簡(jiǎn)單粗暴的方式不是最優(yōu)的,尤其是無法有效的利用空間上下文信息,而這個(gè)信息對(duì)于語(yǔ)義分割來說是非常重要的。
為了更好的提取上下文信息,神經(jīng)網(wǎng)絡(luò)需要更大的感受野。全卷積網(wǎng)絡(luò)(FCN)[17]通過疊加多個(gè)卷積層和下采樣層,不斷地?cái)U(kuò)大感受野,提取高層次空間上下文特征,最終的特征圖經(jīng)過反卷積上采樣后恢復(fù)到原始圖像的分辨率,其每個(gè)位置的輸出對(duì)應(yīng)了該位置的語(yǔ)義分類。雖然下采樣操作有利于上下文特征提取并降低計(jì)算量,但也存在一個(gè)問題,那就是空間細(xì)節(jié)信息的丟失,這會(huì)影響最終的語(yǔ)義分割結(jié)果在位置上的分辨率和正確性。

FCN
U-Net[18]采用了類似編碼器-解碼器的結(jié)構(gòu),但是在同樣分辨率的特征圖之間,增加了Skip連接。這樣做的好處是可以同時(shí)保留高層的上下文特征和底層的細(xì)節(jié)特征,讓網(wǎng)絡(luò)通過學(xué)習(xí)來自動(dòng)的平衡上下文和細(xì)節(jié)信息的比重。

U-Net
在語(yǔ)義分割中,上下文信息和細(xì)節(jié)信息都很重要。FCN只關(guān)注了上下文信息,而U-Net則通過層間的Skip連接同時(shí)保留了兩種信息。語(yǔ)義分割領(lǐng)域后續(xù)的大部分工作都是在致力于更好的保留這兩種信息。
空洞卷積(Dilated/Atrous Convolution)對(duì)標(biāo)準(zhǔn)卷積操作的卷積核進(jìn)行了修改,使其覆蓋更大的空間位置??斩淳矸e可以用來代替了下采樣,一方面可以保持空間分辨率,另一方面也可以在不增加計(jì)算量的前提下擴(kuò)大感受野,以更好的提取空間上下文信息。

Dilated Convolution
DeepLab[18]系列的方法使用擴(kuò)張卷積和ASPP(Atrous Spatial Pyramid Pooling )結(jié)構(gòu),對(duì)輸入圖像進(jìn)行多尺度處理。最后采用傳統(tǒng)語(yǔ)義分割方法中常用的條件隨機(jī)場(chǎng)(CRF)來優(yōu)化分割結(jié)果。CRF作為后處理的步驟單獨(dú)訓(xùn)練。

DeepLab
最后一個(gè)介紹的方法是采用大卷積核。這是一種很自然的增加感受野的方法,并且在Stride不變的情況下卷積結(jié)果的空間分辨率也不會(huì)受影響。但是大卷積核會(huì)顯著的增加計(jì)算量,這也是為什么要采用空洞卷積的原因。Large Kernel Matters[19]這篇文章提出將二維的大卷積核(KxK)分解為兩個(gè)一維的卷積核(1xK和Kx1),二維卷積的結(jié)果用兩個(gè)一維卷積結(jié)果的和來模擬。這樣做可以將計(jì)算量由O(KxK)降低到O(K)。

一個(gè)二維卷積分解為兩個(gè)一維卷積
參考文獻(xiàn)
[1] Girshick et al., Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation, 2014.
[2] Girshick, Fast R-CNN, 2015.
[3] Ren et al., Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, 2016.
[4] Lin et al., Feature Pyramid Networks for Object Detection, 2017.
[5] Liu et al., SSD: Single Shot MultiBox Detector, 2015.
[6] Lin et al., Focal Loss for Dense Object Detection, 2017.
[7] Redmon et al., You only Look Once: Unified, Real-Time Object Detection, 2015.
[8] Zhou et al., Objects as Points, 2019.
[9] Law and Deng, CornerNet: Detecting Objects as Paired Keypoints, 2019.
[10] Yang et al., RepPoints: Point Set Representation for Object Detection, 2019.
[11] Carion et al., End-to-End Object Detection with Transformers, 2020.
[12] Ciaparrone et al., Deep Learning in Video Multi-Object Tracking: A Survey, 2019.
[13] Bewley et al., Simple online and Realtime Tracking, 2016.
[14] Wojke et al., Simple online and Realtime Tracking with A Deep Association Metric, 2017.
[15] Milan et al., online Multi-Target Tracking using Recurrent Neural Networks, 2017.
[16] Zhou et al., Tracking Objects as Points, 2020.
[17] Long et al., Fully Convolutional Networks for Semantic Segmentation, 2014.
[18] Chen et al., DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs, 2017.
[19] Peng et al., Large Kernel Matters —— Improve Semantic Segmentation by Global Convolutional Network, 2017.
分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25