0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

目標(biāo)檢測是計算機視覺領(lǐng)域中一個新興的應(yīng)用方向

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2022-02-12 15:39 ? 次閱讀

目標(biāo)檢測計算機視覺領(lǐng)域中一個新興的應(yīng)用方向。

目標(biāo)定位

圖像分類是對圖像進行分類,比如判斷圖像中是否是車。定位分類不僅要圖片分類,而且需要確定目標(biāo)在圖像中的哪個位置。目標(biāo)檢測中要識別的對象不僅僅只有一個,目標(biāo)檢測要識別圖像中多個對象。

自動駕駛需要用到目標(biāo)檢測技術(shù)。給出一張汽車行駛中的圖片

我們需要判斷圖中1-是否有行人,2-是否有車,3-是否有摩托車,4-圖片是否只是背景圖,還需要判斷圖中汽車的位置。設(shè)圖片左上角的坐標(biāo)是(0,0),右下角坐標(biāo)為(1,1)。圖中汽車的中心點位置大概為(bx=0.5,by=0.7),汽車的長和高分別是bw=0.3和bh=0.4。我們訓(xùn)練的神經(jīng)網(wǎng)絡(luò)就要有兩種類型的輸出,一種是4種對象的檢測,另外一種是車的位置信息。

我們定義這張圖片的標(biāo)簽y要包含下面幾個元素

pIYBAGAIhROAHr5jAAAWzheJRKQ407.png

如果圖片中有任意的對象,比如上圖,那么

pIYBAGAIhVaAJi6hAAAJNK6Tl-M196.png

如果圖片中什么都沒有,那么

pIYBAGAIhZOAB94LAAAGlFWi-pU977.png

其中第一個元素置為0,其它元素可以不用設(shè)置,因為都沒有任何對象了,我們不關(guān)心其它的信息了。

目標(biāo)定位的損失函數(shù)是

o4YBAGAIhdGANLk-AAASUIcYQzk617.png

這里簡單地使用了平方損失函數(shù)。

特征點檢測

除了可以使用矩形框標(biāo)出目標(biāo)在圖片中的位置,還可以使用特征點來表示目標(biāo)的位置。

在人臉檢測中,可以使用特征點來表示人臉的位置,或者具體的部位,比如眼睛,鼻子,嘴巴。

樣本的標(biāo)簽y是一個坐標(biāo)點的集合,第1個點表示左眼左側(cè)眼角,第2個點表示左眼右側(cè)眼角,第3個點表示右眼左側(cè)眼角,以此類推。

特征點檢測有許多應(yīng)用場景。比如說AR,在人的頭上顯示一個皇冠,需要得到人臉的特征點位置,然后判斷人臉的傾斜度,最后把皇冠“戴”到頭上。

滑動窗體檢測

為了從一幅大圖中找出圖中汽車的位置,需要用到活動窗體檢測。首先使用汽車圖片訓(xùn)練一個卷積神經(jīng)網(wǎng)絡(luò),用于汽車分類。接著設(shè)置一個窗體,該窗體在大圖上從上往下從左往右慢慢移動,每移動一步,把窗體截取的內(nèi)容使用汽車分類器進行分類,如果檢測到有汽車,說明圖中的汽車位置在窗體的位置上。接著使用一個更大的窗體,重復(fù)上述步驟。

滑動窗體的移動步長設(shè)置大一些,可以減少汽車分類器的分類次數(shù),但是可能會出現(xiàn)這種情況,窗體中的汽車只有車身的一部分,分類器不能識別,這樣導(dǎo)致整個系統(tǒng)的性能降低。

把圖片分成一塊塊區(qū)域,然后分別使用分類器分類,這樣的滑動窗體的效率非常低。我們需要一個高效率的滑動窗體的方法。

首先要介紹把全連接層轉(zhuǎn)成卷積層。

把上圖的第一個全連接層,改成用5×5×16的過濾器來卷積,一次卷積的操作數(shù)是所有輸入值,這相當(dāng)于一次全連接,然后設(shè)置過濾器的數(shù)量為400,相當(dāng)于計算全連接層的400個輸出值。同理,把第二個全連接層改成用400個1×1×400的過濾器來卷積,得到的1×1×400輸出就是第二個全連接層的輸出。如此類推,最后得到1×1×4的輸出就是softmax層的輸出。

