龔曉蓉 白 玉
(1.山西省測繪地理信息院,山西 太原 030001;2.河南省測繪地理信息技術中心,河南 鄭州 450003)
伴隨著現代計算機科學技術的發展,云計算、大數據潮流的到來,對各類影像(衛星影像、航攝影像、照片等)的自動化處理需求也日趨旺盛,識別影像中各類目標成為AI算法、圖像處理、神經網絡等領域中較為熱點的問題。
針對自動化、無人工干預的目標檢測問題,傳統的主流方法不需要預先訓練,直接對每一幀視頻圖像處理得到運動目標的前景輪廓,類似于一種前景提取的方法,只能得到運動目標大致的區域輪廓,不能獲取目標的屬性信息。這類方法雖然實現起來較為簡單,但容易出現漏檢現象,且檢測結果的好壞易受環境變化的影響。隨著技術的不斷進步,涌現了許多優質的目標檢測方法,利用卷積神經網絡可以自主地對目標進行學習,不需要過多的人工干預。
目前效果最好、應用最廣泛的目標檢測方法可分為兩類:第一類是基于區域建議的方法,如,R-CNN等,這類方法在目標檢測的精度指標上有著優越的表現,但檢測速度相對較慢;另一類是基于回歸學習的方法,如,SSD、YOLO、YOLO v2和YOLO v3等,這是一種端到端的學習方式,有高效的檢測速度,具備較好的實時性。
本文以較易獲取的城市交通場景車輛數據照片為例,總結了基于區域建議和基于回歸學習的檢測方法的優勢及使用情況,并引入不同的目標檢測算法模型,通過相關實驗對比各自的優缺點。
基于區域建議的方法將整個檢測與任務劃分多個區域,通過分類訓練,形成數據分析樣本,是現階段最成熟、應用最廣泛的目標檢測與識別算法,通過強大的自主學習能力和對復雜數據分類的優越性來提升檢測精度。其中比較著名的是R-CNN、Fast R-CNN和Faster R-CNN三種方法。
R-CNN首先利用選擇性搜索方法獲得若干個候選區,通過卷積神經網絡對其進行特征提取,然后將不同特征送至SVM分類器,最后通過邊界框回歸算法(Bounding-Box Regression)重新定位目標邊界框并輸出檢測結果。整個算法的框架(如圖1所示):

圖1 R-CNN模型框架
R-CNN模型中首先要做的就是候選區提取,在以往的算法中,首先需要在窗口中進行候選區框選和提取,每一類分類都可能需要產生非常大量的候選區,人工工作量大,可能需要的選取或點擊次數達到百萬量級。但在R-CNN中,應用了先排除后搜索的方法,首先剔除掉與目標區域無關的冗余區域,隨后對其余區域進行特征提取,判斷剩余區域是否包含識別目標,這樣能極大地提高算法效率。得到深度特征后利用SVM分類器輸出為每個候選區的類別,最后根據邊框回歸定位最后的檢測結果。
雖然相比于傳統的目標檢測方法,R-CNN取得了巨大的突破,但是它仍然存在運算效率不高、無法做到端對端處理等問題。為了解決這些問題,出現了Fast R-CNN模型,解決了R-CNN的三個問題:(1)目標檢測流程分割為多個步驟,且各個環節之間相互孤立,影響了效率;(2)盡管剔除了無目標區域,但仍然需要人工處理大量候選區域;(3)區域訓練速度慢,需要耗費大量時間。
Fast R-CNN仍舊采用選擇性搜索方法生成目標候選區域,區別在于引入了感興趣目標區域的策略,通過卷積神經網絡的特征層與候選區進行映射,避免了冗余的特征提取操作,最后利用Softmax對提取的特征進行預測學習。Fast RCNN將R-CNN中孤立的特征提取、特征分類、邊框回歸整合到統一的模塊中,提高了整個模型的運行效率。該模型的檢測流程(如圖2所示):

