国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法

這篇具有很好參考價(jià)值的文章主要介紹了【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、概述

首先通過(guò)前面對(duì)計(jì)算機(jī)視覺(jué)領(lǐng)域中的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了解和學(xué)習(xí),我們知道,可以通過(guò)卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像進(jìn)行分類(lèi)。
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

如果還想繼續(xù)深入,會(huì)涉及到目標(biāo)定位(object location)的問(wèn)題。在圖像分類(lèi)的基礎(chǔ)上(Image classification)的基礎(chǔ)上,除了判斷圖像中的物體類(lèi)別是什么,還需要給出其在圖像中的位置,我們成為分類(lèi)和定位的問(wèn)題(Classification and localization)。但是相信你對(duì)目標(biāo)檢測(cè)問(wèn)題也有一定了解,對(duì)于目標(biāo)檢測(cè),它和前面兩個(gè)問(wèn)題就不是一個(gè)level了,目標(biāo)檢測(cè)需要識(shí)別圖像中所有待識(shí)別的物體,給出其類(lèi)別和位置。最大的不同點(diǎn)在于,目標(biāo)分類(lèi)和定位問(wèn)題在于圖像中僅僅只有一個(gè)物體,而目標(biāo)檢測(cè)并不是。

【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法
但是圖像分類(lèi)和目標(biāo)定位的知識(shí)也會(huì)對(duì)目標(biāo)檢測(cè)問(wèn)題有幫助。所以接下來(lái)我們?cè)倏匆幌路诸?lèi)問(wèn)題和定位問(wèn)題,它們也是學(xué)習(xí)目標(biāo)檢測(cè)的基礎(chǔ)。

1.1:圖像分類(lèi)和定位

我們看到下面標(biāo)準(zhǔn)的圖像分類(lèi)的流程

  • 輸入具有單個(gè)目標(biāo)的圖像
  • 通過(guò)卷積神經(jīng)網(wǎng)絡(luò),得到特征向量
  • 輸送給softmax進(jìn)行分類(lèi)
    【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

當(dāng)需要對(duì)圖像中的物體在分類(lèi)基礎(chǔ)上,預(yù)測(cè)其位置時(shí),直接在全連接的輸出層加上一個(gè)預(yù)測(cè)bounding box預(yù)測(cè)層就行。
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

不看分類(lèi)的話,也就是相當(dāng)于預(yù)測(cè)四個(gè)連續(xù)值的回歸問(wèn)題,理論上肯定行得通。當(dāng)然我們知道,卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的是圖片的局部特征,為什么能預(yù)測(cè)位置呢?好像有些牽強(qiáng)。我自己的理解是,雖然卷積神經(jīng)網(wǎng)絡(luò)好像只是學(xué)習(xí)到了一些局部的紋理特征,它肯定還是學(xué)習(xí)到了或者說(shuō)保存了特征的位置信息(比如你想一想,特征的位置不一樣,圖像中那個(gè)位置的響應(yīng)也不一樣)所以我個(gè)人目前的理解來(lái)說(shuō),我可以理解。

??后來(lái)我仔細(xì)查找資料的印證:

  • 特征圖的生成: CNN通過(guò)一系列的卷積和池化操作,從原始圖像中提取有用的特征,并生成一個(gè)稱(chēng)為特征圖的輸出。特征圖實(shí)際上是源圖像的一個(gè)縮小版本,其中每個(gè)單元包含對(duì)應(yīng)于源圖像某一窗口的特征信息。這個(gè)特征圖可以用于定位,因?yàn)槊總€(gè)特征單元的位置信息可以映射回源圖像的相應(yīng)位置。
  • 全連接層: 盡管卷積層和池化層能有效提取并保留空間信息,但通常我們?cè)诰W(wǎng)絡(luò)的最后幾層會(huì)使用全連接層來(lái)進(jìn)行精確的定位。全連接層能從前層提取的所有特征中命中目標(biāo),這有利于精準(zhǔn)的定位。全連接層中的每一個(gè)神經(jīng)元與前一層的所有神經(jīng)元都有連接。這意味著全連接層接收到的信息是全局的,每個(gè)神經(jīng)元能看到整個(gè)圖像,而不僅僅是像卷積層那樣看到圖像的一小部分。

接下來(lái)我們看一下,在這種問(wèn)題背景下,我們?cè)撊绾螌?duì)圖像進(jìn)行標(biāo)記呢?或者說(shuō),我們對(duì)訓(xùn)練過(guò)程中的真實(shí)值該如何表示呢?
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

  • Pc:表示的其實(shí)就是置信度,在標(biāo)記中就只有0,1兩種,表示有無(wú)了(實(shí)際上對(duì)Pc為0的我們也沒(méi)有進(jìn)行標(biāo)記)。預(yù)測(cè)的結(jié)果就是0~1之間
  • bx,by,bh,bw:就是物體位置
  • c1,c2,c3其實(shí)也是分類(lèi)預(yù)測(cè)softmax確定的,表示屬于哪一類(lèi)(Pc也是softmax那一層決定的,表示確定的這個(gè)類(lèi)的置信度)

根據(jù)標(biāo)簽中pc是否為1,對(duì)于損失函數(shù)也有講究

  • 如果pc1,那么就對(duì)其正常使用均方差或者設(shè)定好的的損失函數(shù)
  • 如果pc0,那么算均方差時(shí)我們只算(y預(yù)測(cè)-0)^2,其他7個(gè)值我們并不關(guān)心,我只看pc的預(yù)測(cè)有多準(zhǔn)

