YOLO(一) 算法的原理及演變

第一次接觸到y(tǒng)olo這個(gè)算法是通過吳恩達(dá)的教學(xué)視頻了解到的,當(dāng)時(shí)其實(shí)也算是第一次接觸到目標(biāo)檢測(cè)算法。這里我們主要介紹下YOLO(You Only Look Once)。現(xiàn)在已經(jīng)進(jìn)化到了V3版本了。它不同于Faster RCNN這個(gè)分支走的兩部策略先進(jìn)行前景識(shí)別在進(jìn)行目標(biāo)檢測(cè),它是直接一步到位進(jìn)行目標(biāo)檢測(cè)。因此在識(shí)別的速度上優(yōu)于Faster RCNN(5 FPS), 而 YOLO_v1基礎(chǔ)版在Titan X GPU上可以達(dá)到45幀/s; 快速版可以達(dá)到150幀/s。但是在準(zhǔn)確率上YOLO是稍差與Faster RCNN這個(gè)在之后會(huì)詳細(xì)介紹。順便提下如果想了解Faster RCNN原理可以參考Faster-RCNN的原理及演變。

YOLO v1


我們知道YOLO其實(shí)就是 You Only Look Once, 意思是只需要看一眼就知道位置及對(duì)象,個(gè)人覺得蠻形象的。他不需要Faster RCNN的RPN結(jié)構(gòu),他其實(shí)選取anchor是預(yù)訂了候選框,將圖片劃分為7x7的網(wǎng)格,每個(gè)網(wǎng)格允許有2個(gè)不同的bounding box. 這樣一開始我們就有7x7x2個(gè)候選框(bounding box), 大致粗略覆蓋了圖像的整個(gè)區(qū)域。他的思想就是Faster RCNN在第一階段就算有了回歸框,在第二階段還是需要進(jìn)行精調(diào),那還不如就先生成大致回歸框就ok了。

下面我們就來好好介紹一下這個(gè)模型。

一、模型結(jié)構(gòu)


細(xì)節(jié)模型結(jié)構(gòu)

其實(shí)將這個(gè)模型簡單話為:


縮略版模型結(jié)構(gòu)
  1. 其實(shí)前面就是提取特征后后面為7x7x30的輸出。下面說一下模型輸入輸出
階段 圖示
模型輸入 輸入的是原始圖像,但是需要resize到448x448
模型輸出 輸出為7x7x30向量
輸出向量表示
  1. 模型的輸出為什么是7x7x30呢?
    首先我們來看7x7表示的意思。


    image.png

    其實(shí)對(duì)于每一個(gè)grid代表了(448/7)的區(qū)域表達(dá)。當(dāng)然這里的7x7也是可以調(diào)節(jié)大小的。

那30又是如何形成的通道大小的呢?

a. 2個(gè)bounding box的位置(8個(gè)通道)
每個(gè)bounding box需要4個(gè)數(shù)值來表示其位置,(Center_x,Center_y,width,height),即(bounding box的中心點(diǎn)的x坐標(biāo),y坐標(biāo),bounding box的寬度,高度),2個(gè)bounding box共需要8個(gè)數(shù)值來表示其位置。

b. 2個(gè)bounding box 置信度(2個(gè)通道)

bounding box的置信度 =是否存在目標(biāo)與iou值的乘積
image.png

