AI看圖猜位置,準確率超90%!斯坦福最新PIGEON模型:40%預測誤差不到25公里
隨手在網絡上發布的一張照片,能暴露多少信息?
外國的一位博主@rainbolt就長年接受這種「照片游戲」的挑戰,網友提供照片,他來猜測照片的具體拍攝地,有些照片甚至還能猜到具體的航班細節。
是不是細思極恐?
但「照片挑戰」也同樣撫慰了很多人心中的遺憾,比如拿著一張父親年輕時候拍的照片,卻不知道在哪里,借助rainbolt和廣大網友的力量,最終完成了心愿。
我花費了6個月和300多個小時試圖找到一位粉絲父親生前照片的位置,但沒有結果,我放棄了;在發布到youtube上的一小時后,我們找到了。
光是想想,就能知道「從照片猜位置」這個過程的艱辛和難度,其中涉及到大量的地理、歷史專業知識,從路標、交通方向、樹木種類、基礎設施等蛛絲馬跡中不斷找到真相。
在計算機領域,這一任務也被稱為圖像地理定位(image geolocalization),目前大多數方法仍然是基于手工特征和檢索的方法,沒有使用Transformer等深度學習架構。
最近斯坦福大學的研究團隊合作開發了一款AI工具PIGEON,將語義地理單元創建(semantic geocell creation)與標簽平滑(label smoothing)相結合,對街景圖像進行CLIP視覺轉換器的預訓練,并使用ProtoNets在候選地理單元集上細化位置預測。
論文鏈接:https://arxiv.org/abs/2307.05845
PIGEON在「照片猜國家」的子任務上實現了91.96%的正確率,40.36%的猜測在距離目標25公里以內,這也是過去五年來第一篇沒有軍事背景資助的、最先進的圖像地理定位相關的論文。
GeoGuessr是一個從街景圖像中猜測地理位置的游戲,全球擁有5000萬玩家,前面提到的rainbolt就是該游戲的忠實粉絲,也是公認的最強玩家之一。
而PIGEON模型在GeoGuessr中對人類玩家呈碾壓優勢,在六場比賽中連續擊敗rainbolt,全球排名前0.01%.
PIGEON的進步還啟發了開發人員創建另一個模型PIGEOTTO,使用Flickr和維基百科的400萬張圖像進行訓練,輸入任意圖像而非街景全景圖,就能定位出圖像的位置,功能更加強大。
在此類任務的測試中,PIGEOTTO的性能最佳,將中位偏差降低了20%-50%,在城市粒度上的預測超過了之前的SOTA高達7.7個百分點,在國家粒度上超過了38.8個百分點。
2016 MediaEval數據集的樣本圖像用于訓練PIGEOTTO
從技術上來說,該工作的最重要的結果之一就是證明了預訓練的CLIP模型StreetCLIP域泛化及其對分布變化的魯棒性,能夠以零樣本的方式將StreetCLIP應用于分布外基準數據集IM2GPS和IM2GPS3k,并取得了最先進的結果,擊敗了在400多萬張分布內(in-distributions)圖像上微調的模型。
并且,實驗結果也證明了對比預訓練是一種有效的圖像地理定位元學習技術,在StreetCLIP預訓練中沒見過的國家預測上,準確率比CLIP提高了10個百分點以上。
由于圖像地理定位數據集在地理分布方面差異很大,結果也證明了將StreetCLIP應用于任何地理定位和相關問題的有效性。
由于這項技術目前仍然可以用于不良目的,所以開發人員決定暫時不公布模型權重。
實驗數據集
雖然大多數圖像地理定位方法都依賴于公開的數據集,但目前還沒有公開的、全地球范圍下的街景(Street View)數據集。
所以研究人員決定在原始數據集上創建,主動聯系了Geoguessr的首席技術官Erland Ranvinge,獲得了該游戲中競爭對決模式下使用的100萬個地點的數據集,再隨機采樣10%數據點,對每個數據點下載4張圖片,最終獲得40萬張圖片。
方法架構
1. Geocell Creation(地理單元生成)
先前的研究嘗試過直接對輸入圖像來預測經緯度,但結果證明無法取得sota性能,所以目前的方法大多依賴于生成geocells,把坐標回歸問題離散化,再轉成分類問題,所以geocell的設計至關重要。
這篇論文的一個創新點就是語義地理單元(semantic geocells),可以根據訓練數據集樣本的地理分布自動適應,因為圖像中的視覺特征通常與國家(道路標記)、地區(基礎設施質量)或城市(街道標志)有關;并且國家或行政邊界往往遵循自然邊界,如河流或山脈的流動,這反過來又影響植被類型,土壤顏色等自然特征。
研究人員設計的地理單元有三個級別:國家、admin 1、admin 2,從最細粒度級別(admin 2)開始,算法會逐步合并相鄰的admin 2級別多邊形,其中每個geocell包含至少30個訓練樣本。
2. 標簽平滑(label smoothing)
語義地理單元創建過程來離散化圖像地理定位問題,可以在粒度和預測準確性之間尋求平衡:地理單元的粒度越大,預測就越精確,但由于基數(cardinality)更高,分類問題就會變得更加困難。
為了解決這個問題,研究人員設計了一個損失函數,基于預測的、到正確的地理單元之間的距離進行懲罰,可以更高效地對模型進行訓練。
使用兩點之間Haversine距離的一個優勢是基于地球的球面幾何,能夠精確估計兩點之間的距離。
3. Vision Transformer(CLIP)
研究人員使用預訓練的視覺Transformer,架構為ViT-L/14,然后對預測header進行了微調,并且對最后一個視覺Transformer層進行解凍。
對于具有多個圖像輸入的模型版本,將四個圖像的embedding進行平均;在實驗中,平均embedding比通過多頭注意力或額外的Transformer層組合embedding表現得更好。
基于先驗知識和專業GeoGuessr玩家通常觀察到的策略,圖像定位任務有各種相關特征,例如,植被、道路標記、路標和建筑。
多模態模型對圖像有更深語義理解的embedding,使其能夠學習這些特征,實驗中也證明了,CLIP視覺Transformer比類似的ImageNet視覺Transformer有明顯的進步,并且使用注意力map能夠以可解釋的方式展示模型學習到的策略。
4. StreetCLIP對比預訓練
受CLIP對比預訓練的啟發,研究人員設計了一個對比預訓練任務,在學習geocell預測頭之前,也可以使用它來微調CLIP基礎模型。
使用地理、人口統計和地質輔助數據來增強街景數據集,使用基于規則的系統為每個圖像創建隨機描述,例如:
地點:南非東開普省地區的街景照片
Location: A Street View photo in the region of Eastern Cape in South Africa.
氣候:該地區為溫帶海洋性氣候。
Climate: This location has a temperate oceanic climate.
羅盤方向:這張照片是朝北的。
Compass Direction: This photo is facing north.
季節:這張照片是在12月拍攝的。
Season: This photo was taken in December.
交通:在這個位置,人們在道路的左側行駛。
Traffic: In this location, people drive on the left side of the road.
相當于是一個隱式的多任務,可以確保模型保持豐富的數據表示,同時調整街景圖像的分布并學習與地理位置相關的功能。
5. 多任務學習
研究人員還嘗試通過為輔助氣候變量、人口密度、海拔和一年中的月份(季節)創建特定于任務的預測header來明確多任務設置。
6. ProtoNet Refinement
為了進一步完善模型在geocell內的猜測并提高街道和城市級別的性能,研究人員使用ProtoNets執行geocell內的細化,將每個單元的單元內細化作為一個單獨的few shot分類任務。
再次使用OPTICS聚類算法,其中minsample參數為3,xi參數為0.15來聚類geocell內的所有點,從而提出在cell內分類設置中學習的類別。
每個聚類由至少三個訓練樣本組成,形成一個原型,其表征通過對原型中所有圖像的embedding進行平均來計算。
大洛杉磯都市區的可視化ProtoNet集群
為了計算原型embedding,使用與geocell預測任務相同的模型,但刪除預測header并凍結所有權重。
在推理過程中,首先計算并平均新位置的嵌入,采用平均圖像嵌入與給定geocell內的所有原型之間的歐幾里得距離,選擇具有最小歐幾里得圖像嵌入距離的原型位置作為最終的地理定位預測。
實驗結果
性能最好的PIGEON模型實現了91.96%的國家準確率(基于政治邊界),40.36%的猜測都在距離正確位置25公里以內,中位公里誤差為44.35公里,GeoGuessr平均得分為4525分。
在增強數據集上的多任務模型的結果顯示,模型可以從街景圖像中推斷出地理、人口和地質特征。