YOLO v1到YOLO v4(下)


YOLO v1到YOLO v4(下)

Faster

YOLO使用的是GoogleLeNet,比VGG-16快,YOLO完成一次前向過程只用8.52 billion 運算,而VGG-16要30.69billion,但是YOLO精度稍低於VGG-16。

Draknet19

 YOLO v2基於一個新的分類model,有點類似與VGG。YOLO v2使用3*3filter,每次Pooling之后都增加一倍Channels的數量。YOLO v2使用全局平均Pooling,使用Batch Normilazation來讓訓練更穩定,加速收斂,使model規范化。

最終的model–Darknet19,有19個卷積層和5個maxpooling層,處理一張圖片只需要5.58 billion次運算,在ImageNet上達到72.9%top-1精確度,91.2%top-5精確度。

Training for classication

 網絡訓練在 ImageNet 1000類分類數據集,訓練了160epochs,使用隨機梯度下降,初始學習率為0.1, polynomial

rate decay with a power of 4, weight decay of 0.0005 and momentum of 0.9 。訓練期間使用標准的數據擴大方法:隨機裁剪、旋轉、變換顏色(hue)、變換飽和度(saturation), 變換曝光度(exposure shifts)。

在訓練時,把整個網絡在更大的448*448分辨率上Fine Turnning 10個 epoches,初始學習率設置為0.001,這種網絡達到達到76.5%top-1精確度,93.3%top-5精確度。

Training for detection

 網絡去掉了最后一個卷積層,而加上了三個3*3卷積層,每個卷積層有1024個Filters,每個卷積層緊接着一個1*1卷積層, with

the number of outputs we need for detection。

對於VOC數據,網絡預測出每個網格單元預測五個Bounding Boxes,每個Bounding Boxes預測5個坐標和20類,所以一共125個Filters,增加了Passthough層來獲取前面層的細粒度信息,網絡訓練了160epoches,初始學習率0.001,dividing it by 10 at 60 and 90 epochs,a weight decay of 0.0005 and momentum of 0.9,數據擴大方法相同,對COCO與VOC數據集的訓練對策相同。

Stronger

在訓練的過程中,當網絡遇到一個來自檢測數據集的圖片與標記信息,那么就把這些數據用完整的YOLO v2 loss功能反向傳播這個圖片。當網絡遇到一個來自分類數據集的圖片和分類標記信息,只用整個結構中分類部分的loss功能反向傳播這個圖片。
但是檢測數據集只有粗粒度的標記信息,像“貓“、“ 狗”之類,而分類數據集的標簽信息則更細粒度,更豐富。比如狗這一類就包括”哈士奇“”牛頭梗“”金毛狗“等等。所以如果想同時在監測數據集與分類數據集上進行訓練,那么就要用一種一致性的方法融合這些標簽信息。
再者,用於分類的方法,大多是用softmax layer方法,softmax意味着分類的類別之間要互相獨立的。而盲目地混合數據集訓練,就會出現比如:檢測數據集的分類信息中”狗“這一分類,在分類數據集合中,就會有的不同種類的狗”哈士奇“”牛頭梗“”金毛“這些分類,這兩種數據集之間的分類信息不相互獨立。所以使用一種多標簽的model來混合數據集,假設一個圖片可以有多個分類信息,並假定分類信息必須是相互獨立的規則可以被忽略。

Hierarchical classification

 WordNet的結構是一個直接圖表(directed graph),而不是樹型結構。因為語言是復雜的,狗這個詞既屬於‘犬科’又屬於‘家畜’兩類,而‘犬科’和‘家畜’兩類在wordnet中則是同義詞,所以不能用樹形結構。

作者希望根據ImageNet中包含的概念來建立一個分層樹,為了建立這個分層樹,首先檢查ImagenNet中出現的名詞,再在WordNet中找到這些名詞,再找到這些名詞到達他們根節點的路徑(在這里設為所有的根節點為實體對象(physical object))。在WordNet中,大多數同義詞只有一個路徑,所以首先把這條路徑中的詞全部都加到分層樹中。接着迭代地檢查剩下的名詞,並盡可能少的把他們添加到分層樹上,添加的原則是取最短路徑加入到樹中。

