深度學(xué)習(xí)之對(duì)象檢測1

目標(biāo)定位

使用算法判斷圖片中是不是目標(biāo)物體,如果是還要再圖片中標(biāo)出其位置并使用邊框標(biāo)記出來

圖片分類的思想可以幫助學(xué)習(xí)分類定位,而分類定位的思想又可以幫助學(xué)習(xí)對(duì)象檢測

a.分類定位問題,通常有一個(gè)較大的對(duì)象位于圖片中間位置。

b.對(duì)象檢測問題,圖片可以含有多個(gè)對(duì)象,或一張圖片中會(huì)有多個(gè)不同分類的對(duì)象。

圖片分類對(duì)分類定位的幫助:

對(duì)于普通的圖片分類網(wǎng)絡(luò):

分類定位是在圖片分類網(wǎng)絡(luò)上加入了全連接層的輸出bx,by,bh,bw和一個(gè)分類標(biāo)簽(c1,c2,c3)

定義目標(biāo)標(biāo)簽y


元素含義:

a. 元素Pc:表示被檢測對(duì)象某一分類的概率(是否含有關(guān)心的要檢測的對(duì)象)。對(duì)于視頻提到的列子而言,要檢驗(yàn)車、摩托車、行人、景物。但是前三個(gè)檢測對(duì)象是我們關(guān)心的,那么如果出現(xiàn)則Pc為1;圖片為景物或者其他的則Pc為0。

b. 元素bx,by:為標(biāo)記邊框的中心位置坐標(biāo),一般要(bx,by)表示。圖片左上角標(biāo)記為(0,0),右下角標(biāo)記為(1,1)。

c. 元素bh,bw:為標(biāo)記邊框的長高。bw為長,bh為高。

d. 元素c1,c2,c3.....cn:為分類標(biāo)簽,n對(duì)應(yīng)自己實(shí)際的分類標(biāo)簽個(gè)數(shù)。但是在c1,c2,c3.....cn中只有一個(gè)為1。視頻中關(guān)心的分類標(biāo)簽只有車,摩托車和行人,所以n只到3.

損失函數(shù):

Pc為1時(shí),損失值等于每個(gè)元素相應(yīng)差值的平方

Pc為0時(shí),只需關(guān)注神經(jīng)網(wǎng)絡(luò)輸出Pc的準(zhǔn)確性,y1即為Pc

特征點(diǎn)檢測

神經(jīng)網(wǎng)絡(luò)可以通過輸出圖片上的特征點(diǎn)(x,y)坐標(biāo),來實(shí)現(xiàn)對(duì)目標(biāo)特征的識(shí)別。

為了構(gòu)建這樣的網(wǎng)絡(luò),你需要選定特征點(diǎn)的個(gè)數(shù),并生成包含這些特征點(diǎn)的標(biāo)簽訓(xùn)練集圖片X和標(biāo)簽Y(這些特征都是人為辛苦標(biāo)記出來的),然后利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練,輸出圖片中特征點(diǎn)的位置


目標(biāo)檢測

基于滑動(dòng)窗口構(gòu)目標(biāo)檢測算法

第一步:創(chuàng)建一個(gè)標(biāo)簽訓(xùn)練集,訓(xùn)練集為適當(dāng)剪切過的圖片樣本,使檢測對(duì)象位于中心位置,并且基本占據(jù)整張圖片

第二步:開始訓(xùn)練神經(jīng)網(wǎng)絡(luò),接下來使用這個(gè)網(wǎng)絡(luò)實(shí)現(xiàn)滑動(dòng)窗口檢測

第三步:滑動(dòng)窗口檢測

先選擇特定大小的窗口,以固定步幅滑動(dòng)窗口,遍歷截取圖像的每一個(gè)區(qū)域,把截取的小圖片輸入到上面訓(xùn)練過的卷積網(wǎng)絡(luò)中,對(duì)每個(gè)位置按0或1進(jìn)行分類(判斷截取圖片中是否存在待檢測對(duì)象)。選取更大的窗口重復(fù)以上操作。


以上的滑動(dòng)窗口算法,當(dāng)窗口太大或太小時(shí)都不好,計(jì)算成本大,效率低。只有使用極細(xì)粒度或極小步幅時(shí),才能正確檢測出物體。--改進(jìn):用卷積實(shí)現(xiàn)滑動(dòng)窗口算法。

1.把全連接層轉(zhuǎn)化為卷積層:

原理:從數(shù)學(xué)角度來看轉(zhuǎn)換的卷積層與全連接層一樣,400個(gè)節(jié)點(diǎn)中每一個(gè)節(jié)點(diǎn)都有一個(gè)5x5x16維度的過濾器,這些值都是上一層這些5X5X16激活值經(jīng)過某個(gè)任意線性函數(shù)的輸出結(jié)果。

全連接模型:

改為卷積層:把FC全連接層轉(zhuǎn)化為使用16個(gè)5x5過濾器實(shí)現(xiàn),之后的FC層使用400個(gè)1x1過濾器實(shí)現(xiàn)(最后一個(gè)1x1過濾器處理如同F(xiàn)C的softmax函數(shù))。

通過卷積實(shí)現(xiàn)滑動(dòng)窗口對(duì)象檢測算法:

?對(duì)于單個(gè)卷積實(shí)現(xiàn)過程:

卷積滑動(dòng)窗口實(shí)現(xiàn)過程:卷積滑動(dòng)其實(shí)可以把窗口看成卷積神經(jīng)網(wǎng)絡(luò)的過濾器,滑動(dòng)的步長即為過濾器的步長。這樣我們就不需要把輸入圖片進(jìn)行分割了而是把其當(dāng)成一整張圖片輸入卷積網(wǎng)絡(luò)進(jìn)行計(jì)算,其中公共區(qū)域可以共享很多計(jì)算。


YOLO算法思想

基本的滑動(dòng)窗口對(duì)象檢測算法并不能精準(zhǔn)描繪邊框,所以我們要學(xué)習(xí)一個(gè)能夠得到準(zhǔn)確邊框的算法YOLO(You Only Look Ones)算法。

?算法思想:在圖片上放置n*n的網(wǎng)格,并將圖像分類和定位算法運(yùn)用到每個(gè)網(wǎng)格上面去。

與滑動(dòng)窗口對(duì)象檢測算法的區(qū)別:

a.窗口滑動(dòng)由放置網(wǎng)格取代,YOLO算法會(huì)對(duì)每個(gè)網(wǎng)格使用圖像分類和圖像定位算法,相比滑動(dòng)窗口會(huì)大大的減少了運(yùn)算量。

b.一個(gè)對(duì)象可能在多個(gè)網(wǎng)格中,YOLO算法會(huì)找到該對(duì)象的中心點(diǎn),并把對(duì)象分給包含中心的網(wǎng)格。(bh,bw是可以大于網(wǎng)格大小,實(shí)踐中會(huì)使用更精細(xì)的網(wǎng)格去分割,所以對(duì)象可能會(huì)橫跨多個(gè)網(wǎng)格)

c.顯示的輸出邊界框架,讓神經(jīng)網(wǎng)絡(luò)輸出的框架可以具有任意的寬高比,并且能輸出更精確的坐標(biāo)。

YOLO算法的輸出

由于YOLO算法是對(duì)每個(gè)網(wǎng)格進(jìn)行運(yùn)行,在視頻給出的例子中輸出結(jié)果3*3*8

3*3是圖片的分割的網(wǎng)格數(shù)量

8是輸出圖片預(yù)測和邊框位置等信息,其實(shí)就等于給出的標(biāo)簽y的具體信息:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容