小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

基于深度學(xué)習(xí)的目標(biāo)檢測算法綜述

 自然大道張 2018-04-24

導(dǎo)言

目標(biāo)檢測的任務(wù)是找出圖像中所有感興趣的目標(biāo)(物體),確定它們的位置和大小,是機(jī)器視覺領(lǐng)域的核心問題之一。由于各類物體有不同的外觀,形狀,姿態(tài),加上成像時(shí)光照,遮擋等因素的干擾,目標(biāo)檢測一直是機(jī)器視覺領(lǐng)域最具有挑戰(zhàn)性的問題。本文將針對目標(biāo)檢測(Object Detection)這個(gè)機(jī)器視覺中的經(jīng)典任務(wù)進(jìn)行解析,拋磚引玉。如對文中的內(nèi)容持不同觀點(diǎn),歡迎到SIGAI公眾號(hào)發(fā)消息給我們,一起探討!


什么是目標(biāo)檢測?

目標(biāo)檢測的任務(wù)是找出圖像中所有感興趣的目標(biāo)(物體),確定它們的位置和大小,是機(jī)器視覺領(lǐng)域的核心問題之一。由于各類物體有不同的外觀,形狀,姿態(tài),加上成像時(shí)光照,遮擋等因素的干擾,目標(biāo)檢測一直是機(jī)器視覺領(lǐng)域最具有挑戰(zhàn)性的問題。


計(jì)算機(jī)視覺中關(guān)于圖像識(shí)別有四大類任務(wù):

分類-Classification:解決“是什么?”的問題,即給定一張圖片或一段視頻判斷里面包含什么類別的目標(biāo)。

定位-Location:解決“在哪里?”的問題,即定位出這個(gè)目標(biāo)的的位置。

檢測-Detection:解決“是什么?在哪里?”的問題,即定位出這個(gè)目標(biāo)的的位置并且知道目標(biāo)物是什么。

分割-Segmentation:分為實(shí)例的分割(Instance-level)和場景分割(Scene-level),解決“每一個(gè)像素屬于哪個(gè)目標(biāo)物或場景”的問題。



目標(biāo)檢測要解決的核心問題


除了圖像分類之外,目標(biāo)檢測要解決的核心問題是:

1.目標(biāo)可能出現(xiàn)在圖像的任何位置。

2.目標(biāo)有各種不同的大小。

3.目標(biāo)可能有各種不同的形狀。

如果用矩形框來定義目標(biāo),則矩形有不同的寬高比。由于目標(biāo)的寬高比不同,因此采用經(jīng)典的滑動(dòng)窗口 圖像縮放的方案解決通用目標(biāo)檢測問題的成本太高。


目標(biāo)檢測的應(yīng)用


目標(biāo)檢測在很多領(lǐng)域都有應(yīng)用需求。其中被廣為研究的是人臉檢測,行人檢測,車輛檢測等重要目標(biāo)的檢測。人臉檢測在SIGAI上一篇文章“人臉識(shí)別算法演化史”中已經(jīng)簡單介紹,后面我們會(huì)針對這個(gè)問題撰寫綜述文章。


行人檢測


行人檢測在視頻監(jiān)控,人流量統(tǒng)計(jì),自動(dòng)駕駛中都有重要的地位,后續(xù)也會(huì)有相關(guān)綜述文章。



車輛檢測


車輛檢測在智能交通,視頻監(jiān)控,自動(dòng)駕駛中有重要的地位。車流量統(tǒng)計(jì),車輛違章的自動(dòng)分析等都離不開它,在自動(dòng)駕駛中,首先要解決的問題就是確定道路在哪里,周圍有哪些車、人或障礙物。



其他應(yīng)用


交通標(biāo)志如交通燈、行駛規(guī)則標(biāo)志的識(shí)別對于自動(dòng)駕駛也非常重要,我們需要根據(jù)紅綠燈狀態(tài),是否允許左右轉(zhuǎn)、掉頭等標(biāo)志確定車輛的行為。


交通標(biāo)志檢測


除了這些常見目標(biāo)的檢測之外,很多領(lǐng)域里也需要檢測自己感興趣的目標(biāo)。比如工業(yè)中材質(zhì)表面的缺陷檢測,硬刷電路板表面的缺陷檢測等。

      表面缺陷檢測


農(nóng)業(yè)中農(nóng)作物表面的病蟲害識(shí)別也需要用到目標(biāo)檢測技術(shù):