高效率的滑動窗體的方法是使用卷積來實現(xiàn)滑動窗體。

上圖第一行表示一幅14×14×3的圖片使用卷積網(wǎng)絡(luò)進行分類的過程。其中全連接層使用卷積層實現(xiàn)。上圖的下一行表示在一幅大圖中實現(xiàn)滑動窗體的計算。首先只觀察藍色方塊,這是一個滑動窗體,這個藍色方塊的大小滿足上一行卷積網(wǎng)絡(luò)的規(guī)格,把藍色方塊帶入卷積網(wǎng)絡(luò),注意黃色區(qū)域也代入卷積網(wǎng)絡(luò)中。最后2×2×4的藍色塊表示藍色方塊的分類結(jié)果。然后觀察綠色框的區(qū)域,這是另外一個滑動窗體,你會發(fā)現(xiàn)卷積網(wǎng)絡(luò)中綠色框的值就是綠色框區(qū)域在上一行卷積網(wǎng)絡(luò)中的結(jié)果。把大圖輸入到卷積網(wǎng)絡(luò),卷積網(wǎng)絡(luò)會同時計算大圖的所有的相同大小滑動窗體的分類結(jié)果,這就加快了滑動窗體的分類效率。

Bounding Box 預(yù)測

滑動窗體檢測對象的位置不是很精確,例如

黑色框是滑動窗體分割的區(qū)域,在綠色框和黃色框中有汽車。直接把綠色框和黃色框作為圖片中汽車的位置太粗略了,我們需要更加精確的汽車位置。這時可以使用到前面所說的目標(biāo)定位的知識。

我們訓(xùn)練的分類器不僅僅要輸出圖片是否有汽車,還要輸出汽車在圖片中的位置(Bounding Box),所以可以使用目標(biāo)定位使用的y,

o4YBAGAIh2uAdSdSAAAWfUIiE58249.png

把這張大圖輸入進卷積網(wǎng)絡(luò),最后得到的輸出為3×3×8的矩陣,其中3×3代表滑動窗體,8表示每個滑動窗體的目標(biāo)定位的8個預(yù)測結(jié)果。根據(jù)預(yù)測結(jié)果中的汽車位置信息,可以精確到汽車的具體位置。

這些方法來自YOLO算法。

交并比

交并比函數(shù)用于判斷算法的定位預(yù)測是否正確。

紅色框是正確的汽車位置,紫色框是預(yù)測的位置,交并比函數(shù)是指兩者交集和并集的比。圖中黃色區(qū)域指的是二者的交集,綠色區(qū)域指的是二者的并集,交并比函數(shù)公式是

o4YBAGAIh-iAF4bAAAAP8SDb-X4441.png

然后設(shè)置一個閾值,比如說0.5,如果IoU>0.5,則算法的定位預(yù)測沒有問題。如果需要算法預(yù)測效果更加精確,閾值可以設(shè)置得更高。

非極大值抑制

滑動窗體檢測有一個問題,就是一個對象可能會多次被檢測到。例如

滑動窗體把圖片分成19×19個區(qū)域,算法檢測到綠色區(qū)域和黃色區(qū)域都有汽車。這幾個區(qū)域都是汽車的一部分,它們組合起來,擴充更大的區(qū)域,才是完整的汽車。

上圖是一個物體被多次檢測到的情況。非極大值抑制會清除多余的檢測結(jié)果,比如,保留上圖中pc值最高的兩個(0.8和0.9)檢測結(jié)果。

非極大值抑制算法的具體過程如下。

每個滑動窗體輸出的預(yù)測值的形式是o4YBAGAIiLqAWxRYAAAFoBZUqHw854.png。

首先設(shè)置一個IoU閾值,比如0.5和一個概率閾值(置信度),比如0.6,清除所有 pc<0.6 的窗體。

如果還有剩下的窗體,執(zhí)行下面的循環(huán):

選擇pc值最大的輸出作為預(yù)測結(jié)果。

清除所有剩下的與前一步選擇的窗體IoU>0.5的窗體。

