2018-09-28 yolo家族進(jìn)化史分析初步

1.yolov3算法的價(jià)值

解決項(xiàng)目里SSD訓(xùn)練小目標(biāo)極其糟糕的問(wèn)題,理解好ssd析苫,mask-rcnn兜叨,fast-rcnn,yolov3在項(xiàng)目里的身份以及為什么能發(fā)揮這種身份的深層原理(網(wǎng)絡(luò)架構(gòu)上骨杂,等等)理清之后好跟你的復(fù)試?yán)蠋熃榻B你的項(xiàng)目經(jīng)歷揣钦,讓老師眼前一亮。

2.言歸正傳

一直以來(lái),在計(jì)算機(jī)視覺(jué)領(lǐng)域有一個(gè)問(wèn)題待解決献烦,那就是如何檢測(cè)兩個(gè)距離很近的同類(lèi)的目標(biāo)或不同類(lèi)目標(biāo)东囚?大多數(shù)的算法都會(huì)對(duì)輸入的圖像數(shù)據(jù)進(jìn)行尺度變化废境,縮放到較小的分辨率情況下,但是一般在這總情況下只會(huì)給出一個(gè)Bounding Box,主要由于特征提取過(guò)程中將這總情況人為是一個(gè)目標(biāo)。(本來(lái)就很近咪笑,一放縮之間的近距離越發(fā)明顯了)

還有就是小目標(biāo)問(wèn)題辜昵,這也是項(xiàng)目的痛點(diǎn)

但是YOLO V3版本卻做到了,它對(duì)這種距離很近的目標(biāo)或者小目標(biāo)有很好的魯棒性进栽,雖然不能百分百檢測(cè),但是這個(gè)難題得到了很大程度的解決轩褐。

但要了解V3秒拔,就必須先去了解它的v1,v2,所以下面做一個(gè)進(jìn)化之路的分析

3.進(jìn)化之路


yoloV1


1.將一幅圖像分成 SxS 個(gè)網(wǎng)格(grid cell)淮蜈,如果某個(gè) object 的中心落在這個(gè)網(wǎng)格中未状,則這個(gè)網(wǎng)格就負(fù)責(zé)預(yù)測(cè)這個(gè) object胰柑。


每個(gè)網(wǎng)格以自己為“中心”框圖

2.每個(gè)網(wǎng)格要預(yù)測(cè)(其實(shí)就是給了每個(gè)網(wǎng)格以自己網(wǎng)格內(nèi)的坐標(biāo)為中心點(diǎn),以一定長(zhǎng)姑丑,寬,框出B個(gè)框的權(quán)力辞友,然后就算你實(shí)際什么也沒(méi)框到栅哀,也進(jìn)行?class-specific confidence score計(jì)算,并參與最后的NMS称龙。這種召回率明顯會(huì)很低) B 個(gè) bounding box留拾,每個(gè) bounding box 除了要回歸自身的位置之外,還要附帶預(yù)測(cè)一個(gè) confidence 值鲫尊。?

這個(gè) confidence 代表了所預(yù)測(cè)的 box 中含有 object 的置信度和這個(gè) box 預(yù)測(cè)的有多準(zhǔn)這兩重信息痴柔,其值是這樣計(jì)算的:


其中如果有 object 落在一個(gè) grid cell 里,第一項(xiàng)取 1疫向,否則取 0咳蔚。 第二項(xiàng)是預(yù)測(cè)的 bounding box 和實(shí)際的 groundtruth 之間的 IoU 值。

3.每個(gè)bouning box要預(yù)測(cè)(x搔驼,y谈火,w,h)和confidence這五個(gè)值舌涨,每個(gè)網(wǎng)格還要預(yù)測(cè)一個(gè)類(lèi)別信息糯耍,記為 C 類(lèi)。則 SxS個(gè) 網(wǎng)格泼菌,每個(gè)網(wǎng)格要預(yù)測(cè) B 個(gè) bounding box 還要預(yù)測(cè) C 個(gè) categories谍肤。輸出就是 S x S x (5*B+C) 的一個(gè) tensor。

????比如說(shuō)哗伯,在?PASCAL VOC 中荒揣,圖像輸入為 448x448,取 S=7焊刹,B=2系任,一共有20 個(gè)類(lèi)別(C=20),則輸出就是 ????7x7x30 的一個(gè) tensor虐块。

????整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示:

4.在 test 的時(shí)候俩滥,每個(gè)網(wǎng)格預(yù)測(cè)的 class 信息和 bounding box 預(yù)測(cè)的 confidence信息相乘,就得到每個(gè) bounding box 的 class-specific confidence score:

????(等式左邊第一項(xiàng)就是每個(gè)網(wǎng)格預(yù)測(cè)的類(lèi)別信息贺奠,第二霜旧、三項(xiàng)就是每個(gè) bounding box 預(yù)測(cè)的 confidence。這個(gè)? ?乘積即 encode 了預(yù)測(cè)的 box 屬于某一類(lèi)的概率儡率,也有該 box 準(zhǔn)確度的信息挂据。)