農(nóng)作物病蟲害檢測


人工智能在醫(yī)學(xué)中的應(yīng)用目前是一個(gè)熱門的話題,醫(yī)學(xué)影像圖像如MRI的腫瘤等病變部位檢測和識(shí)別對于診斷的自動(dòng)化,提供優(yōu)質(zhì)的治療具有重要的意義。

腫瘤檢測


目標(biāo)檢測相關(guān)算法


DPM算法


與人臉、行人等特定類型的目標(biāo)檢測不同,通用目標(biāo)檢測要同時(shí)檢測出圖像中的多類目標(biāo),難度更大。處理這一問題的經(jīng)典方法是DPM(Deformable Part Model),正如其名,這是可變形的組件模型,是一種基于組件的檢測算法。該模型由Felzenszwalb在2008年提出,并發(fā)表了一系列的CVPR,NIPS文章,蟬聯(lián)三屆PASCAL VOC目標(biāo)檢測冠軍,拿下了2010年P(guān)ASCAL VOC的“終身成就獎(jiǎng)”。


在深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)出現(xiàn)之前,DPM算法一直是目標(biāo)檢測領(lǐng)域最優(yōu)秀的算法,它的基本思想是先提取DPM人工特征(如下圖所示),再用latentSVM分類。這種特征提取方式存在明顯的局限性,首先,DPM特征計(jì)算復(fù)雜,計(jì)算速度慢;其次,人工特征對于旋轉(zhuǎn)、拉伸、視角變化的物體檢測效果差。這些弊端很大程度上限制了算法的應(yīng)用場景。


DPM目標(biāo)檢測流程


Alexnet


現(xiàn)代深度神經(jīng)網(wǎng)絡(luò)的想法早在2006年就被 Geoffrey Hinton 提出,直到2012年,Alex Krizhevsky憑借著名的Alexnet卷積神經(jīng)網(wǎng)絡(luò)模型以領(lǐng)先第二名10%的成績奪得ILSVRC2012圖像分類比賽冠軍,深度學(xué)習(xí)技術(shù)才真正走進(jìn)主流學(xué)術(shù)界和工業(yè)界的視野。深度神經(jīng)網(wǎng)絡(luò)的出現(xiàn)顛覆了傳統(tǒng)的特征提取方式,憑借其強(qiáng)大的表達(dá)能力,通過豐富的訓(xùn)練數(shù)據(jù)和充分的訓(xùn)練能夠自主學(xué)習(xí)有用的特征。這相比傳統(tǒng)的人工發(fā)現(xiàn)特征并根據(jù)特征設(shè)計(jì)算法的方式是質(zhì)的飛躍。

AlexNet 網(wǎng)絡(luò)結(jié)構(gòu)


通過卷積神經(jīng)網(wǎng)絡(luò)可以學(xué)到物體在各個(gè)層次的抽象表達(dá)(關(guān)于卷積神經(jīng)網(wǎng)絡(luò)的原理以及為什么會(huì)有效,SIGAI會(huì)在接下來的文章中介紹):

深度學(xué)習(xí)得到的層次特征表達(dá)


OverFeat


2013年紐約大學(xué)Yann LeCun團(tuán)隊(duì)中Zhang xiang等提出的OverFeat在ILSVRC2013比賽中獲得了多項(xiàng)第一,他們改進(jìn)了Alexnet,提出了使用同一個(gè)卷積網(wǎng)絡(luò)完成了多個(gè)任務(wù)的方法。該方法充分利用了卷積神經(jīng)網(wǎng)絡(luò)的特征提取功能,它把分類過程中提取到的特征同時(shí)又用于定位檢測等各種任務(wù),只需要改變網(wǎng)絡(luò)的最后幾層,就可以實(shí)現(xiàn)不同的任務(wù),而不需要從頭開始訓(xùn)練整個(gè)網(wǎng)絡(luò)的參數(shù)。這充分體現(xiàn)和發(fā)掘了CNN特征共享的優(yōu)點(diǎn)。


該文主要的亮點(diǎn)是:

1.共享卷基層用于多任務(wù)學(xué)習(xí)。

2.全卷積網(wǎng)絡(luò)思想。

3.在特征層進(jìn)行滑窗操作(Sliding Window)避免大量重復(fù)運(yùn)算,這也是后來的系列算法不斷沿用和改進(jìn)的經(jīng)典做法。


