Files
caption-test/UAV-VisLoc_Dataset_Analysis.md
pikaliov abb3337f8d Rewrite: GatedFusion architecture + UAV-GeoLoc dataset
Architecture v2:
- Query branch: drone + text -> GatedFusion -> proj -> query_emb
- Gallery branch: satellite -> proj -> gallery_emb
- Single InfoNCE loss (asymmetric 0.6/0.4)
- GatedFusion: learnable gated addition (sigma(alpha)*img + (1-sigma(alpha))*text)
- Baseline mode: gate=1.0 (text ignored)

Dataset:
- UAV-GeoLoc loader with template captions from path metadata
- 27 terrain types with predefined features
- Random positive crop sampling per epoch

Configs: balanced (gate=0.7), baseline (no text), text_heavy (gate=0.3)

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

379 lines
18 KiB
Markdown
Raw Permalink 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.
# АНАЛИЗ ДАТАСЕТА: UAV-VisLoc
**Дата анализа:** 2026-04-17
**Метод:** Эмпирический анализ данных на диске + статья arXiv:2405.11936 + GitHub-репозиторий авторов
**Путь к данным:** `/home/servml/Документы/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 (лето, осень) |
| Временной охват | 20162023 |
### 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 | 4052572 м | 6 127 (90.4%) |
| Fixed-wing | 05, 07, 10 | 3000x2000 | 6882313 м | 647 (9.6%) |
---
## 4. ИСТОЧНИКИ ИЗОБРАЖЕНИЙ
### 4.1. Дроновые виды (query)
| Параметр | Значение |
|----------|----------|
| Платформа | **Реальные БПЛА** (не синтетика!) |
| Тип съёмки | RGB, ground-down view (камера вертикально вниз) |
| Разрешение кадров | 3976x2652 (multi-rotor) / 3000x2000 (fixed-wing) |
| GSD (drone) | 0.10.2 м/пиксель (из README); расчётное: 1597 см/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. Высоты полёта
| Диапазон высот | Маршруты | Тип | Кол-во изображений |
|----------------|----------|-----|-------------------|
| 400410 м | 01, 02 | multi-rotor | 1 888 |
| 460550 м | 03, 04, 08, 09 | multi-rotor | 3 305 |
| 688840 м | 06, 07, 10 | mixed | 518 |
| 23002575 м | 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 (8798%) типичен для аэрофотосъёмки.
---
## 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.10.97 м/px (зависит от высоты) | ~0.5 м/px (синтетика) |
| GSD satellite | 0.3 м/px (Google Earth) | Варьируется |
| Высоты полёта | 4052572 м (реальные) | 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 | 25 лет | Нет (одновременно) |
| Лицензия | Не указана | CC BY-NC 4.0 |
### Ключевые отличия:
1. **Реальные vs синтетические** — UAV-VisLoc содержит реальные фотографии, что даёт реалистичные артефакты (освещение, шум, blur), но меньше контроля
2. **Масштаб** — UAV-GeoLoc на 2 порядка больше по количеству изображений
3. **Пары не предоставлены** — для UAV-VisLoc нужно самостоятельно сопоставить drone GPS с координатами кропов
4. **Вариативность высот** — гораздо шире (4002600 м vs 100150 м)
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
```