龔曉蓉 白 玉
(1.山西省測繪地理信息院,山西 太原 030001;2.河南省測繪地理信息技術(shù)中心,河南 鄭州 450003)
伴隨著現(xiàn)代計算機科學技術(shù)的發(fā)展,云計算、大數(shù)據(jù)潮流的到來,對各類影像(衛(wèi)星影像、航攝影像、照片等)的自動化處理需求也日趨旺盛,識別影像中各類目標成為AI算法、圖像處理、神經(jīng)網(wǎng)絡(luò)等領(lǐng)域中較為熱點的問題。
針對自動化、無人工干預的目標檢測問題,傳統(tǒng)的主流方法不需要預先訓練,直接對每一幀視頻圖像處理得到運動目標的前景輪廓,類似于一種前景提取的方法,只能得到運動目標大致的區(qū)域輪廓,不能獲取目標的屬性信息。這類方法雖然實現(xiàn)起來較為簡單,但容易出現(xiàn)漏檢現(xiàn)象,且檢測結(jié)果的好壞易受環(huán)境變化的影響。隨著技術(shù)的不斷進步,涌現(xiàn)了許多優(yōu)質(zhì)的目標檢測方法,利用卷積神經(jīng)網(wǎng)絡(luò)可以自主地對目標進行學習,不需要過多的人工干預。
目前效果最好、應(yīng)用最廣泛的目標檢測方法可分為兩類:第一類是基于區(qū)域建議的方法,如,R-CNN等,這類方法在目標檢測的精度指標上有著優(yōu)越的表現(xiàn),但檢測速度相對較慢;另一類是基于回歸學習的方法,如,SSD、YOLO、YOLO v2和YOLO v3等,這是一種端到端的學習方式,有高效的檢測速度,具備較好的實時性。
本文以較易獲取的城市交通場景車輛數(shù)據(jù)照片為例,總結(jié)了基于區(qū)域建議和基于回歸學習的檢測方法的優(yōu)勢及使用情況,并引入不同的目標檢測算法模型,通過相關(guān)實驗對比各自的優(yōu)缺點。
基于區(qū)域建議的方法將整個檢測與任務(wù)劃分多個區(qū)域,通過分類訓練,形成數(shù)據(jù)分析樣本,是現(xiàn)階段最成熟、應(yīng)用最廣泛的目標檢測與識別算法,通過強大的自主學習能力和對復雜數(shù)據(jù)分類的優(yōu)越性來提升檢測精度。其中比較著名的是R-CNN、Fast R-CNN和Faster R-CNN三種方法。
R-CNN首先利用選擇性搜索方法獲得若干個候選區(qū),通過卷積神經(jīng)網(wǎng)絡(luò)對其進行特征提取,然后將不同特征送至SVM分類器,最后通過邊界框回歸算法(Bounding-Box Regression)重新定位目標邊界框并輸出檢測結(jié)果。整個算法的框架(如圖1所示):
圖1 R-CNN模型框架
R-CNN模型中首先要做的就是候選區(qū)提取,在以往的算法中,首先需要在窗口中進行候選區(qū)框選和提取,每一類分類都可能需要產(chǎn)生非常大量的候選區(qū),人工工作量大,可能需要的選取或點擊次數(shù)達到百萬量級。但在R-CNN中,應(yīng)用了先排除后搜索的方法,首先剔除掉與目標區(qū)域無關(guān)的冗余區(qū)域,隨后對其余區(qū)域進行特征提取,判斷剩余區(qū)域是否包含識別目標,這樣能極大地提高算法效率。得到深度特征后利用SVM分類器輸出為每個候選區(qū)的類別,最后根據(jù)邊框回歸定位最后的檢測結(jié)果。
雖然相比于傳統(tǒng)的目標檢測方法,R-CNN取得了巨大的突破,但是它仍然存在運算效率不高、無法做到端對端處理等問題。為了解決這些問題,出現(xiàn)了Fast R-CNN模型,解決了R-CNN的三個問題:(1)目標檢測流程分割為多個步驟,且各個環(huán)節(jié)之間相互孤立,影響了效率;(2)盡管剔除了無目標區(qū)域,但仍然需要人工處理大量候選區(qū)域;(3)區(qū)域訓練速度慢,需要耗費大量時間。
Fast R-CNN仍舊采用選擇性搜索方法生成目標候選區(qū)域,區(qū)別在于引入了感興趣目標區(qū)域的策略,通過卷積神經(jīng)網(wǎng)絡(luò)的特征層與候選區(qū)進行映射,避免了冗余的特征提取操作,最后利用Softmax對提取的特征進行預測學習。Fast RCNN將R-CNN中孤立的特征提取、特征分類、邊框回歸整合到統(tǒng)一的模塊中,提高了整個模型的運行效率。該模型的檢測流程(如圖2所示):
圖2 Fast R-CNN模型框架
Fast R-CNN有兩個平行的輸出層:選擇性搜索和特征提取,可以講已提取的區(qū)域較為自動化地完成圖像局部搜索,將類別判斷和位置精度統(tǒng)一起來,不僅節(jié)省時間,而且不需要過多的磁盤存儲。但是Fast R-CNN本質(zhì)上還是需要大量人工來選取候選區(qū)域,需要識別的區(qū)域仍然很多,在一定程度上影響了算法的效率。
在R-CNN的基礎(chǔ)上,F(xiàn)ast R-CNN雖然克服了冗余特征提取的問題,將特征提取、特征分類和邊框回歸整合了到統(tǒng)一的模塊中,但是,仍然需要人工搜索提取目標區(qū)域,不能借助神經(jīng)網(wǎng)絡(luò)實現(xiàn)自動化,目標候選區(qū)提取就成了影響檢測速度的新問題。為解決這一問題,提出了Faster R-CNN算法,通過區(qū)域生成網(wǎng)絡(luò)(Region Proposal Networks,RPN)來進行目標候選區(qū)的提取。與Fast R-CNN和R-CNN不同的是,F(xiàn)aster R-CNN模型只需要獲取目標和邊界框?qū)?yīng)的類別信息,通過基礎(chǔ)的卷積神經(jīng)網(wǎng)絡(luò)對目標進行特征提取,然后將輸出的特征用區(qū)域生成網(wǎng)絡(luò)進行預測,再用預測到的候選邊框?qū)μ卣鲌D進行ROI(Regions of Interest)池計算和篩選,最后通過全連接層實現(xiàn)目標分類和邊框回歸。整個過程(如圖3所示):
圖3 Faster R-CNN模型框架
Faster R-CNN采用了自動卷積算法和ROI池化操作,通過區(qū)域生成網(wǎng)絡(luò),并用RPN來生成候選區(qū)域,共用一個卷積神經(jīng)網(wǎng)絡(luò)提取的特征,將整個從輸入—卷積計算—特征提取—分類—邊框回歸等算法流程封裝到一個模型當中,迭代化地、大幅度地提升了目標檢測速度。
YOLO(You Only Look Once)模型與上述幾種模型截然不同,它摒棄了區(qū)域建議的特征提取的思想,將目標檢測看成是一種回歸問題,不再選取任何區(qū)域,直接將整幅圖像輸入神經(jīng)網(wǎng)絡(luò),在輸出時判別是否存在目標。檢測流程圖(如圖4所示):
圖4 YOLO模型檢測流程圖
整體檢測流程大致如下:
(1)將整幅圖像等分成個網(wǎng)格;
(2)將整幅圖像輸入深度神經(jīng)網(wǎng)絡(luò),測試判別每一格是否有識別目標的存在,若預測為是,則該網(wǎng)絡(luò)再預測出個檢測邊界框(Detected Bounding Box)和置信度(Confidence);
(3)設(shè)置合理的閾值,做非極大值抑制判斷,從而計算篩選出最適合本次目標識別的結(jié)果。
YOLO算法和傳統(tǒng)方法相比速度較快,整個模型的框架十分簡單,且每次能夠檢測和識別整張圖像的所有目標。但是由于YOLO算法是簡單的回歸算法,識別精度并不會比基于區(qū)域建議的算法更高,并且普適性不強,對小目標的檢測效果不理想。
主流的目標檢測模型通常由區(qū)域建議網(wǎng)絡(luò)和多層特征提取網(wǎng)絡(luò)共同完成對數(shù)據(jù)的抽象學習,能夠獲得較好的訓練效果和測試精度,但模型的層次結(jié)果復雜,計算復雜度較高,實時性較差。因此提出了一種端到端的目標檢測與識別方法SSD(Single Shot MultiBox Detector)。SSD也是一種基于回歸學習的目標檢測模型,使用VGG-16作為基礎(chǔ)網(wǎng)絡(luò),將YOLO與Faster R-CNN機制特點有機結(jié)合,除了在最終特征圖上進行邊框回歸和類別判斷之外,還在前期的若干個特征圖上進行多尺度的預測。SSD利用VGG-16網(wǎng)絡(luò)中不同層級的抽象特征進行回歸學習,通過多尺度學習的方式對目標進行多次判斷,在保證模型收斂速度的同時進一步提高了檢測的精度。模型結(jié)構(gòu)(如圖5所示):
圖5 SSD模型檢測流程圖
SSD算法的核心步驟:
(1)通過VGG-16網(wǎng)絡(luò)對輸入的圖片進行特征提??;
(2)根據(jù)提取到的不同級別的特征,定制不同大小的特征提取盒;
(3)以各個特征提取盒包含的特征信息分別對目標進行若干次判斷和篩選,進行類別預測以及邊框回歸;
(4)利用非極大值抑制篩選最佳的預測結(jié)果。
YOLO v3是YOLO升級的第三代算法,參考SSD和殘差神經(jīng)網(wǎng)絡(luò)的思想,設(shè)計了分類網(wǎng)絡(luò)模型Darknet-53,一共包含53個卷積層,采用多尺度預測的方式提高對小目標物體檢測的精度,同時加入了維度聚類思想,使得檢測速度和精度再次提升,該算法性能基本代表目前業(yè)界的最先進水平。表1、表2表示的是YOLO v3的Darknet-53網(wǎng)絡(luò)與Faster R-CNN、SSD、YOLO v2等網(wǎng)絡(luò)各方面的性能對比。
表1 Darknet-53與Darknet-19、Resnet性能比較
表2 YOLO v3與各主流網(wǎng)絡(luò)檢測精度比較
選取不同類型的深度學習網(wǎng)絡(luò)SSD、Faster R-CNN、YOLO v3,利用公開的目標檢測數(shù)據(jù)集PASCAL VOC和UA-DETRAC進行對比實驗,分別從檢測精度和檢測速度兩個方面進行比較分析。網(wǎng)絡(luò)初始學習率為0.01,最低學習率為0.0001,利用梯度下降法進行參數(shù)更新,整個訓練過程迭代50000次。
選取不同的卷積神經(jīng)網(wǎng)絡(luò)Resnet、Mobilenet、Inception與SSD組 合,Resnet、Inception與Faster R-CNN組 合,Darknet53與YOLO v3組合進行實驗。SSD、Faster R-CNN、YOLO v3的檢測結(jié)果,以矩形包圍框的形式顯示,同時附帶目標檢測的置信度分數(shù),數(shù)值范圍為0~1,數(shù)值越大,說明目標被正確檢測的概率越大。不同樣本的檢測結(jié)果統(tǒng)計(如表3、表4所示):
表3 PASCAL VOC數(shù)據(jù)集檢測結(jié)果
表4 UA-DETRAC數(shù)據(jù)集檢測結(jié)果
比較不同算法的檢測結(jié)果,F(xiàn)aster R-CNN系列算法的檢測精度最高,對于PASCAL VOC和UA-DETRAC數(shù)據(jù)集檢測結(jié)果的精準率都能達到91%以上,召回率達到89%,F(xiàn)1值達到90%,這和Faster R-CNN的核心結(jié)構(gòu)——區(qū)域生成網(wǎng)絡(luò)(RPN)密不可分,結(jié)合特征金字塔和錨(anchor)定位的思想,通過共享一個特征提取的全卷積神經(jīng)網(wǎng)絡(luò),融合各種算法優(yōu)勢封裝至一個模型之中,極大地提高了檢測速度和精度。YOLO v3在檢測精度上也有著令人滿意的表現(xiàn),對比在PASCAL VOC和UA-DETRAC數(shù)據(jù)集上的檢測結(jié)果,精準率、召回率、F1值分別達到90%、88%、89%,通過多標簽分類預測盒跨尺度預測的手段,極大提高了對小目標的檢測的精度。不同的卷積神經(jīng)網(wǎng)絡(luò)框架對SSD算法的精度影響并不是很大,在PASCAL VOC和UA-DETRAC數(shù)據(jù)集上檢測結(jié)果的精準率、召回率、F1值達到88%、86%、87%,SSD對于常規(guī)尺寸目標的檢測精度較好,但是對于小目標的檢測精度較差,遠離相機鏡頭的大部分小目標車輛會檢測不到。因此從精度指標來看,基于區(qū)域建議的Faster R-CNN模型有著更優(yōu)異的表現(xiàn)。
抽取50張圖像,將SSD、Faster R-CNN、YOLO v3三種網(wǎng)絡(luò)模型分別進行測試,將測試結(jié)果統(tǒng)計繪制成點狀圖(如圖6所示):
圖6 三種模型檢測速度對比
根據(jù)統(tǒng)計的結(jié)果圖可知,SSD模型有著最快的檢測速度,特別是配合Mobilenet網(wǎng)絡(luò)使用時,單張圖像的檢測時間在30~60ms;YOLO v3模型比SSD模型檢測速度稍慢,單張圖像的檢測時間在45~85ms,也能達到實時要求,體現(xiàn)了端到端的深度學習檢測模型在效率上的優(yōu)勢;Faster R-CNN的檢測速度稍慢,單張圖像的檢測時間在150~185ms左右,在實際應(yīng)用場合中難以達到實時性的要求。
通過選取不同網(wǎng)絡(luò)模型進行測試實驗,進一步驗證了基于區(qū)域建議的Faster R-CNN系列的檢測網(wǎng)絡(luò)在檢測精度上有著優(yōu)異的表現(xiàn),但在檢測效率上稍遜一籌;而基于回歸學習的SSD、YOLO網(wǎng)絡(luò)有著較高的檢測速度,能夠滿足實時性要求,同時具備不錯的檢測精度。
對,對于不同特征、不同目標復雜程度的影像識別和提取的模型適用性進行了探討,并以城市交通場景的監(jiān)控視頻為例,對不同算法進行了對比實驗。各種算法都有其適用領(lǐng)域,對各種算法的對比結(jié)果能夠應(yīng)用于航天航空影像自動解譯、圖斑自動提取、地熱遙感、高光譜影像分級分層、地面綠化評價等領(lǐng)域算法編譯、程序設(shè)計都有著極為重要的意義和作用。
本文對各類深度學習的目標檢測方法優(yōu)劣性進行了比