OverFeat幾個(gè)明顯的缺陷

1.采用了多尺度貪婪的劃窗策略,導(dǎo)致計(jì)算量還是很大 。

2.由于當(dāng)時(shí)并沒有太優(yōu)秀的backbone網(wǎng)絡(luò),共享特征層的表征能力不是太強(qiáng),沒有考慮多尺度特征融合,對小目標(biāo)效果差,整體的檢測效果不盡如人意。ILSVRC 2013數(shù)據(jù)集上的mAP(可以簡單的理解為檢測準(zhǔn)確率)為24.3%。


經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)有一個(gè)問題是它只能接受固定大小的輸入圖像,這是因?yàn)榈谝粋€(gè)全連接層和它之前的卷積層之間的權(quán)重矩陣大小是固定的,而卷積層、全連接層本身對輸入圖像的大小并沒有限制。而在做目標(biāo)檢測時(shí),卷積網(wǎng)絡(luò)面臨的輸入候選區(qū)域圖像大小尺寸是不固定的。


下面用一個(gè)例子說明怎么讓一個(gè)已經(jīng)設(shè)計(jì)好的DCNN模型,可以支持任意大小圖片輸入,其中一種方案是全卷積網(wǎng)絡(luò)(FCN),即去掉所有全連接層,全部由卷積層來替代:


FCN并不是把5×5的圖片展平成一維向量再進(jìn)行計(jì)算,而是直接采用5×5的卷積核對一整張圖片進(jìn)行卷積運(yùn)算。比如16×16大小的特征圖片,那么會(huì)是什么樣的結(jié)果?請看下面的示意圖:

這個(gè)時(shí)候就會(huì)發(fā)現(xiàn),網(wǎng)絡(luò)最后的輸出是一張2×2大小的特征圖片??梢园l(fā)現(xiàn)采用FCN網(wǎng)絡(luò),可以輸入任意大小的圖片。需要注意的是網(wǎng)絡(luò)最后輸出的特征圖片大小不再總是1×1而是一個(gè)與輸入圖片大小相關(guān)。


OverFeat有很多創(chuàng)新,但是不能算是目標(biāo)檢測典型的Pipeline,所以我們單獨(dú)提了出來。下面將從R-CNN開始介紹目前基于DCNN物體檢測發(fā)展脈絡(luò)。


卷積神經(jīng)網(wǎng)絡(luò)用于目標(biāo)檢測之后,進(jìn)展神速,在短期內(nèi)大幅度的提高了算法的精度,推動(dòng)這一技術(shù)走向?qū)嵱谩?/p>


基于DCNN的目標(biāo)檢測算法發(fā)展路線圖


R-CNN

Region CNN(簡稱R-CNN)由Ross Girshick

(江湖人稱RBG大神,F(xiàn)elzenszwalb的學(xué)生)提出,是利用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測的里程碑之作,奠定了這個(gè)子領(lǐng)域的基礎(chǔ)。這篇文章思路清奇,在DPM方法經(jīng)歷多年瓶頸期后,顯著提升了檢測率(ILSVRC 2013數(shù)據(jù)集上的mAP為31.4%)。RBG是這個(gè)領(lǐng)域神一樣的存在,后續(xù)的一些改進(jìn)方法如Fast R-CNN、Faster R-CNN、YOLO等相關(guān)工作都和他有關(guān)。


R-CNN檢測時(shí)的主要步驟為:

1.使用Selective Search算法從待檢測圖像中提取2000個(gè)左右的區(qū)域候選框,這些候選框可能包含要檢測的目標(biāo)。

2.把所有侯選框縮放成固定大?。ㄔ牟捎?27×227)。

3.用DCNN提取每個(gè)候選框的特征,得到固定長度的特征向量。

4.把特征向量送入SVM進(jìn)行分類得到類別信息,送入全連接網(wǎng)絡(luò)進(jìn)行回歸得到對應(yīng)位置坐標(biāo)信息。


R-CNN不采用滑動(dòng)窗口方案的原因一是計(jì)算成本高,會(huì)產(chǎn)生大量的待分類窗口;另外不同類型目標(biāo)的矩形框有不同的寬高比,無法使用統(tǒng)一尺寸的窗口對圖像進(jìn)行掃描。用于提取特征的卷積網(wǎng)絡(luò)有5個(gè)卷積層和2個(gè)全連接層,其輸入是固定大小的RGB圖像,輸出為4096維特征向量。對候選區(qū)域的分類采用線性支持向量機(jī),對每一張待檢測圖像計(jì)算所有候選區(qū)域的特征向量,送入支持向量機(jī)中進(jìn)行分類;同時(shí)送入全連接網(wǎng)絡(luò)進(jìn)行坐標(biāo)位置回歸。



