袁慧敏,張緒紅
(廣東技術師范大學 自動化學院,廣東 廣州 510000)
當今社會,圖像處理已成為廣泛的探索領域,主要包含以下幾個方面:圖像的數字化處理、圖像的標準變換、圖像的效果增強、恢復、分割、特征的識別等等[1]。本文主要討論圖像識別的相關內容,圖像識別是指計算機視覺、自然語言處理以及AI的三大熱點方向。目標檢測和識別就是物體的檢測識別。首先,檢測是視覺感知的第一步,它可以在圖像中搜索出某一目標,而目標識別可以理解為是圖像的分類,用來確定在圖像塊中找到目標的具體類別。
計算機視覺的一個重要任務是目標檢測,主要用于在數字圖像中檢測特定類別的視覺,判斷圖像中有沒有來自給定類別(如植物,動物,交通工具等等)的對象實例,目標檢測是復雜或高級視覺任務的基礎,如圖像分割、目標跟蹤、事件檢測和活動識別[2]。廣泛應用于物體表面的缺陷檢測、人臉檢測、行人檢測等領域。當今時代,深度學習技術的發展漸漸成為主流,人們廣泛關注于基于卷積神經網絡的目標檢測算法,出現了很多結構簡單,運行效率高的網絡模型,使得這些算法能得到大規模應用,然而對于目標檢測的難點,國內外的研究者們提出了很多解決方案并做了大量嘗試。比如,Itti等人構建了選擇性注意機制來提取圖像中的顯著區域[3];Viola和Jones等提出級聯檢測器框架并成功應用于人臉檢測[4];Navneet 等人則提出Hog和SVM結合使用的思想,Hog被用來進行圖像特征提取,線性SVM被用作分類器,從而實現行人檢測[5,6];Felzenszwalb等人提出一種基于部件的檢測方法DPM,對目標的形變具有很強的魯棒性[7-9]。不過在經歷了許多年的研究發展之后,最先進的目標檢測系統已與多種不同的技術組合在了一起,例如多尺度檢測,上下文啟動,邊界框回歸等[7]。
本文第二節對目標檢測流程進行了介紹,第三節主要針對目標檢測算法的種類及其結構進行介紹,最后一節提出了對算法的展望。
目標檢測主要涵蓋了兩個主要部分,目標位置確定和目標分類任務,它使用圖像處理方法,機器學習和其他多方向知識從圖像中定位感興趣對象[10],其中待檢測區域候選框的特征提取和候選區域的特征識別是檢測過程中的難點,目標檢測流程的具體思路如圖1所示,大致分為三個主要步驟,分別是圖像的區域選擇、圖像的特征提取和圖像分類,接著就是對圖像進行邊框回歸,對獲得的結果進行優化,最后完成目標檢測。首先,對圖像中可能的目標位置提議,提出一些可能包含目標的候選區域,然后使用適當的元素模型來獲取元素的表示,最后一步是使用形如支持向量機一樣的圖像分類器來判斷特定的目標類型有沒有包含再每個區域當中,并通過一些后處理操作,例如NMS,邊界位置回歸等[11]進行完善。

圖1 目標檢測的基本流程
一般認為,目標檢測的發展歷程大致經歷了兩個關鍵的時期,我們把這兩個時期稱之為是基于傳統方法的目標檢測時期和基于深度學習的目標檢測時期[12],圖2向我們展示了目標檢測算法的分類。

圖2 目標檢測算法種類
本小節中我們主要討論的是與深度學習相關的目標檢測算法,主要分為兩類,一階段和兩階段。前者首先通過算法生成一系列候選框作為樣本,然后通過卷積神經網絡對樣本進行分類,比如R-CNN算法、Fast R-CNN算法、Faster R-CNN算法等。后者則省去了生成候選幀的步驟,直接將目標幀的定位問題轉化為回歸問題進行下一步的處理。
R-CNN算法是Ross等人在2014年提出的基于區域的卷積神經網絡方法,已成為基于區域提議的典型識別方案,全名是Region-cnn,它的偉大之處在于它是第一個將深度學習方法應用于目標檢測中的算法[14]。以前,大多數傳統的目標檢測方法都是基于圖像識別,通常是通過在圖像上使用一一列舉的方式來選擇對象所有可能的區域范圍,并且可以通過使用圖像識別方法來提取和分類這些區域框的特征,在獲得所有成功分類的區域后,通過非極大值抑制(NMS)輸出結果。

