1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        圖解物體檢測(cè)中的Anchors

        共 3666字,需瀏覽 8分鐘

         ·

        2021-05-30 01:50

        點(diǎn)擊上方小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂

        重磅干貨,第一時(shí)間送達(dá)


        本文轉(zhuǎn)自:視覺(jué)算法

        導(dǎo)讀

        給大家再次解釋一下Anchors在物體檢測(cè)中的作用。


        今天,我將討論在物體檢測(cè)器中引入的一個(gè)優(yōu)雅的概念 —— Anchors,它是如何幫助檢測(cè)圖像中的物體,以及它們與傳統(tǒng)的兩階段檢測(cè)器中的Anchor有何不同。

        像往常一樣,讓我們看看在哪些問(wèn)題中,anchors被引入作為解決方案。

        在開(kāi)始使用anchors之前,讓我們看看兩階段物體檢測(cè)器是如何工作的,以及它們實(shí)際上是如何促進(jìn)單階段檢測(cè)器的發(fā)展的。

        兩階段物體檢測(cè)器:傳統(tǒng)的兩階段物體檢測(cè)器檢測(cè)圖像中的物體分兩階段進(jìn)行:

        1. 第一階段:第一階段遍歷輸入圖像和物體可能出現(xiàn)的輸出區(qū)域(稱(chēng)為建議區(qū)域或感興趣的區(qū)域)。這個(gè)過(guò)程可以通過(guò)外部算法(例如:selective search)或者神經(jīng)網(wǎng)絡(luò)來(lái)完成。
        2. 第二階段:第二階段是一個(gè)神經(jīng)網(wǎng)絡(luò),它接受這些感興趣的區(qū)域,并將其分類(lèi)到一個(gè)目標(biāo)物體類(lèi)中。

        為了簡(jiǎn)單起見(jiàn),我會(huì)介紹一個(gè)著名的兩級(jí)探測(cè)器 —— Faster-RCNN。兩個(gè)階段都包含了一個(gè)神經(jīng)網(wǎng)絡(luò)。

        1. 第一個(gè)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)一個(gè)物體可能出現(xiàn)的位置(也稱(chēng)為objectness得分)。它基本上就是一個(gè)對(duì)前景(物體)和背景的分類(lèi)。這個(gè)網(wǎng)絡(luò)被稱(chēng)為區(qū)域建議網(wǎng)絡(luò),又名RPN。
        2. 提取區(qū)域建議后,對(duì)輸入圖像中對(duì)應(yīng)的位置進(jìn)行裁剪,送入下一個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行分類(lèi),假設(shè)有N個(gè)目標(biāo)類(lèi)。這個(gè)網(wǎng)絡(luò)預(yù)測(cè)在那個(gè)位置上存在什么物體。

        步驟2看起來(lái)非常簡(jiǎn)單,因?yàn)樗梢詺w結(jié)為圖像分類(lèi),即將目標(biāo)物體分成N個(gè)類(lèi)別中的一個(gè)。

        讓我們深入研究第1步。

        (a) 這個(gè)神經(jīng)網(wǎng)絡(luò)如何預(yù)測(cè)這些目標(biāo)的位置?

        (b) 如果可以訓(xùn)練神經(jīng)網(wǎng)絡(luò)進(jìn)行前景和背景的分類(lèi),那么為什么不訓(xùn)練它一次預(yù)測(cè)所有N個(gè)類(lèi)呢?

        (a) 的解決方案就是anchors,(b)的答案是肯定的,我們可以用一個(gè)單一的網(wǎng)絡(luò)來(lái)執(zhí)行N-way目標(biāo)檢測(cè),這樣的網(wǎng)絡(luò)就是眾所周知的單階段目標(biāo)檢測(cè)器。單階段檢測(cè)器與Faster-RCNN中第一個(gè)階段的網(wǎng)絡(luò)幾乎相同。

        我說(shuō)SSD和RPN幾乎是一樣的,因?yàn)樗鼈冊(cè)?strong>概念上是相同的,但是在體系結(jié)構(gòu)上有不同。

        問(wèn)題:神經(jīng)網(wǎng)絡(luò)如何檢測(cè)圖像中的物體?

        解決方案(1) —— 單目標(biāo)檢測(cè):讓我們使用最簡(jiǎn)單的情況,在一個(gè)圖像中找到一個(gè)單一的物體。給定一個(gè)圖像,神經(jīng)網(wǎng)絡(luò)必須輸出物體的類(lèi)以及它的邊界框在圖像中的坐標(biāo)。所以網(wǎng)絡(luò)必須輸出4+C個(gè)數(shù)字,其中C是類(lèi)別的數(shù)量。

        可以直接將輸入圖像通過(guò)一組卷積層然后將最后的卷積輸出轉(zhuǎn)換為一個(gè)4+C維的向量,其中,前4個(gè)數(shù)字表示物體的位置(比如minx, miny, maxx, maxy),后面的C個(gè)數(shù)字表示類(lèi)別概率的得分。

        解決方案(2) —— 多目標(biāo)檢測(cè):這可以通過(guò)將上述方法擴(kuò)展為N個(gè)物體來(lái)實(shí)現(xiàn)。因此,網(wǎng)絡(luò)現(xiàn)在輸出的不是4+C的數(shù)字,而是*N*(4+C)*數(shù)字。

        取一個(gè)大小為H x W x 3的輸入圖像讓它通過(guò)一組卷積層得到一個(gè)大小為H x W x d的卷積體,d是通道的深度或數(shù)量。

        將圖像通過(guò)ConvNet得到輸出的特征圖

        考慮上面的輸出卷積 volume。假設(shè)volume大小為7×7×512。使用N個(gè)大小為3 x 3 x 512的濾波器,stride=2, padding=1,產(chǎn)生大小為4 x 4 x N的輸出volume。

        我們?nèi)∵@個(gè)大小為4 x 4 x N的輸出試著推斷它的含義。

        在輸出的特征圖中有16個(gè)cells,我們可以說(shuō),每個(gè)cell都有一個(gè)接收域(或感受野),對(duì)應(yīng)到原始圖像中的某個(gè)點(diǎn)。每個(gè)這樣的cell都有N個(gè)與之相關(guān)的數(shù)字。正如我前面指出的,N是類(lèi)別的數(shù)量,我們可以說(shuō),每個(gè)cell都有關(guān)于在feature map中對(duì)應(yīng)位置上出現(xiàn)的物體的信息。以同樣的方式,還有另一個(gè)并行的conv頭,其中有4個(gè)大小為3 x 3 x 512的濾波器,應(yīng)用在同一個(gè)conv volume上,以獲得另一個(gè)大小為4 x 4 x 4的輸出 —— 這對(duì)應(yīng)邊界框的偏移量。

        現(xiàn)在我們知道如何用一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)多個(gè)目標(biāo)。但是等一下,我們?nèi)绾斡?jì)算這個(gè)輸出為4x4xn的cell的損失呢?

        現(xiàn)在讓我們深入到輸出層使用的N個(gè)濾波器中。從N個(gè)濾波器中取出一個(gè),看看它是如何通過(guò)對(duì)feature map進(jìn)行卷積得到輸出的。

        3 x 3 濾波器在7 x 7的特征圖上進(jìn)行卷積,stride = 2

        這個(gè)3x3的濾波器可以在7x7的網(wǎng)格上移動(dòng)16個(gè)不一樣的位置,并做出預(yù)測(cè)(如前所述),這是非常明顯的。

        我們知道,網(wǎng)格中的16個(gè)cell對(duì)應(yīng)于它之前的層中的一個(gè)特定位置。請(qǐng)看下面的圖表。輸出網(wǎng)格中的第一個(gè)cell有一個(gè)大小為3x3的參考框。

        第一個(gè)cell可以與輸入圖像中的特定位置相關(guān)聯(lián),從該位置進(jìn)行預(yù)測(cè)。

        類(lèi)似地,輸出中的每個(gè)cell都可以與輸入圖像中的特定位置相關(guān)聯(lián),從該位置進(jìn)行預(yù)測(cè)。

        因此有16個(gè)這樣的參考位置(大小為3x3) —— 每個(gè)位置都有自己相對(duì)于輸入圖像的坐標(biāo)?,F(xiàn)在通過(guò)這些參考位置,我們可以實(shí)現(xiàn)兩個(gè)目標(biāo):

        1. 分類(lèi)損失:如果N個(gè)物體中有一個(gè)落在這16個(gè)參考位置,即與ground truth的包圍框的IOU≥某個(gè)閾值,那么我們就知道要匹配哪個(gè)ground truth了。
        2. 回歸損失:為什么我們需要這個(gè)?假設(shè)一個(gè)物體落在其中一個(gè)參考框中,我們可以簡(jiǎn)單地輸出這些參考位置相對(duì)于輸入圖像的實(shí)際坐標(biāo)。原因是物體不必是方形的。因此,我們不是天真地輸出一組固定的框坐標(biāo),而是通過(guò)輸出4個(gè)偏移值來(lái)調(diào)整這些參考位置的默認(rèn)坐標(biāo)?,F(xiàn)在我們已經(jīng)知道了ground truth box坐標(biāo)和相應(yīng)的參考位置坐標(biāo),我們可以簡(jiǎn)單地使用L1/L2距離來(lái)計(jì)算回歸損失。

        與圖像分類(lèi)的任務(wù)中只有輸出向量要匹配不同,這里我們有16個(gè)參考位置要匹配。這意味著該網(wǎng)絡(luò)可以一次性預(yù)測(cè)16個(gè)物體。要預(yù)測(cè)的物體數(shù)量可以通過(guò)對(duì)多特征圖層次進(jìn)行預(yù)測(cè)或通過(guò)增加特征圖上所謂的參考位置來(lái)增加。

        這些參考位置就是anchor boxes或者default boxes。

        在上面的例子中,只有一個(gè)anchor框,也就是每個(gè)濾波器位置只做了一個(gè)預(yù)測(cè)。

        通常,在feature map中,每個(gè)filter位置都可以進(jìn)行多次預(yù)測(cè) —— 這意味著需要有多少預(yù)測(cè)就有多少個(gè)參考。

        假設(shè)每個(gè)filter位置有3個(gè)參考。

        每個(gè)filter位置有三個(gè)boxes —— 一個(gè)是3x3(橙色),一個(gè)是1x3(藍(lán)色),另一個(gè)是3x1(綠色)

        正如我們前面看到的,輸出是anchor框的函數(shù),因此如果參考/anchor的數(shù)量改變,輸出的大小也會(huì)改變。因此,網(wǎng)絡(luò)輸出的不是1個(gè)anchor點(diǎn)的4x4xN(和4x4x4),而是由于anchor數(shù)=3,所以輸出的是4x4x(N*3)。

        一般來(lái)說(shuō),單階段探測(cè)器的輸出形狀可以寫(xiě)成:

        分類(lèi)頭的形狀:HxWxNA

        回歸頭的形狀:HxWx4A

        式中,A為使用anchrs的數(shù)量。

        一個(gè)問(wèn)題!

        每個(gè)filter位置有多個(gè)anchors/參考框的意義是什么?

        這使得網(wǎng)絡(luò)能夠在圖像的給每個(gè)位置上預(yù)測(cè)多個(gè)不同大小的目標(biāo)。

        這種在末端使用卷積層來(lái)獲得輸出的單階段檢測(cè)器的變體稱(chēng)為SSD,而在末端使用全連接層來(lái)獲得輸出的變體稱(chēng)為YOLO。

        我希望我已經(jīng)把a(bǔ)nchor的概念變得為大家容易理解。anchor總是一個(gè)難以把握的概念,在這個(gè)博客中仍然有一些關(guān)于anchor的未解問(wèn)題。我想在接下來(lái)的文章中回答這些問(wèn)題。到時(shí)候見(jiàn):)


        下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
        在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。

        下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講
        小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測(cè)、車(chē)道線(xiàn)檢測(cè)、車(chē)輛計(jì)數(shù)、添加眼線(xiàn)、車(chē)牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。

        下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
        小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

        交流群


        歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱(chēng)+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


        瀏覽 63
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            精品久久性爱视频 | 青青草大香蕉视频 | 性少妇cwfxxxx | 日韩一级在线观看视频 | 国产无毛| 五福av | 99久久精品免费看国产免费粉嫩 | 无码人伦 | 殴美肏屄视频 | 中文无码第一页 |