楊浩然,張雨晗
(1.福州大學物理與信息工程學院,福建福州,350000;2.福州大學計算機與大數據學院,福建福州,350000)
無人機是信息化時代的新型技術產物,它涉及數據采集、智能控制、信息處理、通信等相關技術。同時具有操作靈活、體積小巧、機動性高等優點,這些特點都有效的豐富了無人機多元化的使用場景[1]。隨著無人機技術的不斷成熟,無人機已經在相關領域被廣泛使用。有別于載人航空設備,無人機要在弱人機交互環境下實現相關任務,就需要擁有場景智能解讀和處理能力,對于場景的理解力的提升必然要基于目標檢測。計算機視覺技術早在20世紀90年代就已經開始應用于無人機領域,早期受限于微處理器較差的運算能力,相關算法雖然有一定的優化但總體上發展緩慢。經過幾十年的發展,目前隨著處理器運算能力的顯著提升,利用計算機視覺相關技術解決無人機應用中的問題顯得更加得心應手。
此類算法的經典代表有R-CNN、Fast R-CNN、Faster R-CNN,從算法的整體結構來看,主要步驟為首先采用啟發式候選區域生成算法生成多個潛在目標區域;然后通過深度神經網絡提取目標候選區的特征;最后利用這些特征進行分類并且同時進行目標真實邊界的回歸。
由Ross Girshick[2]等人提出的R-CNN摒棄了傳統的滑窗式的區域選擇,利用Selective Search算法從檢測圖像中提取多個區域候選框,所有候選框被修正為固定大小,采用了227*227的固定大小,然后使用由5個卷積層和2個全連接層組成的CNN進行特征提取,得到固定長度的特征向量,最后將這些向量輸入到SVM分類器判別輸入類別,同時R-CNN為了保證定位的準確性采用了一種線性回歸的模型對候選框坐標進行精確修正。這種模型使得其準確度在PASCALVOC的數據集上比傳統方法高出20%左右。傳統方法中滑動窗口作為候選區域導致了相近候選區域重復率高,從而導致了冗余計算使得檢測速度慢。R-CNN采用了啟發式的Selective Search,生成區域后再檢測,在一定程度上提高了檢測效率。同時手工提取的方法在實際使用過程中受限于復雜環境導致魯棒性差,R-CNN利用CNN自動提取特征增強了魯棒性。但是R-CNN也存在一些不足,候選區域在生成過程中依然有重疊會導致在卷積過程中對相同的區域進行反復的卷積,這樣也會使得算力冗余;正如上文提到的圖像在輸入CNN中時需要固定尺寸,這就導致圖片會在一定程度上出現畸形,檢測的準確度下降;在訓練測試過程中各個環節都是獨立操作的,在操作過程中的臨時數據需要額外的存儲空間進行保存。
Faster R-CNN的出現誕生了RPN網絡的概念[3],這種方法本質上類似R-CNN算法,但是,我們不再將區域建議提供給CNN,而是直接將輸入圖像提供給CNN生成卷積特征圖。從特征圖中識別出提議的區域并轉化為正方形,通過ROI池化層將大小固定,以便可以將其送到全連接層。與此同時,Fast R-CNN加入了多任務損失函數,即為將邊框回歸直接加入CNN網絡中,將其與分類合并成了一個多線程模型,從而使得多個任務的卷積特性可以共享,降低了R-CNN中多階段分離和存儲量大的缺點。提出了ROI pooling layer池化層,該層位于卷積之后,目的是將大小各有差異的候選區域所對應的特征劃分為大小相同的區域塊。這與SPP-Net做法類似,但卻更加簡潔高效。不難看出,由于不需要每次都向卷積神經網絡中輸入2000個左右的區域建議,故每個圖像只需要進行一次卷積操作生成一個特征圖,這便使得Fast R-CNN檢測效率得到了明顯提高。不論是R-CNN還是Fast R-CNN都基于選擇性搜索來找到區域提議,在整個檢測過程中正是因為選擇性搜索的耗時多,這才影響了整體的系統性能。從整體上看Faster R-CNN實現了全神經網絡共享卷積特征,真正提高了相關運算處理的速度,隨著算法的不斷優化檢測速度已經取得了相當可觀的突破,而且保證了整體處理的精確性和精簡性,但是無人機這種對實時性要求較強的設備來說依然無法滿足其需求。

