劉貴陽,李盛陽,邵雨陽
1(中國科學院大學,北京 100049)
2(中國科學院 太空應用重點實驗室,北京 100094)
3(中國科學院 空間應用工程與技術中心,北京 100094)
隨著我國空間技術的不斷發(fā)展,在視頻衛(wèi)星技術領域取得了長足的進步.在2015年10月,我國第一套自主研發(fā)的商用視頻衛(wèi)星“吉林一號”成功發(fā)射,其光學載荷對地成像的全色分辨率達到0.72米,成為我國首顆米級高清動態(tài)視頻衛(wèi)星.衛(wèi)星獲取的對地凝視數據可對工業(yè)、農業(yè)、交通等領域提供很多的基礎應用[1].針對于衛(wèi)星視頻數據,其中也存在著分辨率較低,畫面抖動,圖像周邊畸變較為嚴重等問題[2].這些問題都對大場景中目標的快速檢測帶來較大的影響.但同時針對視頻相鄰圖像幀之間的信息的互補特征也給算法設計提供了很多新穎的思路.
隨著大數據和云計算的不斷發(fā)展,深度學習技術得到了長足的發(fā)展,視覺領域的機器學習模型不斷挑戰(zhàn)著人類在目標識別和目標檢測領域的能力[3].在目標分類領域,從 AlxeNet[4]、VGG[5]到 InceptionX[6]、ResNet[7],模型的深度不斷加深,但是運算速度不斷加快; 在目標檢測領域,從傳統的滑動窗技術到二階段檢測框架 RCNN[8]、Fast RCNN[9]、Faster RCNN[10]、SPPNet[11]、RPN[12],再到單階段檢測框架YOLO[13]、SSD[14],檢測的準確率和檢測效率也在不斷的提高.但是,深度學習存在需要目標的樣本量巨大,且需要很大的計算量這兩個問題,而在視頻衛(wèi)星數據中缺少大量對于特定目標的標注數據,要想利用深度學習技術解決視頻衛(wèi)星中目標檢測問題問題,目前必須另辟蹊徑.Tianshu Yu和Ruisheng Wang等在2016年使用圖像數據和雷達點云數據,同時輔助使用部分地理信息數據(GIS)通過改進圖匹配技術較好的實現了街景數據中的場景解析[15],雖然可以引入GIS信息進行遙感圖像場景匹配之后在對感興趣區(qū)域進行檢測,但融合GIS數據本身復雜度較高且場景中目標隨機存在,并不能較好的提高檢測效率和準確率.
本文主要使用改進的YOLO[13]模型和內容一致性檢測模型,利用視頻數據中相鄰幀之間內容的相似性降低精確檢測的次數,通過內容一致性判斷確定當前幀是否需要再檢測的思路,在保證檢測精度的前提下,提高了視頻數據的檢測效率.
目前,已有的目標檢測模型分為兩大類: 兩階段檢測網絡Fast RCNN[9]、Faster RCNN[10]和單階段檢測網絡YOLO[13]、SSD[14].兩階段檢測網絡訓練流程復雜,且檢測效率較低,而單階段網絡檢測網絡雖然速度較快但是檢測的準確率略低.本論文主要改進YOLO[13]模型,在保證檢測效率的前提下,提高檢測準確率.
原始的YOLO[13]模型的設計主要是針對自然場景中的目標檢測和識別任務,自然場景中目標一般占據圖像的主體,且目標紋理較清晰,因此模型在設計時卷積核一般選擇成7×7和3×3大小,并且經過不斷的下采樣將最后的卷積特征圖固定為7×7這個尺寸,將原始圖像的尺寸(448×448)在寬和高的方向上同時各自縮小了64倍.在紋理信息豐富的數據集中可以提高計算效率,但是對于分辨率不高且經過壓縮的衛(wèi)星視頻數據來說這會丟失大量目標的重要特征.因此,如何對圖像做分割,如何設計可以增強小目標特征信息的基礎網絡就變得至關重要.
由于衛(wèi)星圖像具有低分辨率、視野廣的特點,圖像中的目標會變的小且很模糊[1].若繼續(xù)按照原始模型的網格劃分,會導致多個目標在相同的網格中,導致模型檢測任務失敗.
對于現有的視頻衛(wèi)星數據,先對圖像中標注的目標的寬和高進行分別統計,判斷目標在尺度上的分布,進而指導圖像網格化策略: (1) 網格劃分的粒度以不能同時包含任意兩個或者多個目標為最佳; (2) 網格劃分的粒度不宜過密,否則會導致全聯接層參數量爆炸,模型難以學習; (3) 多尺度網格劃分時,不同尺度網格之間信息需要互補.
統計目標的寬和高的分布情況,繪制分布散點圖如下圖所示.根據圖中可以得出,目標寬和高的分布近似一致,主體分布在30~60像素,且目標飛機的寬和高的比例近似在1:1.
圖1 羅馬·菲烏米奇諾機場圖像飛機尺寸分布圖
根據以上統計結果分析可以將圖像(512×512)網格化為13×13大小,但是圖像中目標的分布是隨機,當兩個目標按照一定的角度相鄰時,13×13的網格并不能很好的圈住某目標; 當目標恰好被某個網絡恰好分割成1/4時由于YOLO模型的機制不能很順利的檢測到目標,因此根據上述的指導規(guī)則(2),擬采用更小的尺度16×16對目標進行網格化.對于16×16的網格化的特征圖中每個單元的感受野較少,圖像的分辨率僅有0.72米,因此,再設計一層較大感受野的網格層,使其可以較好的和16×16的細網格做檢測的融合,采用9×9網格去分割圖像,該設計也符合規(guī)則(3),將這兩種網格化配合使用可以提高目標檢測的準確率.
圖2 圖像的網格化策略示意圖
YOLO目標檢測模型反復使用卷積操作和最大池化操作將448×448的圖像采樣到7×7的特征圖,這種操作在衛(wèi)星數據中并不能起到好作用,批量的降采樣導致目標的上下文信息損失的很厲害,對于小目標的識別效果并不是很好[16],且在視頻數據中,每一幀圖像都是經過視頻壓縮編碼處理之后,單幀圖像會變得很模糊,更加不利于這種采樣方式.
在2015年,何凱明等人[7]提出殘差網絡模型,不僅可以訓練更深的網絡模型,還將底層卷積特征跨層傳輸到上層,更加有利于目標的分類; 在2016年,清華大學人工智能實驗室提出HyerNet結構[12],證明利用反卷積[17]構造出來的超參卷積層對小目標的檢測有更好的效果; 在2017年,康奈爾大學、清華大學、Facebook人工智能研究院聯合發(fā)表了DenseNet網絡結構[18],不僅有效的解決了梯度消失問題,同時也強化了特征的傳播和特征的重用.
圖3 反卷積操作示意圖
本文采用跨層連接和反卷積操作整合出不同尺度的超參特征立方體,在不同尺度上強化小目標的細節(jié)特征,具體的設計結構如圖4所示.其中網絡的輸入尺寸是512×512,經過卷積層和池化層之后將尺寸變換到16×16,在經過卷積操作和池化操作之后得到4×4的特征圖,之后對該層數據進行反卷積操作得到和C5相同尺寸(9×9)的特征圖DC5,然后通過對這兩層特征做連接后進行反卷積變化得到特征圖DC4,同理得到特征圖DP3.其中符號P的含義是該層特征數據來自池化操作,C的含義是該層特征數據來自卷積操作,D的含義是該層特征數據來自反卷積操作.
圖4 部分反卷積網絡結構示意圖
針對衛(wèi)星視頻數據而言,視頻場景很大,雖然地物場景復雜,但是整體內容的一致性較高,場景中的目標運動相對在地面觀察來說運動較慢[19].利用數據的這一特點,本論文以孿生網絡為主體,設計出內容一致性檢測網絡,跳過部分圖像幀的檢測,提高檢測的效率.
孿生網絡(Siamese Network)是一種相似性度量網絡,核心思想是通過一組變換將輸入數據映射到目標空間,在目標空間使用簡單的距離度量進行相似度比較[20].算法主要關注連續(xù)圖像序列中相鄰的圖像內容的差異,如何定義內容差異程度,如何對序列圖像做標注等這些問題都會直接影響判別的結果.主動拍攝視頻數據大致分為固定鏡頭拍攝和運動鏡頭拍攝.在固定鏡頭拍攝情況下,往往更關注視野中內容的變化,需要對相鄰幀圖像之間做判斷; 在運動鏡頭拍攝情況下,需要同時兼顧視野內場景的變化和場景內目標的變化,這種變化往往來自場景的漸變和突變,這時需要假定出關鍵幀圖像,不斷的跟關鍵幀之間對比差異來判斷內容的一致性.本問題中衛(wèi)星相對所拍攝的區(qū)域做凝視拍攝,可以類比為攝像頭相對目標場景靜止,但是鏡頭本身需要根據軌道衛(wèi)星的狀態(tài)做相對運動,因此也會干擾到成像區(qū)域.
實驗對象是四段時間為30秒的“吉林一號”衛(wèi)星視頻數據[21],視頻中每幀圖像的尺寸為4096×3072,將每一幀圖像按照8×6的比例進行分割,使得每個區(qū)域的尺寸為512×512.針對每段視頻中相同的區(qū)域按照給定的規(guī)則進行標注: 當前幀圖像中的每個目標和前一幀中對應的每個目標之間有位置的重合,則判定這兩幀圖像的內容是一致的,否則內容不一致.圖5中當前幀中有四個標注目標,分別用四個色塊進行表示,圖(b),(c),(d)分別表示下一幀圖像內容,實心色塊表示目標在當前幀的位置,不同顏色的虛線表示圖(a)中相應目標的位置.其中圖(a)與(b)幀中內容標記為一致,圖(a)與(c)、(a)與(d)幀中內容均標記為不一致.
圖5 內容一致判別標注示意圖
具體的網絡結構設計如圖6,其中卷積網絡是共用參數,將兩幀圖像輸入到網絡中,得到相同維度的全連接層輸出的特征,根據標簽信息去學習特征之間的相似性度量.其中,網絡的主體部分的參數是共享的,通過不同的輸入圖像,得到在相同變換空間的特征,再進行分類判別.
圖6 內容一致性判別網絡結構示意圖
具備了對單幀圖像的精細檢測能力,也具備了對于兩幅圖像內容一致性的判斷能力,通過這兩個功能的配合使用,本文設計出整體檢測流程,如圖7.
圖7 檢測系統流程示意圖
系統分為四大部分: 圖像切割和圖像增強、內容一致性判別網絡、局部目標搜索模塊、神經網絡檢測模塊.每幀圖像按照512×512的尺寸進行切割,得到48張小圖像,然后對這些圖像進行增強變換,鏡像、裁減、形變、擴張這些操作按照一定的概率作用在每張圖像上,具體的流程如圖8所示.接著將當前幀圖像和關鍵幀(最近一次使用檢測網絡檢測的圖像)進行內容一致性檢測,根據判斷結果分別進行局部目標搜索和目標檢測網絡.其中局部目標搜索,主要以關鍵幀中目標的位置為核心,按照檢測出目標的尺度在周邊進行查找.
圖8 圖像增強示意圖
本實驗中共有四段標記數據,分別是意大利·菲烏米奇諾機場、印度·英迪拉·甘地國際機場、美國·明尼阿波利斯·圣保羅國際機場、突尼斯·迦太基國際機場.我們使用后三段標注數據進行訓練,使用第一段視頻作為測試,在Ubuntu 16.04的Linux系統,硬件信息為Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40 GHz,NVIDIA GeForce GTX TITAN X GPU,128 GB Memory中進行100輪(所有樣本訓練一次即為一輪)訓練.對于飛機這一目標的檢測的平均準確率是0.912,其中準確率和召回率的結果圖如圖9所示.
圖9 檢測目標的準確率和召回率示意圖
部分實驗結果圖如圖10所示,其中每張圖像中的目標都進行了檢測結果的標注,每個框的左上方標記出該框的置信度大小.紅顏色的框的置信度至少在0.8以上,綠顏色的框的置信度在0.7~0.8,藍顏色的框在0.6~0.7.
圖10 模型檢測結果示意圖
根據2.1中訓練樣本的構造規(guī)則,預先生成相應的成對的訓練樣本,設計了如下算法1.
算法1.一致性判別網絡訓練樣本構造算法1) 先將視頻中的單幀圖像按照512×512的大小進行切割,并記錄切割出來的每個圖像的相對原圖像中的坐標和幀數;2) 在相同的視頻中,隨機抽取一幀作為關鍵幀,找到前后對應的圖像幀序列;3) 記錄出當前幀中某個切割區(qū)域的目標的位置,同時按照目標的寬和高生成目標的合理潛在區(qū)域;4) 將關鍵幀圖像信息和其前后幀圖像中對應的切割區(qū)域目標進行比較,根據2.1節(jié)中的規(guī)則進行標記.
將上述算法生成的訓練樣本在相同配置的服務器中進行訓練,得到了較好的效果.具體分析如下: 對地凝視的衛(wèi)星視頻數據中,場景內容近似一致,通過該模型,可以較好的跳過相近內容的檢測; 且場景中并非所有目標都在運動,很多靜止的目標可以很好的通過大圖像切割和內容一致性檢測策略直接確定相應的位置,提高了整體的檢測效率.
表中的數據的測試環(huán)境和訓練環(huán)境一致(在TITAN X GPU,Tensorflow 1.4.1),測試數據是將視頻數據逐幀提取(每幀大小4096×3072),在內存中做8×6的切割后直接進行模型測試,數據IO時間和大圖像切分時間不在計算之內,但是后處理時間計算在內.通過表中對比可以看出內容判別網絡將系統的整體檢測效率提高了50%左右.
表1 模型效率比較
通過對檢測模型的改進,反卷積網絡可以較好的對增強目標的上下文信息,同時,利用多個網格化的策略,可以較好的彌補對于近鄰目標檢測的準確率.結合內容一致性判別網絡實驗,可以得出,針對場景相對固定,且場景內目標很多,但運動目標一定的情況下,通過該策略可以將局部靜態(tài)信息過濾出去,提高對視頻整體的檢測效率.目前檢測模型的設計僅考慮單幀圖像,對于視頻而言,如何考慮相鄰幀信息,將更多的信息整合到單階段檢測網絡將成為下一步的研究熱點.