R-CNN雖然設(shè)計(jì)巧妙,但仍存在很多缺點(diǎn):

1.重復(fù)計(jì)算。R-CNN雖然不再是窮舉,但通過Proposal(Selective Search)的方案依然有兩千個(gè)左右的候選框,這些候選框都需要單獨(dú)經(jīng)過backbone網(wǎng)絡(luò)提取特征,計(jì)算量依然很大,候選框之間會(huì)有重疊,因此有不少其實(shí)是重復(fù)計(jì)算。

2.訓(xùn)練測試不簡潔。候選區(qū)域提取、特征提取、分類、回歸都是分開操作,中間數(shù)據(jù)還需要單獨(dú)保存。

3.速度慢。前面的缺點(diǎn)最終導(dǎo)致R-CNN出奇的慢,GPU上處理一張圖片需要十幾秒,CPU上則需要更長時(shí)間。

4.輸入的圖片Patch必須強(qiáng)制縮放成固定大?。ㄔ牟捎?27×227),會(huì)造成物體形變,導(dǎo)致檢測性能下降。


SPPNet


此后MSRA的Kaiming He等人在R-CNN的基礎(chǔ)上提出了SPPNet,該方法雖然還依賴候選框的生成,但將提取候選框特征向量的操作轉(zhuǎn)移到卷積后的特征圖上進(jìn)行,將R-CNN中的多次卷積變?yōu)橐淮尉矸e,大大降低了計(jì)算量(這一點(diǎn)參考了OverFeat)。


R-CNN的卷積網(wǎng)絡(luò)只能接受固定大小的輸入圖像。為了適應(yīng)這個(gè)圖像尺寸,要么截取這個(gè)尺寸的圖像區(qū)域,這將導(dǎo)致圖像未覆蓋整個(gè)目標(biāo);要么對圖像進(jìn)行縮放,這會(huì)產(chǎn)生扭曲。在卷積神經(jīng)網(wǎng)絡(luò)中,卷積層并不要求輸入圖像的尺寸固定,只有第一個(gè)全連接層需要固定尺寸的輸入,因?yàn)樗颓耙粚又g的權(quán)重矩陣是固定大小的,其他的全連接層也不要求圖像的尺寸固定。如果在最后一個(gè)卷積層和第一個(gè)全連接層之間做一些處理,將不同大小的圖像變?yōu)楣潭ù笮〉娜B接層輸入就可以解決問題。


SPPNet引入了Spatial Pyramid pooling層,對卷積特征圖像進(jìn)行空間金字塔采樣獲得固定長度的輸出,可對特征層任意長寬比和尺度區(qū)域進(jìn)行特征提取。具體做法是對特征圖像區(qū)域進(jìn)行固定數(shù)量的網(wǎng)格劃分,對不同寬高的圖像,每個(gè)網(wǎng)格的高度和寬度是不規(guī)定的,對劃分的每個(gè)網(wǎng)格進(jìn)行池化,這樣就可以得到固定長度的輸出。下圖是SPP操作示意圖:


相比R-CNN,SPPNet的檢測速度提升了30倍以上。下圖是R-CNN和SPPNet 檢測流程的比較:


下圖是SPPNet的原理:


SPPNet 檢測框架圖


SPPNet和R-CNN一樣,它的訓(xùn)練要經(jīng)過多個(gè)階段,中間特征也要進(jìn)行存儲(chǔ);backbone網(wǎng)絡(luò)參數(shù)沿用了分類網(wǎng)絡(luò)的初始參數(shù),沒有針對檢測問題進(jìn)行優(yōu)化。


Fast RCNN