為了計算某一結點的絕對概率,只需要對這一結點到根節點的整條路徑的所有概率進行相乘。所以比如你想知道一個圖片是否是Norfolk terrier的概率,則進行如下計算:

 

 為了驗證這一個方法,在WordTree上訓練Darknet19的model,使用1000類的ImageNet進行訓練,為了建立WordtTree 1K,把所有中間詞匯加入到WordTree上,把標簽空間從1000擴大到了1369。在訓練過程中,如果有一個圖片的標簽是”Norfolk terrier“,那么這個圖片還會獲得”狗“(dog)以及“哺乳動物”(mammal)等標簽。總之現在一張圖片是多標記的,標記之間不需要相互獨立。

如Figure5所示,之前的ImageNet分類是使用一個大softmax進行分類。而現在,WordTree只需要對同一概念下的同義詞進行softmax分類。

使用相同的訓練參數,這種分層結構的Darknet19達到71.9%top-1精度和90.4%top-5精確度,精度只有微小的下降。

這種方法的好處:在對未知或者新的物體進行分類時,性能降低的很優雅(gracefully)。比如看到一個狗的照片,但不知道是哪種種類的狗,那么就高置信度(confidence)預測是”狗“,而其他狗的種類的同義詞如”哈士奇“”牛頭梗“”金毛“等這些則低置信度。

Datasets combination with wordtree

 用WordTree 把數據集合中的類別映射到分層樹中的同義詞上,例如上圖Figure 6,WordTree混合ImageNet與COCO。

Joint classification and detection

 作者的目的是:訓練一個Extremely Large Scale檢測器。所以訓練的時候使用WordTree混合了COCO檢測數據集與ImageNet中的Top9000類,混合后的數據集對應的WordTree有9418個類。另一方面,由於ImageNet數據集太大了,作者為了平衡一下兩個數據集之間的數據量,通過過采樣(oversampling)COCO數據集中的數據,使COCO數據集與ImageNet數據集之間的數據量比例達到1:4。

YOLO9000的訓練基於YOLO v2的構架,但是使用3priors而不是5來限制輸出的大小。當網絡遇到檢測數據集中的圖片時則正常地反方向傳播,當遇到分類數據集圖片的時候,只使用分類的loss功能進行反向傳播。同時作者假設IOU最少為 .3。最后根據這些假設進行反向傳播。

使用聯合訓練法,YOLO9000使用COCO檢測數據集學習檢測圖片中的物體的位置,使用ImageNet分類數據集學習如何從大量的類別中進行分類。

為了評估這一方法,使用ImageNet Detection Task對訓練結果進行評估。

評估結果:
YOLO9000取得19.7mAP。
在未學習過的156個分類數據上進行測試,mAP達到16.0。
YOLO9000的mAP比DPM高,而且YOLO有更多先進的特征,YOLO9000是用部分監督的方式在不同訓練集上進行訓練,同時還能檢測9000個物體類別,並保證實時運行。

雖然YOLO9000對動物的識別性能很好,但是對類別為”sungalsses“或者”swimming trunks“這些衣服或者裝備的類別,它的識別性能不是很好,見table 7。這跟數據集的數據組成有很大關系。

 

 總結

YOLO v2 代表着目前最先進物體檢測的水平,在多種監測數據集中都要快過其他檢測系統,並可以在速度與精確度上進行權衡。

YOLO 9000 的網絡結構允許實時地檢測超過9000種物體分類,這歸功於它能同時優化檢測與分類功能。使用WordTree來混合來自不同的資源的訓練數據,並使用聯合優化技術同時在ImageNet和COCO數據集上進行訓練,YOLO9000進一步縮小了監測數據集與識別數據集之間的大小代溝。

文章還提出了WordTree,數據集混合訓練,多尺寸訓練等全新的訓練方法。

五.YOLO v3

YOLOv3在Pascal Titan X上處理608x608圖像速度達到20FPS,在 COCO test-dev 上 mAP@0.5 達到 57.9%,與RetinaNet(FocalLoss論文所提出的單階段網絡)的結果相近,並且速度快4倍.

YOLO v3的模型比之前的模型復雜了不少,可以通過改變模型結構的大小來權衡速度與精度。

速度對比如下:

YOLOv3 在實現相同准確度下要顯著地比其它檢測方法快。時間都是在采用 M40 或 Titan X 等相同 GPU 下測量的。

簡而言之,YOLOv3 的先驗檢測(Prior detection)系統將分類器或定位器重新用於執行檢測任務。他們將模型應用於圖像的多個位置和尺度。而那些評分較高的區域就可以視為檢測結果。此外,相對於其它目標檢測方法,使用了完全不同的方法。將一個單神經網絡應用於整張圖像,該網絡將圖像划分為不同的區域,因而預測每一塊區域的邊界框和概率,這些邊界框會通過預測的概率加權。的模型相比於基於分類器的系統有一些優勢。它在測試時會查看整個圖像,所以它的預測利用了圖像中的全局信息。與需要數千張單一目標圖像的 R-CNN 不同,它通過單一網絡評估進行預測。這令 YOLOv3 非常快,一般它比 R-CNN 快 1000 倍、比 Fast R-CNN 快 100 倍。

