1.目標(biāo)檢測中的兩類方法
兩種進行目標(biāo)檢測任務(wù)的深度學(xué)習(xí)方法:
- 分類:深度學(xué)習(xí)的目標(biāo)檢測的方法可以分為兩類,分別是一階段方法和二階段方法。
- 一階段方法:YOLO系列模型都是一階段方法,這一類方法可以一步到位地使用卷積神經(jīng)網(wǎng)絡(luò)進行特征提取并輸出標(biāo)注框。
- 兩階段方法:兩階段階段方法包括Faster-RCNN和Mask-RCNN等,在進行目標(biāo)檢測時,這一類方法會在第一個階段中找出一些可能的邊界框作為候選,這一步相當(dāng)于一個初選,在第二個階段再從候選的邊界框中找出最優(yōu)的邊界框作為目標(biāo)檢測結(jié)果。
兩類目標(biāo)檢測方法的比較:
- 一階段網(wǎng)絡(luò):單階段網(wǎng)絡(luò)的核心優(yōu)勢在于速度會非??欤虼诉m合做實時檢測任務(wù)(如視頻處理),但是缺點在于效果通常情況下不太好。
- 兩階段網(wǎng)絡(luò):兩階段網(wǎng)絡(luò)的效果一般會比單階段網(wǎng)絡(luò)好,但是速度遠低于實時任務(wù)的要求。
目標(biāo)檢測算法的評價指標(biāo):衡量目標(biāo)檢測算法的兩個指標(biāo)分別是MAP和FPS。MAP用于衡量算法的預(yù)測能力;FPS用于衡量算法的運行速度。
2.目標(biāo)檢測的評價指標(biāo)
精確率和召回率:
- 精確率和召回率的定義:精確率是指正確預(yù)測為正類的樣本占所有預(yù)測為正類的樣本的比例;召回率是指正確預(yù)測為正類的樣本占所有實際為正類的樣本的比例。
- 目標(biāo)檢測任務(wù)中作用的概述:對于目標(biāo)檢測任務(wù),精確率是指對于圖像中每一個標(biāo)注的物體檢測效果好不好;召回率是指對圖像中每一個標(biāo)注的物體是否都檢測到了。
- 存在的問題:在大部分問題上,精確率高時召回率就低,召回率高時精確率就低。
IOU指標(biāo):也就是交集并集比。是指兩個邊界框的交集面積和并集面積的比值。這個比值越高,說明預(yù)測的效果越好。
置信度閾值:
- 每一個目標(biāo)檢測框都會帶有一個置信度,表示該邊界框中的內(nèi)容是被檢測的物體的概率。
- 如果這個概率值大于一定的置信度閾值,才保留對應(yīng)的目標(biāo)檢測框。
map指標(biāo):結(jié)合精確率、召回率、IOU指標(biāo)和置信度閾值的綜合評價指標(biāo)。map值其實是精確率與召回率曲線與橫縱坐標(biāo)軸所圍成的面積大小。對于目標(biāo)檢測任務(wù),MAP值越大表示效果越好。
3.YOLO V1
YOLO的含義:YOU ONLY LOOK ONCE
。
YOLO v1的提出時間:2016年。
YOLO v1的核心思想:
- 首先將一張圖片分為指定大小(7×7)的多個網(wǎng)格;
- 只關(guān)注待檢測物體的中心點落在哪個網(wǎng)格中,則由該網(wǎng)格負責(zé)對待檢測物體進行預(yù)測。
- 根據(jù)經(jīng)驗先確定兩種不同長寬比的檢測框,并在模型過程中通過IOU值選擇其中一個,如果該檢測框的置信度高于一定的閾值,則對其長寬進行調(diào)整。
- 調(diào)整的過程相當(dāng)于一個回歸預(yù)測的過程。調(diào)整完成后得到最終的預(yù)測檢測框。
每個網(wǎng)格的輸出值:對于每一個網(wǎng)格,需要預(yù)測出兩組值,是指該網(wǎng)格對應(yīng)的檢測框的中心坐標(biāo)(x,y),以及檢測框的長寬數(shù)據(jù),同時還需要一個置信度。
YOLO v1的輸入圖像大小:448×448。之所以YOLO v1的輸入大小不能改變,是因為網(wǎng)絡(luò)結(jié)構(gòu)中有全連接層的存在,這一點在后續(xù)的版本中有相應(yīng)的改進。
YOLO使用相對坐標(biāo)值:在YOLO模型中,候選框的坐標(biāo)值并非絕對坐標(biāo)值,而是相對坐標(biāo)值。
YOLO v1輸出結(jié)果解釋:YOLO V1的輸出結(jié)果可以表示為7×7×30。其中的7×7表示每個網(wǎng)格中的像素個數(shù);30可以拆分為20和10:20表示屬于20個類別對應(yīng)的概率,10表示兩個目標(biāo)檢測框各自的(x,y,w,h,c),其中的c表示置信度。將輸出結(jié)果更加一般化。假設(shè)每個網(wǎng)格的像素為S×S,每個網(wǎng)格分配的目標(biāo)檢測框個數(shù)為B,需要進行的多分類類別數(shù)為C,那么網(wǎng)絡(luò)最終的預(yù)測結(jié)果為(SS)(B*5+C)。
YOLO v1中的損失函數(shù):
- 位置誤差損失函數(shù):通過一定的計算衡量預(yù)測框與真實框之間的位置和大小差異。
- 置信度誤差損失函數(shù):通過一定的計算衡量預(yù)測框和真實框之間的置信度誤差。需要分為含有待檢測物體和不含有待檢測物體的兩部分函數(shù),之所以需要分開,是因為背景和物體的比例不均衡,因此兩個損失函數(shù)的權(quán)重也不相同。
- 分類誤差損失函數(shù):對于分類的正確和錯誤的情況需要設(shè)置一個額外的損失函數(shù)。
- 總體損失函數(shù):總體損失函數(shù)是其他幾種損失函數(shù)相加的結(jié)果。
非極大值抑制(NMS):非極大值抑制用于處理這樣一個問題:如果對于同一個目標(biāo),同時存在多個大于IOU閾值的相互之間有部分重疊的候選框,那么我們只選擇其中置信度最高的候選框作為最終結(jié)果。
YOLO V1的問題:
- 難以檢測重合在一起的目標(biāo);
- 不方便完成多標(biāo)簽分類任務(wù)以及小物體的分類任務(wù)。
4.YOLO V2
YOLO V2的改進細節(jié):
- 批量歸一化技術(shù):YOLO V2版本丟棄了YOLO V1中的Dropout層,卷積之后全部加入批量歸一化。網(wǎng)絡(luò)的每一層輸入都做了歸一化,更加容易收斂。
備注:從現(xiàn)在的角度來看,批量歸一化處理已經(jīng)成為了網(wǎng)絡(luò)的必備處理方式,可以有效提高網(wǎng)絡(luò)的效果。這是因為歸一化可以有效地優(yōu)化每一層的輸出結(jié)果防止其跑偏,更加容易收斂。
- 更高的分辨率:在訓(xùn)練過程的最后使用更高分辨率的圖像對模型進行微調(diào)。這樣處理后的模型的MAP值得到的明顯提高。
- 舍棄全連接層:YOLO V2中舍棄了全連接層,從而避免了全連接層容易過擬合和訓(xùn)練速度慢的問題。
- Darknet網(wǎng)絡(luò)結(jié)構(gòu):YOLO V2中的Darknet網(wǎng)絡(luò)結(jié)構(gòu)越簡單,速度越快;Darknet網(wǎng)絡(luò)結(jié)構(gòu)越復(fù)雜,模型效果越好,但是速度也會變慢。Darknet的輸入大小為416×416。
- 更大的網(wǎng)格:相較于YOLO v1中的7×7的網(wǎng)格大小,YOLO v2中采用13×13的網(wǎng)格大小,這樣可以獲得更多的特征。
- 更小的卷積核:YOLO V2中采用的卷積核都比較小,這樣就使得感受野會變得更大。
- 更多長寬比例的先驗框:Faster-RCNN中選擇的常規(guī)的先驗比例來制定九種先驗框,但是這個方法不一定完全適合數(shù)據(jù)集。YOLO V2中采用聚類的方式提取先驗框。具體的聚類方法是,對圖像原始數(shù)據(jù)集中的邊界框進行聚類,按照長寬的大致比例將邊界框分為多類。接著,將每一個簇選出一個中心點,并將中心點的數(shù)值作為先驗框的大小。所以,這樣得出的先驗框比例更加具有說服力。這里的聚類中的聚類使用1-IOU表示。聚類方式是K均值聚類算法。聚類的個數(shù)是通過參數(shù)比較得出的,最終得出的K值是5。
備注:候選框種類增加并不會增加MAP值,但是可以增加召回率的值。也就是說,可以盡可能避免圖像中的物體不被檢測出來的情況。
感受野:
- 感受野的概念:感受野就是指特征圖上的一個點能夠看到原始圖像中的多大區(qū)域。特征圖中的每個點都相當(dāng)于原始圖像中與卷積核大小相同的一個區(qū)域的內(nèi)容。因此,感受野越大越能識別到一個大區(qū)域內(nèi)的特征或物體內(nèi)容。
- 感受野的大小的理解:卷積的次數(shù)越多,特征更加深層和抽象。這可以視為最終感受野很大的效果。
- 堆疊多個小卷積層:之所以需要堆疊多個小卷積層而不是使用一個大的卷積層。這是因為堆疊小的卷積核需要的參數(shù)更少,并且卷積過程越多,特征提取也會更加細致。這也是VGG網(wǎng)絡(luò)的基本出發(fā)點:用小的卷積核來完成特征提取操作。
特征融合的改進方法:如果只關(guān)注最后一層卷積層的特征圖,那么就會丟失小目標(biāo)的信息,因此需要融合之前的特征。為了將多個階段的特征圖放在一起處理,因此需要將不同形狀的特征圖進行形狀轉(zhuǎn)換,并拼接在一起進行處理。
5.YOLO V3
YOLO v3的改進細節(jié):文章來源:http://www.zghlxwxcb.cn/news/detail-410361.html
- 網(wǎng)絡(luò)結(jié)構(gòu)改進:最大的改進在于網(wǎng)絡(luò)結(jié)構(gòu),使得其可以更加適合于小目標(biāo)檢測。
- 先驗框的選擇更加豐富:YOLO V3中有了更加類型豐富的先驗框,一共3種比例,每種3個規(guī)格。
- 改進版本的Softmax函數(shù):YOLO V3中使用了改進版本的Softmax函數(shù),用于預(yù)測多標(biāo)簽任務(wù)。
- 特征融合的改進方法:圖像金字塔(之前比較流行)。這是指將圖像先規(guī)格化為不同的尺度后融合在一起,但是由于速度較慢現(xiàn)在已經(jīng)較少使用。另外一種是分別得到不同規(guī)格大小的特征圖后,將不同規(guī)格的特征圖疊加融合在一起。融合之后就避免了對不同大小的特征圖都要進行一次分析。
- 采用殘差連接方法:YOLO V3中也使用了Resnet的思想,通過堆疊更多的層來進行特征提取。
- 去除全連接層和池化層:除了沒有全連接層外,同時也去除了會壓縮特征圖效果的池化層。
備注:Resnet很好地解決了深度神經(jīng)網(wǎng)絡(luò)越深效果越差的問題。其核心在于使用了殘差連接的方法。殘差連接就是對于神經(jīng)網(wǎng)絡(luò)中,如果經(jīng)過某一層網(wǎng)絡(luò)效果下降,那么就從支路繞過這一層。文章來源地址http://www.zghlxwxcb.cn/news/detail-410361.html
到了這里,關(guān)于深度學(xué)習(xí)(目標(biāo)檢測):YOLO網(wǎng)絡(luò)學(xué)習(xí)筆記(YOLO v1,YOLO v2和 YOLO v3)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!