Anchor boxes

上述所說的都是一個窗體檢測一個對象,現(xiàn)在了解一下一個窗體同時檢測多個對象的情況。如果兩個物體對象同時出現(xiàn)在一個窗體中,它們的中心點位置相同,需要算法能夠同時識別這兩個物體對象。

上圖中行人和車的中心點都在同一個位置,之前所說的算法只能檢測到一個對象,因此需要修改算法。

圖中的行人和汽車的形狀不同,行人的矩形框比較長,汽車的矩形框比較寬,定義這些矩形框叫Anchor box,如下圖所示

o4YBAGAIia6AB3prAACzOj5pLhc222.png

為了能夠同時檢測到Anchor box1和Anchor box2,需要修改標(biāo)簽y。本來y只有8個元素,現(xiàn)在y有16個元素,前8個元素用來輸出Anchor box1的位置,后8個元素用來輸出Anch box2的位置。pc表示對應(yīng)的對象是否存在。

上圖的標(biāo)簽y是下圖的中間向量

pIYBAGAIieyAf1nZAAEIIV-JktQ766.png

如果行人離開的圖片中,那么y值變?yōu)樯蠄D的右邊向量。因為行人不在圖片中,Anchor box1的位置信息就沒有意義了,用?表示。

YOLO算法

現(xiàn)在來簡單介紹YOLO算法的整個過程。

有一個例子是檢測圖片中的行人、汽車和摩托車。我們的算法主要檢測行人和汽車,因此使用兩個Anchor box。每個窗體的標(biāo)簽值y就如同下圖所示,有16個元素,一半用來記錄行人的位置信息,另一半用來記錄汽車的位置信息。

pIYBAGAIil-AZm4zAAPZvaiwQQU280.png

我們使用3×3的滑動窗體,不過一般使用更小的滑動窗體,比如19×19。訓(xùn)練出來的卷積網(wǎng)絡(luò)最后輸出的預(yù)測值大小是3×3×16。

對一張圖片進行檢測,每個窗體都會檢測到兩個位置信息,如下圖。對象的邊界的方框可能會超出窗體。

先把低于概率閾值的位置信息去掉

接著,對每個類別(行人和汽車),使用非極大值抑制算法來確定最終的位置。

R-CNN

R-CNN(帶區(qū)域的CNN)提出了候選區(qū)域(Region proposal)的概念。R-CNN認為滑動窗體有時會檢測什么對象都沒有的區(qū)域,這會浪費時間,比如在下圖的兩個藍色區(qū)域,是沒有行人或汽車出現(xiàn),對這兩個區(qū)域進行卷積運算會降低系統(tǒng)的效率。

R-CNN對圖片進行圖片分割,得到一幅圖片的區(qū)域圖

不同的顏色塊代表圖片的不同區(qū)域,這些顏色塊可以作為候選區(qū)域,R-CNN認為這些區(qū)域可能含有我們的目標(biāo)對象,直接檢測這些候選區(qū)域比檢測所有的滑動窗體要快。

實際上R-CNN比YOLO要慢一些,但是R-CNN的思想值得借鑒。R-CNN自發(fā)表出來,已經(jīng)有速度更快的版本。

R-CNN:最初的R-CNN算法,一次只對一個候選區(qū)域進行分類,輸出的是label和bounding box(是否有對象和對象的位置)。

Fast R-CNN:使用滑動窗體的卷積實現(xiàn)來對所有的候選區(qū)域進行分類。

Faster R-CNN:使用卷積網(wǎng)絡(luò)來獲取候選區(qū)域。

版權(quán)聲明:本文轉(zhuǎn)自CSDN(叫什么就是什么),遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/qq_24548569/article/details/81177007

審核編輯:何安

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 目標(biāo)檢測
    +關(guān)注

    關(guān)注

    0

    文章

    196

    瀏覽量

    15564
  • 計算機視覺
    +關(guān)注

    關(guān)注

    8

    文章

    1685

    瀏覽量

    45811