5.得到每個(gè) box 的 class-specific confidence score 以后以清,設(shè)置閾值,濾掉得分低的 boxes崎逃,對(duì)保留的 boxes 進(jìn)行 NMS (非極大值抑制)處理掷倔,就得到最終的檢測(cè)結(jié)果。

個(gè)人總結(jié)yolo的問(wèn)題

1.由于輸出層為全連接層个绍,因此在檢測(cè)時(shí)勒葱,YOLO 訓(xùn)練模型只支持與訓(xùn)練圖像相同的輸入分辨率。fast rcnn就不存在巴柿。

2.雖然每個(gè)格子可以預(yù)測(cè) B 個(gè) bounding box凛虽,但是最終只選擇只選擇 IOU 最高的 bounding box 作為物體檢測(cè)輸出,即每個(gè)格子最多只預(yù)測(cè)出一個(gè)物體篮洁。當(dāng)物體占畫(huà)面比例較小涩维,如圖像中包含畜群或鳥(niǎo)群時(shí),每個(gè)格子包含多個(gè)物體袁波,但卻只能檢測(cè)出其中一個(gè)瓦阐。這是 YOLO 方法的一個(gè)缺陷。

3.由于它要跟實(shí)際標(biāo)注的真實(shí)框做對(duì)比才能進(jìn)一步學(xué)習(xí)篷牌,所以YOLO 方法模型訓(xùn)練依賴(lài)于物體識(shí)別標(biāo)注數(shù)據(jù)睡蟋,因此,對(duì)于非常規(guī)的物體形狀或比例枷颊,YOLO 的檢測(cè)效果并不理想戳杀。

4.YOLO 采用了多個(gè)下采樣層,網(wǎng)絡(luò)學(xué)到的物體特征并不精細(xì)夭苗,因此也會(huì)影響檢測(cè)效果信卡。

5..YOLO 的損失函數(shù)中,大物體 IOU 誤差和小物體 IOU 誤差對(duì)網(wǎng)絡(luò)訓(xùn)練中 loss 貢獻(xiàn)值接近(雖然采用求平方根方式题造,但沒(méi)有根本解決問(wèn)題)傍菇。因此,對(duì)于小物體界赔,小的 IOU 誤差也會(huì)對(duì)網(wǎng)絡(luò)優(yōu)化過(guò)程造成很大的影響丢习,從而降低了物體檢測(cè)的定位準(zhǔn)確性。