c. 20分類概率(20個(gè)通道)
下面我們來說一下剩下20維度的分類通道。每一個(gè)通道代表一個(gè)類別的分類概率。因?yàn)閅OLO支持識(shí)別20種不同的對(duì)象(人、鳥、貓、汽車、椅子等),所以這里有20個(gè)值表示該網(wǎng)格位置存在任一種對(duì)象的概率。但是我們一組圖片只能預(yù)測(cè)49個(gè)對(duì)象,可以理解為一個(gè)grid2個(gè)achor只能有一個(gè)預(yù)測(cè)準(zhǔn)的對(duì)象(即計(jì)算IOU比例最大的那個(gè)anchor),所以7x7個(gè)對(duì)象

  1. 設(shè)置訓(xùn)練樣本的細(xì)節(jié)?
    樣本中的每個(gè)Object歸屬到且僅歸屬到一個(gè)grid,即便有時(shí)Object跨越了幾個(gè)grid,也僅指定其中一個(gè)。具體就是計(jì)算出該Object的bounding box的中心位置,這個(gè)中心位置落在哪個(gè)grid,該grid對(duì)應(yīng)的輸出向量中該對(duì)象的類別概率是1(該gird負(fù)責(zé)預(yù)測(cè)該對(duì)象),所有其它grid對(duì)該Object的預(yù)測(cè)概率設(shè)為0(不負(fù)責(zé)預(yù)測(cè)該對(duì)象)。

  2. 說到這里大家有沒有發(fā)現(xiàn)YOLO一個(gè)缺點(diǎn)。
    雖然每個(gè)格子可以預(yù)測(cè) B 個(gè) bounding box,但是最終只選擇只選擇 IOU 最高的 bounding box 作為物體檢測(cè)輸出,即每個(gè)格子最多只預(yù)測(cè)出一個(gè)物體。當(dāng)物體占畫面比例較小,如圖像中包含畜群或鳥群時(shí),每個(gè)格子包含多個(gè)物體,但卻只能檢測(cè)出其中一個(gè)。這是 YOLO 方法的一個(gè)缺陷。(可以該表grid大小例如改為12x12等方法)

  3. 例子


    樣本標(biāo)簽與網(wǎng)絡(luò)實(shí)際輸出

圖中將自行車的位置放在bounding box1,但實(shí)際上是在訓(xùn)練過程中等網(wǎng)絡(luò)輸出以后,比較兩個(gè)bounding box與自行車實(shí)際位置的IOU,自行車的位置(實(shí)際bounding box)放置在IOU比較大的那個(gè)bounding box(圖中假設(shè)是bounding box1),且該bounding box的置信度設(shè)為1

二、 損失函數(shù)


損失函數(shù)

總的來說,就是用網(wǎng)絡(luò)輸出與樣本標(biāo)簽的各項(xiàng)內(nèi)容的誤差平方和作為一個(gè)樣本的整體誤差。
損失函數(shù)中的幾個(gè)項(xiàng)是與輸出的30維向量中的內(nèi)容相對(duì)應(yīng)的。

損失類別 公式 細(xì)節(jié)內(nèi)容
分類loss
公式第5行1_i^{obj}意味著存在對(duì)象的網(wǎng)格才計(jì)入誤差。
bouding box loss
寬度和高度先取了平方根,因?yàn)槿绻苯尤〔钪档脑?,大的?duì)象對(duì)差值的敏感度較低,小的對(duì)象對(duì)差值的敏感度較高,所以取平方根可以降低這種敏感度的差異,使得較大的對(duì)象和較小的對(duì)象在尺寸誤差上有相似的權(quán)重。
bounding box confidence loss
乘以\lambda_{noobj}調(diào)節(jié)不存在對(duì)象的bounding box的置信度的權(quán)重(相對(duì)其它誤差)。YOLO設(shè)置 \lambda_{noobj}=0.5,即調(diào)低不存在對(duì)象的bounding box的置信度誤差的權(quán)重。

三、 YOLO v1 缺陷

