Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Netryx-Astra-V2-Geolocation-Tool — 世界で最も洗練されたストリートレベル画像ジオロケーションソフトウェア | Kitploit
ツール/GitHubGitHub/sparkyniner/netryx-astra-v2-geolocation-tool
OSINT (オープンソースインテリジェンス)偵察情報収集CTF機械学習学習と教育厳選リソース
GitHubsparkyniner/netryx-astra-v2-geolocation-tool

Netryx-Astra-V2-Geolocation-Tool

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

世界で最も洗練されたストリートレベル画像ジオロケーションソフトウェア

リポジトリを見る
71178221ヶ月前Kitploit レビュー済み

Image

Netryx Astra V2

一枚の画像から、最先端のAI地理特定。

アイデア • 仕組み • はじめに • コミュニティハブ • インストール

LinkedIn MegaLoc MASt3R License Python

Netryx Astra V2 in action


アイデア

あなたは写真を持っている。動画のスクリーンショットかもしれない。誰かがオンラインに投稿した、トリミングされぼやけた携帯電話の写真かもしれない。店先、道路の一部、または建物の角だけが写っているかもしれない。あなたはそれが正確にどこで撮影されたのか知りたい。

Netryx Astra V2はその質問に答える。

これはオープンソースの地理特定システムで、一枚の画像を、ストリートビューのパノラマデータベースと照合して正確なGPS座標を見つけ出す。写真をアップロードすれば、数分以内に通り、都市、座標が数メートル単位で表示される。

V2がオリジナルのNetryx(および他のツール)と異なる点は、マッチングパイプラインにある。私たちはこのプロジェクトを開始した時点では存在しなかった2つのモデルを使用して、すべてをゼロから再構築した。

  • MegaLoc(CVPR 2025)— 場所認識のための最も正確な画像検索モデル。屋内、屋外、昼、夜、季節変動をカバーする6つのデータセットで学習。適切な近隣地域を見つけ出す。
  • MASt3R(ECCV 2024)— 3Dを認識する高密度マッチャーで、ピクセルパターンだけでなくシーンの幾何学的構造を理解する。部分的な写真や大きくトリミングされた写真でも、従来のマッチャーが破綻するような場合でも正確な位置を確認する。

その結果、置き換えた9段階のシステムよりもシンプルで正確な3段階パイプラインが実現した。

V1からの変更点

オリジナルのNetryxは、検索にCosPlace、検証にDISK + LightGlue + LoFTR + RANSAC + 記述子ホッピング + 近傍拡張のスタックを使用していた。動作はしたが、脆弱だった。多くのヒューリスティックが積み重なり、それぞれが前段階の制限を回避するためのものであった。

V2はそれらをすべて捨てた。以下が置き換えの内訳である。

単純化は見た目だけではない。段数が少ないということは、問題が発生する箇所が減り、検索が高速化し、コードが実際に保守可能になることを意味する。

仕組み

パイプラインは3段階。誇張ではなく、本当に3段階だけである。

root@kitploit:~
Query Image
     │
     ▼
┌─────────────┐
│   MegaLoc   │  "Where in the city could this be?"
│  Retrieval  │  
└─────┬───────┘
      │  Top 500 candidates
      ▼
┌─────────────┐
│   MASt3R    │  "Is this actually the same place?"
│   Matching  │  
└─────┬───────┘
      │  Scored candidates
      ▼
┌─────────────┐
│   Spatial   │  "Which cluster of matches is most trustworthy?"
│  Consensus  │  
└─────┬───────┘
      │
      ▼
  📍 GPS Coordinates

ステージ1: MegaLocによる検索

クエリ画像はコンパクトな記述子(8448次元のベクトル)に変換され、シーンの視覚的な本質を捉える。これをPCAで1024次元に削減し、ドット積類似度でインデックス内のすべての位置と比較する。

また、クエリ画像を少しズームインした中央クロップと水平反転版の記述子も抽出し、結果を統合する。これにより、クエリがインデックス画像と異なるズームレベルや逆向きの場合も対応できる。

出力は、視覚的類似度でランク付けされた上位500件の候補位置である。

MegaLocはGabriele Bertonの研究室(CosPlaceやEigenPlacesを開発したグループ)による最新の成果で、SF-XL、GSV-Cities、MSLS、ランドマーク検索データを同時に学習している。屋内、屋外、都市、田舎、昼、夜のすべてのベンチマークで一貫して最高性能を達成する他の検索モデルは存在しない。

ステージ2: MASt3Rによる高密度マッチング

500件の候補それぞれについて、対応するストリートビューパノラマをダウンロードし、インデックスされた方位角でクロップし、MASt3Rを実行してクエリとクロップ間の高密度なピクセル対応を見つける。