(缺點(diǎn)的細(xì)節(jié)淮悼,https://blog.csdn.net/guleileo/article/details/80581858里有指出咐低,可以細(xì)看)


?yoloV2


YOLOv2:代表著目前業(yè)界最先進(jìn)物體檢測(cè)的水平,它的速度要快過(guò)其他檢測(cè)系統(tǒng)(FasterR-CNN袜腥,ResNet见擦,SSD),使用者可以在它的速度與精確度之間進(jìn)行權(quán)衡。

YOLO9000:這一網(wǎng)絡(luò)結(jié)構(gòu)可以實(shí)時(shí)地檢測(cè)超過(guò) 9000 種物體分類(lèi)锡宋,這歸功于它使用了 WordTree儡湾,通過(guò) WordTree 來(lái)混合檢測(cè)數(shù)據(jù)集與識(shí)別數(shù)據(jù)集之中的數(shù)據(jù)。

1.簡(jiǎn)介:

它的論文中提出了一種新的訓(xùn)練方法:聯(lián)合訓(xùn)練算法--------這種算法可以把檢測(cè)數(shù)據(jù)集和分類(lèi)數(shù)據(jù)集混合到一起执俩。使用一種分層的觀點(diǎn)對(duì)物體進(jìn)行分類(lèi),用巨量的分類(lèi)數(shù)據(jù)集數(shù)據(jù)來(lái)擴(kuò)充檢測(cè)數(shù)據(jù)集癌刽,從而把兩種不同的數(shù)據(jù)集混合起來(lái)役首。

聯(lián)合訓(xùn)練算法的基本思路就是:同時(shí)在檢測(cè)數(shù)據(jù)集和分類(lèi)數(shù)據(jù)集上訓(xùn)練物體檢測(cè)器(Object Detectors ),用監(jiān)測(cè)數(shù)據(jù)集的數(shù)據(jù)學(xué)習(xí)物體的準(zhǔn)確位置显拜,用分類(lèi)數(shù)據(jù)集的數(shù)據(jù)來(lái)增加分類(lèi)的類(lèi)別量衡奥、提升魯棒性。

YOLO9000 就是使用聯(lián)合訓(xùn)練算法訓(xùn)練出來(lái)的远荠,它擁有 9000 類(lèi)的分類(lèi)信息矮固,這些分類(lèi)信息學(xué)習(xí)自ImageNet分類(lèi)數(shù)據(jù)集,而物體位置檢測(cè)則學(xué)習(xí)自 COCO 檢測(cè)數(shù)據(jù)集譬淳。

2.改進(jìn):

目前計(jì)算機(jī)視覺(jué)的趨勢(shì)是更大更深的網(wǎng)絡(luò)档址,更好的性能表現(xiàn)通常依賴(lài)于訓(xùn)練更大的網(wǎng)絡(luò)或者把多種模型綜合到一起。但是 YOLO v2 則著力于簡(jiǎn)化網(wǎng)絡(luò)邻梆,具體改進(jìn)如下:

1.Batch Normalization

? ? 很熟悉了BN 操作守伸,batch歸一化處理,讓網(wǎng)絡(luò)提高了收斂性浦妄,同時(shí)還消除了對(duì)其他形式的正則(regularization)的依賴(lài)尼摹。使用 Batch Normalization 可以從模型中去掉 Dropout,并且不會(huì)產(chǎn)生過(guò)擬合剂娄。通過(guò)對(duì) 每一個(gè)卷積層增加 Batch Normalization蠢涝,最終使得 mAP 提高了 2%。

2.High resolution classifie

目前業(yè)界標(biāo)準(zhǔn)的檢測(cè)方法阅懦,都要先把分類(lèi)器(classi?er)放在ImageNet上進(jìn)行預(yù)訓(xùn)練和二。從 Alexnet 開(kāi)始,大多數(shù)的分類(lèi)器都運(yùn)行在小于 256*256 的圖片上故黑。而現(xiàn)在 YOLO 從 224*224 增加到了 448*448儿咱,這就意味著網(wǎng)絡(luò)需要適應(yīng)新的輸入分辨率。

為了適應(yīng)新的分辨率场晶,YOLO v2 的分類(lèi)網(wǎng)絡(luò)以 448*448 的分辨率先在 ImageNet上進(jìn)行微調(diào)混埠,微調(diào) 10 個(gè) epochs,讓網(wǎng)絡(luò)有時(shí)間調(diào)整濾波器(filters)诗轻,好讓其能更好的運(yùn)行在新分辨率上钳宪,還需要調(diào)優(yōu)用于檢測(cè)的 Resulting Network。最終通過(guò)使用高分辨率,mAP 提升了 4%吏颖。

3.Convolution with anchor boxes

YOLO V3包含有全連接層搔体,從而能直接預(yù)測(cè) Bounding Boxes 的坐標(biāo)值。 但從Faster R-CNN 的方法只用卷積層與 Region Proposal Network 來(lái)預(yù)測(cè) Anchor Box 偏移值與置信度半醉,而不是直接預(yù)測(cè)坐標(biāo)值疚俱。作者發(fā)現(xiàn)通過(guò)預(yù)測(cè)偏移量而不是坐標(biāo)值能夠簡(jiǎn)化問(wèn)題,讓神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)起來(lái)更容易缩多。

所以最終 YOLO 去掉了全連接層呆奕,使用 Anchor Boxes 來(lái)預(yù)測(cè) Bounding Boxes。作者去掉了網(wǎng)絡(luò)中一個(gè)池化層衬吆,這讓卷積層的輸出能有更高的分辨率梁钾。收縮網(wǎng)絡(luò)讓其運(yùn)行在 416*416 而不是 448*448。由于圖片中的物體都傾向于出現(xiàn)在圖片的中心位置逊抡,特別是那種比較大的物體姆泻,所以有一個(gè)單獨(dú)位于物體中心的位置用于預(yù)測(cè)這些物體。YOLO 的卷積層采用 32 這個(gè)值來(lái)下采樣圖片冒嫡,所以通過(guò)選擇 416*416 用作輸入尺寸最終能輸出一個(gè) 13*13 的特征圖拇勃。 使用 Anchor Box 會(huì)讓精確度稍微下降,但用了它能讓 YOLO 能預(yù)測(cè)出大于一千個(gè)框灯谣,同時(shí) recall 達(dá)到88%潜秋,mAP 達(dá)到 69.2%。

4.Dimension clusters

之前 Anchor Box 的尺寸是手動(dòng)選擇的胎许,所以尺寸還有優(yōu)化的余地峻呛。 為了優(yōu)化,在訓(xùn)練集的 Bounding Boxes 上跑一下 k-means聚類(lèi)辜窑,來(lái)找到一個(gè)比較好的值钩述。

如果我們用標(biāo)準(zhǔn)的歐式距離的 k-means,尺寸大的框比小框產(chǎn)生更多的錯(cuò)誤穆碎。因?yàn)槲覀兊哪康氖翘岣?IOU 分?jǐn)?shù)牙勘,這依賴(lài)于 Box 的大小,所以距離度量的使用:

通過(guò)分析實(shí)驗(yàn)結(jié)果(Figure 2)所禀,左圖:在模型復(fù)雜性與 high recall 之間權(quán)衡之后方面,選擇聚類(lèi)分類(lèi)數(shù) K=5。右圖:是聚類(lèi)的中心色徘,大多數(shù)是高瘦的 Box恭金。

Table1 是說(shuō)明用 K-means 選擇 Anchor Boxes 時(shí),當(dāng) Cluster IOU 選擇值為 5 時(shí)褂策,AVG IOU 的值是 61横腿,這個(gè)值要比不用聚類(lèi)的方法的 60.9 要高颓屑。選擇值為 9 的時(shí)候,AVG IOU 更有顯著提高耿焊【镜耄總之就是說(shuō)明用聚類(lèi)的方法是有效果的。

5.Direct location prediction(直接位置預(yù)測(cè))

用 Anchor Box 的方法罗侯,會(huì)讓 model 變得不穩(wěn)定器腋,尤其是在最開(kāi)始的幾次迭代的時(shí)候。大多數(shù)不穩(wěn)定因素產(chǎn)生自預(yù)測(cè) Box 的(x,y)位置的時(shí)候钩杰。按照之前 YOLO的方法蒂培,網(wǎng)絡(luò)不會(huì)預(yù)測(cè)偏移量,而是根據(jù) YOLO 中的網(wǎng)格單元的位置來(lái)預(yù)測(cè)坐標(biāo)榜苫,這就讓 Ground Truth 的值介于 0 到 1 之間。

而為了讓網(wǎng)絡(luò)的結(jié)果能落在這一范圍內(nèi)翎冲,網(wǎng)絡(luò)使用一個(gè) Logistic Activation 來(lái)對(duì)于網(wǎng)絡(luò)預(yù)測(cè)結(jié)果進(jìn)行限制垂睬,讓結(jié)果介于 0 到 1 之間。?

網(wǎng)絡(luò)在每一個(gè)網(wǎng)格單元中預(yù)測(cè)出 5 個(gè) Bounding Boxes抗悍,每個(gè) Bounding Boxes 有五個(gè)坐標(biāo)值 tx驹饺,ty,tw缴渊,th赏壹,t0,他們的關(guān)系見(jiàn)下圖(Figure3)衔沼。假設(shè)一個(gè)網(wǎng)格單元對(duì)于圖片左上角的偏移量是 cx蝌借、cy,Bounding Boxes Prior 的寬度和高度是 pw指蚁、ph菩佑,那么預(yù)測(cè)的結(jié)果見(jiàn)下圖右面的公式:

因?yàn)槭褂昧讼拗谱寯?shù)值變得參數(shù)化,也讓網(wǎng)絡(luò)更容易學(xué)習(xí)凝化、更穩(wěn)定稍坯。Dimension clusters和Direct location prediction,使 YOLO 比其他使用 Anchor Box 的版本提高了近5%搓劫。

6.Fine-Grained Features

YOLO 修改后的特征圖大小為 13*13瞧哟,這個(gè)尺寸對(duì)檢測(cè)圖片中尺寸大物體來(lái)說(shuō)足夠了,同時(shí)使用這種細(xì)粒度的特征對(duì)定位小物體的位置可能也有好處枪向。Faster-RCNN勤揩、SSD 都使用不同尺寸的特征圖來(lái)取得不同范圍的分辨率,而 YOLO 采取了不同的方法遣疯,YOLO 加上了一個(gè) Passthrough Layer 來(lái)取得之前的某個(gè) 26*26 分辨率的層的特征雄可。這個(gè) Passthrough layer 能夠把高分辨率特征與低分辨率特征聯(lián)系在一起凿傅,聯(lián)系起來(lái)的方法是把相鄰的特征堆積在不同的 Channel 之中,這一方法類(lèi)似與 Resnet 的 Identity Mapping数苫,從而把 26*26*512 變成 13*13*2048聪舒。YOLO 中的檢測(cè)器位于擴(kuò)展后(expanded )的特征圖的上方,所以他能取得細(xì)粒度的特征信息虐急,這提升了 YOLO 1% 的性能箱残。

7.Multi-Scale Training

作者希望 YOLOv2 能健壯地運(yùn)行于不同尺寸的圖片之上,所以把這一想法用于訓(xùn)練模型中止吁。?

區(qū)別于之前的補(bǔ)全圖片的尺寸的方法被辑,YOLOv2 每迭代幾次都會(huì)改變網(wǎng)絡(luò)參數(shù)。每 10 個(gè) Batch敬惦,網(wǎng)絡(luò)會(huì)隨機(jī)地選擇一個(gè)新的圖片尺寸盼理,由于使用了下采樣參數(shù)是? 32,所以不同的尺寸大小也選擇為 32 的倍數(shù) {320俄删,352…..608}宏怔,最小 320*320,最大 608*608畴椰,網(wǎng)絡(luò)會(huì)自動(dòng)改變尺寸臊诊,并繼續(xù)訓(xùn)練的過(guò)程。