Ross Girshick 針對SPPNet做了進(jìn)一步改進(jìn)提出的FRCNN ,其主要?jiǎng)?chuàng)新是RoI Pooling 層,它將不同大小候選框的卷積特征圖統(tǒng)一采樣成固定大小的特征。ROI池化層的做法和SPP層類似,但只使用一個(gè)尺度進(jìn)行網(wǎng)格劃分和池化。該層可以直接求導(dǎo),訓(xùn)練時(shí)直接將梯度傳導(dǎo)到backbone網(wǎng)絡(luò)進(jìn)行優(yōu)化。FRCNN針對R-CNN和SPPNet在訓(xùn)練時(shí)是多階段的和訓(xùn)練的過程中很耗費(fèi)時(shí)間空間的問題進(jìn)行改進(jìn)。將深度網(wǎng)絡(luò)和后面的SVM分類兩個(gè)階段整合到一起,使用一個(gè)新的網(wǎng)絡(luò)直接做分類和回歸。使得網(wǎng)絡(luò)在Pascal VOC上的訓(xùn)練時(shí)間從R-CNN的84小時(shí)縮短到9.5小時(shí),檢測時(shí)間更是從45秒縮短到0.32秒。


重要的是Fast RCNN的backbone網(wǎng)絡(luò)也可以參與訓(xùn)練了?。。?/p>


Faster RCNN

SPPNet和Faster RCNN都需要獨(dú)立的候選區(qū)域生成模塊,這個(gè)模塊計(jì)算量很大,而且不易用GPU加速。針對這個(gè)問題,Shaoqin Ren 等人在Faster RCNN基礎(chǔ)上提出Faster R-CNN ,在主干網(wǎng)絡(luò)中增加了RPN (Region Proposal Network)網(wǎng)絡(luò),通過一定規(guī)則設(shè)置不同尺度的錨點(diǎn)(Anchor)在RPN的卷積特征層提取候選框來代替Selective Search等傳統(tǒng)的候選框生成方法,實(shí)現(xiàn)了網(wǎng)絡(luò)的端到端訓(xùn)練。候選區(qū)域生成、候選區(qū)域特征提取、框回歸和分類全過程一氣呵成,在訓(xùn)練過程中模型各部分不僅學(xué)習(xí)如何完成自己的任務(wù),還自主學(xué)習(xí)如何相互配合。這也是第一個(gè)真正意義上的深度學(xué)習(xí)目標(biāo)檢測算法。


注:Shaoqin Ren實(shí)現(xiàn)的matlab版本中RPN階段和FRCNN階段是分開訓(xùn)練的,但是在實(shí)際的實(shí)踐中(RBG實(shí)現(xiàn)的Python版本)發(fā)現(xiàn)二者可以一起優(yōu)化訓(xùn)練,而且精度沒有損失,可以說Faster RCNN真正實(shí)現(xiàn)了端到端的訓(xùn)練。

Fast RCNN(左) 和 Faster RCNN(右)框架結(jié)構(gòu)對比


R-FCN

由于現(xiàn)在的主流網(wǎng)絡(luò)層數(shù)越來越多,基于Faster RCNN檢測框架的方法的計(jì)算量受到了3個(gè)因素的影響:

1.基礎(chǔ)網(wǎng)絡(luò)的復(fù)雜度

2.候選框數(shù)量的多少

3.分類和位置回歸子網(wǎng)絡(luò)的復(fù)雜度(每個(gè)候選框的box都會(huì)獨(dú)立進(jìn)行前向計(jì)算)。


一般來說直接優(yōu)化前兩點(diǎn)性價(jià)比不太高。如果直接優(yōu)化RoI-wise subnetwork是否可行呢,將子網(wǎng)絡(luò)的深度盡可能減少?分類是要增加物體的平移不變性(不同的位置都是同一個(gè)物體);目標(biāo)檢測時(shí)減少物體的平移變化(目標(biāo)檢測需要得到物體所在的位置)。通常我們所用的網(wǎng)絡(luò)都是ImageNet的分類任務(wù)訓(xùn)練得到的,在目標(biāo)檢測的時(shí)候進(jìn)行Finetune。由于得到的初始模型基于分類任務(wù),那么會(huì)偏向于平移不變性,這和目標(biāo)檢測就出現(xiàn)了矛盾。


MSRA的Jifeng Dai等人提出了R-FCN,通過position-positive score maps(位置敏感得分圖)來解決這個(gè)矛盾。位置敏感得分圖通過預(yù)測RoI中不同部位的類別投票表決產(chǎn)生該RoI的類別預(yù)測。引用原文中的例子,“如果我們的算法要識(shí)別嬰兒,那么把一個(gè)目標(biāo)區(qū)域分成九宮格,其中算法認(rèn)為其中五個(gè)格子中的區(qū)域分別像嬰兒的頭、四肢和軀干,那么根據(jù)投票機(jī)制,就認(rèn)為這個(gè)目標(biāo)區(qū)域里的是一個(gè)嬰兒。這很符合我們?nèi)祟惖呐袛噙壿?。?/p>


 R-FCN沿用了 Faster RCNN 的框架結(jié)構(gòu),不同的是在Faster R-CNN的基礎(chǔ)上通過引入位置敏感得分圖,將RoI-wise subnetwork消滅了,直接在位置敏感得分圖上利用ROI Pooling進(jìn)行信息采樣融合分類和位置信息。