缺點(diǎn)
YOLO 對(duì)相互靠的很近的物體,還有很小的群體檢測(cè)效果不好,這是因?yàn)橐粋€(gè)網(wǎng)格中只預(yù)測(cè)了兩個(gè)框,并且只屬于一類。
同一類物體出現(xiàn)的新的不常見的長寬比和其他情況時(shí),泛化能力偏弱。
由于損失函數(shù)的問題,定位誤差是影響檢測(cè)效果的主要原因。尤其是大小物體的處理上,還有待加強(qiáng)。在實(shí)現(xiàn)中,最主要的就是怎么設(shè)計(jì)損失函數(shù),讓這個(gè)三個(gè)方面得到很好的平衡。作者簡單粗暴的全部采用了 sum-squared error loss 來做這件事。
YOLO 采用了多個(gè)下采樣層,網(wǎng)絡(luò)學(xué)到的物體特征并不精細(xì),因此也會(huì)影響檢測(cè)效果。

注意:

  1. 乘以\lambda調(diào)節(jié)bounding box位置誤差的權(quán)重(相對(duì)分類誤差和置信度誤差)。YOLO設(shè)置\lambda_{coord}=5,即調(diào)高位置誤差的權(quán)重。
  2. 都帶有1_i^{obj}意味著只有"負(fù)責(zé)"(IOU比較大)預(yù)測(cè)的那個(gè)bounding box的數(shù)據(jù)才會(huì)計(jì)入誤差。

細(xì)節(jié):
YOLO的最后一層采用線性激活函數(shù),其它層都是Leaky ReLU。訓(xùn)練中采用了drop out和數(shù)據(jù)增強(qiáng)(data augmentation)來防止過擬合。更多細(xì)節(jié)請(qǐng)參考原論文

YOLO v2


在67 FPS,YOLOv2在PASCAL VOC 2007上獲得76.8%的mAP。在40 FPS時(shí),YOLOv2獲得78.6%mAP,這比使用ResNet和SSD 更快的R-CNN更好。憑借如此優(yōu)異的成績,YOLOv2于2017年CVPR發(fā)布并獲得超過1000次引用。YOLO有兩個(gè)缺點(diǎn):一個(gè)缺點(diǎn)在于定位不準(zhǔn)確,另一個(gè)缺點(diǎn)在于和基于region proposal的方法相比召回率較低。因此YOLOv2主要是要在這兩方面做提升。另外YOLOv2并不是通過加深或加寬網(wǎng)絡(luò)達(dá)到效果提升,反而是簡化了網(wǎng)絡(luò)。

下面主要從兩點(diǎn)來介紹下YOLO v2的提升之處。分別是Better以及Faster.