これが難しいクエリに対する魔法である。従来のマッチャー(SuperPoint + LightGlueなど)はせいぜい500~2000のスパースキーポイントを抽出しマッチングを試みる。クエリ画像がデータベース画像と20%しか重なっていない場合、共視キーポイントは50個程度しかなく、信頼できるマッチングには不十分である。

MASt3Rは全く異なる方法で動作する。マッチングを3D再構成問題として扱い、すべてのピクセルに対して高密度な点群マップと局所特徴記述子を予測する。小さな重なり領域でも、シーンの3D構造を理解しているため、数百の信頼できる対応が得られる。これは単なる2Dピクセルパターンではない。

Map-free localizationベンチマーク(単一参照画像、視点変更最大180度)では、MASt3Rは従来手法を30%上回る性能を示した。これは漸進的な改善ではなく、世代を超えた飛躍である。

ステージ3: 空間コンセンサス

最大マッチングスコアの候補を選ぶだけの問題は、偽陽性が存在することである。5km離れた同一のチェーンレストランは両方とも高いMASt3Rスコアを生み出す。ソビエト時代のアパート群はすべて同じに見える。

空間コンセンサスがこれを解決する。検索エリアを約50メートルのグリッドセルに分割し、すべての良いマッチを地理的にクラスタリングする。各セルは、そのセルと隣接セル内のすべてのマッチからの総合的な証拠に基づいてスコア付けされる。

間違った場所に200のインライアを持つ単一の外れ値は、正しい場所にそれぞれ80~150のインライアを持つ5つのマッチのクラスターに負ける。勝ったクラスター内の最良のマッチが最終回答となる。

これが、より多くの類似位置が存在する大半径の検索でも精度が維持される理由である。

例

Image この写真では、手がかりとなるものが全くない。小さくトリミングされた部分だけである。従来のOSINTはここで完全に失敗する。しかしNetryx Astraは、メタデータや事前の手がかりなしに完全ローカルで実行し、正確な座標まで特定した。 Image 建物の小さなトリミング写真。モスクワで半径1km以内の位置を見つけるにはこれだけで十分だった。

はじめに

コミュニティハブ

これが私たちが最も興奮している部分である。

都市のインデックス作成には数時間の計算時間がかかる。すべてのユーザーが同じ都市を個別にインデックスするのは無駄である。そこで共有システムを構築した。誰かがモスクワをインデックスし、結果をアップロードすれば、他の全員が数分でダウンロードできる。

オプションA: 既存のインデックスをダウンロードして検索を開始

最も速い方法。誰かがすでにインデックス作業を行っており、あなたはその事前構築済みインデックスをダウンロードするだけ。

Image

モードをSearchに設定し、Run Searchをクリックし、クエリ画像を選択する。地図座標と検索半径はインデックスのメタデータから自動入力される。この機能はコミュニティが貢献し互いにサポートする場合にのみ機能する。もしあなたが地域をインデックスしたなら、それをアップロードしていただければ感謝される。

オプションB: ゼロから独自のインデックスを構築

重要: PCAの適合中にアプリケーションがメモリ不足でフリーズした場合は、ターミナルで以下のコマンドを使用してください! python3 -c "from test_super import build_compact_index; build_compact_index()"

まだ誰もインデックスしていない都市や地域をインデックスしたいですか?アプリがパノラマのダウンロード、記述子の抽出、検索インデックスの構築まで全て処理する。

root@kitploit:~
python test_super.py
  1. モードをCreateに設定
  2. 中心座標(緯度、経度)と半径(km)を入力
  3. Create Indexをクリック
  4. 待つ。半径1kmなら約20~30分、5kmなら数時間、10kmなら一晩。

内部で行われていること: アプリは半径内のグリッドポイントを生成し、利用可能なパノラマ位置をすべて見つけ、各パノラマをタイルとしてダウンロードして合成し、各パノラマを複数の方位角でクロップし、各クロップからMegaLoc記述子を抽出し、すべての記述子にPCAを適合させ、コンパクトな検索インデックスを構築する。

オプションC: 誰かからインデックスファイルをインポート

友人、Discordサーバー、ダウンロードリンクから.netryxファイルを入手した場合、アプリで📥 Import Indexをクリックし、ファイルを選択するだけで検索準備完了。アカウント不要、インターネット不要、完全オフラインワークフロー。

仕組み

インデックスはHugging Face Hubに公開データセットとしてホストされている。誰でもアカウントなしでダウンロードできる。貢献(アップロード)には無料のHugging Faceアカウントが必要。

GUIから: 🌐 Community Hubボタンをクリックして、利用可能なインデックスを閲覧、検索、ダウンロード。⬆ Upload Current Indexをクリックして自分のインデックスを共有。

.netryx形式