R-FCN 網(wǎng)絡(luò)框架結(jié)構(gòu)

ResNet101為例,不同檢測框架復(fù)用卷積網(wǎng)絡(luò)層數(shù)


Mask R-CNN

2017年Kaiming He等提出了Mask R-CNN ,并獲得ICCV2017 Best Paper Award。作者指出,F(xiàn)aster R-CNN在做下采樣和RoI Pooling時(shí)都對特征圖大小做了取整操作,這種做法對于分類任務(wù)基本沒有影響,但對檢測任務(wù)會(huì)有一定影響,對語義分割這種像素級(jí)任務(wù)的精度影響則更為嚴(yán)重。為此,作者對網(wǎng)絡(luò)中涉及特征圖尺寸變化的環(huán)節(jié)都不使用取整操作,而是通過雙線性差值填補(bǔ)非整數(shù)位置的像素。這使得下游特征圖向上游映射時(shí)沒有位置誤差,不僅提升了目標(biāo)檢測效果,還使得算法能滿足語義分割任務(wù)的精度要求。


以上介紹的檢測方法都屬于two-stage的方案,即分為候選區(qū)域生成和區(qū)域分類兩步,接下來我們將介紹幾種single-stage的經(jīng)典方法。


YOLO系列


2015年,隨著YOLO算法的出現(xiàn),深度學(xué)習(xí)目標(biāo)檢測算法開始有了兩步(two-stage)和單步(single-stage)之分。區(qū)別于R-CNN系列為代表的兩步檢測算法,YOLO舍去了候選框提取分支(Proposal階段),直接將特征提取、候選框回歸和分類在同一個(gè)無分支的卷積網(wǎng)絡(luò)中完成,使得網(wǎng)絡(luò)結(jié)構(gòu)變得簡單,檢測速度較Faster R-CNN也有近10倍的提升。這使得深度學(xué)習(xí)目標(biāo)檢測算法在當(dāng)時(shí)的計(jì)算能力下開始能夠滿足實(shí)時(shí)檢測任務(wù)的需求。


算法將待檢測圖像縮放到統(tǒng)一尺寸,為了檢測不同位置的目標(biāo),將圖像等分成的網(wǎng)格,如果某個(gè)目標(biāo)的中心落在一個(gè)網(wǎng)格單元中,此網(wǎng)格單元就負(fù)責(zé)預(yù)測該目標(biāo)。


YOLOv1只針對最后7x7的特征圖進(jìn)行分析,使得它對小目標(biāo)的檢測效果不佳,當(dāng)多個(gè)目標(biāo)出現(xiàn)在一個(gè)Grid Cell時(shí)不容易區(qū)分。

YOLOv1原理圖

YOLOv1在7X7特征圖上對每個(gè)Grid cell進(jìn)行操作


YOLOv2改進(jìn)了YOLOv1的網(wǎng)絡(luò)結(jié)構(gòu),除加入時(shí)下熱門的批量歸一化層以及殘差網(wǎng)絡(luò)結(jié)構(gòu)以外,還針對性的訓(xùn)練了一個(gè)高分辨率的分類網(wǎng)絡(luò)(448x448)然后利用該網(wǎng)絡(luò)訓(xùn)練檢測網(wǎng)絡(luò),單單通過提升輸入的分辨率,mAP獲得了4%的提升。YOLOv1利用單個(gè)grid cell拼接成全連接層完成邊框的預(yù)測,導(dǎo)致丟失較多的空間信息,定位不準(zhǔn),作者在這一版本中進(jìn)行了優(yōu)化改進(jìn):


1.借鑒了Faster R-CNN中的Anchor思想,但是作者在實(shí)踐中發(fā)現(xiàn)用基于規(guī)則選擇的Anchor效果并沒有得到提升,實(shí)驗(yàn)中作者對Pascal VOC和COCO的數(shù)據(jù)集進(jìn)行了統(tǒng)計(jì)分析(聚類分析)選擇針對行的Anchor的尺寸性能的到了明顯提升。


