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