摘要:將圖像到作為輸入,輸出,即將圖片劃分為,每個(gè)單元格獨(dú)立檢測(cè)。類別損失當(dāng)有物體的中心點(diǎn)落在單元格中,此單元格就負(fù)責(zé)預(yù)測(cè)該物體。
YOLO-v1介紹
YOLO是一個(gè)端到端的目標(biāo)檢測(cè)算法,不需要預(yù)先提取region proposal(RCNN目標(biāo)檢測(cè)系列),通過(guò)一個(gè)網(wǎng)絡(luò)就可以輸出:類別,置信度,坐標(biāo)位置,檢測(cè)速度很快,不過(guò),定位精度相對(duì)低些,特別是密集型小目標(biāo)。
YOLO將圖像resize到448x448作為輸入,輸出7x7x30,即:將圖片劃分為7x7,每個(gè)單元格獨(dú)立檢測(cè)。這里需要注意,不是那種滑動(dòng)窗口將每個(gè)單元格都輸入到網(wǎng)絡(luò)中進(jìn)行預(yù)測(cè),這里的劃分只是物體中心點(diǎn)位置的劃分之用(劃分越多越準(zhǔn)確),物體的中心落在哪個(gè)單元格,就由那個(gè)單元格負(fù)責(zé)預(yù)測(cè)。說(shuō)完7x7我們?cè)僬f(shuō)下另一個(gè)維度30,30=(2*5=20),其中“2:每個(gè)單元格預(yù)測(cè)數(shù)量(box數(shù)量)”,“5:(x,y,w,h,score)”,“20:模型可以預(yù)測(cè)20個(gè)種類”。
YOLO-v1訓(xùn)練模型首先會(huì)將ImageNet作為訓(xùn)練集預(yù)訓(xùn)練模型,最終達(dá)到88%精度,然后使用遷移學(xué)習(xí)將預(yù)訓(xùn)練的模型應(yīng)用到當(dāng)前標(biāo)注的訓(xùn)練集進(jìn)行訓(xùn)練。模型輸出5維信息(x,y,w,h,score),使用Leaky Relu作為激活函數(shù),全連接層后添加Dropout層防止過(guò)擬合。在得到輸出值之后,我們需要計(jì)算每個(gè)box與ground true的Iou值,然后通過(guò)非極大值抑制篩選box。
YOLO-v1損失函數(shù)損失函數(shù)包含三部分分別是:坐標(biāo)損失,置信度損失(7x7x2),類別損失(7x7x20)。
坐標(biāo)損失:
我們使用SSE損失函數(shù)(就是MSE損失函數(shù)的累加版本),如圖所示我們?cè)凇皐,h”中加了根號(hào),加根號(hào)的原因是,“w,h”的損失在大框和小框之間“權(quán)重”應(yīng)該不同。因?yàn)?,?duì)應(yīng)圖像中較大的物體而言,box有些偏移一般并不會(huì)影響預(yù)測(cè)結(jié)果。但是對(duì)應(yīng)小物體而言,同樣的偏移可能會(huì)脫離預(yù)測(cè)目標(biāo)。
置信度損失:
如圖所示,損失函數(shù)分為兩部分:有物體,沒有物體,其中沒有物體損失部分還增加了權(quán)重系數(shù)。添加權(quán)重系數(shù)的原因是,對(duì)于一幅圖像,一般而言大部分內(nèi)容是不包含待檢測(cè)物體的,這樣會(huì)導(dǎo)致沒有物體的計(jì)算部分貢獻(xiàn)會(huì)大于有物體的計(jì)算部分,這會(huì)導(dǎo)致網(wǎng)絡(luò)傾向于預(yù)測(cè)單元格不含有物體。因此,我們要減少?zèng)]有物體計(jì)算部分的貢獻(xiàn)權(quán)重,比如取值為:0.5。
類別損失:
當(dāng)有物體的中心點(diǎn)落在單元格中,此單元格就負(fù)責(zé)預(yù)測(cè)該物體。
YOLO-v2改進(jìn)使用批標(biāo)準(zhǔn)化:隨著神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,網(wǎng)絡(luò)層的輸入分布會(huì)發(fā)生變動(dòng),逐漸向激活函數(shù)取值兩端靠攏,如:sigmoid激活函數(shù),此時(shí)會(huì)進(jìn)入飽和狀態(tài),梯度更新緩慢,對(duì)輸入變動(dòng)不敏感,甚至梯度消失導(dǎo)致模型難以訓(xùn)練。BN,在網(wǎng)絡(luò)層輸入激活函數(shù)輸入值之前加入,可以將分布拉到均值為0,標(biāo)準(zhǔn)差為1的正態(tài)分布,從而使激活函數(shù)處于對(duì)輸入值敏感的區(qū)域,從而加快模型訓(xùn)練。此外,BN還能起到類似dropout的正則化作用,由于我們會(huì)有‘強(qiáng)拉’操作,所以對(duì)初始化要求沒有那么高,可以使用較大的學(xué)習(xí)率。
High Resolution Classifier:在介紹YOLO-v1的時(shí)候我們說(shuō)到,模型需要先在ImageNet上預(yù)訓(xùn)練模型,因此,此時(shí)圖像輸入為224x224,使用遷移學(xué)習(xí)訓(xùn)練后我們的圖像輸入是448x448,因此模型需要適應(yīng)圖像分辨率的改變。在YOLO-v2中,我們?cè)陬A(yù)訓(xùn)練模型中先224x224訓(xùn)練160個(gè)epoch,然后將輸入調(diào)整到448x448,再跑10個(gè)epoch,也就是在ImageNet數(shù)據(jù)集中兩種分辨率跑兩次。YOLO大神作者實(shí)現(xiàn)表明,這樣操作可以提高4%的map。
Convolutional With Anchor Boxes:
1,加入anchor boxes,提高box數(shù)量。
2,刪除全連接層和最后一個(gè)池化層,保留更高分辨率特征。
3,用416x416代替448x448輸入大小,使特征圖有奇數(shù)大小的高和寬。
Dimension Clusters:使用k-means的方式對(duì)訓(xùn)練集的bounding boxes做聚類,但是該方法存在不同尺寸的box誤差權(quán)重不同,我們希望誤差與尺寸沒有關(guān)系,因此通過(guò)IOU定義如下函數(shù):
Multi-Scale Training:訓(xùn)練階段,采用32的倍數(shù)作為圖像尺寸動(dòng)態(tài)輸入,如【320,352。。。608】。這種網(wǎng)絡(luò)訓(xùn)練方式使得相同網(wǎng)絡(luò)可以對(duì)不同分辨率的圖像做detection。
使用Darknet-19作為后端網(wǎng)絡(luò):
YOLO-v3YOLO-v3結(jié)構(gòu)圖以來(lái)自木盞,表示感謝,也歡迎關(guān)注他的博客。
DBL:指Darknetconv2d_BN_Leaky。
resn:指:n代表數(shù)字,有res1,res2, … ,res8等等,表示這個(gè)res_block里含有多少個(gè)res_unit,使用殘差結(jié)構(gòu)可以讓網(wǎng)絡(luò)更深。
concat:張量拼接。將darknet中間層和后面的某一層的上采樣進(jìn)行拼接。拼接的操作和殘差層add的操作是不一樣的,拼接會(huì)擴(kuò)充張量的維度,而add只是直接相加不會(huì)導(dǎo)致張量維度的改變。
后端網(wǎng)絡(luò)使用darknet-53:
我們發(fā)現(xiàn),在YOLO-v3網(wǎng)絡(luò)中沒有池化層和全連接層,那么張量尺寸的變化是通過(guò)改變卷積核步長(zhǎng)來(lái)實(shí)現(xiàn)。同YOLO-v2一樣,輸出尺寸為輸入尺寸的1/32,即:一般要求輸入圖像尺寸是32的倍數(shù)。
類別預(yù)測(cè)由softmax改為logistic(使用sigmoid):用于處理預(yù)測(cè)物體之間存在包含關(guān)系問(wèn)題,解決多標(biāo)簽對(duì)象支持。比如woman和person,softmax輸出:person,logistic輸出兩者。
使用多尺度特征預(yù)測(cè)物體:
上圖是YOLO-v3在COCO數(shù)據(jù)集上使用聚類得到的9種先驗(yàn)框,一個(gè)代表寬度一個(gè)代表高度。在不同的感受野中使用不同的先驗(yàn)框。如果先驗(yàn)框不是最佳的,即使超過(guò)預(yù)設(shè)定的閾值,也不會(huì)進(jìn)行預(yù)測(cè)。logistic回歸用來(lái)從9個(gè)先驗(yàn)框中找到最佳的那個(gè)。
補(bǔ)充:Iou計(jì)算 總結(jié)YOLO好不好,我們就以一張圖作為總結(jié)吧:
祝大家2018年圣誕節(jié)快樂!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19878.html
摘要:將圖像到作為輸入,輸出,即將圖片劃分為,每個(gè)單元格獨(dú)立檢測(cè)。類別損失當(dāng)有物體的中心點(diǎn)落在單元格中,此單元格就負(fù)責(zé)預(yù)測(cè)該物體。 YOLO-v1介紹 YOLO是一個(gè)端到端的目標(biāo)檢測(cè)算法,不需要預(yù)先提取region proposal(RCNN目標(biāo)檢測(cè)系列),通過(guò)一個(gè)網(wǎng)絡(luò)就可以輸出:類別,置信度,坐標(biāo)位置,檢測(cè)速度很快,不過(guò),定位精度相對(duì)低些,特別是密集型小目標(biāo)。 showImg(https:...
摘要:近幾年來(lái),目標(biāo)檢測(cè)算法取得了很大的突破。本文主要講述算法的原理,特別是算法的訓(xùn)練與預(yù)測(cè)中詳細(xì)細(xì)節(jié),最后將給出如何使用實(shí)現(xiàn)算法。但是結(jié)合卷積運(yùn)算的特點(diǎn),我們可以使用實(shí)現(xiàn)更高效的滑動(dòng)窗口方法。這其實(shí)是算法的思路。下面將詳細(xì)介紹算法的設(shè)計(jì)理念。 1、前言當(dāng)我們談起計(jì)算機(jī)視覺時(shí),首先想到的就是圖像分類,沒錯(cuò),圖像分類是計(jì)算機(jī)視覺最基本的任務(wù)之一,但是在圖像分類的基礎(chǔ)上,還有更復(fù)雜和有意思的任務(wù),如目...
閱讀 3038·2023-04-25 18:06
閱讀 3307·2021-11-22 09:34
閱讀 2869·2021-08-12 13:30
閱讀 2058·2019-08-30 15:44
閱讀 1669·2019-08-30 13:09
閱讀 1638·2019-08-30 12:45
閱讀 1725·2019-08-29 11:13
閱讀 3617·2019-08-28 17:51