同時(shí),對(duì)于損失函數(shù)的選擇,你可以對(duì)dx,dy,w,h選擇均方差的損失函數(shù),對(duì)c1c2,c3選擇log形式的損失函數(shù),這樣搭配使用,也是完全OK的。

????總結(jié)一下:
圖像分類(lèi)是最基礎(chǔ)的任務(wù),它的目標(biāo)是確定圖像中的主要內(nèi)容。例如,一個(gè)圖像分類(lèi)模型可能需要確定一個(gè)圖像是貓、狗還是車(chē)。

單目標(biāo)定位在圖像分類(lèi)的基礎(chǔ)上增加了空間信息,即不僅需要確定圖片中的主要內(nèi)容,還需要定位出這個(gè)主要內(nèi)容在圖片中的位置。這通常通過(guò)在圖像上放置一個(gè)邊界框來(lái)完成

  • 特征提取:CNN架構(gòu)主體通常由交替的卷積層和池化層構(gòu)成,可以自動(dòng)地從輸入圖片中學(xué)習(xí)并提取有用的特征。
  • 分類(lèi):在特征提取之后,最后一層通常是一個(gè)全連接層,用于分類(lèi)任務(wù)。這些特征送入全連接神經(jīng)網(wǎng)絡(luò)作為輸入,進(jìn)行最終的分類(lèi)處理。
  • 單目標(biāo)定位:在單目標(biāo)定位任務(wù)中,CNN不僅進(jìn)行分類(lèi),還需要定位主要目標(biāo)的位置。在輸出層中,除了類(lèi)別概率,還會(huì)添加4個(gè)單元來(lái)預(yù)測(cè)物體的邊界框(中心點(diǎn)坐標(biāo)以及寬和高)。

1.2:關(guān)鍵特征點(diǎn)檢測(cè)

其實(shí)上文中,識(shí)別物體類(lèi)別,并且定位到四個(gè)關(guān)鍵點(diǎn)(方框的四個(gè)角點(diǎn))可以推廣到更普遍的情況。

【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

1.3:我的困惑和解決

不論可解釋性的情況下,目標(biāo)檢測(cè)為什么不能一次性輸入圖片,然后像圖像分類(lèi)那樣通過(guò)一個(gè)卷積層,直接輸出所有預(yù)測(cè)結(jié)果?

首先我其實(shí)是沒(méi)有真正理解神經(jīng)網(wǎng)絡(luò)的本質(zhì)!我們目前學(xué)習(xí)到的神經(jīng)網(wǎng)絡(luò),或者說(shuō)一般的、用于預(yù)測(cè)的神經(jīng)網(wǎng)絡(luò),它的輸出都被設(shè)計(jì)為固定的,或者說(shuō)我們期待的預(yù)測(cè)結(jié)果的格式就是固定的,我們已經(jīng)知道只可能是有或者沒(méi)有物體!比如,上面圖像分類(lèi)和定位,就只有8個(gè)輸出,表示類(lèi)別、置信度和位置。這也是為什么對(duì)于目標(biāo)檢測(cè)這種,輸出結(jié)果不完全確定的,具體來(lái)說(shuō),目標(biāo)的個(gè)數(shù)以及位置不確定,不能用簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)來(lái)設(shè)計(jì)從而解決。

  • Q:如果不考慮可行性,真的下設(shè)計(jì)一個(gè)用簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)輸出目標(biāo)檢測(cè),它的根本的不可行性在哪里,請(qǐng)說(shuō)的更直白透徹一些,結(jié)合卷積神經(jīng)網(wǎng)絡(luò)

  • A:確實(shí),我們可以理論上設(shè)計(jì)一個(gè)簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)用于目標(biāo)檢測(cè),但是會(huì)遇到一些根本的問(wèn)題,這是由卷積神經(jīng)網(wǎng)絡(luò)的固有屬性決定的。我將基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的工作原理和目標(biāo)檢測(cè)問(wèn)題的特性來(lái)說(shuō)明這個(gè)問(wèn)題。

    • 輸出空間的固定性 vs 輸出空間的動(dòng)態(tài)變化性: 卷積神經(jīng)網(wǎng)絡(luò)一般被設(shè)計(jì)用于解 決具有固定大小輸出空間的問(wèn)題,如分類(lèi)、回歸等。對(duì)于分類(lèi)任務(wù),CNN的最后一層通常是全連接層,輸出空間的大小等于類(lèi)別的數(shù)量,這是固定的。然而,目標(biāo)檢測(cè)問(wèn)題的輸出空間大小是不確定的,因?yàn)槊繌垐D片中的目標(biāo)數(shù)量是變化的,每個(gè)目標(biāo)需要一個(gè)邊界框和一個(gè)類(lèi)別標(biāo)簽作為輸出,所以輸出空間大小是動(dòng)態(tài)的。
    • 欠擬合和過(guò)擬合問(wèn)題: 簡(jiǎn)單的網(wǎng)絡(luò)模型在復(fù)雜任務(wù)上可能會(huì)出現(xiàn)“欠擬合”問(wèn)題。如果我們?cè)O(shè)計(jì)一個(gè)簡(jiǎn)單的CNN進(jìn)行目標(biāo)檢測(cè),可能會(huì)損失太多細(xì)節(jié)信息導(dǎo)致不足以檢測(cè)出所有目標(biāo)。相反,如果我們使模型變得更復(fù)雜,可能會(huì)導(dǎo)致"過(guò)擬合"問(wèn)題,使模型不能有效地泛化到新的未見(jiàn)過(guò)的數(shù)據(jù)。
    • 位置不變性 vs 識(shí)別精度: CNN具有位置不變性,意味著無(wú)論目標(biāo)在圖像中的位置如何變化,網(wǎng)絡(luò)都可以檢測(cè)到。這在許多任務(wù)中是有用的,如圖像分類(lèi)。但在目標(biāo)檢測(cè)中,我們不僅要識(shí)別目標(biāo)的類(lèi)別,還要準(zhǔn)確地判斷出其在圖像中的位置。簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)可能在保持較高的識(shí)別精度的同時(shí),無(wú)法保證較高的定位精度。
    • 尺度問(wèn)題: CNN的另一個(gè)特性是它對(duì)于較大的尺度變化不敏感,這意味著同樣的模型對(duì)于不同尺度的目標(biāo)可能會(huì)失效。在目標(biāo)檢測(cè)中,一個(gè)圖像中的目標(biāo)可能會(huì)有不同的尺度,且尺度的變化可能很大,簡(jiǎn)單的CNN由于其固有的尺度不變性,會(huì)很難在所有尺度上都檢測(cè)到目標(biāo)。

    綜上所述,雖然我們可以嘗試用簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行目標(biāo)檢測(cè),但由于上述的一些限制,僅用一個(gè)簡(jiǎn)單的CNN很難有效地處理目標(biāo)檢測(cè)問(wèn)題。這就是為什么我們通常需要用到更復(fù)雜的、專(zhuān)門(mén)設(shè)計(jì)用于處理目標(biāo)檢測(cè)問(wèn)題的網(wǎng)絡(luò)模型,如Faster-RCNN, YOLO, SSD等。