這一政策讓網(wǎng)絡(luò)在不同的輸入尺寸上都能達(dá)到一個(gè)很好的預(yù)測(cè)效果斜脂,同一網(wǎng)絡(luò)能在不同分辨率上進(jìn)行檢測(cè)抓艳。當(dāng)輸入圖片尺寸比較小的時(shí)候跑的比較快,輸入圖片尺寸比較大的時(shí)候精度高帚戳,所以你可以在 YOLOv2 的速度和精度上進(jìn)行權(quán)衡玷或。

下圖是在 voc2007 上的速度與精度

8.Darknet 19

不同于yoloV1,V2使用的不在是GoogLeNet,而是全新的Draknet销斟,有 19 個(gè)卷積層和 5 個(gè) maxpooling 層庐椒,處理一張圖片只需要 55.8 億次運(yùn)算,在 ImageNet 上達(dá)到 72.9% top-1 精確度蚂踊,91.2% top-5 精確度约谈。

YOLO v2 使用 3*3 的 filter,每次池化之后都增加一倍 Channels 的數(shù)量犁钟。YOLO v2 使用全局平均池化棱诱,使用 Batch Normilazation 來(lái)讓訓(xùn)練更穩(wěn)定,加速收斂涝动,使模型規(guī)范化迈勋。

在訓(xùn)練時(shí),把整個(gè)網(wǎng)絡(luò)在更大的448*448分辨率上Fine Turnning 10個(gè) epoches醋粟,初始學(xué)習(xí)率設(shè)置為0.001靡菇,這種網(wǎng)絡(luò)達(dá)到達(dá)到76.5%top-1精確度重归,93.3%top-5精確度。

9.Hierarchical classification(參次分類(lèi))

問(wèn)題:檢測(cè)數(shù)據(jù)集只有粗粒度的標(biāo)記信息厦凤,像“貓“鼻吮、“ 狗”之類(lèi),但分類(lèi)數(shù)據(jù)集的標(biāo)簽信息則更細(xì)粒度较鼓,更豐富椎木。比如狗這一類(lèi)就包括”哈士奇“”牛頭梗“”金毛狗“等等博烂。所以如果想同時(shí)在監(jiān)測(cè)數(shù)據(jù)集與分類(lèi)數(shù)據(jù)集上進(jìn)行訓(xùn)練香椎,那么就要用一種一致性的方法融合這些標(biāo)簽信息。

再者禽篱,用于分類(lèi)的方法畜伐,大多是用 softmax layer 方法,softmax 意味著分類(lèi)的類(lèi)別之間要互相獨(dú)立的躺率。而盲目地混合數(shù)據(jù)集訓(xùn)練烤礁,就會(huì)出現(xiàn)比如:檢測(cè)數(shù)據(jù)集的分類(lèi)信息中”狗“這一分類(lèi),在分類(lèi)數(shù)據(jù)集合中肥照,就會(huì)有的不同種類(lèi)的狗:“哈士奇”、“牛頭骨谥冢”舆绎、“金毛”這些分類(lèi),這兩種數(shù)據(jù)集之間的分類(lèi)信息不相互獨(dú)立们颜,會(huì)造成混亂吕朵。

解決方案:WordNet

在 WordNet 中,大多數(shù)同義詞只有一個(gè)路徑窥突,所以首先把這條路徑中的詞全部都加到分層樹(shù)中努溃。接著迭代地檢查剩下的名詞,并盡可能少的把他們添加到分層樹(shù)上阻问,添加的原則是取最短路徑加入到樹(shù)中梧税。

為了計(jì)算某一結(jié)點(diǎn)的絕對(duì)概率,只需要對(duì)這一結(jié)點(diǎn)到根節(jié)點(diǎn)的整條路徑的所有概率進(jìn)行相乘称近。所以比如你想知道一個(gè)圖片是否是 Norfolk terrier 的概率第队,則進(jìn)行如下計(jì)算:

為了驗(yàn)證這一個(gè)方法,在 WordTree 上訓(xùn)練 Darknet19 的模型刨秆,使用 1000 類(lèi)的 ImageNet 進(jìn)行訓(xùn)練凳谦,為了建立 WordtTree 1K,把所有中間詞匯加入到 WordTree 上衡未,把標(biāo)簽空間從 1000 擴(kuò)大到了 1369尸执。在訓(xùn)練過(guò)程中家凯,如果有一個(gè)圖片的標(biāo)簽是“Norfolk terrier”,那么這個(gè)圖片還會(huì)獲得”狗“(dog)以及“哺乳動(dòng)物”(mammal)等標(biāo)簽如失“砘澹總之現(xiàn)在一張圖片是多標(biāo)記的,標(biāo)記之間不需要相互獨(dú)立岖常。

