官术网_书友最值得收藏!

第2章 復雜場景下小目標檢測與識別的相關技術

2.1 傳統場景下常規目標檢測與識別

本章首先梳理了傳統場景下常規目標檢測與識別的相關技術,該部分相關技術由檢測與識別基本模塊及其主流框架組成。然后從信息增強、上下文信息兩個方面,針對復雜場景下小目標檢測與識別研究展開討論。

2.1.1 檢測與識別的基本模塊

基于CNNs的檢測識別算法由區域推薦模塊、邊框分類和回歸模塊組成。

1.區域推薦模塊

區域推薦模塊在目標檢測與識別中發揮著非常重要的作用。該模塊將物體存在的潛在區域以一組矩形邊界框的形式輸出,隨后對這組物體潛在區域進行分類或回歸。

本節將區域推薦方法分為經典圖像處理方法、基于錨點的監督學習方法和基于關鍵點的方法。

1)經典圖像處理方法

經典圖像處理方法嘗試根據低級視覺線索,在圖像中生成物體存在的潛在區域。這些方法歸納為3個步驟:①計算候選框得分;②合并原始圖像中的超像素;③生成多個前景和背景區域。

基于物體打分思路預測每個候選框可能包含一個物體的概率。Arbelaez等人根據視覺線索(如顏色對比)、邊緣密度和顯著性計算候選框的評分。Rahtu等人引入了更有效的級聯學習方法對候選方案的客觀性得分進行排名。

超像素合并的思路嘗試合并分割所產生的超像素塊。選擇性搜索[45]是一種基于合并超像素的區域推薦算法,該方法以顏色和區域為線索根據[82]的分割結果進行合并,將邊界框放置在合并的區域上。與前面方法的區別是學習合并功能的權重。由于選擇性搜索方法的效率高,目前該方法已經廣泛應用于檢測框架中,并且與其他傳統方法相比,具有召回率高的優勢。

種子分割算法從多個種子區域開始,對每個種子都會生成前景和背景區域。為了避免建立分層分段所帶來的巨額計算量,CPMC[84]產生了一組由不同種子初始化的重疊片段。每個候選區域都被看作一個二分類問題,即前景或背景。Enreds和Hoiem結合了選擇性搜索[45]和CPMC[84],從超像素分割算法開始,然后合并區域用作種子,來產生更大的區域,類似CPMC。但是,生產高質量的分割算法非常耗時,不適用于大規模數據集。傳統計算機視覺的主要優勢是方法原理簡單,可以生成具有較高召回率的推薦區域,如在中等規模的數據集上,如PascalVOC。但是,上述方法主要基于低級視覺提示,如顏色或邊緣,這些方法不能與整個檢測模塊共同優化,因此,無法利用大規模數據集的功能來改善表示學習。

2)基于錨點的監督學習方法

基于錨點的監督學習方法根據預先定義的內容生成推薦的錨點。Ren等人提出的區域推薦網絡(Region Proposal Network,RPN)使用3×3卷積核將該網絡滑過了整個特征圖,以監督學習的方式在深度卷積特征圖上生成潛在區域。該方法考慮了錨點尺寸和縱橫比,對于特征圖的每個位置均設置k個錨點。這類不同的錨點尺寸和縱橫比,可以匹配圖像中不同尺寸的目標。根據真值標簽(Ground Truth,GT),將物體位置與最合適的錨點匹配作為監督信號。每個錨點均提取256維特征向量,并將其送入兩個同級分支分類模塊和回歸模塊。分類模塊用于評價物體類別得分,回歸模塊輸出4個實數值作為物體所在位置估計。根據GT,預測每個錨點是目標還是背景。單發多盒檢測器(Single Shot Multi-Box Detector,SSD)[42]也采用了類似RPN的錨點匹配的思路,SSD為每個錨定分配了潛在區域的分類概率,并在下個階段首先評估潛在區域是前景還是背景。盡管基于錨點的監督學習方法取得了令人滿意的檢測與識別性能,但錨點的參數是通過啟發式方式手動設計的,具有多個比例和長寬比,不同的數據集需要不同的錨點設計思路,因此,這些設計可能并不是最佳的選擇。Zhang等人提出了一種基于SSD的單次縮放不變面部檢測器,該檢測器根據不同特征圖的有效感受野[88],設計了不同的錨定規則用來匹配不同的目標。朱等人介紹了一種通過擴大輸入圖像尺寸并減小錨距來匹配小物體的錨設計方法。Ghodrati等人開發了Deep Proposals,該方法預測了有關低分辨率深層特征的目標潛在區域,然后將上述候選區域投影至高分辨率淺層特征圖中,并在其中進行進一步完善。Redmon等人通過學習先驗來設計錨先驗使用k均值聚類的訓練數據。后來,張等人引入了單發細化神經網絡(ingle-Shot Refinement Neural Network,RefineDet),RefineDet首先根據原始的手工設計錨點和這類錨點通過學習的偏移量進行細化;然后學習一組新的本地化偏移量,進一步精煉錨點,這種級聯的優化框架極大地提高了錨點質量和最終的預測精度。蔡等人提出的Cascade-RCNN采用了與RefineDet類似的思想改進錨點的級聯的方式。