一、Better

  1. Batch Normalization
    相當(dāng)于對(duì)每一層的輸入做了歸一化, 加快收斂,并刪除后面的dropout,提升2%的mAP

  2. High-Resolution Classifier, 將輸入大小由224x224改448x448。因?yàn)閥olov2模型只使用了卷積層和池化層,模型可以隨時(shí)調(diào)整圖片的輸入大小。
    原來的YOLO網(wǎng)絡(luò)在預(yù)訓(xùn)練的時(shí)候采用的是224224的輸入(這是因?yàn)橐话泐A(yù)訓(xùn)練的分類模型都是在ImageNet數(shù)據(jù)集上進(jìn)行的),然后在detection的時(shí)候采用448448的輸入,這會(huì)導(dǎo)致從分類模型切換到檢測(cè)模型的時(shí)候,模型還要適應(yīng)圖像分辨率的改變。而YOLOv2則將預(yù)訓(xùn)練分成兩步:先用224224的輸入從頭開始訓(xùn)練網(wǎng)絡(luò),大概160個(gè)epoch(表示將所有訓(xùn)練數(shù)據(jù)循環(huán)跑160次),然后再將輸入調(diào)整到448448,再訓(xùn)練10個(gè)epoch。注意這兩步都是在ImageNet數(shù)據(jù)集上操作。最后再在檢測(cè)的數(shù)據(jù)集上fine-tuning,也就是detection的時(shí)候用448*448的圖像作為輸入就可以順利過渡了。作者的實(shí)驗(yàn)表明這樣可以提高幾乎 4%的MAP。

  3. Convolutional With Anchor Boxes
    原來的YOLO是利用全連接層直接預(yù)測(cè)bounding box的坐標(biāo),而YOLOv2借鑒了Faster R-CNN的思想,引入anchor。首先將原網(wǎng)絡(luò)的全連接層和最后一個(gè)pooling層去掉,使得最后的卷積層可以有更高分辨率的特征;然后縮減網(wǎng)絡(luò),用416416大小的輸入代替原來448448。這樣做的原因在于希望得到的特征圖都有奇數(shù)大小的寬和高,奇數(shù)大小的寬和高會(huì)使得每個(gè)特征圖在劃分cell的時(shí)候就只有一個(gè)center cell(比如可以劃分成77或99個(gè)cell,center cell只有一個(gè),如果劃分成88或1010的,center cell就有4個(gè))。為什么希望只有一個(gè)center cell呢?因?yàn)榇蟮膐bject一般會(huì)占據(jù)圖像的中心,所以希望用一個(gè)center cell去預(yù)測(cè),而不是4個(gè)center cell去預(yù)測(cè)。網(wǎng)絡(luò)最終將416416的輸入變成1313大小的feature map輸出,也就是縮小比例為32。
    我們知道原來的YOLO算法將輸入圖像分成77的網(wǎng)格,每個(gè)網(wǎng)格預(yù)測(cè)兩個(gè)bounding box,因此一共只有98個(gè)box,但是在YOLOv2通過引入anchor boxes,預(yù)測(cè)的box數(shù)量超過了1千(以輸出feature map大小為1313為例,每個(gè)grid cell有9個(gè)anchor box的話,一共就是13139=1521個(gè),當(dāng)然由后面第4點(diǎn)可知,最終每個(gè)grid cell選擇5個(gè)anchor box)。順便提一下在Faster RCNN在輸入大小為1000*600時(shí)的boxes數(shù)量大概是6000,在SSD300中boxes數(shù)量是8732。顯然增加box數(shù)量是為了提高object的定位準(zhǔn)確率。作者的實(shí)驗(yàn)證明:雖然加入anchor使得MAP值下降了一點(diǎn)(69.5降到69.2),但是提高了recall(81%提高到88%)。

  4. Dimension Clusters
    我們知道在Faster R-CNN中anchor box的大小和比例是按經(jīng)驗(yàn)設(shè)定的,然后網(wǎng)絡(luò)會(huì)在訓(xùn)練過程中調(diào)整anchor box的尺寸。但是如果一開始就能選擇到合適尺寸的anchor box,那肯定可以幫助網(wǎng)絡(luò)越好地預(yù)測(cè)detection。所以作者采用k-means的方式對(duì)訓(xùn)練集的bounding boxes做聚類,試圖找到合適的anchor box。
    另外作者發(fā)現(xiàn)如果采用標(biāo)準(zhǔn)的k-means(即用歐式距離來衡量差異),在box的尺寸比較大的時(shí)候其誤差也更大,而我們希望的是誤差和box的尺寸沒有太大關(guān)系。所以通過IOU定義了如下的距離函數(shù),使得誤差和box的大小無關(guān):



    如下圖Figure2,左邊是聚類的簇個(gè)數(shù)核IOU的關(guān)系,兩條曲線分別代表兩個(gè)不同的數(shù)據(jù)集。在分析了聚類的結(jié)果并平衡了模型復(fù)雜度與recall值,作者選擇了K=5,這也就是Figure2中右邊的示意圖是選出來的5個(gè)box的大小,這里紫色和黑色也是分別表示兩個(gè)不同的數(shù)據(jù)集,可以看出其基本形狀是類似的。而且發(fā)現(xiàn)聚類的結(jié)果和手動(dòng)設(shè)置的anchor box大小差別顯著。聚類的結(jié)果中多是高瘦的box,而矮胖的box數(shù)量較少。



    Table1中作者采用的5種anchor(Cluster IOU)的Avg IOU是61,而采用9種Anchor Boxes的Faster RCNN的Avg IOU是60.9,也就是說本文僅選取5種box就能達(dá)到Faster RCNN的9中box的效果。

    5、Direct Location prediction
    作者在引入anchor box的時(shí)候遇到的第二個(gè)問題:模型不穩(wěn)定,尤其是在訓(xùn)練剛開始的時(shí)候。作者認(rèn)為這種不穩(wěn)定主要來自預(yù)測(cè)box的(x,y)值。我們知道在基于region proposal的object detection算法中,是通過預(yù)測(cè)下圖中的tx和ty來得到(x,y)值,也就是預(yù)測(cè)的是offset。另外關(guān)于文中的這個(gè)公式,個(gè)人認(rèn)為應(yīng)該把后面的減號(hào)改成加號(hào),這樣才能符合公式下面的example。這里xa和ya是anchor的坐標(biāo),wa和ha是anchor的size,x和y是坐標(biāo)的預(yù)測(cè)值,tx和ty是偏移量。文中還特地舉了一個(gè)例子:A prediction of tx = 1 would shift the box to the right by the width of the anchor box, a prediction of tx = -1 would shift it to the left by the same amount.

    在這里作者并沒有采用直接預(yù)測(cè)offset的方法,還是沿用了YOLO算法中直接預(yù)測(cè)相對(duì)于grid cell的坐標(biāo)位置的方式。
    前面提到網(wǎng)絡(luò)在最后一個(gè)卷積層輸出13*13大小的feature map,然后每個(gè)cell預(yù)測(cè)5個(gè)bounding box,然后每個(gè)bounding box預(yù)測(cè)5個(gè)值:tx,ty,tw,th和to(這里的to類似YOLOv1中的confidence)??聪聢D,tx和ty經(jīng)過sigmoid函數(shù)處理后范圍在0到1之間,這樣的歸一化處理也使得模型訓(xùn)練更加穩(wěn)定;cx和cy表示一個(gè)cell和圖像左上角的橫縱距離;pw和ph表示bounding box的寬高,這樣bx和by就是cx和cy這個(gè)cell附近的anchor來預(yù)測(cè)tx和ty得到的結(jié)果。



    如果對(duì)上面的公式不理解,可以看Figure3,首先是cx和cy,表示grid cell與圖像左上角的橫縱坐標(biāo)距離,黑色虛線框是bounding box,藍(lán)色矩形框就是預(yù)測(cè)的結(jié)果。
  5. Fine-Grained Features
    這里主要是添加了一個(gè)層:passthrough layer。這個(gè)層的作用就是將前面一層的2626的feature map和本層的1313的feature map進(jìn)行連接,有點(diǎn)像ResNet。這樣做的原因在于雖然13*13的feature map對(duì)于預(yù)測(cè)大的object以及足夠了,但是對(duì)于預(yù)測(cè)小的object就不一定有效。也容易理解,越小的object,經(jīng)過層層卷積和pooling,可能到最后都不見了,所以通過合并前一層的size大一點(diǎn)的feature map,可以有效檢測(cè)小的object。(其實(shí)就是將前面一層大的feature(比較容易檢測(cè)到小物體)與后面小的feature map結(jié)合在一起)

  6. Multi-Scale Training
    為了讓YOLOv2模型更加robust,作者引入了Muinti-Scale Training,簡單講就是在訓(xùn)練時(shí)輸入圖像的size是動(dòng)態(tài)變化的,注意這一步是在檢測(cè)數(shù)據(jù)集上fine tune時(shí)候采用的,不要跟前面在Imagenet數(shù)據(jù)集上的兩步預(yù)訓(xùn)練分類模型混淆,本文細(xì)節(jié)確實(shí)很多。具體來講,在訓(xùn)練網(wǎng)絡(luò)時(shí),每訓(xùn)練10個(gè)batch(文中是10個(gè)batch,個(gè)人認(rèn)為會(huì)不會(huì)是筆誤,不應(yīng)該是10個(gè)epoch?),網(wǎng)絡(luò)就會(huì)隨機(jī)選擇另一種size的輸入。那么輸入圖像的size的變化范圍要怎么定呢?前面我們知道本文網(wǎng)絡(luò)本來的輸入是416416,最后會(huì)輸出1313的feature map,也就是說downsample的factor是32,因此作者采用32的倍數(shù)作為輸入的size,具體來講文中作者采用從{320,352,…,608}的輸入尺寸。
    這種網(wǎng)絡(luò)訓(xùn)練方式使得相同網(wǎng)絡(luò)可以對(duì)不同分辨率的圖像做detection。雖然在輸入size較大時(shí),訓(xùn)練速度較慢,但同時(shí)在輸入size較小時(shí),訓(xùn)練速度較快,而multi-scale training又可以提高準(zhǔn)確率,因此算是準(zhǔn)確率和速度都取得一個(gè)不錯(cuò)的平衡。
    Table3就是在檢測(cè)時(shí),不同輸入size情況下的YOLOv2和其他object detection算法的對(duì)比??梢钥闯鐾ㄟ^multi-scale training的檢測(cè)模型,在測(cè)試的時(shí)候,輸入圖像在尺寸變化范圍較大的情況下也能取得mAP和FPS的平衡。High Resolution Classifier的提升非常明顯(近4%),另外通過結(jié)合dimension prior+localtion prediction這兩種方式引入anchor也能帶來近5%mAP的提升。

