# АНАЛИЗ ДАТАСЕТА: 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 (лето, осень) |
| Временной охват | 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
```