說(shuō)說(shuō)它的效果:使用相同的訓(xùn)練參數(shù)驯镊,這種分層結(jié)構(gòu)的Darknet19達(dá)到71.9%top-1精度和90.4% top-5 精確度,精度只有微小的下降竭鞍。 在對(duì)未知或者新的物體進(jìn)行分類(lèi)時(shí)板惑,性能降低的很優(yōu)雅(gracefully)。比如看到一個(gè)狗的照片偎快,但不知道是哪種種類(lèi)的狗冯乘,那么就高置信度(confidence)預(yù)測(cè)是”狗“,而其他狗的種類(lèi)的同義詞如”哈士奇“”牛頭股辜校“”金毛“等這些則低置信度裆馒。

Datasets combination with wordtree的效果

用 WordTree 把數(shù)據(jù)集合中的類(lèi)別映射到分層樹(shù)中的同義詞上,例如下圖 Figure 6丐怯,WordTree 混合 ImageNet 與 COCO喷好。



10.Joint classification and detection (聯(lián)合分類(lèi)檢測(cè))

首先,作者想訓(xùn)練一個(gè) Extremely Large Scale 檢測(cè)器读跷。所以訓(xùn)練的時(shí)候使用 WordTree 混合了 COCO 檢測(cè)數(shù)據(jù)集與 ImageNet 中的 Top9000 類(lèi)梗搅,混合后的數(shù)據(jù)集對(duì)應(yīng)的 WordTree 有 9418 個(gè)類(lèi)。但問(wèn)題也來(lái)了:?ImageNet 數(shù)據(jù)集太大了效览,所以作者為了平衡一下兩個(gè)數(shù)據(jù)集之間的數(shù)據(jù)量无切,通過(guò)過(guò)采樣(oversampling) COCO 數(shù)據(jù)集中的數(shù)據(jù),使 COCO 數(shù)據(jù)集與 ImageNet 數(shù)據(jù)集之間的數(shù)據(jù)量比例達(dá)到 1:4丐枉。

在訓(xùn)練的過(guò)程中哆键,當(dāng)網(wǎng)絡(luò)遇到一個(gè)來(lái)自檢測(cè)數(shù)據(jù)集的圖片與標(biāo)記信息,那么就把這些數(shù)據(jù)用完整的 YOLO v2 loss 功能反向傳播這個(gè)圖片瘦锹。當(dāng)網(wǎng)絡(luò)遇到一個(gè)來(lái)自分類(lèi)數(shù)據(jù)集的圖片和分類(lèi)標(biāo)記信息籍嘹,只用整個(gè)結(jié)構(gòu)中分類(lèi)部分的 loss 功能反向傳播這個(gè)圖片。

YOLO9000 的訓(xùn)練基于 YOLO v2 的構(gòu)架弯院,但是使用 3 priors 而不是 5 來(lái)限制輸出的大小噩峦。當(dāng)網(wǎng)絡(luò)遇到檢測(cè)數(shù)據(jù)集中的圖片時(shí)則正常地反方向傳播,當(dāng)遇到分類(lèi)數(shù)據(jù)集圖片的時(shí)候抽兆,只使用分類(lèi)的 loss 功能進(jìn)行反向傳播识补。同時(shí)作者假設(shè) IOU 最少為 0.3。最后根據(jù)這些假設(shè)進(jìn)行反向傳播辫红。

使用聯(lián)合訓(xùn)練法凭涂,YOLO9000 使用 COCO 檢測(cè)數(shù)據(jù)集學(xué)習(xí)檢測(cè)圖片中的物體的位置祝辣,使用 ImageNet 分類(lèi)數(shù)據(jù)集學(xué)習(xí)如何對(duì)大量的類(lèi)別中進(jìn)行分類(lèi)。?

評(píng)估結(jié)果:?

YOLO9000 取得 19.7 mAP切油。?在未學(xué)習(xí)過(guò)的 156 個(gè)分類(lèi)數(shù)據(jù)上進(jìn)行測(cè)試蝙斜, mAP 達(dá)到 16.0。

YOLO9000 的 mAP 比 DPM 高澎胡,而且 YOLO 有更多先進(jìn)的特征孕荠,YOLO9000 是用部分監(jiān)督的方式在不同訓(xùn)練集上進(jìn)行訓(xùn)練,同時(shí)還能檢測(cè) 9000個(gè)物體類(lèi)別攻谁,并保證實(shí)時(shí)運(yùn)行稚伍。


雖然 YOLO9000 對(duì)動(dòng)物的識(shí)別性能很好,但是對(duì)類(lèi)別為“sungalsses”或者“swimming trunks”這些衣服或者裝備的類(lèi)別戚宦,它的識(shí)別性能不是很好个曙,見(jiàn) table 7。這跟數(shù)據(jù)集的數(shù)據(jù)組成有很大關(guān)系受楼。

11.總結(jié):

YOLO v2 代表著目前先進(jìn)的物體檢測(cè)的水平垦搬,在多種監(jiān)測(cè)數(shù)據(jù)集中都要快過(guò)其他檢測(cè)系統(tǒng),并可以在速度與精確度上進(jìn)行權(quán)衡【7】艳汽。