3)基于關鍵點的方法

基于關鍵點的方法分為基于角點的方法和基于中心的方法。

Denet以概率的方式重新提出了目標檢測問題,建模了分布角類型的對象(左上、右上、左下、右下),并在對象的每個角上應用樸素貝葉斯分類器以估計邊界框的置信度得分。這種基于角點的方法不僅消除了錨定問題,而且還更有效地生成了高質推薦區域。后來基于Denet的方法,Law和Deng提出了CornerNet,該方法直接對角上的分類信息進行建模。CornerNet建模的左上角信息的右上角和右下角具有新穎的特征嵌入方法和角池層,可正確匹配屬于同一對象的關鍵點,從而獲得最新的結果公開基準。

對于基于中心的方法,在每個位置上預測物體中心位置,并物體的高度和寬度直接回歸,無須任何錨點先驗。朱等人提出了一個無須功能選擇錨(FSAF)的框架,插入具有FPN結構的一級檢測器。與FSAF類似,Zhou等人提出了一個基于單個沙漏網絡的基于中心的新框架,其沒有FPN結構。此外,他們應用了基于中心的方法解決更高層次的問題,如3D檢測和人體姿勢識別,并全部獲得了最新技術成果。段等人提出了CenterNet,該方法結合了基于中心的方法和基于角點的方法的思想,與基準方法相比,CenterNet取得了顯著進步。

總之,區域推薦技術通過減少潛在候選區域的搜索空間,縮短了檢測算法的處理時間,對于保證算法的快速性至關重要。

2.邊框分類和回歸模塊

在基于滑動窗口的物體檢測框架中,算法的本質是對圖像子區域進行逐一分類。圖像分類是計算機視覺的根本任務之一,在圖像分類的相關研究中幾乎涵蓋了所有適用于分類的機器學習算法。由于背景的干擾和小目標區域特征提取困難,直接使用神經網絡分類器對復雜場景下的小目標進行分類是不可行的。

對于目標潛在區域,除了可以進行分類操作,還可對區域的范圍進行細微的調整。當檢測框離物體邊框較近時,可以采用邊框回歸算法對檢測框進行微調。在當前的物體檢測框架中,邊框回歸已經成為默認使用的組件文獻[18,23,63,64]。在邊框回歸中,本部分使用回歸方法調整檢測框的位置,包括大小和長寬比。

式中,(x,y),w,h分別為檢測框方向的中心、寬度和長度;xt,xs分別對應目標框和初始框;(tx,ty,tw,th)是作為回歸目標的四維向量。在訓練階段,算法以檢測框內子圖像為輸入,以(tx,ty,tw,th)為回歸目標訓練回歸器,如回歸樹、支持向量回歸、神經網絡等。在測試階段,回歸器根據輸入圖像內容,取得輸出;輸出經過反參數化,對檢測框進行微調。

目標檢測結果有兩種形式,分別為對象檢測(矩形框)和實例分割(像素級)。對象檢測已得到一定的研究,是傳統的檢測設置,目標是通過矩形邊界框定位對象。在對象檢測算法中,僅需矩形框注,在評估過程中,需要預測邊界框與標準之間的交并比(Intersection over Union,IoU),計算GT預測區域的覆蓋程度。不同于對象檢測結果,實例分割是一種新型的結果輸出形式,檢測結果輸出的并不是粗糙的矩形,實例分割需要對邊界框中每個像素進行精確分類。由于像素級的預測更加精確,因此,實例分割對空間未對準更加敏感,對空間信息的處理有更高的要求。實例分割的評估指標除了在掩碼預測上執行IoU計算,其他功能幾乎與bbox級檢測相同。

2.1.2 檢測和識別的框架