2.作者在使用anchor boxes時(shí)發(fā)現(xiàn)模型收斂不穩(wěn)定,尤其是在早期迭代的時(shí)候。大部分的不穩(wěn)定現(xiàn)象出現(xiàn)在預(yù)測box的 (x,y) 坐標(biāo)的優(yōu)化上。因此作者就沒有采用直接預(yù)測offset的方法,而使用了預(yù)測相對于grid cell的坐標(biāo)位置的辦法,利用logistic函數(shù)把ground truth歸一化到0到1之間,坐標(biāo)值被歸一化后,模型優(yōu)化會(huì)更穩(wěn)定。

YOLOv3在YOLOv2的基礎(chǔ)上使用了全新設(shè)計(jì)的Darknet53殘差網(wǎng)絡(luò)并結(jié)合FPN網(wǎng)絡(luò)結(jié)構(gòu),在網(wǎng)絡(luò)后兩個(gè)特征圖上采樣后于網(wǎng)絡(luò)前期相應(yīng)尺寸的特征圖聚合再經(jīng)過卷積網(wǎng)絡(luò)后得到預(yù)測結(jié)果。這些改進(jìn)使得YOLOv3用三分之一的時(shí)間達(dá)到與SSD相當(dāng)?shù)木_度。在 COCO test-dev 上 mAP@0.5 達(dá)到 57.9%,與RetinaNet(FocalLoss論文所提出的單階段網(wǎng)絡(luò))的結(jié)果相近,但速度快4倍。


YOLOv3的模型比之前的版本復(fù)雜了不少,可以通過改變模型結(jié)構(gòu)的大小來權(quán)衡速度與精度。

YOLOv3的改進(jìn)點(diǎn):

1. 多尺度預(yù)測(FPN)

2. 更好的Backbone網(wǎng)絡(luò)(Darknet53殘差網(wǎng)絡(luò))

3. 分類損失采用binary cross-entropy損失函數(shù)替換Softmax損失函數(shù)(Softmax會(huì)選擇分?jǐn)?shù)最高的類別判定為當(dāng)前框所屬的類別,而現(xiàn)實(shí)中一個(gè)目標(biāo)可能屬于多個(gè)類別標(biāo)簽)


SSD

SSD對YOLO進(jìn)行了改進(jìn),達(dá)到了和兩階段方法相當(dāng)?shù)木?,同時(shí)又保持了較快的運(yùn)行速度。SSD也采用了網(wǎng)格劃分的思想,和Faster RCNN不同的是它將所有的操作整合在一個(gè)卷積網(wǎng)絡(luò)中完成。為了檢測不同尺度的目標(biāo),SSD對不同卷積層的特征圖像進(jìn)行滑窗掃描;在前面的卷積層輸出的特征圖像中檢測小的目標(biāo),在后面的卷積層輸出的特征圖像中檢測大的目標(biāo)。它的主要特點(diǎn)是:


1.基于多尺度特征圖像的檢測:在多個(gè)尺度的卷積特征圖上進(jìn)行預(yù)測,以檢測不同大小的目標(biāo),一定程度上提升了小目標(biāo)物體的檢測精度。

2.借鑒了Faster R-CNN中的Anchor boxes思想,在不同尺度的特征圖上采樣候選區(qū)域,一定程度上提升了檢測的召回率以及小目標(biāo)的檢測效果。下圖是SSD的原理:


FPN

FPN(Feature Pyramid Network)方法同時(shí)利用低層特征高分辨率和高層特征的高語義信息,通過融合這些不同層的特征達(dá)到提升預(yù)測的效果的作用。FPN中預(yù)測是在每個(gè)融合后的特征層上單獨(dú)進(jìn)行的,這和常規(guī)的特征融合方式有所不同。