インデックスバンドルは.netryx形式を使用。ZIPアーカイブで以下を含む:

  • PCA削減済みMegaLoc記述子(実際の検索ベクトル)
  • 座標メタデータ(すべてのエントリの緯度/経度/方位角/panoid)
  • 適合済みPCAモデル(検索時にクエリ記述子を変換するために必要)
  • カバレッジ情報を含むマニフェスト(中心、半径、エントリ数、作成者など)

エクスポート時には地理的フィルタリングが自動で行われる。インデックスにモスクワ+パリ+東京が含まれていても、「モスクワ1km」をエクスポートすればモスクワのエントリのみが含まれる。大規模インデックスから特定の地域を手作業なしでスライスできる。

オフライン共有

Hugging Faceを使いたくない場合、ファイルをエクスポートして好きな方法で共有する:

root@kitploit:~
# エクスポート
python netryx_hub.py export \
  --index-dir ./netryx_data/index \
  -o moscow_1km.netryx \
  --city moscow --radius 1 --lat 55.75 --lon 37.62

# Discord、メール、Google Driveなどでファイルを送信

# 相手がインポート
python netryx_hub.py import moscow_1km.netryx -o ./netryx_data/index

インストール

クイックセットアップ(推奨)

Mac / Linux:

root@kitploit:~
git clone https://github.com/sparkyniner/Netryx-Astra-V2-Geolocation-Tool.git
cd netryx-astra-v2
chmod +x setup.sh && ./setup.sh
source venv/bin/activate
python3 test_super.py

Windows:

root@kitploit:~
git clone https://github.com/sparkyniner/netryx-astra-v2.git
cd netryx-astra-v2

次に**setup.batをダブルクリックしてすべてインストール。完了したらrun.bat**をダブルクリックして起動。

以上。セットアップスクリプトが仮想環境を作成し、すべての依存関係をインストールし、リポジトリの隣にMASt3Rをクローンし、モデルの重みを事前ダウンロードする。手動設定は不要。

必要なもの

  • Python 3.10以上
  • macOS(Apple Silicon、MPS経由)、
  • Linux(NVIDIA GPU、CUDA経由、AMD GPU、ROCM経由)、または
  • Windows(NVIDIA GPU、CUDA経由)
  • 8GB以上のRAM(検索用、大規模インデックス作成には16GB以上推奨)
  • 都市インデックスごとに約2GBのディスク容量

MASt3Rの重みは初回実行時にHugging Faceから自動ダウンロードされる。

フォルダ構造は以下のようになる:

root@kitploit:~
some_folder/
├── netryx-astra-v2/       # このリポジトリ
│   ├── test_super.py
│   ├── megaloc_utils.py
│   ├── mast3r_utils.py
│   ├── netryx_hub.py
│   └── ...
└── mast3r/                # 別途クローン
    ├── mast3r/
    ├── dust3r/
    └── ...

mast3r_utils.pyは実行時に隣接するmast3r/ディレクトリを自動的に検出してインポートする。パスの設定は不要。

Apple Silicon(MPS)に関する注意

すべてがApple Siliconでそのまま動作する。コードはMPSの癖を自動的に処理する。未実装の演算に対するCPUフォールバック、非連続テンソルに対する.view() → .reshape()のモンキーパッチ、長時間のインデックス作成時のMPSキャッシュクリーンアップなど。

M1/M2/M3/M4 Macをお持ちなら、自動的にGPUアクセラレーションが使用される。設定不要。

AMD Rocmに関する注意

インストールスクリプト実行後、自分のデバイス用のrocm/pytorchを手動でvenvにインストールする必要がある。

デバイスに応じてTheRockのpytorchビルドを使用: https://github.com/ROCm/TheRock/blob/main/RELEASES.md#installing-pytorch-python-packages

例えば、RX7xxxシリーズカードの場合:

root@kitploit:~
pip install --index-url https://rocm.nightlies.amd.com/v2/gfx110X-all/ torch torchaudio torchvision

注意: ユーザーがrenderグループに属していることを確認:

root@kitploit:~
sudo usermod -aG render <userid>

ベースドライバがインストールされていること: https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html#amd-gpu-driver-installation

プロジェクト構造

root@kitploit:~
netryx-astra-v2/
├── test_super.py          # メインアプリケーション — GUI、パイプライン、すべて
├── megaloc_utils.py       # MegaLocモデル読み込み、記述子抽出、PCA
├── megaloc_model.py       # 自己完結型MegaLocアーキテクチャ(torch.hubが失敗した場合のフォールバック)
├── mast3r_utils.py        # MASt3R読み込みと高密度マッチング
├── netryx_hub.py          # コミュニティハブ — アップロード、ダウンロード、エクスポート、インポート
├── README.md
├── LICENSE
└── requirements.txt