YOLO 9000 的網(wǎng)絡(luò)結(jié)構(gòu)允許實(shí)時(shí)地檢測(cè)超過(guò)9000種物體分類(lèi)猴贰,這歸功于它能同時(shí)優(yōu)化檢測(cè)與分類(lèi)功能。使用 WordTree 【9】來(lái)混合來(lái)自不同的資源的訓(xùn)練數(shù)據(jù)河狐,并使用聯(lián)合優(yōu)化技術(shù)【10】同時(shí)在 ImageNet 和 COCO 數(shù)據(jù)集上進(jìn)行訓(xùn)練糟趾,YOLO9000 進(jìn)一步縮小了監(jiān)測(cè)數(shù)據(jù)集與識(shí)別數(shù)據(jù)集之間的大小代溝。


YOLOv3


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

YOLOv3 在實(shí)現(xiàn)相同準(zhǔn)確度下要顯著地比其它檢測(cè)方法快蝶柿。時(shí)間都是在采用 M40 或 Titan X 等相同 GPU 下測(cè)量的丈钙。

YOLOv3 compare

首先,YOLOv3 的先驗(yàn)檢測(cè)(Prior detection)系統(tǒng)將分類(lèi)器或定位器重新用于執(zhí)行檢測(cè)任務(wù)交汤。他們將模型應(yīng)用于圖像的多個(gè)位置和尺度雏赦。而那些評(píng)分較高的區(qū)域就可以視為檢測(cè)結(jié)果。

此外芙扎,相對(duì)于其它目標(biāo)檢測(cè)方法星岗,我們使用了完全不同的方法。我們將一個(gè)單神經(jīng)網(wǎng)絡(luò)應(yīng)用于整張圖像戒洼,該網(wǎng)絡(luò)將圖像劃分為不同的區(qū)域俏橘,因而預(yù)測(cè)每一塊區(qū)域的邊界框和概率,這些邊界框會(huì)通過(guò)預(yù)測(cè)的概率加權(quán)圈浇,所以相比于基于分類(lèi)器的系統(tǒng)有一些優(yōu)勢(shì)寥掐。它在測(cè)試時(shí)會(huì)查看整個(gè)圖像靴寂,所以它的預(yù)測(cè)利用了圖像中的全局信息。

所以以上兩點(diǎn)使得yoloV3與需要數(shù)千張單一目標(biāo)圖像的 R-CNN 不同召耘,它通過(guò)單一網(wǎng)絡(luò)評(píng)估進(jìn)行預(yù)測(cè)百炬。這令 YOLOv3 非常快污它,一般它比 R-CNN 快 1000 倍剖踊、比 Fast R-CNN 快 100 倍。

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

1.多尺度預(yù)測(cè)(類(lèi)FPN)

每種尺度預(yù)測(cè)3個(gè)box, anchor的設(shè)計(jì)方式仍然使用聚類(lèi),得到9個(gè)聚類(lèi)中心(即9個(gè)anchor衫贬,而v2只有5個(gè)anchor),將其按照大小均分給3中尺度.

尺度1: 在基礎(chǔ)網(wǎng)絡(luò)之后添加一些卷積層再輸出box信息.

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

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

2.YOLOv3不使用Softmax對(duì)每個(gè)框進(jìn)行分類(lèi)协饲,考慮因素有兩個(gè):

????1.Softmax使得每個(gè)框分配一個(gè)類(lèi)別(score最大的一個(gè))杖小,而對(duì)于Open Images這種數(shù)據(jù)集,目標(biāo)可能有重疊? ?的類(lèi)別標(biāo)簽,因此Softmax不適用于多標(biāo)簽分類(lèi)待德。

????2.Softmax可被獨(dú)立的多個(gè)logistic分類(lèi)器替代,且準(zhǔn)確率不會(huì)下降铝穷。分類(lèi)損失采用binary cross-entropy loss皂甘。

3.更好的基礎(chǔ)分類(lèi)網(wǎng)絡(luò)Darknet-53(類(lèi)ResNet)和分類(lèi)器

仿ResNet, 與ResNet-101或ResNet-152準(zhǔn)確率接近,但速度更快.對(duì)比如下:

darknet-53 compare

網(wǎng)絡(luò)結(jié)構(gòu)如下:

YOLOv3-arch

4.Detection的策略不同

V2只有一個(gè)detection,V3設(shè)置有3個(gè)供常,分別是一個(gè)下采樣的摊聋,F(xiàn)eature map(特征圖譜)為13*13,還有2個(gè)上采樣的eltwise sum栈暇,F(xiàn)eature map分別為26*26和52*52麻裁,也就是說(shuō),V3的416版本已經(jīng)用到了52的Feature map源祈,而V2把多尺度考慮到訓(xùn)練的data采樣上煎源,最后也只是用到了13的Feature map,這應(yīng)該是對(duì)小目標(biāo)影響最大的地方香缺;