FPN 網(wǎng)絡(luò)結(jié)構(gòu)如下圖d(其中YOLO使用b結(jié)構(gòu),SSD使用c結(jié)構(gòu))所示,它的結(jié)構(gòu)具有相當(dāng)?shù)撵`活性,可以和各種特征提取網(wǎng)絡(luò)結(jié)合作為檢測算法的基礎(chǔ)網(wǎng)絡(luò)。在后文中會(huì)看到,目前大多數(shù)state-of-art的模型都采用了這種結(jié)構(gòu)。其中RetinaNet在FPN的基礎(chǔ)上使用了ResNet網(wǎng)絡(luò)提取特征,并用Focal Loss損失改善單步目標(biāo)檢測算法中普遍存在的前景類和背景類損失不均衡的問題。這些基于FPN結(jié)構(gòu)的檢測算法能夠在增加網(wǎng)絡(luò)深度、獲取更豐富語義信息的同時(shí)從淺層特征圖中獲取更豐富且高分辨率的圖像特征,這使得這種網(wǎng)絡(luò)結(jié)構(gòu)在實(shí)際應(yīng)用中表現(xiàn)出優(yōu)異的性能。


目前主流檢測框架有4種使用特征的形式:


1.圖像金字塔。即將圖像縮放到不同的大小,然后不同大小的圖像生成對應(yīng)的特征。這種方法的缺點(diǎn)是增加了時(shí)間成本。有些算法會(huì)在檢測時(shí)采用這種圖像金字塔的方案。

2.單一尺度特征層。SPPNet,F(xiàn)ast RCNN,F(xiàn)aster RCNN采用這種方式,即僅采用網(wǎng)絡(luò)最后一層卷積層的特征。

3.SSD采用這種多尺度特征融合的方式,但是沒有上采樣過程,即從網(wǎng)絡(luò)不同層抽取不同尺度的特征做預(yù)測,這種方式不會(huì)增加額外的計(jì)算量。SSD算法中沒有用到足夠低層的特征(在SSD中,最低層的特征是VGG網(wǎng)絡(luò)的conv4_3),而足夠低層的特征對于檢測小物體是很有幫助的。

4.FPN采用bottom-up與top-down的結(jié)構(gòu),實(shí)現(xiàn)了低層特征和高層語義特征的融合,提高了特征映射的信息密度和分辨率,提高了小目標(biāo)物體的檢測效果;區(qū)別于SSD,F(xiàn)PN每層都是獨(dú)立預(yù)測的。


COCO2017排行榜


最后我們來看通用目標(biāo)檢測算法的最新進(jìn)展。下圖是MSCOCO 2017年目標(biāo)檢測競賽的領(lǐng)先算法:

其中排名第一的模型為曠視科技(face )提交的MegDet。他們的方案沒有在檢測算法方面做過多優(yōu)化(采用的是ResNet50 FPN),而是在并行訓(xùn)練規(guī)模上做了優(yōu)化。訓(xùn)練硬件環(huán)境是由128個(gè)GPU組成的集群,通過改進(jìn)跨GPU批量歸一化算法和學(xué)習(xí)率變化策略,將batch size增大到256張,這使得批量歸一化層中使用的批均值和方差更能夠反應(yīng)總體特征,有效提升了歸一化效果,從而大幅提升訓(xùn)練速度并且得到了非常好的結(jié)果。


排名第二的方案PAN改進(jìn)了FPN算法,如下圖所示。它在FPN的基礎(chǔ)上不僅增加了一個(gè)降采樣網(wǎng)絡(luò)(b),還聚合使用了多個(gè)不同尺度特征圖上的預(yù)測候選框(c)。該模型不僅在這一屆的COCO目標(biāo)檢測競賽中名列第二,而且取得了語義分割任務(wù)的冠軍。



第三名的模型出自MSRA之手,他們同樣沒有對檢測算法本身做過多改進(jìn),在FPN基礎(chǔ)上使用了Xception網(wǎng)絡(luò)結(jié)構(gòu)和SoftNMS,但與以往不同的是使用了可變卷積層DCN(deformable convnet)替代了傳統(tǒng)卷積,使得卷積層能夠根據(jù)圖片的語義信息調(diào)整卷積核感受點(diǎn)的位置,達(dá)到提升網(wǎng)絡(luò)特征提取能力的目的。下圖是可變卷積層的原理:

排名第四的結(jié)果是用以FPN ResNeXt網(wǎng)絡(luò)為作為基礎(chǔ)網(wǎng)絡(luò)的Mask R-CNN算法得到的。后面大多數(shù)成績優(yōu)異的模型都是R-FCN、FPN、Faster-RCNN等經(jīng)典模型結(jié)合DCN、Attention機(jī)制、先進(jìn)分類網(wǎng)絡(luò)結(jié)構(gòu)和模型融合等技術(shù)而形成的算法。


本文為SIGAI原創(chuàng)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多