圖4 Fast R-CNN結構
快速R-CNN的網絡結構如圖4所示,它的輸入主要由兩部分組成,首先將想要處理的圖像送入到卷積神經網絡當中;其次是形成一組建議區域,我們把這組區域稱之為候選區域。

圖3 R-CNN結構
R-CNN[15]背后的思想很簡單,依然參考了傳統的目標檢測算法的思想,先進行候選區域的提取,提取完成之后再對每個候選框提取顯著的特征,再進行分類以及后續處理等等。具體如圖3所示,在提取特征這一步,算法通過選擇性搜索方法[18]提取一組對象候選框,大約生成兩千個候選區域,然后每個提議被重新調整為一個特定大小的圖像,再送到一個在ImageNet上訓練的卷積網絡模型中以提取特征。這里所講的卷積網絡模型架構我們有兩個可選方案,第一是選擇經典的Alexnet網絡[16];第二選擇VGG16網絡[17],VGG網絡模型具有卷積核小、跨度小且網絡精度高的優點,不足是計算量太大。可以根據需要進行選取,選好網絡模型后使用線性支持向量機分類器預測每個區域內對象的存在并識別對象類別。
Fast R-CNN的提出者Girshick由于受到R-CNN和SPPNet的啟發,在2015年提出了Fast R-CNN 目標檢測算法,首次實現了端到端(end-to-end)訓練,該算法采用了很多的創新技術來同時提高訓練和測試速度以及檢測精度,與R-CNN相比,經過非常深入的Fast R-CNN訓練的VGG16網絡使得存儲空間也大大減少,而且相對于R-CNN運行的速度也有較快提升,因此被稱為Fast R-CNN,也即快速R-CNN。該算法要處理的第一步是要獲取卷積特征圖,但是因為提取出的候選區域數量較多,系統必須要對其篩選出感興趣的區域(ROI)。RoI池化層是空間金字塔池化層(SSP)的特殊情況,它可以從特征圖的映射當中提取一個固定長度的特征向量。這些固定長度的特征向量都會被輸送到全連接(FC)層序列中,這個全連接層在同一層被分成兩個輸出層,其中一個輸出層的作用是進行圖像的分類,對目標關于K個對象類(包括全部“背景”類)輸出每一個感興趣區域(ROI)的概率分布,也就是產生softmax概率估計,分類的損失函數如(1):

另一個輸出層是為K個對象中的每一個類別輸出4個實數的值(bbox回歸),說你是函數如式(3):

每四個值編碼每一個K類的精確邊界框位置,整個網絡結構的端到端訓練是利用多任務損失來進行的[18]。
2015年,Kaiming He, Ross Girshick等人提出了著名的Faster R-CNN算法,這種方法至今仍是精確度最高的算法之一,它相比于以前眾多算法的一個創新點就是該算法利用了一個小型的區域提議網絡(RPN,Region Proposal Network)取代了之前傳統的選擇性搜索算法(SS)[19,20],這個新的提議網絡大量減少了提議框的數量,從而提高了圖像的處理速度。更快 R-CNN算法的總體結構大致由兩個模塊所組成,第1個模塊是構建出區域的深度全卷積網絡,第2個模塊是利用該區域的快速R-CNN檢測器。更快的R-CNN是第一個端到端的,也是第一個接近實時的深度學習檢測器。具體的結構如圖5所示:

