吳恩達(dá)深度學(xué)習(xí)筆記(94)-目標(biāo)檢測(cè)之檢測(cè)算法

目標(biāo)檢測(cè)(Object detection)

學(xué)過了對(duì)象定位和特征點(diǎn)檢測(cè),今天我們來構(gòu)建一個(gè)對(duì)象檢測(cè)算法。這節(jié)課,我們將學(xué)習(xí)如何通過卷積網(wǎng)絡(luò)進(jìn)行對(duì)象檢測(cè),采用的是基于滑動(dòng)窗口的目標(biāo)檢測(cè)算法。

假如你想構(gòu)建一個(gè)汽車檢測(cè)算法,步驟是(以上圖為例),

首先創(chuàng)建一個(gè)標(biāo)簽訓(xùn)練集,也就是x和y表示適當(dāng)剪切的汽車圖片樣本,這張圖片(編號(hào)1)x是一個(gè)正樣本,因?yàn)樗且惠v汽車圖片,這幾張圖片(編號(hào)2、3)也有汽車,但這兩張(編號(hào)4、5)沒有汽車。出于我們對(duì)這個(gè)訓(xùn)練集的期望,你一開始可以使用適當(dāng)剪切的圖片,就是整張圖片x幾乎都被汽車占據(jù),你可以照張照片,然后剪切,剪掉汽車以外的部分,使汽車居于中間位置,并基本占據(jù)整張圖片。

有了這個(gè)標(biāo)簽訓(xùn)練集,你就可以開始訓(xùn)練卷積網(wǎng)絡(luò)了,輸入這些適當(dāng)剪切過的圖片(編號(hào)6),卷積網(wǎng)絡(luò)輸出y,0或1表示圖片中有汽車或沒有汽車。訓(xùn)練完這個(gè)卷積網(wǎng)絡(luò),就可以用它來實(shí)現(xiàn)滑動(dòng)窗口目標(biāo)檢測(cè),具體步驟如下。

假設(shè)這是一張測(cè)試圖片,首先選定一個(gè)特定大小的窗口,比如圖片下方這個(gè)窗口,將這個(gè)紅色小方塊輸入卷積神經(jīng)網(wǎng)絡(luò),卷積網(wǎng)絡(luò)開始進(jìn)行預(yù)測(cè),即判斷紅色方框內(nèi)有沒有汽車。

滑動(dòng)窗口目標(biāo)檢測(cè)算法(哎,這個(gè)是重點(diǎn))接下來會(huì)繼續(xù)處理第二個(gè)圖像,即紅色方框稍向右滑動(dòng)之后的區(qū)域,并輸入給卷積網(wǎng)絡(luò),因此輸入給卷積網(wǎng)絡(luò)的只有紅色方框內(nèi)的區(qū)域,再次運(yùn)行卷積網(wǎng)絡(luò),然后處理第三個(gè)圖像,依次重復(fù)操作,直到這個(gè)窗口滑過圖像的每一個(gè)角落。

為了滑動(dòng)得更快,我這里選用的步幅比較大,思路是以固定步幅移動(dòng)窗口,遍歷圖像的每個(gè)區(qū)域,把這些剪切后的小圖像輸入卷積網(wǎng)絡(luò),對(duì)每個(gè)位置按0或1進(jìn)行分類,這就是所謂的圖像滑動(dòng)窗口操作。

重復(fù)上述操作,不過這次我們選擇一個(gè)更大的窗口,截取更大的區(qū)域,并輸入給卷積神經(jīng)網(wǎng)絡(luò)處理,你可以根據(jù)卷積網(wǎng)絡(luò)對(duì)輸入大小調(diào)整這個(gè)區(qū)域,然后輸入給卷積網(wǎng)絡(luò),輸出0或1。

以某個(gè)固定步幅滑動(dòng)窗口,重復(fù)以上操作,遍歷整個(gè)圖像,輸出結(jié)果。

然后第三次重復(fù)操作,這次選用更大的窗口。

如果你這樣做,不論汽車在圖片的什么位置,總有一個(gè)窗口可以檢測(cè)到它。

比如,將這個(gè)窗口(編號(hào)1)輸入卷積網(wǎng)絡(luò),希望卷積網(wǎng)絡(luò)對(duì)該輸入?yún)^(qū)域的輸出結(jié)果為1,說明網(wǎng)絡(luò)檢測(cè)到圖上有輛車。

這種算法叫作滑動(dòng)窗口目標(biāo)檢測(cè)(咳咳,重點(diǎn)啊,同學(xué)們~),因?yàn)槲覀円阅硞€(gè)步幅滑動(dòng)這些方框窗口遍歷整張圖片,對(duì)這些方形區(qū)域進(jìn)行分類,判斷里面有沒有汽車。

滑動(dòng)窗口目標(biāo)檢測(cè)算法也有很明顯的缺點(diǎn),就是計(jì)算成本,因?yàn)槟阍趫D片中剪切出太多小方塊,卷積網(wǎng)絡(luò)要一個(gè)個(gè)地處理。如果你選用的步幅很大,顯然會(huì)減少輸入卷積網(wǎng)絡(luò)的窗口個(gè)數(shù),但是粗糙間隔尺寸可能會(huì)影響性能。反之,如果采用小粒度或小步幅,傳遞給卷積網(wǎng)絡(luò)的小窗口會(huì)特別多,這意味著超高的計(jì)算成本。

所以在神經(jīng)網(wǎng)絡(luò)興起之前,人們通常采用更簡(jiǎn)單的分類器進(jìn)行對(duì)象檢測(cè),比如通過采用手工處理工程特征的簡(jiǎn)單的線性分類器來執(zhí)行對(duì)象檢測(cè)。至于誤差,因?yàn)槊總€(gè)分類器的計(jì)算成本都很低,它只是一個(gè)線性函數(shù),所以滑動(dòng)窗口目標(biāo)檢測(cè)算法表現(xiàn)良好,是個(gè)不錯(cuò)的算法。

然而,卷積網(wǎng)絡(luò)運(yùn)行單個(gè)分類人物的成本卻高得多,像這樣滑動(dòng)窗口太慢。除非采用超細(xì)粒度或極小步幅,否則無法準(zhǔn)確定位圖片中的對(duì)象。

不過,慶幸的是,計(jì)算成本問題已經(jīng)有了很好的解決方案,大大提高了卷積層上應(yīng)用滑動(dòng)窗口目標(biāo)檢測(cè)器的效率。

具體是怎么解決的呢?

預(yù)知詳情,請(qǐng)聽下次講解~

?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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