所以為什么講到錨框,也就是說(shuō),讓先生成一些大差不差的邊界框,然后把這些邊界框(或者理解成由邊界框裁剪后的圖片)輸入神經(jīng)網(wǎng)絡(luò),向上文講的圖像分類(lèi)和定位那樣,進(jìn)行分類(lèi)和位置預(yù)測(cè)。

所以到這里,我們可以把單目標(biāo)分類(lèi)和預(yù)測(cè),看作目標(biāo)檢測(cè)的一個(gè)子任務(wù)。事實(shí)上在二階段目標(biāo)檢測(cè)中用到的正是這種思想(當(dāng)然具體實(shí)現(xiàn)細(xì)節(jié)還需要探討,但大致思想是這樣)。
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

??總結(jié),目標(biāo)檢測(cè)網(wǎng)絡(luò)的主要任務(wù),可以分解為兩個(gè)部分:

  • 一個(gè)是提議或生成潛在邊界框(稱(chēng)為候選框或區(qū)域提議)
  • 另一個(gè)部分就是單目標(biāo)定位,將每個(gè)候選區(qū)域分類(lèi)并矯正其邊界框。所以,你看,目標(biāo)定位實(shí)際上就是嵌套在目標(biāo)檢測(cè)這個(gè)更復(fù)雜問(wèn)題中的一個(gè)關(guān)鍵子任務(wù)。

在更具體的視覺(jué),例如YOLO(You Only Look Once)或者Faster R-CNN等目標(biāo)檢測(cè)框架,單目標(biāo)定位就更顯其重要性。在YOLO中,整個(gè)圖像被劃分為SxS個(gè)格子,每個(gè)格子負(fù)責(zé)預(yù)測(cè)一個(gè)包含對(duì)象中心的邊界框;在Faster R-CNN中,RPN(Region Proposal Network,區(qū)域提議網(wǎng)絡(luò))輸出的各種候選框,會(huì)進(jìn)入ROI Pooling等一系列處理后,通過(guò)全連接層進(jìn)行邊界框回歸和類(lèi)別分類(lèi),這就是單目標(biāo)定位的部分。
因此,我們可以說(shuō),單目標(biāo)定位確實(shí)是目標(biāo)檢測(cè)中的一個(gè)子模塊。而目標(biāo)檢測(cè)可以理解為對(duì)單目標(biāo)定位的一種擴(kuò)展,它能夠處理任意數(shù)目和類(lèi)別的對(duì)象。

當(dāng)然這只是一個(gè)宏觀上的理解,我們差不多搞清楚了單目標(biāo)定位和分類(lèi)和目標(biāo)檢測(cè)的區(qū)別和聯(lián)系,也知道目標(biāo)檢測(cè)要比前者復(fù)雜很多,當(dāng)然部署一兩段話可以具體解釋清楚,下面就詳細(xì)來(lái)看把!

我個(gè)人學(xué)習(xí)后覺(jué)得核心在于兩點(diǎn)

  • bounding box的生成方式
  • 子任務(wù) (單目標(biāo)分類(lèi)和檢測(cè)) 是如何和目標(biāo)檢測(cè)問(wèn)題相鏈接或者說(shuō)組合的

二、目標(biāo)檢測(cè)

2.1:滑動(dòng)窗口算法

滑動(dòng)窗口是模板檢測(cè)過(guò)程中錨框生成的一種方式。

  • 首先,我們定義一個(gè)固定尺寸的窗口,這個(gè)窗口的尺寸應(yīng)該與我們期望檢測(cè)的目標(biāo)的尺寸大致相同。
  • 初始時(shí),我們將窗口放置在圖像的左上角,然后得到錨框窗口內(nèi)的圖像。將其用送入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類(lèi),判斷是否包含我們關(guān)注的目標(biāo)。
  • 然后,我們將窗口向右或者向下移動(dòng)一定的步長(zhǎng),這個(gè)步長(zhǎng)可以是窗口寬度或者高度的一半,也可以是更小的值。然后再對(duì)新窗口位置的圖像進(jìn)行同樣的分類(lèi)操作。
  • 我們重復(fù)上面的步驟,直到窗口滑過(guò)整張圖像。
  • 然后調(diào)整錨框尺寸,重復(fù)上述步驟。

