「只需看兩次」——對衛星圖像進行快速目標識別的新方法
來源:arXiv
編譯:Bing
編者按:CV中的目標物體識別進步非常快,但是想對衛星圖像進行目標識別仍然困難重重。美國研究者就提出了一種方法——You Only Look Twice,能清晰地看到衛星圖像中的汽車、飛機場上的飛機及建築物,並開放了代碼(見文末)。以下是論智帶來的編譯。
在大範圍圖像中對小目標進行檢測是衛星圖像分析的主要問題。雖然深度學習方法為基於地面的目標檢測提供了許多方法,將這種技術轉化為圖片是非常重要的步驟。其中最大的挑戰就是所有像素的數量和每張圖片的地理內容:一張DigitalGlobe(美國的一家商業空間圖像和地理空間內容提供商,並操控數台遙感航天器)衛星圖片涵蓋了64m2以上的土地,有超過2.5億個像素。另一個挑戰是,我們想要觀察的對象物體非常小(經常在10像素左右),這對傳統的計算機視覺技術來說是一項很複雜的任務。為了解決這個問題,我們提出了一個流程,即「You Only Look Twice」(只需看兩眼),它能以每秒大於0.5平方米的速度對衛星圖像進行評估掃描,可以快速地在不同範圍內對目標物體進行檢測,同時只需較少的訓練數據。我們在圖片的原始解析度下對圖片進行評估,同時生成的車輛定位F1分數大於0.8。之後我們又系統地測試了降低解析度和目標物體尺寸後的效果,最後得出當尺寸降至5像素時,系統的識別率仍然很高。
遇到的挑戰
深度學習方法在傳統目標檢測上的應用是非常重要的。而衛星圖像的特殊性使能夠解決空間前景內容、能進行旋轉變換以及大範圍搜索的演算法成為必要的。除了安裝細節,演算法還必須滿足以下四個條件:
小空間範圍(small spatial extent):與ImageNet數據集中的清晰大圖不同,衛星圖像中的目標物體通常很小,並且分布較密集。在衛星成像領域,解析度通常被定義為「地面採樣距離(GSD)」,它描述了一個像素的實際距離。商業用途的圖像尺寸在DigitalGlobe的30厘米GSD到衛星成像的3—4米GSD左右。這意味著,即使在最高的解析度下,汽車之類的小目標也只有15像素左右大小。
完全的旋轉不變性(rotation invariance):從空中看到的物體可能會有各種朝向。比如,船行進的方向可能有許多中,但是像ImageNet中的大樹卻總是垂直的。
訓練樣本頻率(training example frequency):訓練數據相對不足。
極高解析度(ultra high resolution):輸入的圖像非常大,常常有百萬像素。所以簡單地對輸入圖像尺寸進行下採樣不合適。
DigitalGlobe在巴拿馬運河附近拍攝的8×8km(約16000×16000像素)的圖像,GSD為50cm。紅框表示416×416像素大小的區域
You Only Look Twice
為了解決模型無法檢測像素過小的目標、難以生成全新比例的圖像等限制,我們提出了一種經過優化的為衛星圖像目標檢測框架:You Only Look Twice(YOLT)。我們擴展了Darknet神經網路框架,同時更新了一些C函數庫一共地理空間圖像分析,並且整合了外部Python庫。我們選擇Python用戶社群來進行預處理和後處理。在更新完C代碼和進行預處理和後處理之間,參與者無需對C有深入了解。
網路結構
為了減少模型的粗糙度同時增強檢測密集物體時的精確度,我們所使用的是一個具有22層的網路,並且以16為係數進行降採樣。所以輸入一張416×416像素的圖片會生成一個26×26的網格。該網路受30層的YOLO啟發,經過優化後專為檢測小型密集對象。密集網格對散布型場景(如機場)可能不太重要,但是對高密度場景(如停車場)非常重要。
空中成像的目標物體檢測對標準網路架構的挑戰。兩張圖片來自統一數據集。左圖中的模型將4000×4000像素的測試圖像降採樣到416×416,圖中共有1142輛車,沒有一輛被識別出來。右圖中的模型同樣是416×416,漏報率過多是由於車輛密度太大,13×13的網格無法將它們分辨出來
為了提高模型識別小物體的準確度,我們還加入了一個穿透層,與最後的52×52圖層連接起來成為最後的卷積層,可以讓探測器獲得擴展後的特徵向量更細微的特徵。
測試過程
在測試時,我們將不同尺寸的測試圖片分割成可操作的小圖,並將每個小圖在訓練過的模型上進行實驗。如下圖所示:
測試過程是從左圖移動到右圖,重疊部分在右下圖中用紅色表示。重疊部分的非極大抑制對於改善小圖邊緣的目標檢測是非常有必要的
許多衛星成像的性能都依賴於其內部拍攝全局大圖的能力。所以,小型圖像晶元遠不如由衛星平台自己拍攝的大型圖像。物體檢測的最後一步就是將成百上千張測試晶元連接到最後的圖像層中。
目標檢測結果
最初,我們想只訓練一個分類器,讓其能夠辨認交通工具、基礎設施等許多種類的物體。但是結果並不理想,在對機場的識別中,我們發現這樣的結果:
這一通用模型產生了較差的結果。檢測到的飛機被紅框圈起來,可以看到還有幾架被遺漏。另外藍框內是被模型誤解的「跑道」
要解決這一問題,我們試著利用衛星成像中的規模信息,運行兩個不同的分類器:一個用於識別交通工具和建築,另一個用來檢查機場。第一種分類器的尺寸為200m,第二種為2500m。我們將測試照片分成合適尺寸的小圖,然後將每張小圖輸入到分類器中。最終將多個分類器的結果結合成最後一張圖像,我們發現檢測率在0.3和0.4之間的生成的F1分數最高。以下是目標檢測器在各個類別下的表現:
可以看到,YOLT在機場、飛機和船幾個類別中表現得很好
細節表現分析
接著,我們在COWC數據集上測試了YOLT對汽車的檢測結果,下圖是在每個場景中模型的F1分數以及對汽車數量計算的精確度:
上面的圖示COWC中每個測試場景的F1分數,下面的圖是將檢測次數作為標準數值的一部分
不同解析度下的目標檢測。左圖的GSD為15cm,F1分數為0.94。右圖的GSD為90cm,F1分數為0.84
結語
目標檢測演算法在定位類似ImageNet數據集中的圖片上取得了巨大進步,但是這類演算法通常不適合用於衛星圖片中的目標檢測。為了解決這一限制,我們提出了一種完全卷積的神經網路模型(YOLT),它能快速定位衛星圖片中的汽車、建築和機場。最終的F1分數從0.6到0.9不等,取決於不同的檢測種類。代碼目前已在GitHub上開放,地址:github.com/CosmiQ/yolt


※演算法是新的醫藥:人工智慧醫療的風口
※神經語言模型的多尺度分析
TAG:論智 |