二、Faster

1、Darknet-19
在YOLO v1中,作者采用的訓(xùn)練網(wǎng)絡(luò)是基于GooleNet,這里作者將GooleNet和VGG16做了簡單的對(duì)比,GooleNet在計(jì)算復(fù)雜度上要優(yōu)于VGG16(8.25 billion operation VS 30.69 billion operation),但是前者在ImageNet上的top-5準(zhǔn)確率要稍低于后者(88% VS 90%)。而在YOLO v2中,作者采用了新的分類模型作為基礎(chǔ)網(wǎng)絡(luò),那就是Darknet-19。Table6是最后的網(wǎng)絡(luò)結(jié)構(gòu):Darknet-19只需要5.58 billion operation。這個(gè)網(wǎng)絡(luò)包含19個(gè)卷積層和5個(gè)max pooling層,而在YOLO v1中采用的GooleNet,包含24個(gè)卷積層和2個(gè)全連接層,因此Darknet-19整體上卷積卷積操作比YOLO v1中用的GoogleNet要少,這是計(jì)算量減少的關(guān)鍵。最后用average pooling層代替全連接層進(jìn)行預(yù)測(cè)。這個(gè)網(wǎng)絡(luò)在ImageNet上取得了top-5的91.2%的準(zhǔn)確率。

