Files
UAV-VisLoc-prepare/CLAUDE.md
pikaliov fd014a3155 Dataset preparation script with documentation
- Satellite crop generation (512x512, stride 256, resize 256x256)
- Route 09 tile stitching (4 tiles -> 44800x33280)
- GPS matching drone->crop via vectorized haversine
- Index files in UAV-GeoLoc format (train/test query + DB)
- positive.json / semi_positive.json / db_postion.txt per route
- Route 07 excluded (satellite too narrow)
- Fixed: full gallery in DB files, db_postion.txt format, frame_id keys
- Fixed: file handle leaks in image processing loops

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 17:12:43 +03:00

2.5 KiB
Raw Blame History

UAV-VisLoc Dataset Preparation

Пути

  • Исходный датасет: /home/servml/Документы/datasets/UAV_VisLoc_dataset/
  • Обработанный датасет: /home/servml/Документы/datasets/UAV_VisLoc_processed/
  • Скрипт: scripts/prepare_dataset.py
  • Статус: выполнен, данные готовы (2026-04-17)

Результаты обработки

  • Drone: 6,744 изображений resized 256x256
  • Satellite кропов: 74,807 (512x512 -> 256x256)
  • Train queries: 5,060 / Test queries: 1,684
  • Gallery: 74,807 кропов (одинаковая для train и test)
  • Median distance drone->crop: 25.9m, P99: 45.7m

Формат данных

Разделение positive / semi-positive / negative

В формате UAV-GeoLoc нет явного списка negative — negatives определяются неявно:

  • Positive (1 на drone): ближайший crop по GPS. Хранится в positive.json и как ПЕРВЫЙ crop в строке train_query.txt
  • Semi-positive (8 на drone): +-1 соседи positive crop в grid. Хранятся в semi_positive.json и как crops 2-9 в строке train_query.txt
  • Negative (implicit): ВСЕ остальные кропы в gallery (~74K). Не хранятся отдельно — при contrastive learning in-batch negatives формируются из других пар в batch

Как это используется в train_query.txt

01/drone/01_0001.JPG 0 01/DB/img/crop_5_18.png 01/DB/img/crop_4_17.png 01/DB/img/crop_4_18.png ...
                     ^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                   label          1 positive + 8 semi-positives (все считаются positive matches)

Все 9 кропов в строке — positives для данного query. Всё что НЕ в этом списке — negatives.

Известные проблемы

  • Маршрут 07 исключён (спутник 3000x170, слишком узкий)
  • 6 drone в маршруте 06 (06_0093-06_0098) за пределами спутниковой карты (distance >1000m)
  • Нет val split (только train/test как в оригинальном UAV-VisLoc)

GSD спутника

~0.30 м/px (единый zoom level). Вариации GSD по долготе (0.23-0.27 м/px) — косинусный эффект широты, не разная высота съёмки.