總結(jié):

YOLO V2是一個(gè)縱向自上而下的網(wǎng)絡(luò)架構(gòu)手销,隨著通道數(shù)目的不斷增加,F(xiàn)LOPS是不斷增加的图张,而V3網(wǎng)絡(luò)架構(gòu)是橫縱交叉的锋拖,看著卷積層多,其實(shí)很多通道的卷積層沒(méi)有繼承性祸轮,另外兽埃,雖然V3增加了anchor centroid,但是對(duì)GT(信值)的估計(jì)變得更加簡(jiǎn)單适袜,每個(gè)GT只匹配一個(gè)先驗(yàn)框柄错,而且每個(gè)尺度只預(yù)測(cè)3個(gè)框,V2預(yù)測(cè)5個(gè)框,這樣的話也降低了復(fù)雜度鄙陡。

優(yōu)點(diǎn):

快速冕房,pipline簡(jiǎn)單,背景誤檢率低趁矾,通用性強(qiáng)耙册。

YOLO V3對(duì)非自然圖像物體的檢測(cè)率遠(yuǎn)遠(yuǎn)高于DPM和RCNN系列檢測(cè)方法。 但相比RCNN系列物體檢測(cè)方法毫捣,YOLO V3具有以下缺點(diǎn): ?

缺點(diǎn):

識(shí)別物體位置精準(zhǔn)性差详拙,召回率低。

在每個(gè)網(wǎng)格中預(yù)測(cè)兩個(gè)bbox這種約束方式減少了對(duì)同一目標(biāo)的多次檢測(cè)(R-CNN使用的region proposal方式重疊較多)蔓同,相比R-CNN使用Selective Search產(chǎn)生2000個(gè)proposal(RCNN測(cè)試時(shí)每張超過(guò)40秒)饶辙,YOLO僅使用7x7x2個(gè)。


自此斑粱,yolo家族紙上談兵的的時(shí)間就結(jié)束了弃揽,下面就要開(kāi)始動(dòng)手用yoloV3訓(xùn)練自己的目標(biāo)檢測(cè)任務(wù)了!


感謝以下博客的指導(dǎo)之恩:

https://blog.csdn.net/guleileo/article/details/80581858

https://blog.csdn.net/gzq0723/article/details/79936613

https://www.cnblogs.com/makefile/p/YOLOv3.html

https://blog.csdn.net/zlp_zky/article/details/78452042

https://blog.csdn.net/zchang81/article/details/70211851


https://www.imooc.com/article/details/id/29342

http://www.mamicode.com/info-detail-2314392.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末则北,一起剝皮案震驚了整個(gè)濱河市矿微,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尚揣,老刑警劉巖涌矢,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異快骗,居然都是意外死亡娜庇,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)方篮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)名秀,“玉大人,你說(shuō)我怎么就攤上這事藕溅∝暗茫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵蜈垮,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我裕照,道長(zhǎng)攒发,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任晋南,我火速辦了婚禮惠猿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘负间。我一直安慰自己偶妖,他們只是感情好姜凄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著趾访,像睡著了一般态秧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扼鞋,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天申鱼,我揣著相機(jī)與錄音,去河邊找鬼云头。 笑死捐友,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的溃槐。 我是一名探鬼主播匣砖,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼昏滴!你這毒婦竟也來(lái)了猴鲫?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤影涉,失蹤者是張志新(化名)和其女友劉穎变隔,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蟹倾,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡匣缘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鲜棠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肌厨。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖豁陆,靈堂內(nèi)的尸體忽然破棺而出柑爸,到底是詐尸還是另有隱情,我是刑警寧澤盒音,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布表鳍,位于F島的核電站,受9級(jí)特大地震影響祥诽,放射性物質(zhì)發(fā)生泄漏譬圣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一雄坪、第九天 我趴在偏房一處隱蔽的房頂上張望厘熟。 院中可真熱鬧,春花似錦、人聲如沸绳姨。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)飘庄。三九已至脑蠕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間竭宰,已是汗流浹背空郊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留切揭,地道東北人狞甚。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像廓旬,于是被迫代替她去往敵國(guó)和親哼审。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 子曰:“道不行孕豹,乘桴浮于海涩盾。從我者,其由與励背?”子路聞之喜春霍。子曰:“由也,好勇過(guò)我叶眉,無(wú)所取材址儒。” 【譯文】孔子說(shuō):“...
    張MAX閱讀 848評(píng)論 0 0
  • 在棧的那里已經(jīng)簡(jiǎn)單提到了子程序的調(diào)用的實(shí)質(zhì),就是修改CS:IP饱溢,在這里就詳細(xì)介紹一下子程序調(diào)用的過(guò)程喧伞。 1.cal...
    MisakaMikotoSAM閱讀 2,745評(píng)論 0 2