基于CNNs的物體檢測器分為雙階段檢測器和單階段檢測器兩大類。雙階段檢測器首先生成一組稀疏分布的目標潛在區域,然后通過深度CNNs 對目標潛在區域的特征向量進行編碼,最后進行對象類別預測。單階段檢測器沒有單獨的候選區域生成階段,它們通常會考慮將整幅圖像作為潛在對象,并嘗試將每個區域分類為背景或目標類型。雙階段檢測器在許多公共數據集上可達到最前沿的檢測性能,然而它們通常不具備較高的處理速度。雖然,單階段檢測器面向實時目標檢測器的應用,但與雙階段檢測器相比,其性能相對較差。

1.雙階段檢測器

雙階段檢測器將檢測任務分為區域推薦和候選區域預測兩個階段。在區域推薦階段,檢測器試圖尋找圖像中所有可能包含物體的區域。在候選區域預測階段,使用類別標簽信息作為模型監督信息,訓練基于CNN的深度學習模型并對候選區域進行分類,該區域可以是背景,也可以是預定義的類標之一。接下來,回顧一些極具影響力的兩級檢測器。

Girshick等人提出了RCNN,該檢測器是開創性的雙階段目標檢測器。2014年,Felzenszwalb等人提出了基于傳統檢測框架的SegDPM檢測器。當時,在VOCImageNet數據集上,state-of-the-art方法的mAP為40.4%,而RCNN顯著地提高了檢測結果,其mAP為53.7%。RCNN的檢測過程分為候選區域生成、特征提取和候選區域分類3個部分。對于每幅圖像,RCNN首先會生成一組稀疏候選區域(約2000個區域),用于剔除容易被識別成背景的區域。然后,裁剪每個推薦區域并將其調節為固定大小,之后編碼為固定維度的(如4096維)特征向量。緊接著,將該特征向量送入SVM,進行特征分類。最后,使用提取的特征作為輸入來回歸邊界框,以便推薦區域的邊界框緊緊地綁住物體。與傳統手工的特征描述符相比,深度神經網絡生成分層特征并捕獲不同層中的不同比例信息后再分類。基于遷移學習理論,RCNN在ImageNet上,預先訓練卷積網絡的權重,再重新初始化一個完全連接的層用于最終的檢測任務,微調預訓練模型。實驗結果顯示,將Imagenet數據集的知識遷移至新的任務,可顯著提高檢測識別性能。

受空間金字塔匹配思想[46]的啟發,文獻[47]提出了SPP網絡,它能夠提高RCNN網絡的處理速度并提高特征的區分能力。SPPNet采用區域推薦網絡產生候選目標,并將這些候選區域輸入到CNN模型中,使用深度卷積神經網絡計算圖像的特征圖,并提取固定長度的特征向量。SPPNet將特征圖劃分為N×N的網格,用于獲取N個值(允許獲取不同位置的信息),并在網格的每個特征元素上執行合并操作,從而給出固定長度的特征向量。給每個N×N的特征向量連接網格中的全連層,以給出該區域的特征表示,提取的特征被反饋到SVM分類器和邊界框回歸器中。與RCNN相比,SPP層可以處理各種縱橫比例的圖像,但不調整它們的大小。因此,該網絡不會受信息丟失和幾何失真的影響。

盡管在檢測器的學習策略方面取得了不小的進展,但區域推薦階段仍然依賴于傳統方法,如SelectiveSearch[45]或EdgeBox[48],這類方法統一基于低級視覺,無法以數據驅動的方式進行學習。為了解決該問題,文獻[34]提出了Faster RCNN的檢測網絡,該網絡設計了新型區域推薦網絡——Region Proposal Networ(RPN),RPN可以通過下列方式學習有監督的學習方法。RPN是一個完全卷積的網絡,它可以輸入任意大小的圖像,并在特征圖的每個位置上生成一組候選區域。該網絡使用N×N的滑動窗口在特征圖上滑動,并為每個位置生成特征向量。然后,將特征向量饋入兩個同級輸出分支,即對象分類層(根據對象分類層是否對提案進行分類確定其是否為對象)和邊界框回歸圖層,再將上述結果輸入到實際對象的最后一層,進行分類和邊界框的回歸。RPN可以插入至FastRCNN中,整個框架可以將大量訓練數據按照端到端的方式對整個檢測網絡進行訓練。RPN支持以數據驅動的方式生成候選區域,還能提升深層骨干網絡的區分能力。提速后的RCNN能夠在GPU上達到5FPS的預測速度,并在許多公開基準數據集上,獲得了最前沿的檢測和識別結果,如PascalVOC2007、PascalVOC2012和MSCOCO。當前,有大量基于Faster RCNN的變體檢測器用于不同的計算機視覺任務[39,49-51]。

