?以下文章轉(zhuǎn)載自CSDN博客迅办。(小糖豆在找資料的時候發(fā)現(xiàn)了這篇文章,寫的確實非常精彩,分享給大家)
|來源:
https://blog.csdn.net/Gentleman_Qin/article/details/84349144
|作者:圖像所浩南哥
|聲明:遵循CC 4.0 BY-SA版權(quán)協(xié)議
算法概述
????建立在YOLOv1的基礎(chǔ)上召嘶,經(jīng)過Joseph Redmon等的改進,YOLOv2和YOLO9000算法在2017年CVPR上被提出哮缺,并獲得最佳論文提名弄跌,重點解決YOLOv1召回率和定位精度方面的誤差。在提出時尝苇,YOLOv2在多種監(jiān)測數(shù)據(jù)集中都要快過其他檢測系統(tǒng)碟绑,并可以在速度與精確度上進行權(quán)衡。
??? YOLOv2采用Darknet-19作為特征提取網(wǎng)絡茎匠,增加了批量標準化(Batch Normalization)的預處理格仲,并使用224×224和448×448兩階段訓練ImageNet,得到預訓練模型后fine-tuning诵冒。
????相比于YOLOv1是利用FC層直接預測Bounding Box的坐標凯肋,YOLOv2借鑒了FSR-CNN的思想,引入Anchor機制汽馋,利用K-Means聚類的方式在訓練集中聚類計算出更好的Anchor模板侮东,在卷積層使用Anchor Boxes操作,增加Region Proposal的預測豹芯,同時采用較強約束的定位方法悄雅,大大提高算法召回率。同時結(jié)合圖像細粒度特征铁蹈,將淺層特征與深層特征相連宽闲,有助于對小尺寸目標的檢測。?
????下圖所示是YOLOv2采取的各項改進帶了的檢測性能上的提升:
??? YOLO9000 的主要檢測網(wǎng)絡也是YOLO v2,同時使用WordTree來混合來自不同的資源的訓練數(shù)據(jù)容诬,并使用聯(lián)合優(yōu)化技術(shù)同時在ImageNet和COCO數(shù)據(jù)集上進行訓練娩梨,目的是利用數(shù)量較大的分類數(shù)據(jù)集來幫助訓練檢測模型,因此览徒,YOLO 9000的網(wǎng)絡結(jié)構(gòu)允許實時地檢測超過9000種物體分類狈定,進一步縮小了檢測數(shù)據(jù)集與分類數(shù)據(jù)集之間的大小代溝。
????下面將具體分析YOLOv2的各個創(chuàng)新點:
算法創(chuàng)新點
批量標準化(Batch Nomalization)(使mAP提升2%)
BN概述:
????對數(shù)據(jù)進行預處理(統(tǒng)一格式习蓬、均衡化纽什、去噪等)能夠大大提高訓練速度,提升訓練效果躲叼。BN正是基于這個假設(shè)的實踐稿湿,對每一層輸入的數(shù)據(jù)進行加工。
??? BN是2015年Google研究員在論文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》一文中提出的押赊,同時也將BN應用到了2014年的GoogLeNet上,也就是Inception-v2包斑。
??? BN層簡單講就是對網(wǎng)絡的每一層的輸入都做了歸一化流礁,這樣網(wǎng)絡就不需要每層都去學數(shù)據(jù)的分布,收斂會更快罗丰。YOLOv1算法(采用的是GoogleNet網(wǎng)絡提取特征)是沒有BN層的,而在YOLOv2中作者為每個卷積層都添加了BN層。
????使用BN對網(wǎng)絡進行優(yōu)化高帖,讓網(wǎng)絡提高了收斂性舔稀,同時還消除了對其他形式的正則化(regularization)的依賴,因此使用BN后可以從模型中去掉Dropout绍填,而不會產(chǎn)生過擬合霎桅。
BN優(yōu)點:
神經(jīng)網(wǎng)絡每層輸入的分布總是發(fā)生變化,加入BN讨永,通過標準化上層輸出滔驶,均衡輸入數(shù)據(jù)分布,加快訓練速度卿闹,因此可以設(shè)置較大的學習率(Learning Rate)和衰減(Decay)揭糕;
通過標準化輸入,降低激活函數(shù)(Activation Function)在特定輸入?yún)^(qū)間達到飽和狀態(tài)的概率锻霎,避免梯度彌散(Gradient Vanishing)問題著角;
輸入標準化對應樣本正則化,BN在一定程度上可以替代 Dropout解決過擬合問題旋恼。
BN算法:
????在卷積或池化之后吏口,激活函數(shù)之前,對每個數(shù)據(jù)輸出進行標準化,方式如下圖所示:
????公式很簡單锨侯,前三行是 Batch內(nèi)數(shù)據(jù)歸一化(假設(shè)一個Batch中有每個數(shù)據(jù))嫩海,同一Batch內(nèi)數(shù)據(jù)近似代表了整體訓練數(shù)據(jù)。第四行引入了附加參數(shù) γ 和 β囚痴,此二者的取值算法可以參考BN論文叁怪,在此不再贅述。
高分辨率模型(High Resolution Classifier)(使mAP提升4%)
??? fine-tuning:用已經(jīng)訓練好的模型深滚,加上自己的數(shù)據(jù)集奕谭,來訓練新的模型。即使用別人的模型的前幾層痴荐,來提取淺層特征血柳,而非完全重新訓練模型,從而提高效率生兆。一般新訓練模型準確率都會從很低的值開始慢慢上升难捌,但是fine-tuning能夠讓我們在比較少的迭代次數(shù)之后得到一個比較好的效果。
??? YOLO模型分為兩部分鸦难,分類模型和檢測模型根吁,前者使用在ImageNet上預訓練好的模型,后者在檢測數(shù)據(jù)集上fine-tuning合蔽。
??? YOLOv1在預訓練時采用的是224*224的輸入(在ImageNet數(shù)據(jù)集上進行)击敌,然后在檢測的時候采用448*448的輸入,這會導致從分類模型切換到檢測模型的時候拴事,模型還要適應圖像分辨率的改變沃斤。
??? YOLOv2則將預訓練分成兩步:先用224*224的輸入在ImageNet數(shù)據(jù)集訓練分類網(wǎng)絡,大概160個epoch(將所有訓練數(shù)據(jù)循環(huán)跑160次)后將輸入調(diào)整到448*448刃宵,再訓練10個epoch(這兩步都是在ImageNet數(shù)據(jù)集上操作)衡瓶。然后利用預訓練得到的模型在檢測數(shù)據(jù)集上fine-tuning。這樣訓練得到的模型牲证,在檢測時用448*448的圖像作為輸入可以順利檢測鞍陨。
引入Anchor(Convolutional with Anchor Boxes)(mAP下降0.2%但recall提升7%)
??? YOLOv1將輸入圖像分成7*7的網(wǎng)格,每個網(wǎng)格預測2個Bounding Box从隆,因此一共有98個Box诚撵,同時YOLOv1包含有全連接層,從而能直接預測Bounding Boxes的坐標值键闺,但也導致丟失較多的空間信息寿烟,定位不準。
??? YOLOv2首先將YOLOv1網(wǎng)絡的FC層和最后一個Pooling層去掉辛燥,使得最后的卷積層可以有更高分辨率的特征筛武,然后縮減網(wǎng)絡缝其,用416*416大小的輸入代替原來的448*448,使得網(wǎng)絡輸出的特征圖有奇數(shù)大小的寬和高徘六,進而使得每個特征圖在劃分單元格(Cell)的時候只有一個中心單元格(Center Cell)内边。
????為什么希望只有一個中心單元格呢?由于圖片中的物體都傾向于出現(xiàn)在圖片的中心位置待锈,特別是比較大的物體漠其,所以有一個單元格單獨位于物體中心的位置用于預測這些物體。
??? YOLOv2通過引入Anchor Boxes竿音,通過預測Anchor Box的偏移值與置信度和屎,而不是直接預測坐標值。YOLOv2的卷積層采用32這個值來下采樣圖片春瞬,所以通過選擇416*416用作輸入尺寸最終能輸出一個13*13的特征圖柴信。若采用FSRCNN中的方式,每個Cell可預測出9個Anchor Box宽气,共13*13*9=1521個(YOLOv2確定Anchor Boxes的方法見是維度聚類随常,每個Cell選擇5個Anchor Box)。
????在FSRCNN中萄涯,以一個51*39大小的特征圖為例绪氛,其可以看做一個尺度為51*39的圖像,對于該圖像的每一個位置窃判,考慮9個可能的候選窗口:3種面積3種比例。這些候選窗口稱為Anchor Boxes喇闸。下圖示出的是51*39個Anchor Box中心袄琳,以及9種Anchor Box示例。
YOLOv1和YOLOv2特征圖數(shù)據(jù)結(jié)構(gòu):
YOLOv1:S*S* (B*5 + C) => 7*7(2*5+20)
????其中B對應Box數(shù)量燃乍,5對應邊界框的定位信息(w,y,w,h)和邊界框置信度(Confidience)唆樊。分辨率是7*7,每個Cell預測2個Box刻蟹,這2個Box共用1套條件類別概率(1*20)逗旁。
YOLOv2:S*S*K* (5 + C) => 13*13*9(5+20)
????分辨率提升至13*13,對小目標適應性更好舆瘪,借鑒了FSRCNN的思想片效,每個Cell對應K個Anchor box(YOLOv2中K=5),每個Anchor box對應1組條件類別概率(1*20)英古。
維度聚類(Dimension Clusters)(與第5點結(jié)合使mAP提升5%)
????聚類:聚類是指事先沒有“標簽”而通過某種成團分析找出事物之間存在聚集性原因的過程淀衣。即在沒有劃分類別的情況下,根據(jù)數(shù)據(jù)相似度進行樣本分組召调。
????在FSR-CNN中Anchor Box的大小和比例是按經(jīng)驗設(shè)定的膨桥,然后網(wǎng)絡會在訓練過程中調(diào)整Anchor Box的尺寸蛮浑,最終得到準確的Anchor Boxes。若一開始就選擇了更好的只嚣、更有代表性的先驗Anchor Boxes沮稚,那么網(wǎng)絡就更容易學到準確的預測位置。
??? YOLOv2使用K-means聚類方法類訓練Bounding Boxes册舞,可以自動找到更好的寬高維度的值用于一開始的初始化蕴掏。傳統(tǒng)的K-means聚類方法使用的是歐氏距離函數(shù),意味著較大的Anchor Boxes會比較小的Anchor Boxes產(chǎn)生更多的錯誤环础,聚類結(jié)果可能會偏離囚似。由于聚類目的是確定更精準的初始Anchor Box參數(shù),即提高IOU值线得,這應與Box大小無關(guān)饶唤,因此YOLOv2采用IOU值為評判標準,即K-means 采用的距離函數(shù)(度量標準) 為:
d(box,centroid) = 1 - IOU(box,centroid)
????如下圖贯钩,左邊是聚類的簇個數(shù)和IOU的關(guān)系募狂,兩條曲線分別代表兩個不同的數(shù)據(jù)集。分析聚類結(jié)果并權(quán)衡模型復雜度與IOU值后角雷,YOLOv2選擇K=5祸穷,即選擇了5種大小的Box 維度來進行定位預測。
????其中紫色和灰色也是分別表示兩個不同的數(shù)據(jù)集勺三,可以看出其基本形狀是類似的雷滚。更重要的是,可以看出聚類的結(jié)果和手動設(shè)置的Anchor Box位置和大小差別顯著——結(jié)果中扁長的框較少吗坚,而瘦高的框更多(更符合行人的特征)祈远。
??? YOLOv2采用的5種Anchor的Avg IOU是61,而采用9種Anchor Boxes的Faster RCNN的Avg IOU是60.9商源,也就是說本文僅選取5種box就能達到Faster RCNN的9中box的效果车份。選擇值為9的時候,AVG IOU更有顯著提高牡彻。說明K-means方法的生成的boxes更具有代表性扫沼。
直接位置預測(Direct location prediction)(與第4點結(jié)合使mAP提升5%)
????直接對Bounding Boxes求回歸會導致模型不穩(wěn)定,其中心點可能會出現(xiàn)在圖像任何位置庄吼,有可能導致回歸過程震蕩缎除,甚至無法收斂,尤其是在最開始的幾次迭代的時候总寻。大多數(shù)不穩(wěn)定因素產(chǎn)生自預測Bounding Box的中心坐標(x,y)位置的時候伴找。
??? YOLOv2的網(wǎng)絡在特征圖(13*13)的每一個單元格中預測出5個Bounding Boxes(對應5個Anchor Boxes),每個Bounding Box預測出5個值(tx,ty,tw,th,t0)废菱,其中前4個是坐標偏移值技矮,t0是置信度結(jié)果(類似YOLOv1中的邊界框置信度Confidence)抖誉。YOLOv2借鑒了如下的預測方式,即當Anchor Box的中心坐標和寬高分別是(xa,ya)和(wa,wh)時衰倦,Bounding Box坐標的預測偏移值(tx,ty,tw,th)與其坐標寬高(x,y,w,h)的關(guān)系如下:? ? ? ? ? ? ? ? ? ? ? ? ?
tx?=?(x-xa)/wa
ty= (y-ya)/ha
tw?=?log(w/wa)
th?= log(h/ha)
????基于這種思想袒炉,YOLOv2在預測Bounding Box的位置參數(shù)時采用了如下強約束方法:
????上圖中,黑色虛線框是Anchor Box樊零,藍色矩形框就是預測的Bounding Box結(jié)果我磁,預測出的Bounding Box的坐標和寬高為(bx,by)和(bw,bh),計算方式如圖中所示驻襟,其中:對每個Bounding Box預測出5個值(tx,ty,tw,th,t0)夺艰,Cell與圖像左上角的橫縱坐標距離為(cx,cy),σ定義為sigmoid激活函數(shù)(將函數(shù)值約束到[0,1])沉衣,該Cell對應的Anchor Box對應的寬高為(pw,ph)郁副。
????簡而言之,(bx,by)就是(cx,cy)這個Cell附近的Anchor Box針對預測值(tx,ty)得到的Bounding Box的坐標預測結(jié)果豌习,同時可以發(fā)現(xiàn)這種方式對于較遠距離的Bounding Box預測值(tx,ty)能夠得到很大的限制存谎。
細粒度特征(Fine-Grained Features)(特征融合)(使mAP提升1%)
??? YOLOv2通過添加一個轉(zhuǎn)移層,把高分辨率的淺層特征連接到低分辨率的深層特征(把特征堆積在不同Channel中)而后進行融合和檢測肥隆。具體操作是先獲取前層的26*26的特征圖既荚,將其同最后輸出的13*13的特征圖進行連接,而后輸入檢測器進行檢測(檢測器的FC層起到了全局特征融合的作用)栋艳,以此來提高對小目標的檢測能力恰聘。? ??
多尺度訓練(Muinti-Scale Training)(使mAP提升1%)
????為了適應不同尺度下的檢測任務,YOLOv2在訓練網(wǎng)絡時吸占,其在檢測數(shù)據(jù)集上fine-tuning時候采用的輸入圖像的size是動態(tài)變化的晴叨。具體來講,每訓練10個Batch旬昭,網(wǎng)絡就會隨機選擇另一種size的輸入圖像篙螟。因為YOLOv2用到了參數(shù)是32的下采樣菌湃,因此也采用32的倍數(shù)作為輸入的size问拘,即采用{320,352,…,608}的輸入尺寸(網(wǎng)絡會自動改變尺寸,并繼續(xù)訓練的過程)惧所。
這一策略讓網(wǎng)絡在不同的輸入尺寸上都能達到較好的預測效果骤坐,使同一網(wǎng)絡能在不同分辨率上進行檢測。輸入圖片較大時下愈,檢測速度較慢纽绍,輸入圖片較小時,檢測速度較快势似,總體上提高了準確率拌夏,因此多尺度訓練算是在準確率和速度上達到一個平衡僧著。
????上表反映的是在檢測時,不同大小的輸入圖片情況下的YOLOv2和其他目標檢測算法的對比障簿№镉蓿可以看出通過多尺度訓練的檢測模型,在測試的時候站故,輸入圖像在尺寸變化范圍較大的情況下也能取得mAP和FPS的平衡皆怕。
網(wǎng)絡訓練
訓練分類網(wǎng)絡(預訓練)
??? YOLOv1采用的訓練網(wǎng)絡是GoogleNet,YOLOv2采用了新的分類網(wǎng)絡Darknet-19作為基礎(chǔ)網(wǎng)絡西篓,它使用了較多的3*3卷積核愈腾,并把1*1的卷積核置于3*3的卷積核之間,用來壓縮特征岂津,同時在每一次池化操作后把通道(Channels)數(shù)翻倍(借鑒VGG網(wǎng)絡)虱黄。
??? YOLOv1采用的GooleNet包含24個卷積層和2個全連接層,而Darknet-19包含19個卷積層和5個最大池化層(Max Pooling Layers)寸爆,后面添加Average Pooling層(代替v1中FC層)礁鲁,而Softmax分類器作為激活被用在網(wǎng)絡最后一層,用來進行分類和歸一化赁豆。
????在ImageNet數(shù)據(jù)集上進行預訓練仅醇,主要分兩步(采用隨機梯度下降法):
輸入圖像大小是224*224,初始學習率(Learning Rate)為0.1魔种,訓練160個epoch析二,權(quán)值衰減(Weight Decay)為0.0005,動量(Momentum)為0.9节预,同時在訓練時采用標準的數(shù)據(jù)增強(Data Augmentation)方式如隨機裁剪叶摄、旋轉(zhuǎn)以及色度、亮度的調(diào)整安拟。
fine-tuning:第1步結(jié)束后蛤吓,改用448*448輸入(高分辨率模型),學習率改為0.001糠赦,訓練10個epoch会傲,其他參數(shù)不變。結(jié)果表明:fine-tuning后的top-1準確率為76.5%拙泽,top-5準確率為93.3%淌山,若按照原來的訓練方式,Darknet-19的top-1準確率是72.9%顾瞻,top-5準確率為91.2%泼疑。可以看出荷荤,兩步分別從網(wǎng)絡結(jié)構(gòu)和訓練方式方面入手提高了網(wǎng)絡分類準確率退渗。
訓練檢測網(wǎng)絡(fine-tuning)
????預訓練之后移稳,開始基于檢測的數(shù)據(jù)集再進行fine-tuning。? ??
????首先会油,先把最后一個卷積層去掉秒裕,然后添加3個3*3的卷積層,每個卷積層有1024個卷積核钞啸,并且后面都連接一個1*1的卷積層几蜻,卷積核個數(shù)(特征維度)根據(jù)需要檢測的類數(shù)量決定。(比如對VOC數(shù)據(jù)体斩,每個Cell需要預測5個Boungding Box梭稚,每個Bounding Box有4個坐標值、1個置信度值和20個條件類別概率值絮吵,所以每個單元格對應125個數(shù)據(jù)弧烤,此時卷積核個數(shù)應該取125。)
????然后蹬敲,將最后一個3*3*512的卷積層和倒數(shù)第2個卷積層相連(提取細粒度特征)暇昂,最后在檢測數(shù)據(jù)集上fine-tuning預訓練模型160個epoch,學習率采用0.001伴嗡,并且在第60和90個epoch的時候?qū)W習率除以10急波,權(quán)值衰減、動量和數(shù)據(jù)增強方法與預訓練相同瘪校。
YOLO9000的實現(xiàn)(數(shù)據(jù)及融合及聯(lián)合訓練)
??? YOLO9000通過結(jié)合分類和檢測數(shù)據(jù)集澄暮,使得訓練得到的模型可以檢測約9000類物體,利用帶標注的分類數(shù)據(jù)集量比較大的特點阱扬,解決了帶標注的檢測數(shù)據(jù)集量比較少的問題泣懊。具體方法是:一方面采用WordTree融合數(shù)據(jù)集,另一方面聯(lián)合訓練分類數(shù)據(jù)集和檢測數(shù)據(jù)集麻惶。
用WordTree融合數(shù)據(jù)集
????分類數(shù)據(jù)集和檢測數(shù)據(jù)集存在較大差別:檢測數(shù)據(jù)集只有粗粒度的標記信息馍刮,如“貓”、“狗”窃蹋,而分類數(shù)據(jù)集的標簽信息則更細粒度卡啰,更豐富。比如“狗”就包括“哈士奇”脐彩、“金毛狗”等等碎乃。所以如果想同時在檢測數(shù)據(jù)集與分類數(shù)據(jù)集上進行訓練姊扔,那么就要用一種一致性的方法融合這些標簽信息惠奸。
????用于分類的方法,常用Softmax(比如v2)恰梢,Softmax意味著分類的類別之間要互相獨立的佛南,而ImageNet和COCO這兩種數(shù)據(jù)集之間的分類信息不相互獨立(ImageNet對應分類有9000種梗掰,而COCO僅提供80種目標檢測),所以使用一種多標簽模型來混合數(shù)據(jù)集嗅回,即假定一張圖片可以有多個標簽及穗,并且不要求標簽之間獨立,而后進行Softmax分類绵载。
????由于ImageNet的類別是從WordNet選取的埂陆,作者采用以下策略重建了一個樹形結(jié)構(gòu)(稱為WordTree):
遍歷ImageNet的標簽,然后在WordNet中尋找該標簽到根節(jié)點(所有的根節(jié)點為實體對象)的路徑娃豹;
如果路徑只有一條焚虱,將該路徑直接加入到WordTree結(jié)構(gòu)中;
否則懂版,從可選路徑中選擇一條最短路徑鹃栽,加入到WordTree結(jié)構(gòu)中。
WordTree的作用就在于將兩種數(shù)據(jù)集按照層級進行結(jié)合躯畴。
????如此民鼓,在WordTree的某個節(jié)點上就可以計算該節(jié)點的一些條件概率值,比如在terrier這個節(jié)點蓬抄,可以得到如下條件概率值:
????進而丰嘉,如果要預測此節(jié)點的概率(即圖片中目標是Norfolk terrier的概率),可以根據(jù)WordTree將該節(jié)點到根節(jié)點的條件概率依次相乘得到嚷缭,如下式:
其中:? ? ? ??
??? YOLO9000在WordTree1k(用有1000類別的ImageNet1k創(chuàng)建)上訓練了Darknet-19模型供嚎。為了創(chuàng)建WordTree1k作者添加了很多中間節(jié)點(中間詞匯),把標簽由1000擴展到1369峭状。
????訓練過程中GroundTruth標簽要順著向根節(jié)點的路徑傳播:為了計算條件概率克滴,模型預測了一個包含1369個元素的向量,而且基于所有“同義詞集”計算Softmax优床,其中“同義詞集”是同一概念下的所屬詞劝赔。
????現(xiàn)在一張圖片是多標記的,標記之間不需要相互獨立胆敞。在訓練過程中着帽,如果有一個圖片的標簽是“Norfolk terrier”,那么這個圖片還會獲得“狗”以及“哺乳動物”等標簽移层。
????如上圖所示仍翰,之前的ImageNet分類是使用一個大Softmax進行分類,而現(xiàn)在WordTree只需要對同一概念下的同義詞進行Softmax分類观话。然后作者分別兩個數(shù)據(jù)集上用相同訓練方法訓練Darknet-19模型予借,最后在ImageNet數(shù)據(jù)集上的top-1準確率為72.9%,top-5準確率為91.2%;在WordTree數(shù)據(jù)集上的top-1準確率為71.9%灵迫,top-5準確率為90.4%秦叛。
????這種方法的好處是有“退而求其次”的余地:在對未知或者新的物體進行分類時,性能損失更低瀑粥,比如看到一個狗的照片挣跋,但不知道是哪種種類的狗,那么就預測其為“狗”狞换。
????以上是構(gòu)造WordTree的原理避咆,下圖是融合COCO數(shù)據(jù)集和ImageNet數(shù)據(jù)集以及生成它們的WordTree的示意圖(用顏色區(qū)分了COCO數(shù)據(jù)集和ImageNet數(shù)據(jù)集的標簽節(jié)點), 混合后的數(shù)據(jù)集對應的WordTree有9418個類修噪。另一方面牌借,由于ImageNet數(shù)據(jù)集太大,YOLO9000為了平衡兩個數(shù)據(jù)集之間的數(shù)據(jù)量割按,通過過采樣(Oversampling)COCO數(shù)據(jù)集中的數(shù)據(jù)膨报,使COCO數(shù)據(jù)集與ImageNet數(shù)據(jù)集之間的數(shù)據(jù)量比例達到1:4。
????對YOLO9000進行評估适荣,發(fā)現(xiàn)其mAP比DPM高现柠,而且YOLO有更多先進的特征,YOLO9000是用部分監(jiān)督的方式在不同訓練集上進行訓練弛矛,同時還能檢測9000個物體類別够吩,并保證實時運行。雖然YOLO9000對動物的識別性能很好丈氓,但是對衣服或者裝備的識別性能不是很好(這跟數(shù)據(jù)集的數(shù)據(jù)組成有關(guān))周循。
聯(lián)合訓練分類數(shù)據(jù)集與檢測數(shù)據(jù)集
??? YOLO9000的網(wǎng)絡結(jié)構(gòu)和YOLOv2類似,區(qū)別是每個單元格只采用3個Anchor Boxes万俗。
??? YOLO9000提出了一種在分類數(shù)據(jù)集和檢測數(shù)據(jù)集上聯(lián)合訓練的機制湾笛,即使用檢測數(shù)據(jù)集(COCO)的圖片去學習檢測相關(guān)的信息即查找對象(例如預測邊界框坐標、邊界框是否包含目標及目標屬于各個類別的概率)闰歪,使用僅有類別標簽的分類數(shù)據(jù)集(ImageNet)中的圖片去擴展檢測到的對象的可識別種類嚎研。
????具體方法是:當網(wǎng)絡遇到一個來自檢測數(shù)據(jù)集的圖片與標記信息,就把這些數(shù)據(jù)用完整的損失函數(shù)(v2和9000均沿用了v1網(wǎng)絡的損失函數(shù))反向傳播库倘,而當網(wǎng)絡遇到一個來自分類數(shù)據(jù)集的圖片和分類標記信息临扮,只用代表分類誤差部分的損失函數(shù)反向傳播這個圖片。
性能評估
??? YOLO v2 在大尺寸圖片上能夠?qū)崿F(xiàn)高精度教翩,在小尺寸圖片上運行更快杆勇,可以說在速度和精度上達到了平衡,具體性能表現(xiàn)如下所示饱亿。
coco數(shù)據(jù)集
voc2012數(shù)據(jù)集