Files
caption-test/GTA-UAV-LR_Dataset_Analysis.md
2026-05-08 09:52:15 +03:00

432 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# АНАЛИЗ ДАТАСЕТА: GTA-UAV (LR)
**Дата анализа:** 2026-04-21
**Метод:** Эмпирический анализ данных на диске + статья arXiv:2409.16925 + GitHub-репозиторий авторов
**Путь к данным:** `/media/servml/SSD_2_2TB/datasets/cvgl_datasets/GTA-UAV-LR/`
**Путь к аугментациям:** `/media/servml/SSD_2_2TB/datasets/cvgl_datasets/GTA-UAV-LR-aug/`
---
## 1. МЕТАДАННЫЕ
| Поле | Значение |
|------|----------|
| Полное название | Game4Loc: A UAV Geo-Localization Benchmark from Game Data |
| Авторы | Yuxiang Ji, Boyong He, Zhuoyue Tan, Liaoni Wu |
| Год, Venue | 2025, AAAI 2025 (Oral), arXiv:2409.16925 [cs.CV] |
| Код | https://github.com/Yux1angJi/GTA-UAV (Python, PyTorch) |
| Данные | HuggingFace / BaiduDisk (пароль: gtav) |
| Лицензия | Apache 2.0 |
| Общий объём на диске | **~26 GB** (LR); HR-версия ~143 GB |
---
## 2. ОБЩАЯ СТАТИСТИКА
### 2.1. Сводка
| Параметр | Значение |
|----------|----------|
| Drone-изображений (query) | **33 763** |
| Спутниковых тайлов (DB) | **14 640** (4 уровня зума) |
| Всего изображений | **48 403** |
| Покрытая территория | **81.3 км²** (один непрерывный регион) |
| Сцена | Лос-Сантос (GTA V) — городская + природная среда |
| Номинальных высот | 6 (100, 200, 300, 400, 500, 600 м) |
| Направлений камеры (yaw) | **361 уникальное** значение (произвольные углы) |
| Тип данных | **Синтетика** (рендеринг в игровом движке GTA V) |
### 2.2. Разбиения
Датасет предоставляет **два протокола** оценки:
| Протокол | Train | Test | Метод разбиения |
|----------|-------|------|-----------------|
| Same-area | 26 964 (80.0%) | 6 744 (20.0%) | По изображениям в пределах одного региона |
| Cross-area | 15 693 (46.5%) | 18 015 (53.5%) | По географическим подрегионам |
**Same-area:** train и test из одной и той же территории, без пересечений по изображениям.
**Cross-area:** train и test из непересекающихся географических зон — более сложный и реалистичный сценарий.
### 2.3. Распределение по номинальным высотам
| Номинальная высота | Same-area train | Same-area test | Всего | Доля |
|-------------------|----------------|---------------|-------|------|
| 100 м | 4 248 | 1 072 | 5 320 | 15.8% |
| 200 м | 4 572 | 1 162 | 5 734 | 17.0% |
| 300 м | 4 546 | 1 138 | 5 684 | 16.9% |
| 400 м | 4 615 | 1 162 | 5 777 | 17.1% |
| 500 м | 4 598 | 1 171 | 5 769 | 17.1% |
| 600 м | 4 385 | 1 039 | 5 424 | 16.1% |
| **Итого** | **26 964** | **6 744** | **33 708** | 100% |
Распределение по высотам **равномерное** (~1617% на каждую номинальную высоту).
---
## 3. ИСТОЧНИКИ ИЗОБРАЖЕНИЙ
### 3.1. Дроновые виды (query)
| Параметр | Значение |
|----------|----------|
| Платформа | **Синтетический рендеринг** (GTA V / DeepGTAV) |
| Тип съёмки | RGB, near-nadir (камера ≈90° вниз, cam_roll ≈ -90°) |
| Разрешение (LR) | **512x384 px** |
| Разрешение (HR) | 1920x1440 px |
| Pitch камеры | ≈-90° (вертикально вниз), drone_pitch ±10° |
| Roll дрона | ±20° (реалистичные вибрации) |
| Yaw (heading) | Произвольные углы 0°360° (361 уникальное значение) |
| Формат | PNG |
### 3.2. Спутниковые виды (DB)
| Параметр | Значение |
|----------|----------|
| Платформа | Спутниковые тайлы (стиль Google Maps) |
| Формат | PNG |
| Разрешение тайлов | **256x256 px** (все уровни зума) |
| Количество тайлов | **14 640** |
| Уровни зума | 4 уровня (4, 5, 6, 7) |
### 3.3. Мультимасштабная тайловая сетка
Спутниковые данные организованы как **пирамида зум-уровней** — каждый следующий уровень удваивает разрешение:
| Зум | Cols x Rows | Тайлов | Масштаб (относительно zoom 7) |
|-----|-------------|--------|------------------------------|
| 4 | 11 x 16 | 176 | 1/8 |
| 5 | 22 x 32 | 704 | 1/4 |
| 6 | 43 x 64 | 2 752 | 1/2 |
| 7 | 86 x 128 | 11 008 | 1/1 (базовый) |
| **Итого** | | **14 640** | |
Все сетки заполнены на **100%** (нет пропущенных тайлов).
**Общий размер карты** (zoom 7): 86 × 256 = **22 016 px** по ширине, 128 × 256 = **32 768 px** по высоте.
Именование тайлов: `{zoom}_{0}_{X}_{Y}.png` (пример: `7_0_42_63.png`).
---
## 4. ПАРАМЕТРЫ СЪЁМКИ ДРОНОВ
### 4.1. Фактические высоты полёта
Номинальные высоты (из имени файла) **не совпадают** точно с фактическими — это реалистичный эффект рельефа:
| Номинальная | Фактический диапазон | Среднее | Кол-во |
|-------------|---------------------|---------|--------|
| 100 м | 24.9 444.9 м | 93.9 м | 5 320 |
| 200 м | 34.3 548.4 м | 193.9 м | 5 734 |
| 300 м | 31.0 648.9 м | 294.3 м | 5 684 |
| 400 м | 33.4 746.0 м | 395.2 м | 5 777 |
| 500 м | 44.9 930.4 м | 494.9 м | 5 769 |
| 600 м | 82.1 988.1 м | 593.6 м | 5 424 |
**Общий диапазон фактических высот:** 24.9 988.1 м (среднее 345.3 м).
Большой разброс объясняется тем, что высота задаётся **над уровнем моря**, а рельеф варьируется.
### 4.2. Ориентация камеры (attitude)
| Параметр | Среднее | Диапазон |
|----------|---------|----------|
| Drone roll (|abs|) | 3.99° | 0° 20° |
| Drone pitch (|abs|) | 3.87° | 0° 10° |
| Cam roll | -90.0° | -110° -71.2° |
| Drone yaw | произвольный | -180° +180° (361 уникальное значение) |
Камера направлена **вертикально вниз** (cam_roll ≈ -90°), с реалистичными отклонениями дрона по roll/pitch.
### 4.3. Классификация углов (для обучения)
В CSV-файлах `*_class_angle.csv` yaw дискретизирован в **4 класса** (квадранты):
| Класс | Диапазон | Кол-во (cross-area train) |
|-------|----------|--------------------------|
| 0 | 0°90° | 7 871 |
| 1 | 90°180° | 7 637 |
| 2 | 180°270° | 7 650 |
| 3 | 270°360° | 7 834 |
Распределение по квадрантам **равномерное**.
---
## 5. ПРОСТРАНСТВЕННОЕ ПОКРЫТИЕ
### 5.1. Зона дронов в координатах карты
| Параметр | Значение |
|----------|----------|
| Диапазон X (zoom 7) | 606 6 068 px (охват ~5 462 px) |
| Диапазон Y (zoom 7) | 1 330 9 735 px (охват ~8 405 px) |
| Покрытие карты | 5 462 / 22 016 × 8 405 / 32 768 ≈ **6.4%** площади zoom-7 карты |
Дрон-изображения сконцентрированы в определённом подрегионе карты, при этом **вся** карта (100% тайлов) доступна как DB.
### 5.2. Регион
| Параметр | Значение |
|----------|----------|
| Источник | Карта Лос-Сантос (GTA V) |
| Площадь | 81.3 км² |
| Типы ландшафта | Город, пригороды, горы, побережье, леса, пустыня |
| Координатный охват | Синтетические координаты (x, y в пикселях карты) |
---
## 6. АННОТАЦИИ И МЕТАДАННЫЕ
### 6.1. Файлы аннотаций
| Файл | Содержание | Формат |
|------|-----------|--------|
| `same-area-drone2sate-train.json` | Same-area train: 26 964 записей | JSON (list of dicts) |
| `same-area-drone2sate-test.json` | Same-area test: 6 744 записей | JSON |
| `cross-area-drone2sate-train.json` | Cross-area train: 15 693 записей | JSON |
| `cross-area-drone2sate-test.json` | Cross-area test: 18 015 записей | JSON |
| `*_drone_meta.csv` | Метаданные дрона (height, yaw, roll, pitch) | TSV |
| `*_drone_meta_new.csv` | Обновлённые метаданные | TSV |
| `*_class_angle.csv` | Класс угла yaw (03) | CSV |
| `back_csv/` | Обратные CSV-файлы для cross-area | Директория |
### 6.2. Структура JSON-записи
```json
{
"drone_img_dir": "drone/images",
"drone_img_name": "400_0001_0000022427.png",
"drone_loc_x_y": [1268.6, 6326.8],
"sate_img_dir": "satellite",
"pair_pos_sate_img_list": ["5_0_3_18.png"],
"pair_pos_sate_weight_list": [0.521],
"pair_pos_sate_loc_x_y_list": [[1209.6, 6393.6]],
"pair_pos_semipos_sate_img_list": ["4_0_1_9.png", "5_0_3_17.png", ...],
"pair_pos_semipos_sate_weight_list": [0.174, 0.146, ...],
"pair_pos_semipos_sate_loc_x_y_list": [[1036.8, 6566.4], ...],
"drone_metadata": {
"height": 356.92,
"drone_roll": -3.66,
"drone_pitch": -4.81,
"drone_yaw": -86.0,
"cam_roll": -93.66,
"cam_pitch": -4.81,
"cam_yaw": -86.0
}
}
```
### 6.3. Типы аннотаций
| Тип аннотации | Наличие | Комментарий |
|---------------|---------|-------------|
| Координаты drone (x, y) | **Да** | В пространстве карты (zoom 7) |
| Высота дрона (altitude) | **Да** | В метрах, 6 номинальных уровней |
| Heading angle (yaw) | **Да** | Произвольные углы -180°...+180° |
| Pitch / Roll | **Да** | Drone и Camera отдельно |
| Positive pairs | **Да** | С весами IoU overlap |
| Semi-positive pairs | **Да** | Множественные, с весами |
| Координаты тайлов (x, y) | **Да** | Центры тайлов в пространстве карты |
| GPS-координаты | **Нет** | Синтетическая карта |
| Depth maps | Нет | — (но сгенерированы в aug) |
| Segmentation masks | Нет | — (но сгенерированы в aug) |
| Bounding boxes | Нет | — |
| Временная метка | Нет | — |
---
## 7. РАСПРЕДЕЛЕНИЕ POSITIVE / SEMI-POSITIVE ПАР
### 7.1. Positive matches (точные)
| Positives на query | Кол-во | Доля |
|-------------------|--------|------|
| 0 | 16 297 | 48.3% |
| 1 | 16 505 | 49.0% |
| 2 | 906 | 2.7% |
**~48% query не имеют точного positive** — это ключевая особенность датасета. Авторы моделируют реалистичный сценарий, когда дрон-изображение может не иметь точно совпадающего спутникового тайла.
### 7.2. Semi-positive matches (частичное перекрытие)
| Semi-positives | Кол-во | Доля |
|----------------|--------|------|
| 1 | 93 | 0.3% |
| 2 | 1 538 | 4.6% |
| 3 | 7 301 | 21.7% |
| 4 | 7 290 | 21.6% |
| 5 | 8 135 | 24.1% |
| 6 | 6 685 | 19.8% |
| 7 | 2 168 | 6.4% |
| 8 | 369 | 1.1% |
| 910 | 129 | 0.4% |
**Среднее число semi-positives на query:** 4.58
В отличие от UAV-GeoLoc (где ~94% query имеют ровно 4 positive), здесь распределение гораздо более **вариативное** (от 1 до 10 semi-positives).
### 7.3. Уникальные спутниковые тайлы в парах
Из 14 640 спутниковых тайлов, в positive/semi-positive парах задействовано **4 266** уникальных тайлов (29.1%).
Распределение по зумам среди используемых:
| Зум | Тайлов в парах | Из общего числа |
|-----|---------------|-----------------|
| 4 | 83 | 47.2% |
| 5 | 279 | 39.6% |
| 6 | 886 | 32.2% |
| 7 | 3 018 | 27.4% |
---
## 8. АУГМЕНТИРОВАННЫЙ НАБОР (GTA-UAV-LR-aug)
**Путь:** `/media/servml/SSD_2_2TB/datasets/cvgl_datasets/GTA-UAV-LR-aug/`
**Объём:** ~71 GB
### 8.1. Сгенерированные модальности
| Модальность | Модель | Drone | Satellite | Итого |
|-------------|--------|-------|-----------|-------|
| Depth | DA3-LARGE-1.1 | 33 763 | 14 640 | 48 403 |
| CHM (Canopy Height) | DINOv3-ViTL16-CHMv2 | 33 763 | 14 640 | 48 403 |
| Edge | Sobel from depth (CPU) | 33 763 | 14 640 | 48 403 |
| Segmentation | SegEarth-OV3 | 33 763 | 14 640 | 48 403 |
### 8.2. Параметры пайплайна
| Параметр | Значение |
|----------|----------|
| Версия пайплайна | 4.0.0-dir-layout |
| Размер DB-изображений | 256 px |
| Размер query-изображений | 512 px |
| Профиль GPU | RTX 4090 |
| Сохранение safetensors | Да |
| Дата генерации | 2026-04-19 |
### 8.3. Классы сегментации (17 промптов)
background, building, road, vegetation, water, sand and gravel ground, rocky terrain, farmland, railway, parking lot, sidewalk, bare soil and plowed field, roof and rooftop, sports field and playground, muddy ground and wetland, embankment and levee, swimming pool
### 8.4. Дополнительные форматы
| Директория | Содержание |
|-----------|-----------|
| `npy/` | Предвычисленные NumPy-массивы (chm, depth, edge, segm) |
| `safetensors/` | Эмбеддинги (drone, satellite) |
---
## 9. СРАВНЕНИЕ С UAV-GeoLoc И UAV-VisLoc
| Параметр | GTA-UAV (LR) | UAV-GeoLoc | UAV-VisLoc |
|----------|-------------|-----------|-----------|
| Тип данных | **Синтетика** (GTA V) | **Синтетика** (Google Earth Studio) | **Реальные** БПЛА |
| Drone-изображений | 33 763 | 652 744 | 6 774 |
| DB-изображений | 14 640 | 274 683 | 0 (нужно нарезать) |
| Всего изображений | 48 403 | 927 427 | 6 774 + 11 карт |
| Разрешение drone | **512x384** | 512x512 | 3976x2652 / 3000x2000 |
| Разрешение DB | **256x256** | 100x100 1000x1000 | N/A (целые карты) |
| Высоты полёта | 25988 м (6 номинальных) | 100, 125, 150 м | 4052572 м |
| Heading (yaw) | Произвольные (361 значение) | 8 × 45° | Произвольные |
| Регионы | 1 (Лос-Сантос, GTA V) | 372 сцены, 11 стран | 11 маршрутов, 7 провинций Китая |
| Сцен/маршрутов | 1 непрерывная карта | 372 | 11 |
| Площадь покрытия | 81.3 км² | Варьируется | Варьируется |
| Positive pairs | Да (с весами IoU) | Да (positive.json) | Нет (нужно по GPS) |
| Semi-positive pairs | Да (с весами IoU) | Да (semi_positive.json) | Нет |
| % query без positive | **48.3%** | ~1.2% | — |
| Avg semi-positives | 4.58 | ~2.83 | — |
| Split протоколы | Same-area + Cross-area | Terrain / Country / All | По изображениям (~75/25) |
| Мультимасштабность DB | **Да** (4 зум-уровня) | Нет (фиксированный размер) | Нет |
| Temporal gap | **Нет** (одновременно) | Нет | 25 лет |
| Лицензия | Apache 2.0 | CC BY-NC 4.0 | Не указана |
| Объём на диске | ~26 GB (LR) | ~181 GB | ~16.4 GB |
### Ключевые отличия GTA-UAV:
1. **Непрерывная территория** — одна большая карта 81.3 км², а не набор дискретных сцен. Это позволяет моделировать реальный сценарий навигации.
2. **Мультимасштабные тайлы** — 4 уровня зума (47) vs единый размер кропов в UAV-GeoLoc.
3. **Частичные совпадения** — 48% query не имеют точного positive, что моделирует реалистичный сценарий, когда дрон находится между тайлами. Используются **веса IoU** вместо бинарных меток.
4. **Широкий диапазон высот** — 6 номинальных уровней (100600 м) vs 3 уровня (100150 м) в UAV-GeoLoc.
5. **Произвольные углы** — 361 уникальное значение yaw vs 8 дискретных (шаг 45°) в UAV-GeoLoc.
6. **Два протокола оценки** — same-area (проще) и cross-area (реалистичнее) vs terrain/country/all splits в UAV-GeoLoc.
---
## 10. ПОЛНАЯ СТРУКТУРА ДАННЫХ
```
GTA-UAV-LR/ # ~26 GB
├── README.md # Описание датасета
├── drone/
│ └── images/
│ ├── 100_0001_0000000000.png # 512x384
│ ├── 100_0001_0000000001.png
│ ├── ...
│ ├── 200_0001_XXXXXXXXXX.png
│ ├── ...
│ └── 600_0001_XXXXXXXXXX.png # 33 763 файлов
├── satellite/
│ ├── 4_0_0_0.png # 256x256, zoom 4
│ ├── 4_0_0_1.png
│ ├── ... # 176 тайлов zoom 4
│ ├── 5_0_0_0.png # 704 тайлов zoom 5
│ ├── ...
│ ├── 6_0_0_0.png # 2 752 тайлов zoom 6
│ ├── ...
│ ├── 7_0_0_0.png # 11 008 тайлов zoom 7
│ └── ... # 14 640 файлов итого
├── same-area-drone2sate-train.json # 26 964 записей
├── same-area-drone2sate-test.json # 6 744 записей
├── cross-area-drone2sate-train.json # 15 693 записей
├── cross-area-drone2sate-test.json # 18 015 записей
├── cross-area-drone2sate-train_drone_meta.csv # TSV: img, height, yaw, roll, pitch
├── cross-area-drone2sate-test_drone_meta.csv
├── cross-area-drone2sate-train_drone_meta_new.csv # Обновлённые метаданные
├── cross-area-drone2sate-test_drone_meta_new.csv
├── cross-area-drone2sate-train_class_angle.csv # CSV: img, angle_class (0-3)
├── cross-area-drone2sate-test_class_angle.csv
└── back_csv/ # Обратные CSV для cross-area
├── cross-area-drone2sate-train_class_angle.csv
└── cross-area-drone2sate-test_class_angle.csv
GTA-UAV-LR-aug/ # ~71 GB (аугментации)
├── manifest.json # Метаданные пайплайна
├── pipeline.log
├── depth/ # DA3-LARGE-1.1
│ ├── drone/images/ (33 763 файлов)
│ └── satellite/ (14 640 файлов)
├── chm/ # DINOv3-ViTL16-CHMv2
│ ├── drone/images/ (33 763 файлов)
│ └── satellite/ (14 640 файлов)
├── edge/ # Sobel from depth
│ ├── drone/images/ (33 763 файлов)
│ └── satellite/ (14 640 файлов)
├── segm/ # SegEarth-OV3, 17 классов
│ ├── drone/images/ (33 763 файлов)
│ └── satellite/ (14 640 файлов)
├── npy/ # NumPy массивы
│ ├── chm/
│ ├── depth/
│ ├── edge/
│ └── segm/
└── safetensors/ # Предвычисленные эмбеддинги
├── drone/
└── satellite/
```