# 実行時に作成される(gitにはコミットしない):
netryx_data/
├── megaloc_parts/         # 生の8448次元記述子チャンク(インデックス作成中に生成)
└── index/                 # コンパクト検索インデックス
    ├── megaloc_descriptors.npy   # PCA削減済み記述子
    ├── metadata.npz              # 座標、方位角、panoid ID
    ├── megaloc_pca.pkl           # クエリ時変換用のPCAモデル
    └── manifest.json             # コミュニティハブからダウンロードした場合に存在

# 外部依存関係(別途クローン、このリポジトリ内には配置しない):
../mast3r/                 # https://github.com/naver/mast3r

設定

必要に応じてtest_super.py内の以下のパラメータを調整できる。デフォルト値はほとんどのユースケースで適切に動作する。

おそらく調整したい主なパラメータはINDEX_TARGET_DIMで、512に下げるとインデックスサイズが半分になり、精度低下は約2~3%に抑えられる。

制限事項

このツールでできることとできないことについて、率直に説明する責任があると考えている。

インデックスに含まれる場所しか見つけられない。 あなた自身かコミュニティがインデックスしていない場所は見つからない。どんなに高度なモデルでも、存在しないデータとマッチングすることはできない。精度の上限はモデルではなくカバレッジによって決まる。

反復的な建築物は偽陽性を引き起こす。 チェーン店、郊外の住宅開発、同一のアパート群 — これらは街頭レベルで本当に同じように見える。空間コンセンサスは役立つ(近くのマッチのクラスターは単一の孤立した外れ値に勝る)が、特に検索半径が大きい場合(10km以上)は類似候補が増えるため、絶対確実ではない。これはNetryx固有の制限ではなく、この分野における未解決の問題である。

一部の地域ではカバレッグにギャップがある。 農村部、発展途上国、新しく開発された地区、屋内空間では、インデックス作成に利用可能な街頭画像が限られているか、存在しない場合がある。

これはリアルタイムシステムではない。 500件の候補に対してMASt3Rを実行するには、コンシューマーGPUで数分かかる。これはフォレンジック分析(調査報道、人権文書化、OSINT調査、保険詐欺調査)向けに設計されており、ナビゲーションやライブ追跡向けではない。

インデックス作成にはそれなりの計算リソースが必要。 MegaLocのDINOv2バックボーンはV1で使用されたCosPlaceバックボーンの約5倍の重さである。半径1kmのインデックス作成には約20~30分かかる。都市全体(10km以上)は一晩の作業である。そのため、コミュニティハブが存在する。このコストを一度だけ支払い、共有するためである。また、最も多くのインライアを持つマッチが必ずしも正しいマッチとは限らないため、複数の結果が返され、自分でクロスチェックできるようになっている。

引用

Netryx Astra V2を研究や仕事で使用する場合は、引用をいただけると幸いです:

root@kitploit:~
@software{netryx_astra_v2,
  title={Netryx Astra V2: State-of-the-Art AI Geolocation},
  author={Sairaj Balaji},
  year={2026},
  url={https://github.com/yourusername/netryx-astra-v2}
}

ライセンス

MIT License。詳細はLICENSEを参照。

MegaLocの重みはMITライセンス。MASt3RはApache 2.0ライセンス。DINOv2はApache 2.0ライセンス。コミュニティ共有インデックスはCC-BY-4.0。


Sairaj Balaji によって構築されました

PrismXも開発。 Fast Company · 404 Media · Deutsche Welle で紹介されました

ツールをダウンロード
V1(オリジナル)V2(Astra)
候補の検出CosPlace(ResNet-50, 512-dim)MegaLoc(DINOv2 ViT-B/14, 8448-dim → PCA 1024)
マッチの確認DISK + LightGlue + RANSACMASt3R 高密度3Dマッチング
エッジケースの処理LoFTRフォールバック、記述子ホッピング、近傍拡張、ウルトラモード空間コンセンサス — それだけ
総パイプライン段数9以上3
部分画像マッチング弱い — スパースキーポイントは重なりが小さいと失敗強い — MASt3Rが小さな領域でも高密度な対応を見つける
インデックスの共有不可能Hugging Face + オフラインの .netryx バンドルによるコミュニティハブ
パラメータデフォルト説明
INDEX_TARGET_DIM1024PCA出力次元。512 = インデックスが小さくなるが精度がやや低下。1024 = バランス良好。
MAX_PANOID_WORKERS16インデックス作成中に並列ダウンロードするパノラマの最大数
MAX_DOWNLOAD_WORKERS100同時タイルダウンロード接続数(各パノラマ=8タイル)
EARLY_EXIT_INLIER_THRESHOLD450MASt3Rがこれだけの高密度マッチを見つけたら早期終了 — 確実なヒットと判断
MAST3R_STAGE2_TOP_N500MASt3Rで処理するMegaLoc候補の最大数