在計(jì)算機(jī)視覺(jué)眾多的技術(shù)領(lǐng)域中,目標(biāo)檢測(cè)(Object Detection)是一項(xiàng)非常基礎(chǔ)的任務(wù),圖像分割、物體追蹤、關(guān)鍵點(diǎn)檢測(cè)等通常都需要借助于目標(biāo)檢測(cè)。目標(biāo)檢測(cè)作為基礎(chǔ)任務(wù)通常和圖像分類(lèi)、圖像分割相關(guān)聯(lián),我們簡(jiǎn)單看一下它們之間的區(qū)別與聯(lián)系。
圖像分類(lèi):圖像分類(lèi)側(cè)重于輸入圖像中只有單個(gè)物體,用來(lái)判斷這個(gè)圖像屬于什么類(lèi)別,比如人、動(dòng)物等大類(lèi)別,也可以是不同種類(lèi)的動(dòng)物小類(lèi)別等,這些圖像級(jí)別的任務(wù),相對(duì)比較簡(jiǎn)單,容易理解,所以最先得到發(fā)展與運(yùn)用。
目標(biāo)檢測(cè):目標(biāo)檢測(cè)偏向于一張輸入圖像中包含多個(gè)類(lèi)別的很多物體,我們經(jīng)常拍攝或者看到的圖像往往都是具有多個(gè)類(lèi)別的物體,比較復(fù)雜,目的是找出圖像中不同物體的位置并判斷其類(lèi)別。
圖像分割:圖像分割與目標(biāo)檢測(cè)的輸入類(lèi)似,不同的是,它把圖像中像素作為基本單位,判斷每一個(gè)像素的類(lèi)別,屬于像素級(jí)別分類(lèi),一般圖像分割與目標(biāo)檢測(cè)互相關(guān)聯(lián),很多模型與方法可以相互借鑒。
一、目標(biāo)檢測(cè)的基本概念
目標(biāo)檢測(cè)是對(duì)圖像中所有感興趣的目標(biāo)進(jìn)行分類(lèi)并檢測(cè)出它們各自的位置坐標(biāo)。
如下圖所示,目標(biāo)檢測(cè)到的圖像中包括dog、bicycle、truck三個(gè)目標(biāo),并且識(shí)別了它們各自的位置信息。
當(dāng)然目標(biāo)檢測(cè)可以檢測(cè)到各種類(lèi)別信息,只要我們想檢測(cè)某一圖像當(dāng)中是否有我們所需要的目標(biāo),我們都可以按照對(duì)預(yù)先標(biāo)注類(lèi)別的圖像進(jìn)行特征信息訓(xùn)練,使網(wǎng)絡(luò)模型學(xué)習(xí)到已知目標(biāo)特征,進(jìn)而對(duì)其它圖像進(jìn)行目標(biāo)類(lèi)別與位置的識(shí)別。
二、目標(biāo)檢測(cè)的發(fā)展歷程
目標(biāo)檢測(cè)一開(kāi)始是基于手工特征的傳統(tǒng)算法,傳統(tǒng)算法對(duì)于目標(biāo)檢測(cè)通常分為3個(gè)階段:區(qū)域選取、特征提取和特征分類(lèi)。
隨著近年來(lái)計(jì)算機(jī)的發(fā)展,深度學(xué)習(xí)得到了廣泛的運(yùn)用,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)成為目前流行的檢測(cè)方法。
目標(biāo)檢測(cè)算法經(jīng)過(guò)歷年的研究和對(duì)網(wǎng)絡(luò)模型不斷改進(jìn)與優(yōu)化,出現(xiàn)了許多優(yōu)秀的算法模型。
這些模型按照過(guò)程的不同主要分為兩種類(lèi)型。
如以R-CNN系列為主的兩階段(2-stage)檢測(cè)模型和以SSD系列、YOLO系列為主的單階段(1-stage)檢測(cè)模型。
自從Faster-RCNN提出了anchor機(jī)制之后,后續(xù)的改進(jìn)算法很多都沿用了這一方法,因此,模型還有另一種劃分方式,按照是否應(yīng)用 anchor機(jī)制劃分為anchor-base和anchor-free 。
1.Two stage與One stage
1)Two stage
常見(jiàn)two stage目標(biāo)檢測(cè)算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。
在two-stage的?標(biāo)檢測(cè)領(lǐng)域中,以faster R-CNN模型為典型代表。
首先算法會(huì)先經(jīng)過(guò)主網(wǎng)絡(luò)提取特征,然后提取的特征圖經(jīng)過(guò)會(huì)先通過(guò)Region proposal network(RPN網(wǎng)絡(luò))來(lái)生成候選區(qū)域(Region Proposal,簡(jiǎn)稱(chēng)RP,包含檢測(cè)目標(biāo)的區(qū)域建議框),根據(jù)特征圖和RP?成感興趣區(qū)域(ROI)來(lái)完成后續(xù)位置坐標(biāo)信息的回歸的分類(lèi)。
2)One Stage
常見(jiàn)的one stage目標(biāo)檢測(cè)算法有:OverFeat、YOLOv1~YOLOv7、SSD和RetinaNet等。
目前最新出來(lái)的著作YOLOv7在 5-160 FPS 范圍內(nèi)速度和精度超過(guò)所有已知目標(biāo)檢測(cè)器。
one stage檢測(cè)模型不存在RPN部分,而是一步到位地在卷積網(wǎng)絡(luò)中提取特征來(lái)預(yù)測(cè)目標(biāo)的類(lèi)別和位置。
所以在擁有特征提取網(wǎng)絡(luò)的預(yù)訓(xùn)練權(quán)重后,整個(gè)one-stage是可以直接進(jìn)?端到端的訓(xùn)練的。
總而言之,one stage檢測(cè)器大大簡(jiǎn)化了模型結(jié)構(gòu)的框架,提升了推理速度和簡(jiǎn)化了訓(xùn)練步驟。
2.anchor-base和anchor-free
目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)逐漸發(fā)展成為anchor-based、anchor-free和兩者融合類(lèi)型,區(qū)別就在于有沒(méi)有利用anchor提取候選目標(biāo)框。
首先讓我們了解下什么是anchor?
anchor也叫做錨,其實(shí)是預(yù)設(shè)一組不同尺度,不同大小的邊界框,在網(wǎng)絡(luò)訓(xùn)練的時(shí)候,真實(shí)的邊框位置相對(duì)于預(yù)設(shè)邊框的偏移。
通俗點(diǎn)說(shuō)就是預(yù)先在目標(biāo)可能存在的位置設(shè)置預(yù)設(shè)框,然后再在這些預(yù)設(shè)邊框的基礎(chǔ)上進(jìn)行細(xì)微調(diào)整。而它的本質(zhì)就是為了解決標(biāo)簽分配的問(wèn)題。
錨作為一系列先驗(yàn)框信息,其生成以下幾個(gè)部分:
(1)用網(wǎng)絡(luò)提取特征圖的點(diǎn)來(lái)定位邊框的位置;
(2)用錨的尺寸來(lái)設(shè)定邊框的大小;
(3)用錨的長(zhǎng)寬比來(lái)設(shè)定邊框的形狀。
1)anchor-base
近幾年,anchor在目標(biāo)檢測(cè)領(lǐng)域應(yīng)用十分廣泛,使用anchor機(jī)制的模型有很多,包括Faster-RCNN、SSD、YOLOV2~ YOLOV7等。
這類(lèi)算法的流程可以分為三步:
(1)在圖像或者點(diǎn)云空間預(yù)設(shè)大量的anchor(2D/3D);
(2)回歸目標(biāo)相對(duì)于anchor的四個(gè)偏移量;
(3)用對(duì)應(yīng)的anchor和回歸的偏移量修正精確的目標(biāo)位置。
以目標(biāo)檢測(cè)算法中one stage和anchor base的目標(biāo)檢測(cè)模型為例。
模型獲取的過(guò)程主要包括訓(xùn)練和測(cè)試兩個(gè)部分。
訓(xùn)練的主要目的是利用訓(xùn)練數(shù)據(jù)集進(jìn)行檢測(cè)網(wǎng)絡(luò)的參數(shù)學(xué)習(xí),訓(xùn)練數(shù)據(jù)集包含大量的視覺(jué)圖像及標(biāo)注信息(物體位置及類(lèi)別)。
訓(xùn)練階段的主要過(guò)程包括數(shù)據(jù)預(yù)處理、檢測(cè)網(wǎng)絡(luò)、以及標(biāo)簽匹配與損失計(jì)算等部分。
測(cè)試階段主要利用得到的訓(xùn)練模型對(duì)輸入圖像進(jìn)行預(yù)測(cè),經(jīng)過(guò)后處理得到檢測(cè)結(jié)果。
(Ⅰ)訓(xùn)練過(guò)程
(Ⅱ)測(cè)試過(guò)程
(Ⅱ)測(cè)試過(guò)程
目標(biāo)檢測(cè)得到的是各個(gè)類(lèi)別的名稱(chēng)與矩形框位置信息,在網(wǎng)絡(luò)中通常用數(shù)字代替類(lèi)別,比如用0代表Dog,1代表Cat,物體的位置信息通常用矩形邊界框(Bounding Box)來(lái)表示。以邊界框的四個(gè)點(diǎn)確定目標(biāo)的位置信息。
非極大值抑制
(Non-Maximum-Suppression,NMS)
模型預(yù)測(cè)階段,我們給圖像生成多個(gè)錨框,并分別預(yù)測(cè)類(lèi)別與位置偏移量,但是會(huì)生成很多冗余的沒(méi)有完全包含目標(biāo)的預(yù)測(cè)框,也可能一個(gè)目標(biāo)輸出多個(gè)相似的預(yù)測(cè)框,因此,我們需要NMS操作得到跟真實(shí)目標(biāo)最匹配的目標(biāo)框。
先通過(guò)對(duì)預(yù)測(cè)框之間進(jìn)行IOU(交并比)比較,通過(guò)設(shè)置閾值除去一些重疊較多的預(yù)測(cè)框,最終得到每個(gè)類(lèi)別最高得分單個(gè)預(yù)測(cè)框。
如圖所示為交并比定義和NMS處理前后的目標(biāo)檢測(cè)輸出目標(biāo)框的示意圖。
2)Anchor-free
anchor-free類(lèi)算法代表是CornerNet、ExtremeNet、CenterNet、FCOS等。
Anchor-Free的目標(biāo)檢測(cè)算法有兩種方式:
(1)基于多關(guān)鍵點(diǎn)聯(lián)合表達(dá)的方法
(2)基于單中心點(diǎn)預(yù)測(cè)的方法
基于多關(guān)鍵點(diǎn)聯(lián)合方法,是通過(guò)定位目標(biāo)物體的幾個(gè)關(guān)鍵點(diǎn)來(lái)限定它的搜索空間。例如 Grid R-CNN算法基于RPN找到候選區(qū)域,對(duì)每個(gè)ROI區(qū)域提取特征圖。
將特征圖傳到全卷積網(wǎng)絡(luò)層里面輸出概率的熱度圖,用于定位與目標(biāo)對(duì)齊的邊界框的網(wǎng)格點(diǎn),利用網(wǎng)格點(diǎn)進(jìn)行特征圖融合,最終確定目標(biāo)的邊界框。
而基于單中心點(diǎn)預(yù)測(cè)的方法,是通過(guò)目標(biāo)物體的中心點(diǎn)來(lái)定位,然后預(yù)測(cè)中心到邊界的距離。例如CenterNet將目標(biāo)當(dāng)成一個(gè)點(diǎn)來(lái)檢測(cè),即用目標(biāo)box的中心點(diǎn)來(lái)表示這個(gè)目標(biāo),預(yù)測(cè)目標(biāo)的中心點(diǎn)偏移量(offset),寬高(size)來(lái)得到物體實(shí)際box,而heatmap則是表示分類(lèi)信息。
每一個(gè)類(lèi)別都有一張heatmap,每一張heatmap上,若某個(gè)坐標(biāo)處有物體目標(biāo)的中心點(diǎn),即在該坐標(biāo)處產(chǎn)生一個(gè)keypoint(用高斯圓表示),如下圖所示:
由上可見(jiàn),anchor-base和anchor-free的最主要區(qū)別在于定義正負(fù)樣本和回歸的方式。在anchor-free中,物體落到哪個(gè)網(wǎng)格,哪個(gè)網(wǎng)格就是正樣本,其余都是負(fù)樣本。anchor-base則計(jì)算每個(gè)anchor預(yù)選框和實(shí)際框的IOU,超過(guò)多少閾值就算正樣本。
在回歸部分中,anchor-free是基于point做回歸的,而anchor-base是基于anchor box和ground truth之間的偏移做回歸的。
這也導(dǎo)致了發(fā)展了融合anchor-based和anchor-free分支的方法,如FSAF、SFace、GA-RPN等。
三、目標(biāo)檢測(cè)在車(chē)載中的應(yīng)用場(chǎng)景
目標(biāo)檢測(cè)應(yīng)用在我們生活的方方面面,隨著自動(dòng)駕駛領(lǐng)域的快速發(fā)展,目標(biāo)檢測(cè)算法在此領(lǐng)域也得到了極大的應(yīng)用。
其中應(yīng)用場(chǎng)景包括道路行人與車(chē)輛檢測(cè)、駕駛員疲勞監(jiān)測(cè)中的人臉檢測(cè)、智能座艙內(nèi)遺留物檢測(cè)、乘員位置檢測(cè)等。
1.艙外行人與車(chē)輛檢測(cè)
對(duì)道路上來(lái)往的行人與車(chē)輛進(jìn)行檢測(cè),實(shí)時(shí)觀察道路的運(yùn)行狀況。
2.艙內(nèi)駕駛員人臉檢測(cè)
檢測(cè)駕駛員人臉框的位置,作為為實(shí)時(shí)監(jiān)測(cè)駕駛員的狀態(tài)的基礎(chǔ)。
3.艙內(nèi)后排遺留物檢測(cè)
檢測(cè)下車(chē)后座艙內(nèi)遺留的的物品,方便提醒駕駛員注意停車(chē)后座艙安全。
-
圖像處理
+關(guān)注
關(guān)注
27文章
1300瀏覽量
56894 -
人工智能
+關(guān)注
關(guān)注
1796文章
47683瀏覽量
240302 -
智能駕駛
+關(guān)注
關(guān)注
3文章
2590瀏覽量
48920 -
目標(biāo)檢測(cè)
+關(guān)注
關(guān)注
0文章
211瀏覽量
15664 -
計(jì)算機(jī)視覺(jué)
+關(guān)注
關(guān)注
8文章
1700瀏覽量
46130
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論