<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    關于目標檢測你必須知道的……

    共 3508字,需瀏覽 8分鐘

     ·

    2021-05-20 17:59

    點擊上方小白學視覺”,選擇加"星標"或“置頂

    重磅干貨,第一時間送達

    本文轉自:人工智能與算法學習


    也許你正在學習計算機視覺的路上,并且已經(jīng)深入研究了圖像分類和滑動窗口檢測器。

    在掌握了這些概念之后,了解最新技術(SOTA)目標檢測,往往會變得令人望而生畏和晦澀難懂,尤其是在理解Anchor時。

    毋庸諱言,深入大量流行的YOLO、SSD、R-CNN、Fast RCNN、Faster RCNN、Mask RCNN和RetinaNet,了解Anchor是一項艱巨的工作,尤其是在您對實際代碼了解有限時。

    如果我告訴你,你可以利用今天深入學習目標檢測背后的Anchor呢?本文目標是幫助讀者梳理Anchor的以下內(nèi)容:

    • What:anchor是什么?

    • Where:如何以及在何處對圖像生成anchor以用于目標檢測訓練?

    • When:何時可以生成anchor?

    • Why:為什么要學習偏移而不是實際值?

    • How:如何在訓練過程中修正選定的anchor以實現(xiàn)訓練對象檢測模型?


    1、What:anchor是什么?

    anchor是指預定義的框集合,其寬度和高度與數(shù)據(jù)集中對象的寬度和高度相匹配。預置的anchor包含在數(shù)據(jù)集中存在的對象大小的組合,這自然包括數(shù)據(jù)中存在的不同長寬比和比例。通常在圖像中的每一個位置預置4-10個anchor。

    訓練目標檢測網(wǎng)絡的典型任務包括:生成anchor,搜索潛在anchor,將生成的anchor與可能的ground truth配對,將其余anchor分配給背景類別,然后進行sampling和訓練。

    而推理過程就是對anchor的分類和回歸,score大于閾值的anchor進一步做回歸,小于閾值的作為背景舍棄,這樣就得到了目標檢測的結果。


    2、Where:如何以及在何處對圖像生成anchor,以用于目標檢測訓練


    本質(zhì)上,生成anchor是為了確定一組合適的框,這些框可以適合數(shù)據(jù)中的大多數(shù)對象,將假設的、均勻分布的框放置在圖像上,并創(chuàng)建一個規(guī)則,將卷積特征映射的輸出映射到圖像中的每個位置。

    為了理解錨定框是如何被生成的,假設有一個包含小目標的256px x* 256px圖像,其中大多數(shù)目標尺度位于40px * 40px或80px * x 40px之間。下面從兩個方面考量anchor:

    a、aspect ratios(橫縱比):因為假設的ground turth寬高比在1:1和2:1之間。因此,應至少考慮兩個縱橫比(1:1和2:1),用來生成此示例數(shù)據(jù)集的anchor。這些對象的比例是指對象的長度或?qū)挾日计浒瑘D像的總長度或?qū)挾鹊谋壤@?,假設一個圖像的寬度=256px=1個單位,那么一個40px寬的對象占據(jù)40px/256px=0.15625個單位的寬度,即這個對象占據(jù)整個圖像寬度的15.62%。

    b、scales (尺度):為了選擇一組最能代表數(shù)據(jù)的尺度,我們可以考慮具有最極端值的對象側度量,即數(shù)據(jù)集中所有對象的所有寬度和高度之間的最小值和最大值。如果我們的示例數(shù)據(jù)集中最大和最小的比例是0.15625和0.3125,并且我們要為錨箱方案選擇三個比例,那么三個潛在的比例可能是0.15625、0.3125和0.234375(前面兩個尺度的均值)。

    如果使用上面提到的兩個縱橫比(1:1和2:1)和這三個比例(0.15625、0.234375和0.3125)來建議此示例數(shù)據(jù)集的錨定框,那么我們將總共有六個錨定框來建議輸入圖像中的任何一個位置。

    目標檢測器采用這樣的規(guī)則來生成anchor,假設檢測器網(wǎng)絡輸入的特征圖是4-channel 8*8,然后可以在每個單元格中心上生成6個不同aspect ratios和scales的anchor,那么總共384個,這樣就盡可能的涵蓋所有可能性。

    3、When:什么時候在圖像上生成anchor?


    檢測器不預測anchor,而是為每個anchor預測一組值:a、anchor坐標偏移(offset),b、每個類別的置信度得分。

    這意味著在每次圖像推理過程中都將始終使用相同的anchor,并且將使用網(wǎng)絡預測的偏移(offset)來更正該anchor。

    知道了這一點,就很容易理解ancor需要初始化,并將此數(shù)據(jù)結構存儲在內(nèi)存中,以供實際使用時,如:在訓練中與ground ruth匹配,在推斷時將預測的偏移量應用于anchor。在這些點上,anchor的實際生成其實都已經(jīng)生成了。

    4、Why:為什么要學習偏移而不是實際值?


    理論上,如果CNN接收同一類型的物體兩次,那么不管CNN在圖像中的哪個位置接收到物體,CNN都應該輸出大致相同的值兩次。

    這意味著,如果一幅圖像包含兩輛車,而輸出結果是絕對坐標,那么網(wǎng)絡將預測兩輛車大致相同的坐標。

    而學習anchor偏移,允許這兩輛車具有相似偏移輸出,但偏移應用于錨定,錨定可映射到輸入圖像中的不同位置。這是在anchor回歸過程中學習錨定盒偏移的主要原因。

    5、How:如何在訓練過程中修正選定的anchor以實現(xiàn)訓練對象檢測模型?


    (1)回歸任務:訓練過程中,網(wǎng)絡回歸任務學習的target并不是feature map上每個位置的所有anchor的offset,而是與ground truth匹配的anchor的實際偏移,背景框的anchor偏移保持為零。

    這意味著,一旦anchor內(nèi)的像素空間被完全視為背景,則anchor不需要調(diào)整坐標。換言之,由于分配給背景類別的anchor根本不應該移動或更正,因此沒有要預測的偏移量。

    (2)分類任務:分類損失通常是使用在總背景框的子集來處理類不平衡。還記得在我們的示例中,每個位置有6個框,總共有384個建議嗎?好吧,大多數(shù)都是背景框,這就造成了一個嚴重的階級不平衡。

    解決這類不平衡問題的一個流行的解決方案是所謂的 hard negative mining ——根據(jù)預先確定的比率(通常為1:3;foreground:background)選擇一些高權重背景框。 在分類損失中處理類不平衡的另一個流行方法是降低易分類實例的權重損失貢獻,這就是RetinaNet的focal loss情況。

    (3)推理過程:為了獲得最終的一組目標檢測,網(wǎng)絡的預測偏移量被應用到相應的anchor中,可能會有成百上千個候選框,但最終,測器會忽略所有被預測為背景的盒子,保留通過某些標準的前景檢測結果,并應用NMS糾正同一對象的重疊預測。


    如本文開頭所述,了解SOTA的目標檢測算法,通常會變得令人望而生畏和晦澀難懂,但一旦您了解anchor的作用,目標檢測就有了全新的理解。

    參考文獻

    https://www.wovenware.com/blog/2020/06/anchor-boxes-in-object-detection-when-where-and-how-to-propose-them-for-deep-learning-apps/


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

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

    下載3:OpenCV實戰(zhàn)項目20講
    小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。

    交流群


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


    瀏覽 53
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報
    評論
    圖片
    表情
    推薦
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    日韩欧美三级片www麻豆 | 大香蕉好大想要 | 九哥操逼网站 | 欧美色图一区 | 久久无码中文 |