【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

但是這種滑動(dòng)錨框,獲得圖像,送入卷積神經(jīng)網(wǎng)絡(luò)的方法有一個(gè)很大的問(wèn)題。我們可以看到,對(duì)于同一張圖像,用這種暴力的方法可以生成上百萬(wàn)甚至更多的錨框,將其錨框內(nèi)剪裁得到的圖像,一個(gè)個(gè)單獨(dú)地送入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè),計(jì)算機(jī)成本和存儲(chǔ)成本相當(dāng)之大! 你可能會(huì)想減少滑動(dòng)窗口滑動(dòng)的stride,但是這樣也會(huì)失去精準(zhǔn)性。
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

滑動(dòng)窗口在神經(jīng)網(wǎng)絡(luò)興起之前也有被應(yīng)用,那個(gè)時(shí)候,是將裁剪后的圖像送入一個(gè)簡(jiǎn)單的線性分類(lèi)器,這樣的成本會(huì)相對(duì)較小。但是我們都知道,卷積神經(jīng)網(wǎng)絡(luò)的精準(zhǔn)度肯定是要高于人工手動(dòng)設(shè)計(jì)特征的分類(lèi)器。

我們可以看到,先用錨框滑動(dòng)窗口,讓后裁剪圖片送入卷積神經(jīng)網(wǎng)絡(luò)。注意到,錨框滑動(dòng)窗口和卷積核滑動(dòng)窗口的過(guò)程十分類(lèi)似。實(shí)際上,可以把這個(gè)過(guò)程合二為一,減少一些計(jì)算量:

這個(gè)將滑動(dòng)窗口思想和卷積神經(jīng)網(wǎng)絡(luò)相融合從而進(jìn)行目標(biāo)檢測(cè),由Pierre Sermanet等人于2013年發(fā)表的論文,題為"Overfeat: Integrated Recognition, Localization and Detection using Convolutional Networks"所運(yùn)用。

首先,我們需要把得到全連接層也看成卷積的過(guò)程(在全連接層和卷積層之間加入適當(dāng)?shù)木矸e核):
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法
于是,如下圖,對(duì)于原圖像進(jìn)行適當(dāng)?shù)奶畛?,我們可以看到最后結(jié)果為2x2x4,其實(shí)就是代表有2x2個(gè)錨框得到的結(jié)果。這樣將滑動(dòng)窗口思想和卷積稍微結(jié)合,從而通過(guò)一次向前傳播(端到端),而不是截取四個(gè)錨框分別向前傳播四次,就節(jié)省了很大的計(jì)算成本。
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法
這個(gè)方法雖然提高了檢測(cè)效率,但是也有一些限制。例如,滑動(dòng)窗口通常是固定大小的(因?yàn)殄^框的得到其實(shí)是間接的,取決于最后一層輸出層映射到原圖像的大小,而這個(gè)映射關(guān)系是由網(wǎng)絡(luò)決定),這就意味著如果物體的尺度變化很大,那么滑動(dòng)窗口就很難覆蓋到所有物體。但是總的來(lái)說(shuō),滑動(dòng)窗口的思想開(kāi)啟了物體檢測(cè)的新篇章,并且對(duì)后續(xù)的YOLO,SSD等一系列算法產(chǎn)生了深遠(yuǎn)影響。

2.2:YOLO算法

2.2.1:邊界框的預(yù)測(cè)——YOLOv1概述

YOLOv1是屬于One Stage:端到端目標(biāo)檢測(cè)。下面我們對(duì)其如何生成bounding box 以及大致思路進(jìn)行了解。

?? 思路

  • 首先將一幅圖像分成 SxS 個(gè)網(wǎng)格(grid cell)(相當(dāng)于將原圖像進(jìn)行SxS的裁剪,得到SxS個(gè)子圖像,每個(gè)子圖像進(jìn)行單目標(biāo)檢測(cè),不過(guò)這里的所有子圖像是并行處理)。哪個(gè) 目標(biāo)物體的中心落在這個(gè)網(wǎng)格中,則這個(gè)網(wǎng)格負(fù)責(zé)預(yù)測(cè)這個(gè)目標(biāo)。更具體來(lái)說(shuō),一張圖片,對(duì)應(yīng)有7×7個(gè)lables,7x7表示有7x7個(gè)子區(qū)域,每個(gè)lables包括:有無(wú)物體、物體類(lèi)別、位置、置信度等,這些值的按照物體被分配到哪個(gè)子區(qū)域進(jìn)行填寫(xiě)!一個(gè)物體可能橫跨了多個(gè)子區(qū)域,但是它只在它的中心所在的那個(gè)子區(qū)域/網(wǎng)格的那個(gè)lable進(jìn)行標(biāo)記。

  • 但是實(shí)際每個(gè)子區(qū)域輸入網(wǎng)絡(luò)時(shí),它還是按照單目標(biāo)定位進(jìn)行預(yù)測(cè),也就是說(shuō),預(yù)測(cè)結(jié)果可能其他子區(qū)域也會(huì)認(rèn)為存在物體,即使該物體的中心點(diǎn)不在此區(qū)域!

    【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

  • 網(wǎng)絡(luò)的最終輸出是 7×7×30。還是以這個(gè)狗為例,7x7 很好理解,圖像分為 7x7 個(gè)區(qū)域進(jìn)行預(yù)測(cè).最終輸出 tensor 的前五個(gè)數(shù)值,分別是 bbox 的 x,y,w,h,c,即 bbox 的中心坐標(biāo) x,y,bbox 的寬高 w,h,bbox 的置信度。

  • 可以看到,雖然在邏輯上是分成7x7個(gè)區(qū)域“獨(dú)立”完成目標(biāo)定位的,但是整個(gè)過(guò)程是一次卷積,也就是onstage,端到端!
    【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

  • 一個(gè)中心點(diǎn),會(huì)檢測(cè) 2 個(gè) bbox ,這個(gè)操作可以減少漏檢,因?yàn)榭梢赃m應(yīng)不同形狀的 bbox,進(jìn)而提高bbox 的準(zhǔn)確率。2 個(gè) bbox 都會(huì)保留,最后通過(guò) NMS 選擇出最佳的 bbox
    【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

  • 后面的 20 個(gè),就是類(lèi)別的概率,YOLO v1 是在 VOC 數(shù)據(jù)集上訓(xùn)練的,因此一共 20 個(gè)類(lèi)。
    【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

