最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

YOLOv1詳解,快進(jìn)來(lái)學(xué)習(xí)啦!

2023-04-12 13:52 作者:深度之眼官方賬號(hào)  | 我要投稿

來(lái)源:投稿 作者:ΔU
編輯:學(xué)姐

論文筆記

《You Only Look Once:Unifified, Real-Time Object Detection》

http://pjreddie.com/yolo/

發(fā)表時(shí)間及期刊:2016 CVPR

YOLO的全稱是you only look once,指只需要瀏覽一次就可以識(shí)別出圖中的物體的類別和位置。

因?yàn)橹恍枰匆淮危琘OLO被稱為Region-free方法,相比于Region-based方法,YOLO不需要提前找到可能存在目標(biāo)的Region。

也就是說(shuō),一個(gè)典型的Region-base方法的流程是這樣的:先通過(guò)計(jì)算機(jī)圖形學(xué)(或者深度學(xué)習(xí))的方法,對(duì)圖片進(jìn)行分析,找出若干個(gè)可能存在物體的區(qū)域,將這些區(qū)域裁剪下來(lái), 放入一個(gè)圖片分類器中,由分類器分類。

因?yàn)閅OLO這樣的Region-free方法只需要一次掃描,也被稱為單階段(1-stage)模型。

Region-based方法方法也被稱為兩階段(2-stage)方法。

對(duì)于YOLO v1而言,它在PascalVOC 2007測(cè)試數(shù)據(jù)集上達(dá)到的mAP是63.4%,在輸入圖像 大小為448×448像素的圖像上處理速度能夠達(dá)到每秒45幀,該網(wǎng)絡(luò)的一個(gè)小版本FastYOLO 每秒處理速度也達(dá)到了驚人的155幀。

雖然YOLO v1的精度不及RCNN系列,但奈何其速度非??欤栽诠I(yè)界應(yīng)用還是很普遍的。但YOLO的論文讀起來(lái)非常的難懂,本來(lái)是想直接從YOLO v3開(kāi)始講解的,但是看到v3論文后,我發(fā)現(xiàn)很多的知識(shí)點(diǎn)論文中都沒(méi)有講到,所以就不得不去看v2,但是v2論文中又有一些知識(shí)點(diǎn)沒(méi)有提到,所以我只能從v1開(kāi)始給大家講解了。

我主要通過(guò)四方面進(jìn)行分析:論文思想、網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)及不足。

首先來(lái)看論文中給出的一個(gè)整體流程:

圖1:論文截圖-YOLO檢測(cè)系統(tǒng)

整體流程:

1.縮放圖像

2.將圖像通過(guò)卷積神經(jīng)網(wǎng)絡(luò)

3.利用非極大值抑制(NMS)進(jìn)行篩選

論文思想

1)圖像劃分

將一幅圖片劃分成S×S個(gè)網(wǎng)格(gird cell),如果某個(gè)object的中心落在這個(gè)網(wǎng)格中,則這個(gè)網(wǎng)格就負(fù)責(zé)預(yù)測(cè)這個(gè)object。

1號(hào)圖中顯示圖片被分為 7 × 7 = 49個(gè)grid cell。

2號(hào)圖中顯示每個(gè)grid cell生成2個(gè)bounding box(預(yù)測(cè)框),一共98個(gè)bounding box,框的 粗細(xì)代表置信度大小,框越粗代表框住的是一個(gè)完整物體的概率越大。

3號(hào)圖中用不同顏色表示每個(gè)grid cell所預(yù)測(cè)的物體最可能屬于分類,如藍(lán)色的grid cell生成的 最可能bounding box最可能框住的是狗、黃色的grid cell最可能預(yù)測(cè)自行車…

4號(hào)圖為最終輸出的顯示效果。

2) Bounding boxes 預(yù)測(cè)

1.先看 bounding boxes+confidence。在這一步中,YOLO為每一個(gè)網(wǎng)格給出了兩個(gè)預(yù)測(cè)框,這里有點(diǎn)像faster rcnn的anchor,但不完全相同。YOLO給出的預(yù)測(cè)框,是基于網(wǎng)格中心點(diǎn)的,大小自定義。每一個(gè)網(wǎng)格預(yù)測(cè)B個(gè)bounding boxes,每個(gè)bounding boxes有四個(gè)坐標(biāo)和一個(gè)置信度(confidence),所以最終的預(yù)測(cè)結(jié)果是S × S × (B?5 + C)個(gè)向量。

2.再看第二個(gè)class probablity map,這一路的工作其實(shí)是和上一步是同時(shí)進(jìn)行的,負(fù)責(zé)的是 網(wǎng)格(gird cell)類別的分?jǐn)?shù),預(yù)測(cè)的結(jié)果一樣是放在 最后的7×7×30的張量中。

概括的講就是:

訓(xùn)練過(guò)程:

首先將圖像分成 S × S 網(wǎng)格(gird cell)、然后將圖像送入網(wǎng)絡(luò),生成S×S× (B?5+C)個(gè)結(jié)果,根據(jù)結(jié)果求Loss并反向傳播梯度下降。

預(yù)測(cè)過(guò)程:

首先將圖像分成 S × S網(wǎng)格(gird cell)、然后將圖像送入網(wǎng)絡(luò),生成S×S× (B?5+C)個(gè)結(jié)果,用NMS選出合適的預(yù)選框。

為了評(píng)估YOLO在PASCAL VOC數(shù)據(jù)集上的水平,我們使用S=7,B=2。PASCAL VOC有20個(gè)標(biāo)簽類,所以C=20。我們最終的預(yù)測(cè)是一個(gè)7×7×30張量。

每個(gè)邊界框由5個(gè)預(yù)測(cè)組成:x、y、w、h和confidence。(x、y)坐標(biāo)表示相對(duì)于網(wǎng)格單元格邊界的方框的中心。并將其寬度和高度相對(duì)于整個(gè)圖像進(jìn)行了預(yù)測(cè)。

圖5:論文截圖-原文

這里要說(shuō)的就是confidence!

confidence是YOLO系列論文獨(dú)有的一個(gè)參數(shù),那什么是confidence呢?看圖5,你可以理解為confidence有兩種情況,分別是 “0”和“1”,當(dāng)我們的網(wǎng)格中確實(shí)存在目標(biāo)時(shí),那我們圖5中的Pr(Object)就是等于 “1” 的,所以我們預(yù)測(cè)的confidence就直接等于IOU,如果網(wǎng)格中沒(méi)有目標(biāo)落在里面,那么Pr(Object)就是等于“0”的,所以confidence就是等于零的。

其實(shí)我們完全可以把confidence理解為IOU,但是這里的IOU是我們預(yù)測(cè)的bounding box與 真實(shí)的bounding box的交并比。YOLO v1中并沒(méi)有像Faster RCNN或SSD的Anchor概念的,所以這里預(yù)測(cè)的x,y,w,h是直接預(yù)測(cè)我們bounding box的坐標(biāo)信息的,并不是像我們?cè)贔aster RCNN或SSD當(dāng)中預(yù)測(cè)的四個(gè)值都是相對(duì)Anchor的回歸參數(shù)。

在測(cè)試時(shí),也就是我們最終預(yù)測(cè)時(shí),我們對(duì)于每個(gè)目標(biāo)的最終概率是將conditional class probabilities 乘上 confidence 的,對(duì)于每個(gè)grid cell而言,它有C個(gè)類別,那我們就會(huì)預(yù)測(cè)C個(gè)類別分?jǐn)?shù),那么這里的類別分?jǐn)?shù)就是對(duì)應(yīng)的conditional class probabilities,也就Pr(Classi|Object)

注意 Pr(Classi|Object)這里的寫(xiě)法涉及到概率學(xué)中的條件概率,懂得自動(dòng)跳過(guò)就好。

用白話解釋“條件概率”就是:“指事件A在另外一個(gè)事件B已經(jīng)發(fā)生條件下的發(fā)生概率。條件 概率表示為:P(A|B),讀作“在B的條件下A的概率”。

在我們這篇論文里就可以這樣理解:類別i在它為目標(biāo)的前提下的概率。

那么通過(guò)圖6我們知道,這兩項(xiàng)相乘之后,最終給出的目標(biāo)概率就是

通過(guò)這個(gè)表達(dá)式我們也能夠知道,論文給出的這個(gè)表達(dá)式既包含了:它為某個(gè)目標(biāo)的概率;也包含了我們預(yù)測(cè)的目標(biāo)邊界框與我們真實(shí)目標(biāo)框的重合程度,這里與Faster RCNN和SSD中直接預(yù)測(cè)的目標(biāo)概率是不一樣的。

網(wǎng)絡(luò)結(jié)構(gòu)分析

圖8:論文截圖-網(wǎng)絡(luò)結(jié)構(gòu),這里我給出了論文中省略掉的兩層

整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)看似很簡(jiǎn)單,實(shí)則確實(shí)很簡(jiǎn)單?。ā皊-2”,意思就是步長(zhǎng)為“2”,沒(méi)寫(xiě)的就是默 認(rèn)步長(zhǎng)為“1”)

整個(gè)檢測(cè)網(wǎng)絡(luò)有24個(gè)卷積層,后面跟了2個(gè)全連接層。交替的1×1個(gè)卷積層目的是減少前一層 的特征。整個(gè)網(wǎng)絡(luò)輸入的是448 × 448的圖片,最終得到的是7×7×30的張量。

