
CosPlace, ALIKED 및 LightGlue 컴퓨터 비전 모델을 사용하여 거리 사진의 정확한 GPS 좌표를 식별하는 로컬 우선 지리 위치 엔진입니다. 50m 미만의 정확도, 랜드마크 불필요.
오픈소스 거리 수준 지리 위치 엔진
거리 사진을 업로드하세요. 정확한 GPS 좌표를 얻으세요.
50m 미만 정확도. 랜드마크 불필요. 전적으로 하드웨어에서 실행됩니다.
Netryx는 모든 거리 수준 사진의 정확한 GPS 좌표를 식별하는 로컬 우선 지리 위치 도구입니다. 역 이미지 검색(업로드된 웹 이미지와 매칭)과 달리, Netryx는 체계적으로 크롤링된 스트리트 뷰 파노라마와 매칭합니다. 즉, 인터넷에 전혀 존재하지 않는 임의의 길 모퉁이에서도 작동합니다.
핵심 파이프라인은 세 가지 최첨단 컴퓨터 비전 모델을 결합합니다:
Google Lens는 인터넷을 검색합니다. Netryx는 물리적 세계를 검색합니다.
| 사용 사례 | 링크 |
|---|---|
| 미사일 공격 지리 위치 — 카타르 (2026년 2월) | YouTube에서 시청 |
| 분쟁 모니터링 — 파리 시위 | YouTube에서 시청 |
| 무작위 사진에서 블라인드 지리 위치 — 파리 | YouTube에서 시청 |
| 기술 심층 분석: 파이프라인 작동 방식 | YouTube에서 시청 |
Netryx는 수백만 개의 후보에서 단일 정확한 일치로 점진적으로 좁혀가는 3단계 파이프라인을 사용합니다. Netryx는 단순한 도구이며, 소스에 구애받지 않으며 mapilliary나 kartaview 등 모든 공급자의 이미지를 처리할 수 있습니다.
인덱스의 모든 스트리트 뷰 파노라마는 CosPlace를 사용하여 512차원의 '지문'으로 사전 처리되었습니다. 이 모델은 수백만 개의 지리 태그가 지정된 이미지로 훈련된 시각적 장소 인식 모델입니다.
쿼리 사진을 업로드하면:
이 단계는 인덱스 크기에 관계없이 1초 미만에 실행됩니다. 단일 행렬 곱셈이기 때문입니다.
CosPlace는 비슷해 보이는 장소를 찾습니다. 2단계에서는 기하학적 검증을 사용하여 같은 장소임을 증명합니다.
각 후보에 대해:
이 단계는 하드웨어에 따라 300500개의 후보를 **25분** 안에 처리합니다.
초기 일치는 좋지만 항상 최적은 아닙니다. 정제를 통해 개선합니다:
어려운 이미지(야간, 흐림, 낮은 텍스처)의 경우 울트라 모드가 다음을 추가합니다:
Query Image
│
├── CosPlace descriptor extraction (512-dim fingerprint)
├── Flipped descriptor extraction
│
▼
Index Search (cosine similarity, radius-filtered)
│
├── Top 500 candidates ranked by visual similarity
│
▼
Download Panoramas → Crop at 3 FOVs → Extract ALIKED/DISK keypoints
│
├── LightGlue matching against query keypoints
├── RANSAC geometric verification
│
▼
Heading Refinement (±45°, 3 FOVs, top 15 candidates)
│
├── Spatial consensus clustering
├── Confidence scoring
│
▼
📍 GPS Coordinates + Confidence Score
GPU 지원:
# 저장소 복제
git clone https://github.com/sparkyniner/Netryx-OpenSource-Next-Gen-Street-Level-Geolocation.git
cd .\Netryx-OpenSource-Next-Gen-Street-Level-Geolocation\
# 가상 환경 생성
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 의존성 설치
pip install -r requirements.txt
# LightGlue 명시적으로 설치 (매칭에 필요)
pip install git+https://github.com/cvg/LightGlue.git
# 선택 사항: 울트라 모드(LoFTR)를 위해 kornia 설치
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 조밀 매칭, 설명자 호핑, 이웃 확장을 추가합니다. 현저히 느리지만 표준 파이프라인이 놓치는 일치를 잡아냅니다.
모든 임베딩은 단일 통합 인덱스에 저장됩니다. 검색 시 반경 필터가 결과를 사용자가 지정한 영역으로 자동 제한합니다. 즉:
데이터 흐름:
Create Mode:
Grid points → Google Street View API → Panoramas → Crops → CosPlace → cosplace_parts/*.npz
Auto-build:
cosplace_parts/*.npz → cosplace_descriptors.npy + metadata.npz (searchable index)
Search Mode:
Query image → CosPlace → Index search (radius-filtered) → Download candidates → ALIKED/DISK + LightGlue → Result
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에서 25분, NVIDIA GPU에서 13분입니다. 병목 현상은 매칭 자체가 아니라 Google에서 파노라마 타일을 다운로드하는 네트워크 제한입니다.
전국을 인덱싱할 수 있나요?
현실적이지 않습니다. 반경 10km는 약 10만 개의 파노라마와 7GB 인덱스를 생성합니다. 전국을 인덱싱하려면 페타바이트가 필요합니다. 특정 도시나 관심 지역(5~20km)을 인덱싱하세요.
검색 결과 후보가 0개입니다.
검색 좌표가 인덱싱된 영역과 겹치지 않습니다. 먼저 영역을 인덱싱하거나 검색 중심/반경을 기존 인덱싱된 데이터와 겹치도록 조정하세요. "커버리지 지도 표시"를 사용하여 인덱싱된 내용을 시각화하세요.
일치가 약간 잘못되었습니다 (한 블록 정도 차이).
울트라 모드를 활성화하세요. 이웃 확장은 초기 일치의 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 |
| 인덱싱 속도 | 가장 빠름 | 양호 | 느림 |