2.2.2:交并比(IOU)

交并比是衡量定位框是否準(zhǔn)確的一種方法:
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

一般會(huì)把閾值設(shè)置為0.5,當(dāng)然為了提高準(zhǔn)確性,也可以將閾值設(shè)置為更高。

【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

2.2.3:非極大值抑制(NMS)

作用:保證一個(gè)對(duì)象只對(duì)應(yīng)一個(gè)且是最優(yōu)的bounding box。

看下面這個(gè)例子,物體的中心點(diǎn)只存在于一個(gè)網(wǎng)格,但是其他網(wǎng)格(子區(qū)域)在進(jìn)行預(yù)測(cè)時(shí)也有可能認(rèn)為物體的中心在其中,或者說(shuō)預(yù)測(cè)到同一物體。這個(gè)時(shí)候,同一個(gè)物體會(huì)得到多個(gè)bounding box

【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

而NMS做的就是,去除冗余框,得到最優(yōu)預(yù)測(cè)框。

【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

那我們下面具體看看NMS是如何發(fā)揮作用的:

  • 首先看每個(gè)框所給出的置信度Pc,現(xiàn)在有5個(gè)bounding box,記為A、B、C、D、E。并將其按照置信度,從大到小排序:A、D、C、E、B
    【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

  • 取出現(xiàn)在所有的bounding box置信度最大的那個(gè)框:A

  • 遍歷剩下所有的bounding box:B、C、D、E,計(jì)算其與當(dāng)前置信度最高的那個(gè)bounding box之間的IOU。B、C與A的IOU超過(guò)閾值,那么就扔掉B、C;并標(biāo)記第一個(gè)矩形框A,是我們保留下來(lái)的。

  • 從剩下的矩形框D、E中,選擇概率最大的D,然后判斷E與D的重疊度,重疊度大于一定的閾值,那么就扔掉;并標(biāo)記D是我們保留下來(lái)的第二個(gè)矩形框。

    就這樣一直重復(fù),找到所有被保留下來(lái)的矩形框。
    【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

上面示例中,因?yàn)閳D像中只有一個(gè)類(lèi)別,所有運(yùn)行一次NMS就找出來(lái)最后的所有邊框。實(shí)際中,若有多個(gè)類(lèi)別,如n個(gè)類(lèi)別,則需要獨(dú)立的運(yùn)行n次NMS。

最后,了解了過(guò)程,讓我們對(duì)非極大值抑制進(jìn)行總結(jié):非極大值抑制,即找到最大可能的邊框,而抑制那些非最大值的邊框,固稱(chēng)為非極大值抑制(non-max suppression)

2.2.4:錨框(anchor box)

我們上文講到y(tǒng)olov1算法存在一個(gè)局限:一個(gè)子區(qū)域限定預(yù)測(cè)一個(gè)物體。如果物體很小,一個(gè)子區(qū)域存在多個(gè)物體呢?通過(guò)對(duì)子區(qū)域添加錨框,可以解決這個(gè)問(wèn)題。這也是YOLOv2對(duì)v1的改進(jìn)之處。

可以看到,下面的兩個(gè)物體:people和car同時(shí)落在了一個(gè)網(wǎng)格/子區(qū)域中,上文我們知道,一個(gè)網(wǎng)格只能預(yù)測(cè)一個(gè)物體,那么此時(shí)就出現(xiàn)物體了。于是,為了改進(jìn)這一點(diǎn),對(duì)于一個(gè)網(wǎng)格我們提出2個(gè)(其實(shí)實(shí)際實(shí)現(xiàn)中不知2個(gè))錨框(anchor box),同時(shí)lables和輸出向量的通道數(shù)也要隨之改變(如下圖y的兩個(gè)表示所示)。通過(guò)這種方式,一個(gè)網(wǎng)格(子區(qū)域)就可以預(yù)測(cè)多個(gè)物體了!
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

下面是對(duì)有無(wú)錨框前后的對(duì)比總結(jié):
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

2.2.5:整合:YOLO算法全流程