圖1 區域建議目標檢測算法結構
提高實時檢測性是無人機最重要的需求,在目標檢測領域Redmon[4]等人提出了YOLO算法。YOLO算法不同于傳統的Faster R-CNN的先進行場景識別再進行目標檢測,該算法直接進行目標檢測,舍去了候選區提取的流程。檢測速度明顯得到了提升,在目前已有文獻中YOLO是最快的通用目的的目標檢測器,因此可以用于實時目標檢測的任務。在實際的算法實現中,YOLO會首先將圖片轉化為固定尺寸(一般為448*448),然后將圖片進行網格化分割,分成S*S個網格并分別進行目標檢測,而后輸出Bbox Info和置信區間。雖然YOLO檢測系統可以快速的進行目標檢測,但是其很難精確定位小目標。
綜合來看,得益于回歸方法進行目標檢測,檢測速度明顯加快,實時性也得到了保證。因此,在無人機領域基于目標回歸的目標檢測算法受到了廣泛應用。
目標檢測在不同的使用場景中需要針對不同的情況作出相應的調整和優化。因此針對在無人機應用中出現的實際問題,目前存在一些優化方案。
雖然無人機硬件目前處理速度得到了極大的提高,但檢測速度仍舊是研究的重點方向之一,北京理工大學的算法論文SlimYOLOv3[5]提出了提出了一種對YOLOv3的改進版本,作者對原始模型的卷積層執行通道進行了修剪,在VisDrone2018-Det基準數據集上評估顯示參數尺寸和浮點運算均產生了大幅度的下降,運行速度成功提高了兩倍左右,且檢測精確度和YOLOv3保持相當。
受到航拍過程中目標像素過低且環境復雜因素的影響,目標檢測中的小目標檢測一直都是研究中的難點。對于無人機圖像中復雜背景下噪聲信息過大的問題,Audebert等同過全卷積網絡對檢測目標進行嚴格分割,而后通過連通分量進行目標檢測,從而證明了語義分割和目標檢測的結合可以有效提高目標檢測效率。Li[6]等在此基礎上采用了RPN來對噪聲信息進行抑制。此方法將集成后的新特征點進行空洞空間金字塔池化和卷積得到語義特征后,由RPN得到Region Proposal再根據概率值篩選后經過類似的標記過程被傳入R-CNN子網絡進更加準確的坐標回歸。在小目標檢測方面,為了提高檢測的準確性,2016年Tsung-Yi Lin[7-8]等人提出了FPN算法,通常高層特征語義信息較為豐富而目標位置卻不太準確底層特征語義雖然較少但是目標位置更加準確,作者利用深度卷積網絡固有的多尺度金字塔層次結構來構建具有邊際額外成本的特征金字塔。開發了具有橫向連接的自頂向下架構,用于構建所有尺度的高級語義特征圖。FPN算法將不同特征層獨立進行預測,采用了頂層特征和低層特征做融合。作者在論文中引用了COCO比賽上的具體算法檢測結果,可以清晰看到作者構建的算法在小目標物體檢測上的提升。

圖2 COCO比賽檢測結果
無人機領域目標檢測算法的相關研究目前受到了國內外的高度關注。雖然相關的算法優化已經取得了不錯的效果,但是依然存在優化和改進的空間。從近年來的主要研究方向來看,主要集中在尋求檢測準確度與檢測速度之間的最佳契合點。基于YOLO算法的目標檢測雖然提出的時間不長,但是研究趨勢更加符合無人機的發展。
本文從基于計算機視覺的無人機檢測技術角度出發,概括了目標檢測在無人機中的具體問題,總結概況了目前主流的目標檢測算法和各自算法的聯系,同時結合無人機發展的具體需求,分析了目前對于無人機目標檢測技術主流的改進優化方向。隨著無人機應用需求的進一步提高,目標檢測必然取得更加飛速的發展。