写真一枚から緯度経度を取り出す——GeoCLIPという静かな衝撃

GeoCLIPが写真一枚から緯度経度を推定する仕組みを示した、東京スカイツリーとGIS・衛星画像を組み合わせた解説イメージ AIの応用
EXIF情報がなくても、画像AIが写真の視覚特徴から位置を推定する時代へ。GeoCLIPとGIS・リモセンの接続を示すキャッチイメージ。

EXIFがなければ、写真の位置はわからない。

長年そう思っていた。GPSタグが入っていなければ、場所の情報は写真の中には存在しない、と。

ところが2023年、その前提を静かに覆すモデルが公開されていた。

GeoCLIPという。


GeoCLIPとは何か

GeoCLIPは、フロリダ大学のVicente Vivancoらが2023年のNeurIPS(神経情報処理システム国際会議)で発表した、画像から緯度経度を推定するモデルだ。

CLIPという、OpenAIが開発した「画像とテキストを同じベクトル空間に射影するモデル」をベースに、画像とGPS座標のペアで対照学習を行っている。

学習データは、世界中で撮影された470万枚の写真とその位置情報。

その結果、モデルは画像の視覚的特徴から場所を推定できるようになった。


実際に動かしてみた

インストールは一行だ。

pip install geoclip

コードも数行で済む。

python

import sys
from geoclip import GeoCLIP
from geoclip.model.image_encoder import ImageEncoder

def patched_forward(self, x):
    vision_out = self.CLIP.vision_model(x)
    x = vision_out.pooler_output
    x = self.CLIP.visual_projection(x)
    x = self.mlp(x)
    return x

ImageEncoder.forward = patched_forward

model = GeoCLIP()
path = sys.argv[1] if len(sys.argv) > 1 else "image.png"
top_gps, top_prob = model.predict(path, top_k=5)

for i in range(5):
    lat, lon = top_gps[i]
    prob = top_prob[i]
    print(f"#{i+1} 緯度: {lat:.6f}, 経度: {lon:.6f}  確率: {prob:.4f}")
    print(f"     https://maps.google.com/?q={lat},{lon}")

※ transformers 5.x との互換パッチを含む。

試しに、東京スカイツリーの空撮写真を入力した。

結果は以下のとおりだ。

#1 緯度: 35.712166, 経度: 139.811996  確率: 0.0306
#2 緯度: 35.710037, 経度: 139.810699  確率: 0.0293

スカイツリーの実際の座標は、緯度35.7101・経度139.8107。

EXIFなし、テキスト入力なし、空撮写真一枚で、誤差10メートル以内に収まった。


なぜこんなことができるのか

GeoCLIPは、画像を512次元のベクトルに変換する。

そのベクトルが、GPS座標のベクトルと近ければ近いほど「この画像はその場所で撮られた」と判断する。

470万ペアの学習を経た結果、モデルの内部には「東京スカイツリーの周辺はこういう視覚特徴を持つ」という情報が、明示的なルールではなく、ベクトル空間の構造として焼き付いている。

人間でいえば、35年間現場を歩いて蓄積した「この風景は○○に違いない」という直感に近い。

ただし、人間の直感と違うのは、数値として出力されるという点だ。


精度の限界と現実的な使い方

驚異的な結果を出す一方で、明確な限界もある。

浜松のアクトタワーで試したところ、緯度はほぼ正解(誤差200メートル以内)だったが、経度が約200キロ西の大阪に飛んだ。

理由は単純だ。

「高層ビルが立ち並ぶ日本の都市」という視覚特徴は、大阪も浜松も共通している。学習データに浜松の写真が少なければ、よく似た都市として大阪を選ぶ。

GeoCLIPは「世界のどこか」を当てるモデルだ。世界的なランドマークや、地域固有の景観が写っている写真では高精度を発揮する。しかし、どこにでもある住宅街や地方都市の一般的な建物では、国・地域レベルの推定にとどまる。

向いている用途向いていない用途
世界的ランドマークの特定地方都市の一般的な建物
「どの国で撮られたか」の判定「どの市区町村か」の特定
地域特有の景観・植生の識別室内写真・接写

GIS・リモセンとの接続

GeoCLIPに続いて、衛星・航空画像に特化したGeoRSCLIPというモデルも公開されている。

こちらはLandsat・Sentinelなどの衛星画像を直接入力できる。「スギ壮齢林」「ヒノキ若齢林」「荒廃農地」などのテキストで衛星画像を検索することが理論上可能だ。

現在のNDVI差分解析は数値で変化を捉えるが、GeoRSCLIPを組み合わせれば「その画像が何を写しているか」をテキストで説明できるようになる。

J-Creditの検証レポートに「数値+画像の意味解釈」をセットで出せるなら、第三者検証としての説得力は大きく変わる。


「写真は削除しても残る」という話

以前、「削除しても遅い——写真は数値になって残り続ける」という記事を書いた。

CLIPによって、写真はアップロードされた瞬間にベクトルへ変換される。そのベクトルには、EXIFがなくても場所の情報が含まれうる。

GeoCLIPはその具体的な実例だ。

EXIFを消せばプライバシーは守られる——という前提は、GeoCLIPのようなモデルの前では成立しない。

軍事・安全保障の現場がこの技術に注目しているのは、想像に難くない。


おわりに

pip install geoclipの一行で、写真から緯度経度を取り出せる時代になった。

精度に限界はある。使いどころを選ぶ必要がある。しかしそれは、すべての道具に言えることだ。

重要なのは、こういう技術が「論文の世界の話」ではなく、今日のWindowsのコマンドプロンプトで動くという事実だ。

GISと画像AIの境界は、もうほとんど残っていない。


#GeoCLIP #CLIP #画像AI #GIS #リモセン #衛星画像 #位置推定 #G空間 #AIの応用

コメント

タイトルとURLをコピーしました