1、構(gòu)建訓(xùn)練集:Training
  • 首先,將原圖像劃分為SxS網(wǎng)格
  • 對(duì)于每個(gè)子區(qū)域進(jìn)行標(biāo)記(原則是根據(jù)我們手動(dòng)打的標(biāo)簽,代表真實(shí)物體的位置,從而判斷物體的中心落在了這個(gè)網(wǎng)格,且在這個(gè)網(wǎng)格中的某個(gè)錨框的IOU最大,則將其歸屬于這個(gè)網(wǎng)格的這個(gè)錨框)
  • 比如在下面示例中,對(duì)于左上角藍(lán)色方框,沒(méi)有物體存在,所以兩個(gè)錨框的Pc都標(biāo)記為0表示沒(méi)有一個(gè)錨框于物體相關(guān)聯(lián);對(duì)于綠色的網(wǎng)格,有物體存在,且在第二個(gè)錨框中的IOU最大,于是將第二個(gè)錨框的Pc標(biāo)記為1,將bx,by,bh,bw賦值為物體真實(shí)位置。
    【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法
2、預(yù)測(cè)

根據(jù)物體真實(shí)位置構(gòu)建好訓(xùn)練集后,訓(xùn)練好模型,即可進(jìn)行預(yù)測(cè)。

【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

3、非極大值抑制

得到預(yù)測(cè)結(jié)果會(huì)如下圖所示(這里每個(gè)網(wǎng)格會(huì)有2個(gè)bounding box),我們還需要進(jìn)行處理得到最終的結(jié)果。
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

  • 首先,我們?nèi)サ?code>Pc小于IOU閾值的那些低置信度bounding box
    【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法
  • 然后,使用NMS非極大值抑制,去除冗余的bounding box。這里有2個(gè)類(lèi)別,我們需要對(duì)每個(gè)類(lèi)別分別運(yùn)行一次NMS,得到最終結(jié)果
    【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

2.3:區(qū)域推薦網(wǎng)絡(luò)——RCNN算法

【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

R-CNN算法最早在2013年被提出,它的出現(xiàn)打開(kāi)了運(yùn)用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測(cè)的大門(mén),從此之后,目標(biāo)檢測(cè)的精準(zhǔn)度與實(shí)時(shí)性被不斷刷新。R-CNN系列算法自提出之際,就非常引人注目,以至于在之后的很多經(jīng)典算法中,如SSD、YOLO系列、Mask R-CNN中都能看到它的影子。

R-CNN、Fast R-CNN采用的還是傳統(tǒng)的SS(selective search)算法生成推薦區(qū)域,計(jì)算非常耗時(shí),達(dá)不到實(shí)時(shí)檢測(cè)的效果。直到Faster R-CNN才使用 RPN(region proposal network) 代替了原來(lái)的SS算法,才使得目標(biāo)檢測(cè)的時(shí)間大大縮短,達(dá)到實(shí)時(shí)性的效果。

2.3.0:Selective Search

來(lái)源于傳統(tǒng)的計(jì)算機(jī)視覺(jué)技術(shù)。在深度學(xué)習(xí)流行起來(lái)之前,傳統(tǒng)的計(jì)算機(jī)視覺(jué)技術(shù)(例如圖像分割、特征提取和局部普適性)常常被用來(lái)處理圖像識(shí)別的問(wèn)題。

下面是Selective Search的基本思路:

  • 多尺度分割: 首先,基于不同的尺度進(jìn)行圖像分割,產(chǎn)生初始的區(qū)域。導(dǎo)出的每一個(gè)區(qū)域都被看作是潛在的目標(biāo)對(duì)象。

  • 區(qū)域合并: 然后,對(duì)這些區(qū)域進(jìn)行合并,根據(jù)顏色相似性、紋理相似性、尺寸相似性和形狀相兼容性等特征,逐漸將相似的區(qū)域進(jìn)行合并。將合并生成的新區(qū)域也視為對(duì)象的候選區(qū)域。

  • 利用多種策略: 在這個(gè)過(guò)程中,Selective Search會(huì)使用多種不同的搜索策略,包括顏色空間、相似度度量、起始區(qū)域等,以盡可能多地覆蓋到各種類(lèi)型的對(duì)象。

  • 最后,這個(gè)步驟會(huì)生成大約2000個(gè)區(qū)域建議。然后,這些區(qū)域建議將作為RCNN模型的輸入,進(jìn)行深度學(xué)習(xí)目標(biāo)檢測(cè)。

    但需要注意的是,雖然Selective Search方法提出了很多候選區(qū)域來(lái)增加檢測(cè)到物體的機(jī)會(huì),但這也增大了計(jì)算開(kāi)銷(xiāo),并且合并過(guò)程中可能會(huì)過(guò)度合并,導(dǎo)致目標(biāo)物體丟失。因此,后來(lái)的Fast R-CNN和Faster R-CNN都嘗試優(yōu)化這個(gè)步驟,提高檢測(cè)效率。

2.3.1:R-CNN

R-CNN(全稱(chēng)Regions with CNN features) ,是R-CNN系列的第一代算法,其實(shí)沒(méi)有過(guò)多的使用“深度學(xué)習(xí)”思想,而是將“深度學(xué)習(xí)”和傳統(tǒng)的“計(jì)算機(jī)視覺(jué)”的知識(shí)相結(jié)合。比如R-CNN pipeline中的第二步和第四步其實(shí)就屬于傳統(tǒng)的“計(jì)算機(jī)視覺(jué)”技術(shù)。使用selective search提取region proposals,使用SVM實(shí)現(xiàn)分類(lèi)。

【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

