<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          視覺傳感器:2D感知算法

          共 6763字,需瀏覽 14分鐘

           ·

          2021-11-30 16:44

          點(diǎn)擊下方卡片,關(guān)注“新機(jī)器視覺”公眾號(hào)

          視覺/圖像重磅干貨,第一時(shí)間送達(dá)

          來源 | 巫婆塔里的工程師@知乎


          1 前言


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

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

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

          2 物體檢測

          2.1 兩階段檢測


          傳統(tǒng)的圖像物體檢測算法大多是滑動(dòng)窗口,特征提取和分類器的組合,比如Haar特征+AdaBoost分類器,HOG特征+SVM分類器。這類方法的一個(gè)主要問題在于針對(duì)不同的物體檢測任務(wù),需要手工設(shè)計(jì)不同的特征。因此,在深度學(xué)習(xí)興起之前,特征設(shè)計(jì)是物體檢測領(lǐng)域的主要增長點(diǎn)。

          R-CNN[1]作為深度學(xué)習(xí)在物體檢測領(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)行分類,以完成物體檢測的任務(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,得到同樣長度的特征向量。最后采用全連接網(wǎng)絡(luò)進(jìn)行候選框分類和邊框回歸。這樣就避免了重疊候選框的冗余運(yùn)算,大幅提高了特征提取的效率。

          與R-CNN相比,F(xiàn)ast R-CNN將VOC07數(shù)據(jù)集上的mAP從58.5%提高到70.0%,檢測速度則提高了約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ì)生成不同大小,不同長寬比的Anchor,用來作為物體框回歸的參考。Anchor的引入,使得回歸任務(wù)只用處理相對(duì)較小的變化,因此網(wǎng)絡(luò)的學(xué)習(xí)會(huì)更加容易。

          Faster RCNN是第一個(gè)端到端的物體檢測網(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)不同大小的物體檢測。

          FPN

          2.2 單階段檢測


          兩階段的檢測器需要處理大量的物體候選框,每個(gè)候選框通過ROI Pooling來生成統(tǒng)一長度的特征,這個(gè)過程相對(duì)比較耗時(shí),因此影響了算法的整體速度。單階段檢測器的主要思路是利用全卷積網(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)行物體檢測,以提高對(duì)物體尺度變化的適應(yīng)能力。同時(shí),在特征圖的每個(gè)位置上采用不同尺度和長寬比的Anchor來做邊框回歸。

          在特征圖的每個(gè)位置上進(jìn)行稠密的物體檢測,這樣做雖然省略了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]系列的檢測器,這也是工業(yè)界使用最廣泛的算法,甚至可以不加之一。YOLOv1采用卷積和Pooling結(jié)合提取特征,最后的特征圖空間大小為7*7。與SSD和RetinaNet不同,YOLOv1采用全連接層直接輸出每個(gè)7*7位置的物體類別和邊框,并不需要Anchor的輔助。每個(gè)位置輸出兩個(gè)物體,并選擇置信度較大的那一個(gè)。當(dāng)場景中小物體比較多的時(shí)候,相近位置的物體有可能會(huì)被丟掉,這也是YOLOv1的一個(gè)主要問題。

          之后YOLO又推出四個(gè)改進(jìn)的版本(v2-v5),增強(qiáng)了特征提取網(wǎng)絡(luò),采用多尺度特征圖,利用了Anchor和IOU Loss來輔助邊框回歸,以及很多其他物體檢測領(lǐng)域的Trick,大幅提高了檢測的準(zhǔn)確率,在運(yùn)行速度和部署的靈活性上也仍然保持了YOLO一貫的優(yōu)勢。

          YOLO

          2.3 無Anchor檢測


          之前介紹的方法大都采用Anchor來輔助物體框的回歸。Anchor的參數(shù)是需要手工設(shè)計(jì)的,通常需要根據(jù)不同的檢測任務(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),非常的簡潔。

          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ù)測物體框的左上角和右下角,同時(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)注的差異。


          最后來說一下物體檢測領(lǐng)域的最新趨勢,那就是采用在自然語言處理(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ù)中可以提取單詞的長時(shí)間依賴關(guān)系(或者說上下文信息),對(duì)應(yīng)到圖像中就是提取像素的長距離依賴(或者說擴(kuò)大的感受野)。

          DETR[11]是Transformer在物體檢測領(lǐng)域的代表性工作。前面介紹的所有物體檢測網(wǎng)絡(luò)無論兩階段還是單節(jié)段,無論采用Anchor與否,都是在圖像空間上進(jìn)行稠密的檢測。而DETR將物體檢測看作set prediction問題,直接輸出稀疏的物體檢測結(jié)果。具體的流程是先采用CNN提取圖像特征,然后用Transformer對(duì)全局的空間關(guān)系進(jìn)行建模,最后得到的輸出通過二分圖匹配算法與手工標(biāo)注進(jìn)行匹配。

          DETR一般需要更長的訓(xùn)練收斂時(shí)間,由于感受野的擴(kuò)大,在大物體的檢測上效果較好,而在小物體上相對(duì)較差。

          DETR


          2.4 性能對(duì)比


          下面我們來對(duì)比一下以上介紹的部分算法,準(zhǔn)確度采用MS COCO數(shù)據(jù)庫上的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é)果供大家參考。

          3 物體跟蹤


          在自動(dòng)駕駛應(yīng)用中,輸入的是視頻數(shù)據(jù),需要關(guān)注的目標(biāo)有很多,比如車輛,行人,自行車等等。因此,這是一個(gè)典型的多物體跟蹤任務(wù)(MOT)。對(duì)于MOT任務(wù)來說,目前最流行的框架是Tracking-by-Detection,其流程如下:

          1. 由物體檢測器在單幀圖像上得到物體框輸出。
          2. 提取每個(gè)檢測物體的特征,通常包括視覺特征和運(yùn)動(dòng)特征。
          3. 根據(jù)特征計(jì)算來自相鄰幀的物體檢測之間的相似度,以判斷其來自同一個(gè)目標(biāo)的概率。
          4. 將相鄰幀的物體檢測進(jìn)行匹配,給來自同一個(gè)目標(biāo)的物體分配相同的ID。

          Tracking-by-Detection方法流程[12]

          深度學(xué)習(xí)在以上這四個(gè)步驟中都有應(yīng)用,但是以前兩個(gè)步驟為主。

          在步驟1中,深度學(xué)習(xí)的應(yīng)用主要在于提供高質(zhì)量的物體檢測器。理論上說,所有的物體檢測器都可以用來提供檢測框,但是由于檢測的質(zhì)量對(duì)Tracking-by-Detection方法來說非常重要,因此一般都選擇準(zhǔn)確率較高的方法,比如說Faster R-CNN。SORT[13]是這個(gè)方向早期的工作之一,作者采用Faster R-CNN代替ACF物體檢測器,在MOT15數(shù)據(jù)庫上將物體跟蹤準(zhǔn)確率指標(biāo)(MOTA)的絕對(duì)值提高了18.9%。SORT采用卡爾曼濾波來預(yù)測目標(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ò)被用來模擬貝葉斯濾波器,完成主要的檢測工作,其包含運(yùn)動(dòng)運(yùn)動(dòng)預(yù)測模塊,狀態(tài)更新模塊和Track管理模塊。其中狀態(tài)更新模塊可以完成物體匹配(Association)的工作,Association向量則由一個(gè)LSTM來提供。這個(gè)方法的跟蹤效果并不是很好,但是由于特征簡單,速度可以達(dá)到165FPS (不包含物體檢測模塊)。

          Milan等人提出的端對(duì)端物體跟蹤網(wǎng)絡(luò)

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

          CenterTrack

          4 語義分割


          深度學(xué)習(xí)在語義分割上最早的應(yīng)用比較直接,也就是對(duì)固定大小的圖像塊進(jìn)行語義分類。這里對(duì)圖像塊進(jìn)行分類的網(wǎng)絡(luò)其實(shí)就是一些全連接層,因此塊的大小需要固定。顯然,這種簡單粗暴的方式不是最優(yōu)的,尤其是無法有效的利用空間上下文信息,而這個(gè)信息對(duì)于語義分割來說是非常重要的。

          為了更好的提取上下文信息,神近網(wǎng)絡(luò)需要更大的感受野。全卷積網(wǎng)絡(luò)(FCN)[17]通過疊加多個(gè)卷積層和下采樣層,不斷地?cái)U(kuò)大感受野,提取高層次空間上下文特征,最終的特征圖經(jīng)過反卷積上采樣后恢復(fù)到原始圖像的分辨率,其每個(gè)位置的輸出對(duì)應(yīng)了該位置的語義分類。雖然下采樣操作有利于上下文特征提取并降低計(jì)算量,但也存在一個(gè)問題,那就是空間細(xì)節(jié)信息的丟失,這會(huì)影響最終的語義分割結(jié)果在位置上的分辨率和正確性。

          FCN

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

          U-Net

          在語義分割中,上下文信息和細(xì)節(jié)信息都很重要。FCN只關(guān)注了上下文信息,而U-Net則通過層間的Skip連接同時(shí)保留了兩種信息。語義分割領(lǐng)域后續(xù)的大部分工作都是在致力于更好的保留這兩種信息。

          空洞卷積(Dilated/Atrous Convolution)對(duì)標(biāo)準(zhǔn)卷積操作的卷積核進(jìn)行了修改,使其覆蓋更大的空間位置。空洞卷積可以用來代替了下采樣,一方面可以保持空間分辨率,另一方面也可以在不增加計(jì)算量的前提下擴(kuò)大感受野,以更好的提取空間上下文信息。

          Dilated Convolution

          DeepLab[18]系列的方法使用擴(kuò)張卷積和ASPP(Atrous Spatial Pyramid Pooling )結(jié)構(gòu),對(duì)輸入圖像進(jìn)行多尺度處理。最后采用傳統(tǒng)語義分割方法中常用的條件隨機(jī)場(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.


          —版權(quán)聲明—

          僅用于學(xué)術(shù)分享,版權(quán)屬于原作者。

          若有侵權(quán),請(qǐng)聯(lián)系微信號(hào):yiyang-sy 刪除或修改!


          —THE END—
          瀏覽 45
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  好爽毛片一区二区三区色好美 | 狠狠操在线 | 亚洲免费无吗高 | 成人毛片在线精品国产 | 麻豆视频免费在线观看 |