主頁 >  其他 > 了解CV和RoboMaster視覺組(五)比賽中的CV演算法(中)目標檢測的常見概念和術語

了解CV和RoboMaster視覺組(五)比賽中的CV演算法(中)目標檢測的常見概念和術語

2021-10-24 08:31:05 其他

--NeoZng[neozng1@hnu.edu.cn]

5.2.3.目標檢測

利用CNN我們已經可以完成對影像的識別和分類,但是這樣是遠遠不夠的,為了能準確定位影像中的物體,我們需要對影像中所有目標進行定位(找出框住目標的bounding box外接矩形框,即[cx,cy,w,h]四個引數,分別表示目標中心在影像中的坐標和bbox的長寬),此部分會介紹幾個經典的目標檢測網路實作的原理和方法,

有同學可能會想,那我直接讓網路在全連接層后輸出一個向量而不是標量(分類),即多輸出四個坐標也就是8個值,分別代表影像中目標的四個角點不就行了嗎?確實,對于只有一個目標的影像我們可以這么做,可惜倘若影像中有多個目標的話,網路的輸出就變成不確定的了(需要一次性輸出不確定長度,分別表示每個目標框中心、長寬和其對應的分類),我們是無法訓練一個沒有確定輸出的網路的,

?

目標定位方法,得到一個WxH到1x9向量的映射

??1代表有目標在影像中,隨后四個數代表中心坐標和目標框的長寬,最后四個數表示目標分類

?

因為影像分類是對整張影像進行的,是一個WxH維到一個確定的標量或向量(如上面說的同時進行分類和回歸)的映射,標準的CNN方法顯然無法完成一張圖片中多個物件的分類和定位操作,不過機智的你應該已經想到,我們可以把圖片拆成很多的部分,然后將這些子圖分別投入CNN從而得到它們對應的分類,不就把里面的物件定位出來了么,

沒錯,這就是密集采樣的定位思想,也是最早的目標檢測方法,使用滑動視窗來檢測目標位置的方法和模板匹配有些類似,還有一種方法是將影像用不同的長度劃分格點,在每個格點中進行影像分類(這其實是一種特殊的滑動視窗方法,即設定滑動步長大小使其與視窗的大小相同),

?

采用不同大小的滑動視窗,裁取影像的一部分投入CNN得到分類(圖中只使用了一種大小)

?

顯然,這種方法的缺點也非常明顯:超高的計算開銷,步長設定的過大可能會發生漏檢,而為了檢測大小不同的目標,我們又需要采用各種大小的視窗來運行CNN,同時還可能需要使用不同長寬比的視窗來應對物體長寬比不同的情況(例如汽車在側面看是細長的矩形,正面又比較接近正方形,如果僅使用一種型別的視窗,則可能會出現定位不精確的問題,得到的定位框包含了大量的背景),

?

使用滑動視窗方法可能出現的問題,沒有一個滑窗能夠和汽車整體匹配

?