?? 思路

  • 首先用SS算法提出1000~2000多個(gè)候選區(qū)域(region proposal)
  • 每一個(gè)候選區(qū)域進(jìn)行wrap,送入CNN,進(jìn)行特征提取得到1*4096的特征向量。
  • 將特征向量送入每一類(lèi)的SVM,進(jìn)行分類(lèi),判斷是否屬于這一類(lèi)
  • 對(duì)已經(jīng)分好類(lèi)的region proposal進(jìn)行線性回歸分類(lèi),得到更精細(xì)的bounding box

R-CNN算法的檢測(cè)效果很好,但是檢測(cè)速度很慢,因此總體效率不高。其主要原因在于:
?? 缺點(diǎn)

  1. 首先我們看到,生成的每一個(gè)候選區(qū)域都需要單獨(dú)的送入CNN進(jìn)行分類(lèi)和回歸,一張圖片有1000~2000個(gè)region proposal,那么就需要進(jìn)行1000~2000次向前傳播。
  2. 要單獨(dú)的訓(xùn)練3個(gè)模型,分開(kāi)訓(xùn)練,耗時(shí)耗力
    • CNN:提取圖像特征
    • SVM預(yù)測(cè)類(lèi)別
    • 回歸器來(lái)修正bounding box
  3. selective search屬于傳統(tǒng)計(jì)算機(jī)視覺(jué),這個(gè)過(guò)程耗時(shí),大約需要2s

2.3.2:Fast R-CNN

2015年,Ross Girshick等人在R-CNN的基礎(chǔ)上進(jìn)行了改進(jìn),解決了上述影響R-CNN效率的前兩個(gè)問(wèn)題。與R-CNN相比,訓(xùn)練速度快了9倍;測(cè)試速度快了213倍;在Pascal VOC數(shù)據(jù)集上,準(zhǔn)確率從62%提升到了66%。
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

?? 思路

  • 依然首先用SS算法提出1000~2000多個(gè)候選區(qū)域(region proposal)
  • 但是不是候選區(qū)域單獨(dú)輸入進(jìn)CNN,而是一次性將整個(gè)圖片輸入進(jìn)CNN,得到整張圖片的特征圖。
  • 將region proposal對(duì)應(yīng)的區(qū)域和特征圖區(qū)域進(jìn)行映射,獲得每個(gè)候選區(qū)域在特征圖上的相應(yīng)特征矩陣
  • 每個(gè)特征矩陣進(jìn)行池化,到7x7,獨(dú)立的輸入進(jìn)全連接層,單獨(dú)的進(jìn)行分類(lèi)和回歸

?? Fast R-CNN的改進(jìn)點(diǎn):

  • ROI Pooling層。 這個(gè)方法是針對(duì)R-CNN的第一個(gè)問(wèn)題提出來(lái)的,用來(lái)解決提取特征操作冗余的問(wèn)題,避免每個(gè)推薦區(qū)域都要送入CNN進(jìn)行前向計(jì)算。核心思路是:將圖像只輸入CNN提取特征,只進(jìn)行一次前向計(jì)算。得到的特征圖由全部推薦區(qū)域共享。然后再將推薦區(qū)域(SS算法得到)投影到特征圖上,獲得每個(gè)推薦區(qū)域?qū)?yīng)的特征圖區(qū)域。最后使用ROI Pooling層將每個(gè)特征圖區(qū)域下采樣到7*7大小。
  • 將原來(lái)三個(gè)模型整合到一個(gè)網(wǎng)絡(luò),易與訓(xùn)練。R-CNN算法使用三個(gè)不同的模型,需要分別訓(xùn)練,訓(xùn)練過(guò)程非常復(fù)雜。在Fast R-CNN中,直接將CNN、分類(lèi)器、邊界框回歸器整合到一個(gè)網(wǎng)絡(luò),便于訓(xùn)練,極大地提高了訓(xùn)練的速度。

?? Fast R-CNN的瓶頸:

雖然Fast R-CNN算法在檢測(cè)速度和精確度上了很大的提升。但是它仍然不能滿足實(shí)時(shí)目標(biāo)檢測(cè),最大的原因在于:采用SS算法生成推薦區(qū)域的方法很耗時(shí),處理每張圖像大約需要消耗2秒,大大限制了目標(biāo)檢測(cè)的速度。

2.3.3:Faster R-CNN

2015年,由任少卿、何凱明、Ross Girshick、孫劍組成的微軟研究團(tuán)隊(duì),提出了Region Proposal Networks取代了原來(lái)的SS算法,幾乎不消耗計(jì)算時(shí)間,使得生成推薦區(qū)域過(guò)程變得非常高效,解決了Fast R-CNN的瓶頸問(wèn)題。

Faster R-CNN算法將Region Proposal Networks與Fast R-CNN進(jìn)一步合并為一個(gè)單個(gè)網(wǎng)絡(luò)。當(dāng)采用非常深的VGG-16模型作為骨干網(wǎng)絡(luò)時(shí),基于該方法的檢測(cè)系統(tǒng)在GPU上的幀速率為5fps,基本達(dá)到實(shí)時(shí)檢測(cè)的水平。同時(shí)在PASCAL VOC2007、2012和MS COCO數(shù)據(jù)集上,其檢測(cè)精度也達(dá)到了最好的水平。
【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè),算法