圖2 Fast R-CNN模型框架
Fast R-CNN有兩個平行的輸出層:選擇性搜索和特征提取,可以講已提取的區域較為自動化地完成圖像局部搜索,將類別判斷和位置精度統一起來,不僅節省時間,而且不需要過多的磁盤存儲。但是Fast R-CNN本質上還是需要大量人工來選取候選區域,需要識別的區域仍然很多,在一定程度上影響了算法的效率。
在R-CNN的基礎上,Fast R-CNN雖然克服了冗余特征提取的問題,將特征提取、特征分類和邊框回歸整合了到統一的模塊中,但是,仍然需要人工搜索提取目標區域,不能借助神經網絡實現自動化,目標候選區提取就成了影響檢測速度的新問題。為解決這一問題,提出了Faster R-CNN算法,通過區域生成網絡(Region Proposal Networks,RPN)來進行目標候選區的提取。與Fast R-CNN和R-CNN不同的是,Faster R-CNN模型只需要獲取目標和邊界框對應的類別信息,通過基礎的卷積神經網絡對目標進行特征提取,然后將輸出的特征用區域生成網絡進行預測,再用預測到的候選邊框對特征圖進行ROI(Regions of Interest)池計算和篩選,最后通過全連接層實現目標分類和邊框回歸。整個過程(如圖3所示):

圖3 Faster R-CNN模型框架
Faster R-CNN采用了自動卷積算法和ROI池化操作,通過區域生成網絡,并用RPN來生成候選區域,共用一個卷積神經網絡提取的特征,將整個從輸入—卷積計算—特征提取—分類—邊框回歸等算法流程封裝到一個模型當中,迭代化地、大幅度地提升了目標檢測速度。
YOLO(You Only Look Once)模型與上述幾種模型截然不同,它摒棄了區域建議的特征提取的思想,將目標檢測看成是一種回歸問題,不再選取任何區域,直接將整幅圖像輸入神經網絡,在輸出時判別是否存在目標。檢測流程圖(如圖4所示):

圖4 YOLO模型檢測流程圖
整體檢測流程大致如下:
(1)將整幅圖像等分成個網格;
(2)將整幅圖像輸入深度神經網絡,測試判別每一格是否有識別目標的存在,若預測為是,則該網絡再預測出個檢測邊界框(Detected Bounding Box)和置信度(Confidence);
(3)設置合理的閾值,做非極大值抑制判斷,從而計算篩選出最適合本次目標識別的結果。
YOLO算法和傳統方法相比速度較快,整個模型的框架十分簡單,且每次能夠檢測和識別整張圖像的所有目標。但是由于YOLO算法是簡單的回歸算法,識別精度并不會比基于區域建議的算法更高,并且普適性不強,對小目標的檢測效果不理想。
主流的目標檢測模型通常由區域建議網絡和多層特征提取網絡共同完成對數據的抽象學習,能夠獲得較好的訓練效果和測試精度,但模型的層次結果復雜,計算復雜度較高,實時性較差。因此提出了一種端到端的目標檢測與識別方法SSD(Single Shot MultiBox Detector)。SSD也是一種基于回歸學習的目標檢測模型,使用VGG-16作為基礎網絡,將YOLO與Faster R-CNN機制特點有機結合,除了在最終特征圖上進行邊框回歸和類別判斷之外,還在前期的若干個特征圖上進行多尺度的預測。SSD利用VGG-16網絡中不同層級的抽象特征進行回歸學習,通過多尺度學習的方式對目標進行多次判斷,在保證模型收斂速度的同時進一步提高了檢測的精度。模型結構(如圖5所示):

圖5 SSD模型檢測流程圖
SSD算法的核心步驟:
(1)通過VGG-16網絡對輸入的圖片進行特征提取;
(2)根據提取到的不同級別的特征,定制不同大小的特征提取盒;
(3)以各個特征提取盒包含的特征信息分別對目標進行若干次判斷和篩選,進行類別預測以及邊框回歸;
(4)利用非極大值抑制篩選最佳的預測結果。
YOLO v3是YOLO升級的第三代算法,參考SSD和殘差神經網絡的思想,設計了分類網絡模型Darknet-53,一共包含53個卷積層,采用多尺度預測的方式提高對小目標物體檢測的精度,同時加入了維度聚類思想,使得檢測速度和精度再次提升,該算法性能基本代表目前業界的最先進水平。表1、表2表示的是YOLO v3的Darknet-53網絡與Faster R-CNN、SSD、YOLO v2等網絡各方面的性能對比。