所以說(shuō)得到的7×7×30的張量到底是個(gè)啥?請(qǐng)看下面兩幅圖,這個(gè)7×7好理解,一共劃分成 7×7的網(wǎng)格,那么這30是什么呢?實(shí)際上這個(gè)30包含了兩個(gè)預(yù)測(cè)框的參數(shù)和Pascal VOC的類 別參數(shù):

每個(gè)預(yù)測(cè)框有5個(gè)參數(shù):x,y,w,h,confidence;Pascal VOC里面還有20個(gè)類別;這樣 的話30 =(2 × 5)+ 20,也就是說(shuō)這一個(gè)30維的向量就是一個(gè)gird cell的信息,那總共是7 × 7個(gè)gird cell一共就是7 × 7 ×(2 × 5+ 20)= 7 × 7 × 30 tensor = 1470 outputs,正好對(duì)應(yīng)論文。

到這里就很清晰了,從圖中我們可以看到每個(gè)gird cell還可以生成20個(gè)類別的條件概率,此 圖就展示了條件概率最高的那些類別所占有的框,也就是說(shuō),每個(gè)gird cell只能有一個(gè)類別,它會(huì)從這20個(gè)類別概率中選取概率最高的那一個(gè),進(jìn)而也說(shuō)明了每個(gè)gird cell只能預(yù)測(cè) 一個(gè)物體,那么7×7=49個(gè)gird cell最多只能預(yù)測(cè)49個(gè)物體,這也是YOLO v1對(duì)小密集物體識(shí)別差的原因,后面會(huì)談到這一點(diǎn)。

損失函數(shù)詳解

在損失函數(shù)這里作者每一項(xiàng)都用的平方和誤差,將目標(biāo)檢測(cè)問(wèn)題當(dāng)作回歸問(wèn)題。

下面來(lái)看一下?lián)p失函數(shù)中每個(gè)參數(shù)的含義:

這里面有個(gè)值得注意的地方,就是寬高定位誤差那里,這里作者取了一個(gè)根號(hào),實(shí)際上這樣 做的目的就是使小框?qū)φ`差更敏感一點(diǎn)。我覺(jué)得作者這樣做的目的和RCNN邊框回歸中使用相對(duì)坐標(biāo)差的想法是一樣的,實(shí)際上就是尺度歸一化。

YOLO v1不足

作者說(shuō)YOLO v1對(duì)一些群體性的小目標(biāo)檢測(cè)效果很差,比如天空中成群結(jié)隊(duì)的鳥(niǎo)兒,如果這 群鳥(niǎo)每個(gè)目標(biāo)都很小,那么YOLO就很難對(duì)他們進(jìn)行預(yù)測(cè),因?yàn)樵谖覀僘OLO v1的思想中,每個(gè)cell只預(yù)測(cè)兩個(gè)bounding box,而且兩個(gè)bounding box預(yù)測(cè)的還是屬于同一個(gè)類別的。因?yàn)槲覀儗?duì)每個(gè)grid cell都只預(yù)測(cè)一組classes參數(shù),所以針對(duì)每個(gè)grid cell預(yù)測(cè)的是同一個(gè)類別的目標(biāo),所以說(shuō)當(dāng)一些小目標(biāo)聚集在一起時(shí)YOLO v1的檢測(cè)效果就非常的差。

第二個(gè)問(wèn)題就是當(dāng)我們的目標(biāo)出現(xiàn)新的尺寸或者配置的時(shí)候,YOLO v1的預(yù)測(cè)效果也是非常的差。

最后一個(gè)問(wèn)題就是作者發(fā)現(xiàn)主要的誤差都是由于定位不準(zhǔn)。這個(gè)問(wèn)題主要是由于作者選擇直 接預(yù)測(cè)目標(biāo)的坐標(biāo)信息,而不是像Faster RCNN或SSD那樣預(yù)測(cè)Anchor的回歸參數(shù),所以后 續(xù)YOLO v2開(kāi)始,作者就采用了Faster RCNN或SSD那樣基于Anchor的回歸預(yù)測(cè)。

檢測(cè)效果展示

關(guān)注【學(xué)姐帶你玩AI】公眾號(hào)

回復(fù)“YOLO”領(lǐng)取論文PDF合集+代碼數(shù)據(jù)集

YOLOv1詳解,快進(jìn)來(lái)學(xué)習(xí)啦!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
吉木乃县| 陇南市| 瓦房店市| 廉江市| 政和县| 旌德县| 鲁甸县| 黔南| 横山县| 乌拉特前旗| 绥江县| 休宁县| 禄丰县| 巫溪县| 郯城县| 临西县| 三河市| 汉寿县| 兴仁县| 松潘县| 合肥市| 布拖县| 斗六市| 阿拉尔市| 平泉县| 介休市| 北碚区| 启东市| 平遥县| 乾安县| 渭源县| 和平县| 平利县| 霍林郭勒市| 普定县| 同德县| 枞阳县| 旺苍县| 大荔县| 托克逊县| 古田县|