2、Training for Classification
這里的2和3部分在前面有提到,就是訓(xùn)練處理的小trick。這里的training for classification都是在ImageNet上進(jìn)行預(yù)訓(xùn)練,主要分兩步:1、從頭開始訓(xùn)練Darknet-19,數(shù)據(jù)集是ImageNet,訓(xùn)練160個(gè)epoch,輸入圖像的大小是224224,初始學(xué)習(xí)率為0.1。另外在訓(xùn)練的時(shí)候采用了標(biāo)準(zhǔn)的數(shù)據(jù)增加方式比如隨機(jī)裁剪,旋轉(zhuǎn)以及色度,亮度的調(diào)整等。2、再fine-tuning 網(wǎng)絡(luò),這時(shí)候采用448448的輸入,參數(shù)的除了epoch和learning rate改變外,其他都沒變,這里learning rate改為0.001,并訓(xùn)練10個(gè)epoch。結(jié)果表明fine-tuning后的top-1準(zhǔn)確率為76.5%,top-5準(zhǔn)確率為93.3%,而如果按照原來的訓(xùn)練方式,Darknet-19的top-1準(zhǔn)確率是72.9%,top-5準(zhǔn)確率為91.2%。因此可以看出第1,2兩步分別從網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方式兩方面入手提高了主網(wǎng)絡(luò)的分類準(zhǔn)確率。