表1 Darknet-53與Darknet-19、Resnet性能比較

表2 YOLO v3與各主流網絡檢測精度比較
選取不同類型的深度學習網絡SSD、Faster R-CNN、YOLO v3,利用公開的目標檢測數據集PASCAL VOC和UA-DETRAC進行對比實驗,分別從檢測精度和檢測速度兩個方面進行比較分析。網絡初始學習率為0.01,最低學習率為0.0001,利用梯度下降法進行參數更新,整個訓練過程迭代50000次。
選取不同的卷積神經網絡Resnet、Mobilenet、Inception與SSD組 合,Resnet、Inception與Faster R-CNN組 合,Darknet53與YOLO v3組合進行實驗。SSD、Faster R-CNN、YOLO v3的檢測結果,以矩形包圍框的形式顯示,同時附帶目標檢測的置信度分數,數值范圍為0~1,數值越大,說明目標被正確檢測的概率越大。不同樣本的檢測結果統計(如表3、表4所示):

表3 PASCAL VOC數據集檢測結果

表4 UA-DETRAC數據集檢測結果
比較不同算法的檢測結果,Faster R-CNN系列算法的檢測精度最高,對于PASCAL VOC和UA-DETRAC數據集檢測結果的精準率都能達到91%以上,召回率達到89%,F1值達到90%,這和Faster R-CNN的核心結構——區域生成網絡(RPN)密不可分,結合特征金字塔和錨(anchor)定位的思想,通過共享一個特征提取的全卷積神經網絡,融合各種算法優勢封裝至一個模型之中,極大地提高了檢測速度和精度。YOLO v3在檢測精度上也有著令人滿意的表現,對比在PASCAL VOC和UA-DETRAC數據集上的檢測結果,精準率、召回率、F1值分別達到90%、88%、89%,通過多標簽分類預測盒跨尺度預測的手段,極大提高了對小目標的檢測的精度。不同的卷積神經網絡框架對SSD算法的精度影響并不是很大,在PASCAL VOC和UA-DETRAC數據集上檢測結果的精準率、召回率、F1值達到88%、86%、87%,SSD對于常規尺寸目標的檢測精度較好,但是對于小目標的檢測精度較差,遠離相機鏡頭的大部分小目標車輛會檢測不到。因此從精度指標來看,基于區域建議的Faster R-CNN模型有著更優異的表現。
抽取50張圖像,將SSD、Faster R-CNN、YOLO v3三種網絡模型分別進行測試,將測試結果統計繪制成點狀圖(如圖6所示):

圖6 三種模型檢測速度對比
根據統計的結果圖可知,SSD模型有著最快的檢測速度,特別是配合Mobilenet網絡使用時,單張圖像的檢測時間在30~60ms;YOLO v3模型比SSD模型檢測速度稍慢,單張圖像的檢測時間在45~85ms,也能達到實時要求,體現了端到端的深度學習檢測模型在效率上的優勢;Faster R-CNN的檢測速度稍慢,單張圖像的檢測時間在150~185ms左右,在實際應用場合中難以達到實時性的要求。
通過選取不同網絡模型進行測試實驗,進一步驗證了基于區域建議的Faster R-CNN系列的檢測網絡在檢測精度上有著優異的表現,但在檢測效率上稍遜一籌;而基于回歸學習的SSD、YOLO網絡有著較高的檢測速度,能夠滿足實時性要求,同時具備不錯的檢測精度。
對,對于不同特征、不同目標復雜程度的影像識別和提取的模型適用性進行了探討,并以城市交通場景的監控視頻為例,對不同算法進行了對比實驗。各種算法都有其適用領域,對各種算法的對比結果能夠應用于航天航空影像自動解譯、圖斑自動提取、地熱遙感、高光譜影像分級分層、地面綠化評價等領域算法編譯、程序設計都有著極為重要的意義和作用。
本文對各類深度學習的目標檢測方法優劣性進行了比