收藏 人收藏

    評論

    相關(guān)推薦

    計算機視覺有哪些優(yōu)缺點

    計算機視覺作為人工智能領(lǐng)域重要分支,旨在使計算機能夠像人類
    的頭像 發(fā)表于 08-14 09:49 ?290次閱讀

    計算機視覺技術(shù)的AI算法模型

    計算機視覺技術(shù)作為人工智能領(lǐng)域重要分支,旨在使計算機能夠像人類
    的頭像 發(fā)表于 07-24 12:46 ?356次閱讀

    目標(biāo)檢測與識別技術(shù)的關(guān)系是什么

    目標(biāo)檢測與識別技術(shù)是計算機視覺領(lǐng)域的兩重要研究方向
    的頭像 發(fā)表于 07-17 09:38 ?282次閱讀

    機器視覺計算機視覺有什么區(qū)別

    機器視覺計算機視覺是兩密切相關(guān)但又有所區(qū)別的概念。 、定義 機器視覺 機器
    的頭像 發(fā)表于 07-16 10:23 ?288次閱讀

    計算機視覺的五大技術(shù)

    計算機視覺作為深度學(xué)習(xí)領(lǐng)域最熱門的研究方向,其技術(shù)涵蓋了多個方面,為人工智能的發(fā)展開拓了廣闊的道路。以下是對
    的頭像 發(fā)表于 07-10 18:26 ?904次閱讀

    計算機視覺的工作原理和應(yīng)用

    計算機視覺(Computer Vision,簡稱CV)是門跨學(xué)科的研究領(lǐng)域,它利用計算機和數(shù)學(xué)算法來模擬人類
    的頭像 發(fā)表于 07-10 18:24 ?1077次閱讀

    計算機視覺和機器視覺區(qū)別在哪

    ,旨在實現(xiàn)對圖像和視頻的自動分析和理解。 機器視覺 機器視覺計算機視覺分支,主要應(yīng)用于工
    的頭像 發(fā)表于 07-09 09:22 ?290次閱讀

    計算機視覺和圖像處理的區(qū)別和聯(lián)系

    計算機視覺和圖像處理是兩密切相關(guān)但又有明顯區(qū)別的領(lǐng)域。 1. 基本概念 1.1 計算機視覺
    的頭像 發(fā)表于 07-09 09:16 ?551次閱讀

    計算機視覺在人工智能領(lǐng)域有哪些主要應(yīng)用?

    計算機視覺是人工智能領(lǐng)域重要分支,它主要研究如何讓計算機能夠像人類
    的頭像 發(fā)表于 07-09 09:14 ?358次閱讀

    計算機視覺屬于人工智能嗎

    屬于,計算機視覺是人工智能領(lǐng)域重要分支。 引言 計算機
    的頭像 發(fā)表于 07-09 09:11 ?586次閱讀

    深度學(xué)習(xí)在計算機視覺領(lǐng)域的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)作為其中的核心技術(shù)之,已經(jīng)在計算機視覺領(lǐng)域取得了顯著的成果。計算機
    的頭像 發(fā)表于 07-01 11:38 ?434次閱讀

    計算機視覺的主要研究方向

    計算機視覺(Computer Vision, CV)作為人工智能領(lǐng)域重要分支,致力于使計算機
    的頭像 發(fā)表于 06-06 17:17 ?522次閱讀

    計算機視覺的十大算法

    隨著科技的不斷發(fā)展,計算機視覺領(lǐng)域也取得了長足的進步。本文將介紹計算機視覺領(lǐng)域的十大算法,包括它
    的頭像 發(fā)表于 02-19 13:26 ?1047次閱讀
    <b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>的十大算法

    什么是計算機視覺計算機視覺的三種方法

    計算機視覺是指通過為計算機賦予人類視覺技術(shù)目標(biāo),從而賦能裝配線檢查到駕駛輔助和機器人等應(yīng)用。
    的頭像 發(fā)表于 11-16 16:38 ?4165次閱讀
    什么是<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>?<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>的三種方法

    最適合AI應(yīng)用的計算機視覺類型是什么?

    計算機視覺是指為計算機賦予人類視覺技術(shù)目標(biāo),從而賦能裝配線檢查到駕駛輔助和機器人等應(yīng)用。
    的頭像 發(fā)表于 11-15 16:38 ?348次閱讀
    最適合AI應(yīng)用的<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>類型是什么?