圖5 Faster R-CNN結構圖
首先,先將自己要測試的目標圖像進行輸入,輸入到一個卷積神經網絡當中目的是想要提取圖像的各種特征,之后利用小型的區域提議網絡RPN來產生許多個錨盒,對這些錨盒進行篩選之后再使用Softmax分類器來對它們進行分類判斷是屬于前景還是屬于后景,我們可以把這稱為是一個兩分類的問題,與此同時另一條分支是通過邊界框回歸來修正錨盒,再把建議窗口映射到卷積網絡的最后一層特征圖上,通過感興趣區域池化層生成固定尺寸的特征圖,最后再利用Softmax Loss(探測分類概率)和Smooth L1 Loss(探測邊框回歸)對分類概率和邊框回歸進行聯合訓練[21]。
SSD算法是Single Shot MultiBox Detector的縮寫,中文名是單點多盒檢測器,是Szegedy等人在2016年提出。該算法將邊界框的輸出空間離散化為默認框,這些默認框在每個特征圖的位置上具有不同的大小和高寬比。在預測期間,該網絡為每個默認框產生該框屬于每種物體類別的分數,同時調整邊界框使得它更能匹配物體的形狀。另外,為了自然地處理大小不同的目標,該網絡把多層不同分辨率的特征圖都結合在一起。
SSD算法是一個基于深度卷積神經網絡的檢測器,無需重采樣像素或者假設框的特征,跟那些需要這些步驟的方法達到了同樣的精度。這使得該網絡在速度上有很大的提升,而且有很高的檢測準確率。
圖6是SSD算法的網絡結構,該方法基于一個前向卷積網絡,產生一個固定大小的邊界框集合和在這些邊界框里各目標類別出現的分數,隨后采用一個非極大值抑制步驟產生最后的檢測結果。基礎網絡使用了VGG16的網絡結構,然后通過對基礎網絡的改進,增加了幾個不同大小的卷積層來進行不同尺度特征圖的提取,在提取不同特征圖的方法上主要通過下采樣的方式進行尺寸的變化[22]。所謂的預測網絡還包括prior box層的提取過程,也等同于R-CNN中的錨盒。提取過程以特征圖的每個單位點為中心,通過等比法求出其在原始圖像中的位置,并以該點為中心提取各種邊界框,每一個prior box都會分別預測相應的類別概率和坐標值。每個特征圖中的點都會對應不同的prior box。
通過以上介紹,我們了解了不同算法的網絡結構,下面針對這幾種算法的運算速度、訓練精度、不足等進行一個比較,具體內容如表1所示。

圖6 SSD結構

表1 算法比較

Faster R-CNN計算量較大,速度較慢1、PASCAL VOC 2007測試集上實現了 69.9% 的 mAP;2、PASCAL VOC 2012測試集上實現了67%的mAP。1、實現端到端的目標檢測框架;2、 采 用RPN網絡加快了建議框的生成速度。無法達到實時檢測目標的效果,獲取區域提議,再對每個提議進行分類的計算量還是比較大。SSD運行速度快,訓練的精度超過Faster R-CNN 1、PASCAL VOC 2007的SSD300中07測試集上實現了68%的mAP;2、PASCAL VOC 2012的SSD300中07++12測試集上實 現 了72.4%的mAP。消除了提議生成和隨后的像素或特征重采樣階段,并將所有計算封裝在一個單一的網絡中。1、需人工設置默認值的初始尺度和長寬比的值;2、網絡中每一層 特征使用的默認值大小和形狀都不一樣。
本文系統的闡述了近這幾年來目標檢測領域的研究進展,隨著強大計算設備的不斷升級,基于深度學習的目標檢測技術得到了迅速發展,是目前目標檢測領域的一項里程碑。目標檢測至今仍然是計算機視覺領域中人們感興趣的話題,雖然單級和二級的目標檢測算法都取得了令人滿意的效果,但是每個算法還是各有所長,很難有一個算法既可以實現精度的要求又能滿足速度的加快,也就是說每個算法之間都是互補的,各有利弊。其次,對于是否廣泛的應用于真實場景下還有一段距離,目前技術來看實時性還不夠強,所以目標檢測這一基本任務仍然是非常具有挑戰性的課題,有很大的發展空間。