AI看圖猜位置,準確率超90%!史丹佛最新PIGEON模型:40%預測誤差不到25公里
【導讀】在社群媒體上發照片要謹慎了,AI工具一眼就能識破你的位置!
隨手在網路上發布的一張照片,能揭露多少資訊?
外國的一位部落客@rainbolt就長年接受這種「照片遊戲」的挑戰,網友提供照片,他來猜測照片的具體拍攝地,有些照片甚至還能猜到具體的航班細節。
是不是細思極恐?
但「照片挑戰」也同樣撫慰了許多人心中的遺憾,例如拿著一張父親年輕時拍的照片,卻不知道在哪裡,借助rainbolt和廣大網友的力量,最終完成了心願。
我花了6個月和300多個小時試圖找到一位粉絲父親生前照片的位置,但沒有結果,我放棄了;在發佈到youtube上的一小時後,我們找到了。
光是想想,就能知道「從照片猜位置」這個過程的艱辛和難度,其中涉及到大量的地理、歷史專業知識,從路標、交通方向、樹木種類、基礎設施等蛛絲馬跡中不斷找到真相。
在電腦領域,這項任務也被稱為影像地理定位(image geolocalization),目前大多數方法仍然是基於手動特徵和檢索的方法,沒有使用Transformer等深度學習架構。
最近史丹佛大學的研究團隊合作開發了一款AI工具PIGEON,將語意地理單元創建(semantic geocell creation)與標籤平滑(label smoothing)結合,對街景圖像進行CLIP視覺轉換器的預訓練,並使用ProtoNets在候選地理單元集上細化位置預測。
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個百分點。
從技術上來說,該工作的最重要的結果之一就是證明了預訓練的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進行平均來計算。
為了計算原型embedding,使用與geocell預測任務相同的模型,但刪除預測header並凍結所有權重。
在推理過程中,首先計算並平均新位置的嵌入,採用平均圖像嵌入與給定geocell內的所有原型之間的歐幾里德距離,選擇具有最小歐幾里德圖像嵌入距離的原型位置作為最終的地理定位預測。
實驗結果
性能最好的PIGEON模型實現了91.96%的國家準確率(基於政治邊界),40.36%的猜測都在距離正確位置25公里以內,中位數公里誤差為44.35公里,GeoGuessr平均得分為4525分。(新智元)
在增強資料集上的多任務模型的結果顯示,模型可以從街景影像中推斷出地理、人口和地質特徵。
參考資料:
https://the-decoder.com/this-ai-knows-where-you-took-which-photo
https://www.researchgate.net/publication/372313510_PIGEON_Predicting_Image_Geolocations