快速的RCNN特征算子計算輸入圖像的特征圖,并在特征圖上計算推薦區域的特征,在不同區域之間采用共享計算的方式進行特征提取。然而,這種計算共享在區域分類階段沒有共享,每個特征向量依然需要經過一個全連接層區分開。由于每幅圖像可能有成百上千的候選區域,因此,計算量可能非常大。深度網絡會減少候選區域的空間信息,所以簡單地去除全連接層會導致檢測性能急劇下降。戴等人提出了基于區域的全卷積共享計算網絡(RFCN),用于區域推薦過程。RFCN生成了位置敏感打分圖,該打分圖將不同類別的相對位置信息進行編碼,使用位置敏感的ROI合并層(PSROI池化),通過編碼目標區域的每個相對位置來提取空間感知區域特征。

在DCNN特征表示中,深層特征在語義上很強,但是在空間信息上表示能力較弱,而淺層特征在語義上較弱但空間信息上較強。Lin等人基于該屬性提出了將深層特征與淺層特征相結合的特征金字塔網絡(FPN)特征圖,用于檢測不同比例的目標。本部分的想法是利用深層的語義信息增強淺層特征的表達能力。FPN在檢測多尺度物體方面取得了重大進展,并已廣泛用于許多其他領域,如視頻檢測[53-54]和人體姿勢識別[55-56]等。

大多數實例分割算法均是物體檢測算法的改進變形。早期方法[57-59]通常生成的細分類的候選區域,然后通過RCNN快速進行細粒度分類。后來,戴等人提出了一種稱為MNC的多階段學習算法,該算法將整個檢測框架分為多個階段,并預測邊界框的候選區域,隨后由區域分類器對其進行分類。上述早期工作以多種方式執行bbox和mask預測。為了提高算法整個過程的靈活程度,He等人提出了MaskRCNN,可預測物體的邊界框和并行細分模板?;贛askRCNN,Huang等人提出了一個具有高質量區域得分的感知框架,名為Mask Scoring RCNN,預測模板的質量并校準模板之間對于未對準置信度的分數。

2.單階段檢測器

雙階段檢測算法由區域推薦和候選區域預測兩個階段組成。與雙階段檢測算法不同,單階段檢測算法沒有用于區域推薦的單獨階段。雙階段檢測算法通常將圖像上的所有位置視為可能出現的候選區域,并嘗試將每個推薦的區域分類為背景或目標對象。

早期較為成功的基于深度學習的單階段檢測算法由Sermanet等人提出。分類網絡輸出網格在輸入的每個區域上進行預測,從而指示對象是否存在。識別目標之后,通過學習回歸器優化物體邊界框的位置。為了檢測多尺度目標,將輸入圖像調整為多個尺度后再送入網絡進行檢測。

后來,Redmon等人開發了一種稱為YOLO的實時檢測器。YOLO將目標檢測任務視為回歸問題,在圖像空間上將整個圖像劃分為固定數量的網格單元,如使用7×7網格,每個單元存在一個或多個潛在目標。在最原始的算法實現中,每個單元格被認為包含最多兩個對象。對于每個單元格,做出的預測包括以下信息:該位置是否包含物體,邊框的坐標和大?。▽挾群透叨龋约皩ο蟮念悇e。整個框架是一個單一的網絡,它省略了候選區域的推薦過程,該步驟優化了端到端的方式。基于精心設計的輕量級架構,YOLO可以做到預測速度45幀/秒,使用更簡化的特征提取網絡速度達到155幀/秒。但是,YOLO還面臨一些挑戰:①它只能檢測到在給定位置的兩個物體,很難檢測小物體和擁擠的物體[40];②僅最后一個使用特征圖進行預測,不適用于以多種比例和縱橫比預測對象。

主站蜘蛛池模板: 田东县| 延寿县| 綦江县| 彩票| 大兴区| 平顶山市| 苍梧县| 满洲里市| 云和县| 荥经县| 天长市| 错那县| 兴义市| 乌拉特中旗| 江达县| 治多县| 额济纳旗| 乃东县| 翁源县| 萨嘎县| 买车| 舟曲县| 嘉荫县| 保山市| 金昌市| 崇仁县| 陈巴尔虎旗| 兴业县| 青阳县| 乌苏市| 汉源县| 阜阳市| 广平县| 合阳县| 左贡县| 平邑县| 翁源县| 绥化市| 禄丰县| 德清县| 宁明县|