
Local-first geolocation engine that identifies precise GPS coordinates of street-level photos using CosPlace, ALIKED, and LightGlue computer vision models. Sub-50m accuracy, no landmarks needed.
オープンソースのストリートレベル位置特定エンジン
任意のストリート写真をアップロードすれば、正確なGPS座標を取得できます。
精度50m未満。ランドマーク不要。完全にあなたのハードウェア上で動作します。
Netryxは、あらゆるストリートレベルの写真の正確なGPS座標を特定するローカルファーストの位置特定ツールです。逆画像検索(アップロードされたウェブ画像と照合する)とは異なり、Netryxは体系的にクロールされたストリートビューパノラマと照合します。つまり、インターネット上の存在がゼロのランダムな街角でも機能します。
コアパイプラインは、3つの最先端コンピュータビジョンモデルを組み合わせています。
Google Lensはインターネットを検索します。Netryxは物理世界を検索します。
| ユースケース | リンク |
|---|---|
| ミサイル攻撃の位置特定 — カタール(2026年2月) | YouTubeで見る |
| 紛争監視 — パリの抗議活動 | YouTubeで見る |
| ランダムな写真からのブラインド位置特定 — パリ | YouTubeで見る |
| 技術的な深掘り:パイプラインの仕組み | YouTubeで見る |
Netryxは3段階のパイプラインを使用し、数百万の候補から徐々に絞り込んで単一の正確な一致を見つけます。Netryxは単なるツールであり、ソースに依存せず、mapilliaryやkartaviewなど任意のプロバイダからの画像を処理できます。
インデックス内のすべてのストリートビューパノラマは、何百万ものジオタグ付き画像で訓練された視覚的位置認識モデルCosPlaceを使用して、512次元の「指紋」に事前処理されています。
クエリ写真をアップロードすると:
このステージはインデックスサイズに関係なく1秒未満で実行されます——単一の行列乗算です。
CosPlaceは「似ている場所」を見つけます。ステージ2では、幾何学的検証を使用してそれらが「同じ場所」であることを証明します。
各候補について:
このステージはハードウェアに応じて300~500の候補を2~5分で処理します。
初期の一致は良好ですが、常に最適とは限りません。精密化により改善します:
困難な画像(夜間、ぼやけ、低テクスチャ)向けに、ウルトラモードでは以下を追加します:
クエリ画像
│
├── CosPlace記述子抽出(512次元指紋)
├── 反転画像記述子抽出
│
▼
インデックス検索(コサイン類似度、半径フィルタリング)
│
├── 視覚的類似度でランク付けされた上位500候補
│
▼
パノラマダウンロード → 3つのFOVで切り抜き → ALIKED/DISKキーポイント抽出
│
├── LightGlueによるクエリキーポイントとのマッチング
├── RANSAC幾何学的検証
│
▼
方位角調整(±45°、3つのFOV、上位15候補)
│
├── 空間的コンセンサスクラスタリング
├── 信頼度スコアリング
│
▼
📍 GPS座標 + 信頼度スコア
GPUサポート:
# Clone the repository
git clone https://github.com/sparkyniner/Netryx-OpenSource-Next-Gen-Street-Level-Geolocation.git
cd .\Netryx-OpenSource-Next-Gen-Street-Level-Geolocation\
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install LightGlue explicitly (required for matching)
pip install git+https://github.com/cvg/LightGlue.git
# Optional: Install kornia for Ultra Mode (LoFTR)
pip install kornia
注:
lightglueはPythonモジュールとしてアプリにインポートされますが、上記のGitHubリポジトリからインストールされます。
AI支援によるブラインド位置特定機能を使用する場合:
export GEMINI_API_KEY="your_key_here"
python test_super.py
macOSユーザー:GUIが空白で表示される場合、tkinterをアップグレードしてください:brew install [email protected](またはあなたのPythonバージョン)。システムPythonにバンドルされているtkinterは、最近のmacOSバージョンで既知のレンダリング問題があります。
検索する前に、エリアをインデックス化する必要があります。これにより、ストリートビューパノラマをクロールし、CosPlace指紋を抽出します。
インデックス作成時間の目安:
インデックスは増分的に保存されます——中断された場合、次回実行時に中断した場所から再開されます。
難しい画像にはウルトラモードチェックボックスを有効にします。これにより、LoFTR高密度マッチング、記述子ホッピング、近傍拡張が追加されます。大幅に遅くなりますが、標準パイプラインでは見逃されるマッチを捕捉します。
すべての埋め込みは単一の統合インデックスに保存されます。検索時、半径フィルターが自動的に結果を指定されたエリアに制限します。つまり:
データフロー:
作成モード:
グリッドポイント → GoogleストリートビューAPI → パノラマ → クロップ → CosPlace → cosplace_parts/*.npz
自動ビルド:
cosplace_parts/*.npz → cosplace_descriptors.npy + metadata.npz(検索可能なインデックス)
検索モード:
クエリ画像 → CosPlace → インデックス検索(半径フィルタリング) → 候補ダウンロード → ALIKED/DISK + LightGlue → 結果
netryx/
├── test_super.py # メインアプリケーション(GUI + インデックス作成 + 検索)
├── cosplace_utils.py # CosPlaceモデルの読み込みと記述子抽出
├── build_index.py # スタンドアロンの高性能インデックスビルダー(大規模データセット用)
├── requirements.txt # Python依存関係
├── cosplace_parts/ # 生の埋め込みチャンク(インデックス作成時に生成)
├── index/ # コンパイルされた検索可能インデックス
│ ├── cosplace_descriptors.npy # すべての512次元記述子
│ └── metadata.npz # 座標、方位角、パノラマID
└── README.md
検索半径が大きくなると精度は低下しますか?
いいえ。CosPlaceはインデックス全体で視覚的類似度に基づいて順位付けます。インデックスが1kmをカバーしていようと50kmをカバーしていようと、上位候補は常に最も視覚的に類似したものです。半径フィルターは、順位付けの前に地理的に関係のないエントリを単に除外します。
検索にはどのくらい時間がかかりますか?
Apple Siliconでは通常2~5分、NVIDIA GPUでは1~3分です。ボトルネックはGoogleからのパノラマタイルのダウンロード(ネットワーク依存)であり、マッチング自体ではありません。
国全体をインデックス化できますか?
現実的ではありません。半径10kmでは約10万のパノラマと約7GBのインデックスが生成されます。国全体ではペタバイトが必要になります。特定の都市や関心地域(5~20km)をインデックス化してください。
検索で候補が0件でした。
検索座標がインデックス化されたエリアと重なっていません。まずそのエリアをインデックス化するか、既存のインデックスデータと重なるように検索中心または半径を調整してください。「カバレッジマップを表示」を使用して、何がインデックス化されているかを可視化できます。
一致が少しずれています(1ブロックずれている)。
ウルトラモードを有効にしてください。近傍拡張により、初期の一致から100m以内のすべてのパノラマが検索され、多くの場合、正確なストリートノードが見つかります。
屋内の写真でも動作しますか?
いいえ。Netryxは屋外のストリートビューパノラマとのみ照合します。屋内写真、航空写真/衛星画像、近接物体写真では意味のある結果は得られません。
お金はかかりますか?
Netryxは無料でオープンソースです。オプションのAI粗探し機能にはGemini APIキーが必要です(Googleから無料ティアあり)。計算コストはあなた自身のハードウェア——クラウドサービスは不要です。
ホスト版はありますか?
はい。netryx.liveではフルパイプラインがクラウド上で動作するため、ローカルで何もセットアップする必要はありません。自分でインデックスを構築せずに素早く結果を得たい場合に便利です。ただし、計算リソースの制約により、オープンソース版よりも約30%精度が低くなります。
netryx.liveは同じエンジンをクラウド上で実行します——写真をアップロードすれば座標を取得できます。インストール不要、インデックス作成不要、GPU不要。ただし、計算リソースの制約により、オープンソース版よりも約30%精度が低くなります。
Sairaj Balaji — AI研究者、PrismXの作成者。Microsoft for StartupsおよびElevenLabsからの助成金。Fast CompanyおよびDeutsche Welleで紹介されました。
MITライセンス。詳細についてはLICENSEを参照してください。
Netryxは、正当なOSINT研究、調査ジャーナリズム、人権監視、災害対応、学術研究のために設計されています。
ユーザーの責任:適用される法律(Googleマップ/ストリートビュー利用規約および現地のプライバシー規制を含む)への準拠を確保する責任はすべてユーザーにあります。
以下の目的では使用しないでください:ストーキング、嫌がらせ、許可のない監視、または個人のプライバシーや安全を侵害するあらゆる活動。
Netryxの開発者は、誤用に対する一切の責任を否認します。
| コンポーネント | 最小 | 推奨 |
|---|
| OS | macOS / Linux / Windows | macOS (M1+) または NVIDIA GPU搭載Linux |
| GPU VRAM | 4GB | 8GB以上 |
| RAM | 8GB | 16GB以上 |
| ストレージ | 10GB | 50GB以上(インデックスエリアのサイズに依存) |
| インターネット | インデックス作成と検索に必要 | ブロードバンド推奨 |
| Python | 3.9+ | 3.10+ |
| 半径 | おおよそのパノラマ数 | 時間(M2 Max) | インデックスサイズ |
|---|
| 0.5 km | ~500 | 30分 | ~60 MB |
| 1 km | ~2,000 | 1~2時間 | ~250 MB |
| 5 km | ~30,000 | 8~12時間 | ~3 GB |
| 10 km | ~100,000 | 24~48時間 | ~7 GB |
| モデル | 目的 | 論文 |
|---|
| CosPlace | 視覚的位置認識(グローバル記述子) | CVPR 2022 |
| ALIKED | 局所特徴抽出(CUDAで使用) | IEEE TIP 2023 |
| DISK | 局所特徴抽出(MPS/CPUで使用) | NeurIPS 2020 |
| LightGlue | 深層特徴マッチング | ICCV 2023 |
| LoFTR | 検出器不要の高密度マッチング(ウルトラモード) | CVPR 2021 |
| 特徴 | CUDA (NVIDIA) | MPS (Mac) | CPU |
|---|
| 特徴抽出器 | ALIKED (1024 kp) | DISK (768 kp) | DISK (768 kp) |
| LightGlueフラッシュアテンション | 有効 | 無効 | 無効 |
| LoFTR(ウルトラモード) | フル速度 | 一部の演算でCPUフォールバック | フルCPU |
| インデックス作成速度 | 最速 | 良好 | 低速 |