# АНАЛИЗ ДАТАСЕТА: UAV-VisLoc **Дата анализа:** 2026-04-17 **Метод:** Эмпирический анализ данных на диске + статья arXiv:2405.11936 + GitHub-репозиторий авторов **Путь к данным:** `/media/servml/SSD_2_2TB/datasets/cvgl_datasets/UAV_VisLoc_dataset/` --- ## 1. МЕТАДАННЫЕ | Поле | Значение | |------|----------| | Полное название | UAV-VisLoc: A Large-scale Dataset for UAV Visual Localization | | Авторы | Wenjia Xu, Yaxuan Yao, Jiaqi Cao, Zhiwei Wei, Chunbo Liu, Jiuniu Wang, Mugen Peng (BUPT + CAS + CityU HK) | | Год, Venue | 2024, arXiv:2405.11936 [cs.CV] | | Код | https://github.com/IntelliSensing/UAV-VisLoc (только README + ссылки) | | Данные | Google Drive / Baidu Net Disk (16.4 GB) | | Общий объём на диске | ~16.4 GB | --- ## 2. ОБЩАЯ СТАТИСТИКА ### 2.1. Сводка | Параметр | Значение | |----------|----------| | Drone-изображений | **6 774** | | Спутниковых карт | **11** (+ маршрут 09 разбит на 4 тайла) | | Маршрутов (flights) | 11 | | Регионов (Китай) | 7 провинций/районов | | Типов БПЛА | 2 (multi-rotor + fixed-wing) | | Сезоны съёмки | 2 (лето, осень) | | Временной охват | 2016–2023 | ### 2.2. Разбиение train / test | Split | Изображений | Доля | |-------|-------------|------| | Train | 5 080 | 75.0% | | Test | 1 694 | 25.0% | | **Итого** | **6 774** | 100% | Разбиение — **случайное по изображениям** внутри каждого маршрута (не по маршрутам!): | Маршрут | Всего | Train | Test | Train% | |---------|-------|-------|------|--------| | 01 | 817 | 620 | 197 | 75.9% | | 02 | 1 071 | 829 | 242 | 77.4% | | 03 | 768 | 566 | 202 | 73.7% | | 04 | 738 | 543 | 195 | 73.6% | | 05 | 473 | 345 | 128 | 72.9% | | 06 | 344 | 261 | 83 | 75.9% | | 07 | 30 | 20 | 10 | 66.7% | | 08 | 1 033 | 796 | 237 | 77.1% | | 09 | 766 | 551 | 215 | 71.9% | | 10 | 144 | 99 | 45 | 68.8% | | 11 | 590 | 450 | 140 | 76.3% | --- ## 3. МАРШРУТЫ (FLIGHTS) ### 3.1. Детализация по маршрутам | Маршрут | Регион | Тип БПЛА | Drone (px) | Высота (м) | Heading (Phi) | Спутник (px) | Дата drone | Дата sat | |---------|--------|----------|------------|------------|---------------|-------------|------------|----------| | 01 | Changjiang-20 | multi-rotor | 3976x2652 | ~405 | 165° | 9774x26762 | 2018-09 | 2023-11 | | 02 | Changjiang-23 | multi-rotor | 3976x2652 | ~405 | 5° | 11482x34291 | 2018-09 | 2022-09 | | 03 | Taizhou-1 | multi-rotor | 3976x2652 | ~466 | -40° | 35092x24308 | 2018-10 | 2021-04 | | 04 | Taizhou-6 | multi-rotor | 3976x2652 | ~542 | 170° | 18093x38408 | 2018-10 | 2023-03 | | 05 | Yunnan | fixed-wing | 3000x2000 | ~2313 | 100° | 9394x6144 | 2016-06 | 2022-03 | | 06 | Zhuxi | multi-rotor | 3976x2652 | ~840 | — | 8082x9780 | — | — | | 07 | Donghuayuan | fixed-wing | 3000x2000 | ~688 | -1.5° | 3000x170 | 2018-07 | 2023-06 | | 08 | Huzhou-3 | multi-rotor | 3976x2652 | ~551 | 100° | 43421x16294 | 2019-06 | 2023-07 | | 09 | Huzhou-6 | multi-rotor | 3976x2652 | ~546 | -50° | 44800x33280* | 2019-06 | 2024-01 | | 10 | Huailai | fixed-wing | 3000x2000 | ~772 | 170° | 6593x5077 | 2018-09 | 2023-06 | | 11 | Shandan | multi-rotor | 3976x2652 | ~2572 | 90° | 29592x16582 | 2023-10 | 2021-03 | \* Маршрут 09: спутник разбит на 4 тайла (satellite09_01-01.tif, 01-02, 02-01, 02-02). Суммарный размер: 44800x33280 px. ### 3.2. Географический охват | Регион | Маршруты | Провинция | Ландшафт | |--------|----------|-----------|----------| | Changjiang | 01, 02 | Цзянси | Города, деревни, фермы, реки (долина Янцзы) | | Taizhou | 03, 04 | Цзянсу | Города, фермы, каналы, реки | | Yunnan | 05 | Юньнань | Горы, леса, холмы (высокогорье) | | Zhuxi | 06 | Хубэй | Горы, леса, река | | Donghuayuan | 07 | Хэбэй | Равнина (очень узкий маршрут) | | Huzhou | 08, 09 | Чжэцзян | Города, озеро Тайху, фермы | | Huailai | 10 | Хэбэй | Равнина, холмы | | Shandan | 11 | Ганьсу | Пустыня, степь (коридор Хэси) | **Координатный охват:** - Широта: от 24.65°N (Юньнань) до 40.36°N (Хэбэй) — разброс ~15.7° - Долгота: от 101.01°E (Ганьсу) до 120.25°E (Чжэцзян) — разброс ~19.2° - Всё в пределах Китая, но с разнообразным ландшафтом ### 3.3. Типы БПЛА | Тип | Маршруты | Разрешение | Высота полёта | Кол-во изображений | |-----|----------|-----------|---------------|-------------------| | Multi-rotor | 01, 02, 03, 04, 06, 08, 09, 11 | 3976x2652 | 405–2572 м | 6 127 (90.4%) | | Fixed-wing | 05, 07, 10 | 3000x2000 | 688–2313 м | 647 (9.6%) | --- ## 4. ИСТОЧНИКИ ИЗОБРАЖЕНИЙ ### 4.1. Дроновые виды (query) | Параметр | Значение | |----------|----------| | Платформа | **Реальные БПЛА** (не синтетика!) | | Тип съёмки | RGB, ground-down view (камера вертикально вниз) | | Разрешение кадров | 3976x2652 (multi-rotor) / 3000x2000 (fixed-wing) | | GSD (drone) | 0.1–0.2 м/пиксель (из README); расчётное: 15–97 см/px в зависимости от высоты | | Высоты полёта | от 405 м до 2572 м | | Heading angle | Phi1 (высокая уверенность), Phi2 (низкая уверенность) | | Pose данные | Omega (pitch), Kappa (roll), Phi1/Phi2 (yaw) | | Формат | JPEG | ### 4.2. Спутниковые карты (gallery / DB) | Параметр | Значение | |----------|----------| | Платформа | Google Earth | | Формат | GeoTIFF (.tif) | | GSD (спутник) | **0.3 м/пиксель** (из статьи) | | Размеры карт | от 3000x170 до 43421x38408 px | | Кропы/патчи | **Отсутствуют** — авторы предоставляют только целые карты | ### 4.3. Временной разрыв drone/satellite | Маршрут | Drone | Satellite | Разрыв | |---------|-------|-----------|--------| | 01 | 2018-09 | 2023-11 | **5 лет** | | 03 | 2018-10 | 2021-04 | 2.5 года | | 08 | 2019-06 | 2023-07 | 4 года | | 11 | 2023-10 | 2021-03 | **-2.5 года** (спутник старше!) | Временной разрыв создаёт дополнительную сложность (изменения застройки, сезонные различия). --- ## 5. ПАРАМЕТРЫ СЪЁМКИ ДРОНОВ ### 5.1. Высоты полёта | Диапазон высот | Маршруты | Тип | Кол-во изображений | |----------------|----------|-----|-------------------| | 400–410 м | 01, 02 | multi-rotor | 1 888 | | 460–550 м | 03, 04, 08, 09 | multi-rotor | 3 305 | | 688–840 м | 06, 07, 10 | mixed | 518 | | 2300–2575 м | 05, 11 | mixed | 1 063 | ### 5.2. Наземное покрытие drone-кадра (оценка, FOV ~84°) | Высота | Footprint (multi-rotor 3976x2652) | Footprint (fixed-wing 3000x2000) | |--------|-----------------------------------|----------------------------------| | ~405 м | ~608 x 405 м | — | | ~466 м | ~699 x 466 м | — | | ~551 м | ~826 x 551 м | — | | ~688 м | — | ~1031 x 688 м | | ~840 м | ~1260 x 840 м | — | | ~2313 м | — | ~3469 x 2313 м | | ~2572 м | ~3858 x 2572 м | — | ### 5.3. Расстояние между кадрами | Маршрут | Avg spacing | Высота | Overlap (оценка) | |---------|-------------|--------|------------------| | 01 | 80.7 м | 405 м | ~87% (по ширине footprint) | | 05 | 62.7 м | 2313 м | ~98% | | 07 | 23.6 м | 688 м | ~98% | | 08 | 99.7 м | 551 м | ~88% | | 11 | 142.9 м | 2572 м | ~96% | Высокий overlap (87–98%) типичен для аэрофотосъёмки. --- ## 6. ПРОСТРАНСТВЕННАЯ НАРЕЗКА СПУТНИКОВЫХ ПАТЧЕЙ ### 6.1. Текущее состояние **В оригинальном датасете кропы/патчи НЕ предоставлены.** Авторы дают только целые спутниковые карты. Задача определена как "найти координаты на большой карте", а не как retrieval по патчам. ### 6.2. Планируемая нарезка (по аналогии с UAV-GeoLoc) Для совместимости с pipeline на основе UAV-GeoLoc, планируется нарезка спутниковых карт на патчи. **Параметры нарезки:** | Параметр | Значение | Обоснование | |----------|----------|-------------| | Размер кропа | **512x512 px** | ~154x154 м на земле (при GSD 0.3 м/px) | | Stride | **256 px** | 50% overlap (как в UAV-GeoLoc) | | Именование | `crop_X_Y.png` | X по ширине (col), Y по высоте (row) | | Позиция в карте | `sat[Y*stride : Y*stride+crop, X*stride : X*stride+crop]` | — | | Финальный размер (модель) | **256x256 px** | Resize для входа в модель | ### 6.3. Ожидаемое количество кропов | Маршрут | Размер карты | Кропов (cols x rows) | Итого | Примечание | |---------|-------------|---------------------|-------|------------| | 01 | 9774x26762 | 37 x 103 | 3 811 | OK | | 02 | 11482x34291 | 43 x 132 | 5 676 | OK | | 03 | 35092x24308 | 136 x 93 | 12 648 | OK | | 04 | 18093x38408 | 69 x 149 | 10 281 | OK | | 05 | 9394x6144 | 35 x 23 | 805 | OK | | 06 | 8082x9780 | 30 x 37 | 1 110 | OK | | 07 | 3000x170 | — | — | **Исключён** (высота 170 px < 512) | | 08 | 43421x16294 | 168 x 62 | 10 416 | OK | | 09 | 44800x33280 | 174 x 129 | 22 446 | Нужна сшивка 4 тайлов | | 10 | 6593x5077 | 24 x 18 | 432 | OK | | 11 | 29592x16582 | 114 x 63 | 7 182 | OK | | **Итого** | | | **~74 807** | Без маршрута 07 | ### 6.4. Наземное покрытие одного кропа При GSD спутника = 0.3 м/px: - **Кроп 512x512 px** покрывает **~154 x 154 м** на земле - Это вписывается в footprint drone-кадра на любой высоте (405+ м) - Stride 256 px = 76.8 м на земле ### 6.5. Проблемные маршруты | Маршрут | Проблема | Решение | |---------|----------|---------| | 07 | Спутник 3000x170 px — слишком узкий | Исключить или кропы 170x170 | | 09 | Спутник разбит на 4 тайла | Сшить в одну карту перед нарезкой | --- ## 7. АННОТАЦИИ И МЕТАДАННЫЕ ### 7.1. Файлы аннотаций | Файл | Содержание | Формат | |------|-----------|--------| | `XX.csv` | GPS + pose каждого drone-кадра | CSV: num, filename, date, lat, lon, height, Omega, Kappa, Phi1, Phi2 | | `satellite_ coordinates_range.csv` | GPS-bbox каждой спутниковой карты | CSV: mapname, LT_lat, LT_lon, RB_lat, RB_lon, region | | `visloc_train.csv` | Train split | TSV: filename, height, Omega, Kappa, Phi1, Phi2 | | `visloc_test.csv` | Test split | TSV: filename, height, Omega, Kappa, Phi1, Phi2 | ### 7.2. Типы аннотаций | Тип аннотации | Наличие | Комментарий | |---------------|---------|-------------| | GPS-координаты (drone) | **Да** | Из бортового GNSS, точность ~1-3 м | | GPS-bbox (satellite) | **Да** | Углы спутниковой карты | | Высота полёта | **Да** | В метрах | | Heading angle (yaw) | **Да** | Phi1 (надёжный) и Phi2 (менее надёжный) | | Pitch / Roll | **Да** | Omega (pitch), Kappa (roll) | | Дата съёмки | **Да** | Для drone-кадров | | Positive/Semi-positive pairs | **Нет** | Отсутствуют — нужно генерировать | | Кропы спутника (DB) | **Нет** | Отсутствуют — нужно нарезать | | Depth maps | Нет | — | | Segmentation masks | Нет | — | | Bounding boxes | Нет | — | | Семантические метки | Нет | Только implicit через регион | --- ## 8. СРАВНЕНИЕ С UAV-GeoLoc | Параметр | UAV-VisLoc | UAV-GeoLoc | |----------|-----------|-----------| | Drone-изображения | **Реальные** БПЛА | **Синтетика** (Google Earth Studio 3D) | | Кол-во drone | 6 774 | 652 744 | | Кол-во спутниковых кропов | 0 (нужно генерировать) | 274 683 | | Размер drone | 3976x2652 / 3000x2000 | 512x512 | | GSD drone | 0.1–0.97 м/px (зависит от высоты) | ~0.5 м/px (синтетика) | | GSD satellite | 0.3 м/px (Google Earth) | Варьируется | | Высоты полёта | 405–2572 м (реальные) | 100, 125, 150 м (синтетика) | | Heading angles | Произвольные (реальный полёт) | Дискретные: 8 x 45° | | Регионы | 7 провинций Китая | 11 стран, 6 континентов | | Сцен | 11 маршрутов | 372 сцены | | Train/test split | По изображениям (~75/25) | По сценам (140/40/20) | | Positive pairs | Нет (нужно по GPS) | Есть (positive.json) | | Semi-positive pairs | Нет | Есть (semi_positive.json) | | Temporal gap | 2–5 лет | Нет (одновременно) | | Лицензия | Не указана | CC BY-NC 4.0 | ### Ключевые отличия: 1. **Реальные vs синтетические** — UAV-VisLoc содержит реальные фотографии, что даёт реалистичные артефакты (освещение, шум, blur), но меньше контроля 2. **Масштаб** — UAV-GeoLoc на 2 порядка больше по количеству изображений 3. **Пары не предоставлены** — для UAV-VisLoc нужно самостоятельно сопоставить drone GPS с координатами кропов 4. **Вариативность высот** — гораздо шире (400–2600 м vs 100–150 м) 5. **Temporal gap** — drone и satellite сняты в разные годы, что усложняет matching --- ## 9. ПЛАН ГЕНЕРАЦИИ КРОПОВ И ПАР ### 9.1. Pipeline ``` satellite.tif + satellite_coordinates_range.csv │ ▼ [1] Нарезка кропов (512x512, stride 256) │ ▼ [2] Вычисление GPS центра каждого кропа │ (из bbox карты + позиция кропа в grid) ▼ [3] Для каждого drone-кадра: │ — Найти кроп с минимальным GPS-расстоянием → positive │ — Найти кропы в радиусе R → semi-positives ▼ [4] Генерация positive.json, semi_positive.json, db_postion.txt │ ▼ [5] Генерация Index файлов (train_query.txt, train_db.txt, ...) │ ▼ [6] Resize drone → 256x256, кропов → 256x256 ``` ### 9.2. Matching drone → crop GPS центр кропа `crop_X_Y.png` вычисляется как: ``` crop_center_lon = LT_lon + (X * stride + crop_size/2) * (RB_lon - LT_lon) / sat_width crop_center_lat = LT_lat + (Y * stride + crop_size/2) * (RB_lat - LT_lat) / sat_height ``` Positive match: кроп с минимальным евклидовым расстоянием до GPS drone-кадра. Semi-positive: все кропы в радиусе 1 stride (256 px = ~77 м) от positive. --- ## 10. ПОЛНАЯ СТРУКТУРА ДАННЫХ ``` UAV_VisLoc_dataset/ # ~16.4 GB ├── satellite_ coordinates_range.csv # GPS-bbox всех 11 карт ├── visloc_train.csv # 5080 train drone images (TSV) ├── visloc_test.csv # 1694 test drone images (TSV) ├── README_dataset.txt # Описание датасета │ ├── 01/ # Changjiang-20, multi-rotor, 817 imgs │ ├── drone/ │ │ ├── 01_0001.JPG # 3976x2652 │ │ ├── 01_0002.JPG │ │ └── ... │ ├── satellite01.tif # 9774x26762 │ └── 01.csv # num,filename,date,lat,lon,height,... │ ├── 02/ ... 06/ # Аналогичная структура │ ├── 07/ # Donghuayuan, fixed-wing, 30 imgs │ ├── drone/ │ │ └── 07_XXXX.JPG # 3000x2000 │ ├── satellite07.tif # 3000x170 (!) │ └── 07.csv │ ├── 08/ # Huzhou-3, multi-rotor, 1033 imgs │ ├── 09/ # Huzhou-6, multi-rotor, 766 imgs │ ├── drone/ │ ├── satellite09_01-01.tif # 25600x25600 ─┐ │ ├── satellite09_01-02.tif # 19200x25600 │ Суммарно: │ ├── satellite09_02-01.tif # 25600x7680 │ 44800x33280 │ ├── satellite09_02-02.tif # 19200x7680 ─┘ │ └── 09.csv │ ├── 10/ # Huailai, fixed-wing, 144 imgs │ └── 11/ # Shandan, multi-rotor, 590 imgs ├── drone/ │ └── 11_XXXX.JPG # 3976x2652 ├── satellite11.tif # 29592x16582 └── 11.csv ```