3、Training for Detection
在前面第2步之后,就開始把網(wǎng)絡(luò)移植到detection,并開始基于檢測(cè)的數(shù)據(jù)再進(jìn)行fine-tuning。首先把最后一個(gè)卷積層去掉,然后添加3個(gè)33的卷積層,每個(gè)卷積層有1024個(gè)filter,而且每個(gè)后面都連接一個(gè)11的卷積層,11卷積的filter個(gè)數(shù)根據(jù)需要檢測(cè)的類來定。比如對(duì)于VOC數(shù)據(jù),由于每個(gè)grid cell我們需要預(yù)測(cè)5個(gè)box,每個(gè)box有5個(gè)坐標(biāo)值和20個(gè)類別值,所以每個(gè)grid cell有125個(gè)filter(與YOLOv1不同,在YOLOv1中每個(gè)grid cell有30個(gè)filter,還記得那個(gè)7730的矩陣嗎,而且在YOLOv1中,類別概率是由grid cell來預(yù)測(cè)的,也就是說一個(gè)grid cell對(duì)應(yīng)的兩個(gè)box的類別概率是一樣的,但是在YOLOv2中,類別概率是屬于box的,每個(gè)box對(duì)應(yīng)一個(gè)類別概率,而不是由grid cell決定,因此這邊每個(gè)box對(duì)應(yīng)25個(gè)預(yù)測(cè)值(5個(gè)坐標(biāo)加20個(gè)類別值),而在YOLOv1中一個(gè)grid cell的兩個(gè)box的20個(gè)類別值是一樣的)。另外作者還提到將最后一個(gè)33*512的卷積層和倒數(shù)第二個(gè)卷積層相連。最后作者在檢測(cè)數(shù)據(jù)集上fine tune這個(gè)預(yù)訓(xùn)練模型160個(gè)epoch,學(xué)習(xí)率采用0.001,并且在第60和90epoch的時(shí)候?qū)W(xué)習(xí)率除以10,weight decay采用0.0005。

YOLO v3


這里yolo v3相對(duì)于yolo v2有三點(diǎn):1. 利用多尺度特征進(jìn)行對(duì)象檢測(cè) 2. 調(diào)整基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)

  1. 利用多尺度特征進(jìn)行對(duì)象檢測(cè)


    image.png

    YOLOv3采用了3個(gè)尺度的特征圖(當(dāng)輸入為416×416時(shí)):(13×13),(26×26),(52×52),YOLOv3每個(gè)位置使用3個(gè)先驗(yàn)框,所以使用k-means得到9個(gè)先驗(yàn)框,并將其劃分到3個(gè)尺度特征圖上,尺度更大的特征圖使用更小的先驗(yàn)框

  2. 調(diào)整基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)
    YOLO V3特征提取網(wǎng)絡(luò)使用了殘差模型,相比YOLO V2使用的Darknet-19,其包含53個(gè)卷積層所以稱為Darknet-53.其網(wǎng)絡(luò)結(jié)構(gòu)如下圖


    Darknet-53
參考:
  1. YOLO v1深入理解
  2. 從YOLOv1到Y(jié)OLOv3,目標(biāo)檢測(cè)的進(jìn)化之路
  3. YOLO2詳解
  4. 目標(biāo)檢測(cè)網(wǎng)絡(luò)之 YOLOv3
  5. <機(jī)器愛學(xué)習(xí)>YOLOv2 / YOLO9000 深入理解
  6. 目標(biāo)檢測(cè)之YOLO V2 V3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容