如上圖所示,F(xiàn)aster R-CNN算法流程主要有以下4個(gè)步驟:
?? 思路

  • Conv layers。首先將圖像輸入到CNN(VGG-16)提取圖像特征,得到的feature maps 將被共享用于后面的RPN和ROI Pooling。
  • Region Proposal Networks。RPN用于生成推薦區(qū)域。該網(wǎng)絡(luò)通過(guò)softmax判斷anchors屬于positive還是negative,再利用邊界框回歸修正anchors獲得精確的推薦框proposals。
  • ROI Pooling。該層以feature maps和proposals同時(shí)作為輸入,綜合這些信息后提取proposal feature maps,送入后續(xù)全連接層判定目標(biāo)類(lèi)別。
  • Classifer。將proposal feature maps輸入全連接層與預(yù)測(cè)proposals的類(lèi)別;同時(shí)再次進(jìn)行邊界框回歸,獲得檢測(cè)框最終的精確位置。

RPN的工作過(guò)程如下:

  • 特征提取: RPN首先接收一個(gè)輸入圖像,并通過(guò)一個(gè)共享的卷積神經(jīng)網(wǎng)絡(luò)(如VGG或ResNet)提取特征圖。這一特征提取過(guò)程與之前的R-CNN和Fast R-CNN相同。提取的特征圖包含了圖像的形狀和紋理信息。
  • 生成一定數(shù)量的-錨框(Anchors): 在特征圖上的每個(gè)位置(對(duì)應(yīng)原圖的多個(gè)像素區(qū)域),RPN生成一系列預(yù)設(shè)尺度和比例的錨框。比如,可以在每個(gè)位置上生成3種尺度和3種寬高比的錨框,共9個(gè)錨框。這個(gè)步驟用于嘗試覆蓋到各種尺度和形狀的目標(biāo)。
  • 預(yù)測(cè)候選區(qū)域: 對(duì)于每個(gè)錨框,RPN使用一個(gè)小網(wǎng)絡(luò)結(jié)構(gòu)(通常包含幾個(gè)卷積層和全連接層)獨(dú)立地預(yù)測(cè)兩個(gè)內(nèi)容:一個(gè)二元分類(lèi)判斷(即“是否含有目標(biāo)”),以及一個(gè)邊界框回歸(具體地調(diào)整位置和尺寸)。如果分類(lèi)預(yù)測(cè)為正(即含有目標(biāo)),則此錨框作為一個(gè)候選區(qū)域。
  • NMS篩選: 由于生成的候選區(qū)域可能有大量的重疊,RPN會(huì)通過(guò)非極大值抑制(Non-Maximum Suppression,NMS)來(lái)消除冗余的候選區(qū)域。在NMS中,對(duì)所有候選區(qū)域按照分類(lèi)預(yù)測(cè)的分?jǐn)?shù)排序,取最高分的區(qū)域,并移除與其重疊度過(guò)高(如IoU超過(guò)0.7)的其他候選區(qū)域。然后重復(fù)這個(gè)過(guò)程,直到所有候選區(qū)域都判斷完畢。
  • 輸出候選區(qū)域: 最終,RPN輸出經(jīng)過(guò)篩選的一定數(shù)量(如2000個(gè))的候選區(qū)域,限制輸出的候選區(qū)域數(shù)量,得到一定數(shù)量的候選框用于后續(xù)的對(duì)象檢測(cè)過(guò)程。

總的來(lái)說(shuō),RPN生成的錨框數(shù)量是固定的,但是通過(guò)分類(lèi)預(yù)測(cè)和NMS篩選后,輸出的候選區(qū)域數(shù)量是不固定的,依賴于具體的圖像和對(duì)象。

2.3.4:對(duì)比YOLO

Faster R-CNN和YOLO(You Only Look Once)是兩種不同的目標(biāo)檢測(cè)框架,而他們主要的時(shí)間成本差異在于處理候選區(qū)域的方式。

Faster R-CNN首先使用Region Proposal Network(RPN)生成候選區(qū)域(或稱(chēng)為Region of Interest, ROI),然后每個(gè)ROI都經(jīng)過(guò)ROI Pooling變?yōu)榻y(tǒng)一大小的特征圖,再輸入到全連接層進(jìn)行分類(lèi)和邊界框回歸。因此,Faster R-CNN必須對(duì)每個(gè)ROI進(jìn)行單獨(dú)處理,這就涉及一定數(shù)量的逐個(gè)操作,因此相對(duì)來(lái)說(shuō)會(huì)稍慢一些。
而YOLO則采用了一種全圖預(yù)測(cè)的策略:它將輸入圖像劃分為一個(gè)個(gè)格子,每個(gè)格子預(yù)測(cè)一定數(shù)量的邊界框和分類(lèi)概率。這個(gè)過(guò)程是全圖矩陣操作可以并行計(jì)算,因此相對(duì)于Faster R-CNN會(huì)快一些。

但是值得注意的是,這兩種方法在準(zhǔn)確率和召回率上可能存在差異。由于Faster R-CNN使用了RPN來(lái)生成候選區(qū)域,所以有可能在復(fù)雜背景和遮擋嚴(yán)重的情況下獲得更好的結(jié)果。而YOLO由于其對(duì)整個(gè)圖像的一次性處理,可能在處理小對(duì)象和大量對(duì)象時(shí)有更好的效果。具體使用哪種方法,可能需要根據(jù)具體任務(wù)和數(shù)據(jù)進(jìn)行選擇。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-828705.html

到了這里,關(guān)于【計(jì)算機(jī)視覺(jué)】目標(biāo)檢測(cè) |滑動(dòng)窗口算法、YOLO、RCNN系列算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包