diff --git a/CLAUDE.md b/CLAUDE.md index f0207cc..9ab2543 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -7,8 +7,9 @@ - **Статус:** выполнен, данные готовы (2026-04-17) ## Результаты обработки -- Drone: 6,744 изображений resized 256x256 -- Satellite кропов: 74,807 (512x512 -> 256x256) +- Drone: 6,744 изображений resized 512x512 +- Satellite кропов: 74,807 (512x512, без downscale) +- Размер на диске: 25 GB - Train queries: 5,060 / Test queries: 1,684 - Gallery: 74,807 кропов (одинаковая для train и test) - Median distance drone->crop: 25.9m, P99: 45.7m @@ -36,5 +37,11 @@ - 6 drone в маршруте 06 (06_0093-06_0098) за пределами спутниковой карты (distance >1000m) - Нет val split (только train/test как в оригинальном UAV-VisLoc) +## Разрешение +- Drone: 512x512 (resize из 3976x2652 / 3000x2000) +- Satellite crops: 512x512 (нарезка без downscale, сохраняют полное разрешение) +- Resize до 224/256 для модели — в dataloader, не на диске +- Разрешение 512 выбрано для downstream задач: сегментация, depth, normals, canopy height + ## GSD спутника ~0.30 м/px (единый zoom level). Вариации GSD по долготе (0.23-0.27 м/px) — косинусный эффект широты, не разная высота съёмки. diff --git a/README.md b/README.md index 1d3db57..f4fa4c7 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ compatible with UAV-GeoLoc format. ``` UAV_VisLoc_dataset/ UAV_VisLoc_processed/ ├── 01/ ├── 01/ -│ ├── drone/*.JPG (3976x2652) ---> │ ├── drone/*.JPG (256x256) -│ ├── satellite01.tif ---> │ ├── DB/img/crop_X_Y.png (256x256) +│ ├── drone/*.JPG (3976x2652) ---> │ ├── drone/*.JPG (512x512) +│ ├── satellite01.tif ---> │ ├── DB/img/crop_X_Y.png (512x512) │ └── 01.csv │ ├── DB/db_postion.txt │ │ ├── positive.json ├── ... │ └── semi_positive.json @@ -43,9 +43,9 @@ python scripts/prepare_dataset.py --src ... --dst ... --routes 01 02 03 ## Steps -1. **Resize drone images** -> 256x256 JPEG (quality=95) +1. **Resize drone images** -> 512x512 JPEG (quality=95) 2. **Stitch satellite tiles** for route 09 (4 tiles -> 44800x33280) -3. **Crop satellite maps** -> 512x512 patches, stride 256 (50% overlap), resize -> 256x256 PNG +3. **Crop satellite maps** -> 512x512 patches, stride 256 (50% overlap), saved as 512x512 PNG 4. **Compute GPS** for each crop center from satellite bbox + grid position 5. **Match drone -> crops** via vectorized haversine (positive = closest, semi-positive = +-1 in grid) 6. **Write metadata**: positive.json, semi_positive.json, db_postion.txt (per route) @@ -107,6 +107,16 @@ Columns: name, longitude, latitude, scale_lon (deg/px), scale_lat (deg/px). | **Total** | **6,744** | **74,807** | | | Split: 5,060 train / 1,684 test queries. Gallery: 74,807 crops (shared). +Disk size: **25 GB**. + +## Image Resolution + +All images stored at **512x512** on disk: +- Drone: resized from 3976x2652 / 3000x2000 -> 512x512 +- Satellite crops: cut at 512x512 from satellite map, no downscale + +Resolution 512 chosen to support downstream tasks (segmentation, depth, normals, canopy height). +Resize to 224/256 for model input should be done in the dataloader, not on disk. ## GPS Matching Quality diff --git a/scripts/__pycache__/prepare_dataset.cpython-312.pyc b/scripts/__pycache__/prepare_dataset.cpython-312.pyc new file mode 100644 index 0000000..23d07bb Binary files /dev/null and b/scripts/__pycache__/prepare_dataset.cpython-312.pyc differ