作者將目標(biāo)檢測(cè)進(jìn)行重構(gòu)并看作為單一的回歸問(wèn)題,直接從圖像到邊界框坐標(biāo)和類(lèi)別概率。使用我們的系統(tǒng),您只需要在圖像上看一次(you only look once, YOLO),以預(yù)測(cè)出現(xiàn)的目標(biāo)和位置。
十多年的曲陽(yáng)網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整曲陽(yáng)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“曲陽(yáng)網(wǎng)站設(shè)計(jì)”,“曲陽(yáng)網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。系統(tǒng)將輸入圖像分成 S×S 的網(wǎng)格。如果一個(gè)目標(biāo)的中心落入一個(gè)網(wǎng)格單元中,該網(wǎng)格單元負(fù)責(zé)檢測(cè)該目標(biāo)。每個(gè)網(wǎng)格單元預(yù)測(cè)這些box的 B 個(gè)邊界框,每個(gè)邊界框包含 5 個(gè)預(yù)測(cè):x、y、w、h 和置信度(一般用交并比)。
每個(gè)網(wǎng)格單元還預(yù)測(cè) C 個(gè)條件類(lèi)別概率,不管邊界框的的數(shù)量 B 是多少,每個(gè)網(wǎng)格單元只預(yù)測(cè)的一組類(lèi)別概率。
在測(cè)試時(shí),我們乘以條件類(lèi)概率和單個(gè)盒子的置信度預(yù)測(cè)值
這些分?jǐn)?shù)表示該類(lèi)出現(xiàn)在框中的概率以及預(yù)測(cè)框擬合目標(biāo)的程度。
Network Design為了在 VOC 上評(píng)估 YOLO,使用 S=7,B=2。VOC 有 20 個(gè)標(biāo)注類(lèi),所以 C=20。所以最終的預(yù)測(cè)是 7×7×30(30=2*5+20) 的張量。
使用卷積層從圖像中提取特征,全連接層預(yù)測(cè)輸出概率和坐標(biāo)。
檢測(cè)網(wǎng)絡(luò)受GoogleNet影響,有 24 個(gè)卷積層,其次是 2 個(gè)全連接層
先將ImageNet圖像分辨率轉(zhuǎn)為224x224,輸入網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,然后轉(zhuǎn)換模型進(jìn)行檢測(cè)任務(wù)。
yolov1在訓(xùn)練時(shí)輸入的圖像分辨率為224×224,在預(yù)測(cè)時(shí)使用的圖像為 448×448。
最后一層預(yù)測(cè)類(lèi)別概率和邊界框坐標(biāo)。通過(guò)圖像的寬高來(lái)歸一化邊界框的寬度和高度及x,y,使它們落在 0 和 1 之間。
我們對(duì)最后一層使用線性激活函數(shù),所有其它層使用下面的leaky ReLU 激活函數(shù)
我們使用平方和誤差是因?yàn)樗苋菀走M(jìn)行優(yōu)化,但是它并不完全符合大化平均精度的目標(biāo)。
分類(lèi)誤差與定位誤差的權(quán)重是一樣的,這可能并不理想。
另外,在每張圖像中,許多網(wǎng)格單元不包含任何對(duì)象。這將導(dǎo)致這些單元格的“置信度”為零,這可能導(dǎo)致模型不穩(wěn)定。為了改善這一點(diǎn),我們?cè)黾恿诉吔缈蜃鴺?biāo)預(yù)測(cè)的損失,并減少了不包含目標(biāo)邊界框的置信度預(yù)測(cè)的損失 。
平方和誤差也可以在大box和小box中同樣加權(quán)誤差。我們的誤差指標(biāo)應(yīng)該反映出,大box中 小偏差的重要性不如小box中小偏差的重要性。為了部分解決這個(gè)問(wèn)題,我們直接預(yù)測(cè)邊界框?qū)挾群透叨鹊钠椒礁?,而不是寬度和高度?/p>
YOLO 每個(gè)網(wǎng)格單元預(yù)測(cè)多個(gè)邊界框。在訓(xùn)練時(shí),每個(gè)目標(biāo)我們只需要一個(gè)邊界框預(yù)測(cè)器來(lái)負(fù)責(zé)。我們根據(jù)哪個(gè)預(yù)測(cè)器的預(yù)測(cè)值與真實(shí)值之間具有當(dāng)前最高的 IOU 來(lái)指定哪個(gè)預(yù)測(cè)器“負(fù)責(zé)”預(yù)測(cè)該目標(biāo)。
這導(dǎo)致邊界框預(yù)測(cè)器之間的專一化。每個(gè)預(yù)測(cè)器可以更好地預(yù)測(cè)特定大小、長(zhǎng)寬比或目標(biāo)的類(lèi)別,從而改善整體召回率。
如果目標(biāo)存在于該網(wǎng)格單元中(前面討論的條件類(lèi)別概率),則損失函數(shù)僅懲罰分類(lèi)誤差。如果預(yù)測(cè)器“負(fù)責(zé)”真實(shí)邊界框(即該網(wǎng)格單元中具有最高 IOU 的預(yù)測(cè)器),則它也僅懲罰邊界框坐標(biāo)誤差
為了避免過(guò)度擬合,我們使用 dropout 和大量的數(shù)據(jù)增強(qiáng)。
Inference與訓(xùn)練時(shí)一樣,預(yù)測(cè)測(cè)試圖像的檢測(cè)只需要一次網(wǎng)絡(luò)評(píng)估。在VOC 上,每張圖像上網(wǎng)絡(luò)預(yù)測(cè) 98 個(gè)邊界框(圖像被劃分成 7*7 的格子,每個(gè)格子預(yù)測(cè)兩個(gè)邊界框,總共 98 個(gè)邊界框)和每個(gè)框的類(lèi)別概率。YOLO 在測(cè)試時(shí)非??欤?yàn)樗恍枰\(yùn)行一次網(wǎng)絡(luò)評(píng)估.
網(wǎng)格強(qiáng)化了邊界框預(yù)測(cè)中的空間多樣性。然而,一些大的目標(biāo)或靠近多個(gè)網(wǎng)格單元邊界的目標(biāo)可以被多個(gè)網(wǎng)格單元很好地定位。非極大值抑制(NMS)可以用來(lái)修正這些多重檢測(cè)。
在得到推理結(jié)果后,如何獲取我們真正想要的信息呢?
yolo后處理就是模型的輸出進(jìn)行處理,得到我們想要的坐標(biāo)框的
x
y
w
h
xywh
xywh以及
c
o
n
f
i
d
e
n
c
e
confidence
confidence
學(xué)習(xí)筆記
這是yolov1的模型,他將圖像劃分成了7x7個(gè)網(wǎng)格,每個(gè)網(wǎng)格負(fù)責(zé)預(yù)測(cè)兩個(gè)邊界框,每個(gè)邊界框都有5個(gè)信息$x、y、w、h、confidence $ ,(這個(gè)confidence是該區(qū)域有目標(biāo)框的概率),共預(yù)測(cè)20個(gè)類(lèi),每個(gè)類(lèi)都有一個(gè)置信度信息(這個(gè)confidence是這個(gè)框是貓是狗的概率),所以最終輸出為 7 ? 7 ? 30 7*7*30 7?7?30
然后每個(gè)邊界框的confidence 乘以所有類(lèi)別的confidence就是邊界框的全概率
這樣每個(gè)grid cell都能有兩個(gè)20維向量,一共49個(gè)grid cell,所以共有98個(gè)向量
這些向量就組成如下的很多邊界框
下一步就是篩選出真正的邊界框
第一步:這張圖片上并不是有20個(gè)類(lèi)的,所以先有個(gè)閾值將大于這個(gè)閾值的類(lèi)別篩選出來(lái),比如篩選出了dog、bicycle、car
然后分別對(duì)這三個(gè)類(lèi)處理,比如先對(duì)dog,從dog類(lèi)的所有96個(gè)置信度進(jìn)行從大到小排個(gè)序,設(shè)置一個(gè)閾值,confidence小于這個(gè)閾值的就被舍去了。
但確實(shí)還有真正包含某個(gè)物體的多個(gè)框,比如下面四個(gè)bbox的置信度都比較大,那怎么從這多個(gè)框中選擇最合適的呢?
下面就是非極大抑制NMS
應(yīng)該先將置信度大的拿出來(lái),然后后面的每一個(gè)都與第一個(gè)大的作比較,如果IOU大于某個(gè)閾值,則認(rèn)為兩個(gè)識(shí)別了同一個(gè)物體,則把低置信度的那個(gè)抑制掉。比如bbox20和bbox47重合度較大,所以認(rèn)為兩個(gè)是同一物體。
如果IOU小于這個(gè)閾值,就說(shuō)明兩個(gè)框不是識(shí)別的同一個(gè)物體,保留。bb15和bb7與bb47的重合度較小,所以認(rèn)為兩個(gè)box不是同一個(gè)物體。
然后選取剩下的第二大置信度作為基box,其他框再與這個(gè)框比較,比如bb7和bb15重合度較大,認(rèn)為這兩個(gè)box內(nèi)是同一個(gè)物體。
合適的閾值下可能只留下一個(gè)框,當(dāng)然某些閾值下可能會(huì)保留更多的框,閾值的設(shè)置應(yīng)該是根據(jù)目標(biāo)任務(wù)設(shè)置的,越高的閾值(越不容易置零,即越寬容)會(huì)檢測(cè)出越多的目標(biāo)。
對(duì)其他類(lèi)別也是同樣操作,就得到了所有的目標(biāo)框。
當(dāng)然注意,在訓(xùn)練階段是不需要剔除框的,所有框?qū)ξ覀兎聪騻鞑?shù)更新都是有用的,只是在推理階段需要這樣做。
how to train每個(gè)grid cell 預(yù)測(cè)兩個(gè)bbox,但只負(fù)責(zé)預(yù)測(cè)一個(gè)物體,也就是整張圖片最多預(yù)測(cè)49個(gè)物體,這也就是為什么yolov1對(duì)密集小目標(biāo)檢測(cè)效果不好的原因。
yolov1的損失函數(shù)分為三部分
YOLO 對(duì)邊界框預(yù)測(cè)強(qiáng)加空間約束,因?yàn)槊總€(gè)網(wǎng)格單元只預(yù)測(cè)兩個(gè)框,只能有一個(gè)類(lèi)別。這樣就限制了模型可預(yù)測(cè)的鄰近目標(biāo)的數(shù)量。因此對(duì)物體較為密集的場(chǎng)景預(yù)測(cè)效果較差。
模型學(xué)習(xí)從數(shù)據(jù)中預(yù)測(cè)邊界框,因此它很難泛化到新的、不常見(jiàn)的長(zhǎng)寬比或配置中的目標(biāo)。
后面是模型比較,yolov1和其他模型比有什么優(yōu)缺點(diǎn)就不說(shuō)了
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