仔細觀察,我們就會發現,在目標檢測問題中,我們面臨的最大困難就是候選區域太多且目標大小的尺度不一,問題的搜索空間過于龐大,我們難以用暴力搜索窮舉全部解,于是two-stage方法的代表作R-CNN(region proposal-CNN)橫空出世,不過,再介紹R-CNN之前,先讓我們看看目標檢測中常用的術語和概念吧,

  • 常用術語和概念

    1. GT(ground truth)

      GT可以理解為真實值、有效值、正確的答案、正確的標注資訊,對于目標檢測來說,標記的坐標點和標記分類就被稱作ground truth,

      ?

      訓練標記的bbox區域(藍色區域)就是ground truth

      ?

      在目標檢測網路的推理程序中,如何為預測框分配標簽(訓練的label即GT的屬于的分類)會極大地影響訓練的效率和推理的準確度,這也是當前目標檢測研究的熱點和難點,

    2. IOU(intersection of Union)

      字面意思,兩個bbox的交集和并集的比例,詳見上方GT的插圖,灰色區域為交集面積,除以兩個bbox的并集就得到交并比,交并比是衡量檢測生成bbox的準確性的一個指標,現在也出現了一些其他用于衡量預測框質量的指標,

    3. 正/負樣本(positive/negative sample)

      在目標檢測中,包含了目標的bbox就是正樣本,而沒有包含目標即bbox內是背景的將被作為負樣本,當然一些網路會對正負樣本進行特殊定義,特別注意,我們是根據訓練標注來生成正負樣本的,并不是說訓練標注中地GT就是正樣本,其他區域都是負樣本,我們會依據某種準則如與GT的IOU或置信度進而由得到正負樣本,

      ?

      我們的檢測目標是杯子,假設網路生成了4個檢測框,認為這里面有杯子,那么根據特定的IOU閾值如0.5,我們將生成的4個檢測框分別作為正負樣本對待;在這里紅色框是GT,紫色和藍色框因為和GT的IOU超過50%被記為正樣本,綠色框則被判定為負樣本(背景)

      ?

      在閱讀了下一篇文章的幾個經典網路后再回來看看,你應該會對正負樣本有新的理解,并且目標檢測中有一個很大的、亟待解決的問題就是正負樣本難易樣本失衡,(在一張圖片中,沒有目標存在的區域占了全圖的絕大部分,負樣本即背景類占了所有樣本的大多數,大量負樣本在訓練時會淹沒正樣本,導致神經網路失去鑒別能力對負樣本產生過擬合)

      正負樣本的劃分策略和不平衡問題同樣是目標檢測的難點,

    4. ConvNet和特征圖

      ConvNet一般值的是神經網路的backbone(骨干網路),也就是負責提取影像特征的部分,即我們在上面講解CNN的時候由卷積層和池化層堆疊起來的block,特征圖就是經過n個block之后產生的“圖片”,因為原圖的特征被提取到這些小”圖片“上所以我們稱之為特征圖,簡言之經過卷積或池化處理的圖片或特征都可以被稱作特征圖,上面記錄著原圖的某些特征,

    5. 感受野(receptive field)

      從這個術語的名字應該可以略知一二,receptive field是高層feature map上的一個點的資訊是由原圖或之前的feature map中多大的范圍/面積的像素所貢獻的度量,換個簡單句:原圖上的某個像素或低層次的feature map是否和高層中的feature map上的某個點有關聯/間接連接?再或者直接看圖:

      ?

      綠色區域是l2中左上角像素的感受野,而黃色區域是l3中間像素的感受野

      ?

      有許多擴大感受野的方法如變步長卷積、空洞卷積、膨脹卷積、focus層等我們稍后介紹,其實這個概念應該在CNN部分就進行介紹,但是由于影像分類對此并不敏感所以將介紹移到了此處,

    6. NMS(非極大值抑制)

      在生成檢測框的時候,可能會出現下圖這種情況,這時候我們要根據框的置信度或定位精度等資訊篩去一些重疊區域很大的目標框,防止出現重復檢測的情況,這里給出了NMS的大致介紹和實作原始碼:NMS 在目標檢測中的應用,

    7. 性能指標與mAP(mean average precision)

      mAP是目標檢測中最常見的測驗檢測器性能的指標,在次之前先讓我們看看混淆矩陣,這是機器學習中所有分類器都要確定的一個引數:

      ?

      混淆矩陣和對應的概念含義

      ?

      由混淆矩陣中的資料,我們可以通過各種運算來得到千奇百怪的指標,常見的如正確率、真陽性率、特異度、假陰性率(漏診率)、Youden指數等,我們則選擇mAP來指示一個目標檢測演算法的性能,mAP的計算需要查準率(true positive rate,precision: TP/(TP+FP) )和查全率(又叫召回率recall,計算通過TPR:true positive rate,TP/(TP+FN) )兩個資訊,這兩個指標是一對矛盾指標,當查準率高的時候,說明分類器很少把負類分為正類,只遴選那些最優把握、正類置信度高的樣本,顯然分類為正類的樣本TP+FP將會下降(置信度上升,分類器把更少的樣本分為正類),同時查全率必然跟著下降,很多正樣本將會成為漏網之魚而被分類為負樣本,當降低閾值希望盡可能多地把所有的正類的查出來,那么很多置信度較高的負類同樣容易被分為正類,導致查準度下降,

      ?

      找到曲線上的平衡點,即邊際效用最大的點,當繼續往曲線的右側移動,查全率上升的速度將會低于查準率下降的速度

      ?

      目標檢測任務中判斷預測框的正負樣本一般以IOU是否>0.5為準則(這里的分類是說預測框里有沒有物體的置信度,而對預測框中物體的分類準確度測驗則是直接通過分類置信度進行),那么如何繪制處pr曲線?一般的測驗方法是設定一個IOU閾值(如0.5則預測框和GT的IOU大于0.5會被判別為正例),在此閾值下根據不同的查全率水平計算查準率(當然如MSCOCO等更全面的資料集采用的方法是將IOU閾值設定為[0.5,0.95]步長為0.05,對這些閾值水平分別進行測驗再求平均,AP就是PR曲線下方的面積(為什么用曲線下的面積,而不用平衡點處的分類器性能作為指標?),稱作average precision即平均精度,而mAP是把每個類的AP曲線下的面積進行加權平均,即可算出多分類的平均精確度,

      但是mAP也有一個問題,就是正負樣本的數量不同的時候會導致PR曲線嚴重失衡(從precision和recall計算方法想想為什么),而ROC和AUC就不會出現這個問題,因此這兩個指標在分類器性能測驗中也很常用,

      得到ROC曲線需要查全率和誤診率兩個指標,查全率TPR在上面已經介紹過,這里再介紹false positive rate:它被稱做假陽性率、誤診率和偽正類率,表示所有被分類器判別為負類的樣本有多少實際上是正類(假正類在所有判別為負類的樣本中的占比,FPR=FP/(TN+FP) ),同樣會反映分類的精確程度(同樣你可以思考一下為什么在正負樣本比例失衡的時候ROC曲線不會變形?),

      和PR曲線的繪制相同,我們設定不同的分類置信度閾值進而在不同的查全率水平下測驗得到準確率,即可獲得ROC曲線,ROC曲線下方的面積AUC即area under curve同樣也有一些含義,使用AUC值作為評價標準是因為很多時候ROC曲線并不能清晰的說明哪個分類器的效果更好(閾值不同且指標不同),而作為一個數值,對應AUC更大的分類器效果更好,其具體含義為:當隨機挑選一個正樣本和一個負樣本,根據當前的分類器計算得到的score(置信度)將這個正樣本排在負樣本前面的概率,下圖中的(b)可以幫助你更好、更直觀地理解ROC曲線的含義,豎線處theta即設定的分類置信度,

      ?

      看此圖理解起來沒問題/有新的啟發就說明你大概掌握了這些概念

      ?

      如果還是沒懂也沒關系,就把它們當作衡量訓練得到的預測器的好壞的指標即可,這個指標越大越好!

    8. 公開資料集

      列出幾個最常用的目標檢測公開/比賽資料集:

      • VOC(isual object classes chanllenges)2005-2012

        經典的計算機視覺競賽,任務包括影像分類、目標檢測、語意分割和動作檢測,20個種類, VOC07和VOC12最為常用,近年來被更大的資料集像ILSVRC和MS-COCO逐漸取代,

      • ImageNet 2010-2017

        訓練資料集包含500,000張圖片,屬于200類物體,由于資料集太大,訓練所需計算量很大,因而很少使用,同時,由于類別數也比較多,目標檢測的難度也相當大,一般不會用作檢測網路的性能,二是作為訓練使用,

      • MSCOCO(microsoft common objects in context)2015-now

        看名字就知道是巨硬家的,最大的特點是除了bounding box 注釋,還給了segmentation標注,MS-COCO也包含更多的小目標(面積小于影像大小的百分之一)和稠密的目標,這些特征使得MS-COCO更接近于現實生活,MS-COCO已經成了目標檢測家族中的實際標準,


  • 如果覺得筆者總結得還可以,請點一個贊,關注一下筆者吧!還可以把文章轉發給對cv感興趣的同學和其他RMer,

  • 下次更新重磅內容,R-CNN!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/333542.html

標籤:其他

上一篇:C/C++程式員是什么讓你有如此優勢?音視頻開發該怎么學?

下一篇:W2-影像增強

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more