改進之處:

1.多尺度預測 (類FPN)

 2.更好的基礎分類網絡(類ResNet)和分類器 darknet-53,見下圖。

 3.  分類器-類別預測:

     YOLOv3不使用Softmax對每個框進行分類,主要考慮因素有兩個:

1.  a.Softmax使得每個框分配一個類別(score最大的一個),而對於Open Images這種數據集,目標可能有重疊的類別標簽,因此Softmax不適用於多標簽分類。

 2.  b.Softmax可被獨立的多個logistic分類器替代,且准確率不會下降。

        分類損失采用binary cross-entropy loss.

 多尺度預測

每種尺度預測3個box, anchor的設計方式仍然使用聚類,得到9個聚類中心,將其按照大小均分給3中尺度.

尺度1: 在基礎網絡之后添加一些卷積層再輸出box信息.

 尺度2: 從尺度1中的倒數第二層的卷積層上采樣(x2)再與最后一個16x16大小的特征圖相加,再次通過多個卷積后輸出box信息.相比尺度1變大兩倍.

 尺度3: 與尺度2類似,使用了32x32大小的特征圖.

 參見網絡結構定義文件yolov3.cfg

基礎網絡 Darknet-53

darknet-53

仿ResNet, 與ResNet-101或ResNet-152准確率接近,但速度更快.對比如下:

主干架構的性能對比

檢測結構如下:

 

 YOLOv3在mAP@0.5及小目標APs上具有不錯的結果,但隨着IOU的增大,性能下降,說明YOLOv3不能很好地與ground truth切合.

邊框預測

 

 

 圖 2:帶有維度先驗和定位預測的邊界框。邊界框的寬和高以作為離聚類中心的位移,並使用 Sigmoid 函數預測邊界框相對於濾波器應用位置的中心坐標。

仍采用之前的logis,其中cx,cy是網格的坐標偏移量,pw,ph是預設的anchor box的邊長.最終得到的邊框坐標值是b*,而網絡學習目標是t*,用sigmod函數、指數轉換。

優點

快速,pipline簡單,背景誤檢率低。

 通用性強。YOLO對於藝術類作品中的物體檢測同樣適用。它對非自然圖像物體的檢測率遠遠高於DPM和RCNN系列檢測方法。

 但相比RCNN系列物體檢測方法,YOLO具有以下缺點:

 識別物體位置精准性差。

 召回率低。在每個網格中預測兩個box這種約束方式減少了對同一目標的多次檢測(R-CNN使用的region proposal方式重疊較多),相比R-CNN使用Selective Search產生2000個proposal(RCNN測試時每張超過40秒),yolo僅使用7x7x2個.

 YOLO v.s Faster R-CNN

1.   統一網絡:

 YOLO沒有顯示求取region proposal的過程。Faster R-CNN中盡管RPN與fast rcnn共享卷積層,但是在模型訓練過程中,需要反復訓練RPN網絡和fast rcnn網絡.

相對於R-CNN系列的"看兩眼"(候選框提取與分類,圖示如下),YOLO只需要Look Once.

 

 2.  YOLO統一為一個回歸問題,而R-CNN將檢測結果分為兩部分求解:物體類別(分類問題),物體位置即bounding box(回歸問題)。

六.YOLOv4

YOLOv4包含以下信息:

Backbone:CSPDarkNet53

 Neck:SPP,PAN

 Head:YOLOv3

 Tricks(backbone):CutMix、Mosaic、DropBlock、Label Smoothing

 Modified(backbone): Mish、CSP、MiWRC

 Tricks(detector):CIoU、CMBN、DropBlock、Mosaic、SAT、Eliminate grid sensitivity、Multiple Anchor、Cosine Annealing scheduler、Random training shape

 Modified(tector):Mish、SPP、SAM、PAN、DIoU-NMS

 參考

YOLO主頁 https://pjreddie.com/darknet/yolo/ 

YOLOv3: An Incremental Improvement https://pjreddie.com/media/files/papers/YOLOv3.pdf 

YOLO9000: Better, Faster, Stronger https://arxiv.org/abs/1612.08242

You Only Look Once: Unified, Real-Time Object Detection http://arxiv.org/abs/1506.02640

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM