Анализ классов сегментации для UAV-GeoLoc
Обзор датасета
- 392 локации, 76 кадров каждая (height100_rot90) = ~29 800 изображений
- 11 стран (Country/): Australia, Brazil, English, French, German, Italy, Japan, Korea, Poland, Spain, USA
- 27 типов terrain (Terrain/): Basin, Calcification, Danxia, Delta, Desert, Fall, Farm, Finca, Flowers, Glacier, Gorge, Hill, Hylare, Island, Karst, Lakes-ignore, Mountain, Oasis, Pasture, Plain, Plateau, Prairie, Snow, StoneForest, Terrace, Volcano, Wetland
Проблема с исходной конфигурацией (5 классов)
Исходные промпты:
При 5 классах 60-90% площади terrain-кадров и 30-50% городских кадров уходит в background, теряя информативные объекты (ж/д пути, грунт, скалы и т.д.).
Инвентаризация объектов
URBAN (Country/) — 11 стран, ~300 локаций
| Объект |
Где встречается |
Частота |
| Здания (крыши: черепица, плоские, металл, стекло) |
Все города |
Доминирует |
| Дорога / асфальт |
Все города |
Очень высокая |
| Растительность (деревья, кустарники) |
Все города |
Высокая |
| Тротуар / пешеходная зона / набережная |
Все города, особенно Европа |
Высокая |
| Парковка |
Мюнхен, SF, Варшава, Аделаида |
Средняя |
| Железная дорога (рельсы, балласт, стрелки) |
Мюнхен, Сидней, Варшава |
Средняя |
| Вода (река, канал, море) |
Париж/Сена, Венеция, Киото, Бусан, Копакабана |
Средняя |
| Мост / эстакада |
Сидней, Париж |
Низкая-средняя |
| Внутренний двор |
Все европейские города |
Средняя |
| Открытый грунт / гравий |
Мюнхен, Варшава |
Средняя |
| Газон / парк |
Лондон/Westminster, Rio |
Средняя |
| Спортивная площадка |
Мюнхен |
Низкая |
| Пляж / песок |
Копакабана, Бусан/Gwangalli |
Низкая |
| Дорожная разметка (зебры, полосы) |
Все города |
Высокая, но мелкая |
| Солнечные панели |
SF, Мюнхен |
Низкая |
TERRAIN — 27 типов
| Terrain |
Что на кадрах |
Ключевые поверхности |
| Desert (Gobi) |
Песок, эрозионные борозды, скалы |
bare ground, sand, rock |
| Farm (Bohemian) |
Густой лес, кроны деревьев |
vegetation |
| Glacier (Athabasca) |
Лёд, снег, трещины |
snow, ice, water |
| Island (Aldabra) |
Бирюзовая вода, мелководье |
water |
| Wetland (Danube) |
Болотистая почва, кустарник |
vegetation, bare ground, water |
| Mountain (Andes) |
Песок/пыль, следы троп |
bare ground, rock |
| Delta (Congo) |
Лавовые/скальные поверхности |
rock, bare ground |
| Volcano (Kilauea) |
Тёмная лава, скальные породы |
rock, bare ground |
| Snow (Aconcagua) |
Белый снег, точки камней |
snow |
| Danxia (GrandCanyon) |
Красная порода + растительность |
rock, vegetation |
| Oasis |
Саванна, кустарники на песке |
bare ground, vegetation |
| Finca (Althorp) |
Хвойный лес, плантации |
vegetation |
| Terrace (Banaway) |
Сельхоз террасы, тропы |
farmland, bare ground |
| Plain (Alberta) |
Луг, речная пойма, грунтовая дорога |
grassland, bare ground, road |
| Plateau |
Кустарник на каменистой почве |
vegetation, rock |
| Prairie (Etosha) |
Саванна, точки кустов на песке |
bare ground, vegetation |
| Gorge (Antelope) |
Каньон, красные скалы |
rock, bare ground |
| Karst (Mammoth) |
Скальные плиты, трещины |
rock |
| Calcification (ElTatio) |
Гейзерные поля, песчаная порода |
bare ground, rock |
| Flowers (BlueHotSpring) |
Горячие источники, минеральные отложения |
rock, water |
| Hylare (Amazon) |
Густой тропический лес |
vegetation |
| StoneForest (GrandCanyon) |
Каньонные скалы + кустарник |
rock, vegetation |
| Hill (Sedona) |
Красные скалы + кустарник |
rock, vegetation |
| Basin |
— |
— |
| Fall |
— |
— |
| Pasture |
— |
— |
| Lakes-ignore |
— |
— |
Финальная конфигурация: 11 классов
Эволюция конфигурации
- v1 (исходная): 5 классов, threshold=0.3 — слишком много background
- v2 (первая итерация): 12 классов (
bare ground, rock, snow, farmland, railway, parking lot, sidewalk), threshold=0.3 — terrain по-прежнему плохо
- v3 (вторая итерация): 12 классов с переименованными промптами (
sand and gravel ground, rocky terrain, snow and ice), threshold=0.15 — значительное улучшение terrain
- v4 (финальная): 11 классов — убран
snow and ice (SegEarth-OV3 не различает снег/лёд от воды при виде сверху), threshold=0.15
Обоснование каждого нового класса
| Класс |
Промпт |
Обоснование |
Покрытие |
| bare ground |
sand and gravel ground |
Без него пустыня, гейзеры, плато, прерия, пляж уходят в background |
Критичен для terrain |
| rock |
rocky terrain |
Вулканы, каньоны, карст — уникальная текстура |
Критичен для terrain |
| farmland |
farmland |
Террасы, поля — геометрически уникальны для matching |
Важен для Terrace/Plain/Farm |
| railway |
railway |
Ж/д пути — линейный ориентир с уникальной топологией |
Важен для городов |
| parking lot |
parking lot |
Чёткая прямоугольная геометрия, видна и с дрона и со спутника |
Средний для городов |
| sidewalk |
sidewalk |
Структурные границы в городах, набережные |
Средний для городов |
Отброшенные классы и причины
| Класс |
Причина отказа |
snow and ice |
SegEarth-OV3 классифицирует лёд/снег как water при виде сверху — промпт не работает. Проверено на Glacier (Athabasca) |
beach / sand |
Покрыт sand and gravel ground |
bridge |
Слишком редко, перекрывается с road |
grassland / lawn |
Перекрывается с vegetation |
river / sea / lake |
Всё покрыто единым water |
sports field |
Слишком редко на полном датасете |
courtyard |
Семантически = bare ground + building |
fence |
Слишком тонкий объект для SegEarth на 1008px |
road marking |
Слишком мелкий, лучше оставить как часть road |
solar panel |
Редко, мелко, часть крыши |
Результаты тестирования на 10 изображениях
Тестовые изображения: 6 городских (Munich, Paris, Venice, New York, Sydney, Busan) + 4 terrain (Desert, Glacier, Volcano, Danxia).
Городские сцены
| Локация |
Обнаруженные классы |
Качество |
| Munich (ж/д пути) |
railway, sand/gravel, vegetation, road, water |
Отлично — ж/д = фиолетовый, балласт = бежевый |
| Paris (набережная Сены) |
road, vegetation, water, sidewalk, parking lot |
Отлично — река, тротуар, дорога разделены |
| Venice (старый город) |
building, road, water, parking lot |
Хорошо — каналы появились как water |
| New York (Manhattan) |
building, road, vegetation, parking lot, sidewalk |
Отлично — все городские классы |
| Sydney (эстакада) |
road, building, vegetation, parking lot, sidewalk |
Хорошо |
| Busan (пляж) |
water, sand and gravel ground |
Отлично — пляж = бежевый, море = синий |
Terrain
| Локация |
Обнаруженные классы |
Качество |
| Desert (Gobi) |
road, rocky terrain |
Приемлемо — пустыня = road (серый близок к песку) |
| Glacier (Athabasca) |
water |
Ограничение модели — лёд = water |
| Volcano (Kilauea) |
rocky terrain |
Отлично — было 100% background, стало 100% rocky terrain |
| Danxia (GrandCanyon) |
vegetation |
Частично — кусты определены, скалы в background |
Известные ограничения SegEarth-OV3
- Ледники/снег классифицируются как
water — визуально неразличимы сверху для модели
- Красные скалы (Danxia) плохо определяются как
rocky terrain
- Пустынный грунт может путаться с
road
Палитра цветов
| ID |
Класс |
RGB |
Цвет |
| 0 |
background |
(0, 0, 0) |
Black |
| 1 |
building |
(220, 40, 40) |
Red |
| 2 |
road |
(160, 160, 160) |
Gray |
| 3 |
vegetation |
(30, 180, 30) |
Green |
| 4 |
water |
(30, 120, 220) |
Blue |
| 5 |
sand and gravel ground |
(180, 140, 80) |
Tan |
| 6 |
rocky terrain |
(120, 100, 80) |
Brown |
| 7 |
farmland |
(200, 200, 50) |
Yellow |
| 8 |
railway |
(100, 60, 120) |
Purple |
| 9 |
parking lot |
(255, 165, 0) |
Orange |
| 10 |
sidewalk |
(200, 200, 200) |
Light gray |
Unified 17 классов для transfer learning
UAV_VisLoc и GTA-UAV используют единый набор 17 классов (scripts/seg_classes.py). Это обеспечивает совместимость class IDs при transfer learning (pretrain GTA-UAV → fine-tune UAV_VisLoc). Не каждый датасет содержит пиксели каждого класса — класс с 0 пикселей просто не даёт вклад в loss.
Источник единой конфигурации: scripts/seg_classes.py:UNIFIED_PROMPTS.
Конфигурация для UAV_VisLoc: 17 классов (unified)
UAV_VisLoc_processed — другой датасет (81K images, 11 сцен, DB + drone, 256x256). Анализ сегментации на scene 01 (2496 images) выявил 29% background — значительно больше, чем у World-UAV после настройки.
Анализ проблемных зон
На 2496 изображениях scene 01 (UAV_VisLoc) были обнаружены 3 систематических паттерна ложного background:
| Паттерн |
Примеры |
RGB характеристика |
Текущее покрытие (11 кл.) |
| Распаханные поля |
crop_0_11, crop_0_58, crop_10_49 |
Однородная коричнево-серая текстура (R≈140, G≈120, B≈100) |
0% — ни farmland, ни sand/gravel не срабатывают |
| Тёмные/текстурированные крыши |
crop_0_97, crop_10_13 |
Тёмные поверхности с солнечными панелями, промышленные объекты |
~50% — building ловит стены, но не крыши |
| Спортплощадки, теплицы |
crop_10_5 |
Яркие прямоугольные объекты с уникальной текстурой |
0% — нет подходящего класса |
| Болотистый грунт / дамбы |
crop_0_0, crop_0_1 |
Тёмно-зелёно-серый (R≈101, G≈103, B≈97), между водоёмами |
0% — слишком тёмный для sand/gravel |
| Экстремально тёмная вода |
crop_0_4, crop_0_6 |
Почти чёрный (R<30, G<30, B<30) |
0% — SegEarth не видит воду при очень низкой яркости |
Количественный анализ (scene 01, 11 классов → 16 классов)
| Метрика |
11 классов |
16 классов (ожид.) |
| background % |
29.0% |
~10-15% |
| Изображений >50% bg |
475 / 2496 (19%) |
~100-150 |
| 100% background |
~50 |
~20-30 (экстремально тёмные) |
5 добавленных классов и обоснование
| ID |
Промпт |
Обоснование |
Что покрывает |
| 11 |
bare soil and plowed field |
Главная потеря (~15-20% пикселей bg). farmland ловит только зелёные поля с посевами. Распаханная земля (коричневая, без растительности) — отдельный семантический класс. В UAV_VisLoc много сельских сцен с обработанными полями без всходов. |
Распаханные поля, голая земля, стройплощадки |
| 12 |
roof and rooftop |
building обучен на стены/фасады. Крыши сверху (вид с БПЛА/спутника) — другая текстура: черепица, металл, солнечные панели, плоские бетонные крыши. SegEarth не уверен в building для тёмных крыш → background. |
Крыши всех типов, солнечные панели на крышах |
| 13 |
sports field and playground |
Спортплощадки имеют уникальную геометрию (прямоугольники, разметка, цветные покрытия), не покрываемую ни одним из базовых классов. Для CVGL — сильный localization landmark. |
Теннисные корты, футбольные поля, баскетбольные площадки |
| 14 |
muddy ground and wetland |
Болотистая земля между водоёмами (дамбы, берега, русла). Слишком тёмная для sand/gravel, слишком сухая для water. Специфична для UAV_VisLoc (прибрежные сцены). |
Мокрый грунт, заболоченные участки, дамбы |
| 15 |
embankment and levee |
Насыпные сооружения (дамбы, набережные, обваловки) — линейные структуры из грунта вдоль водоёмов. Геометрически уникальны для matching. |
Земляные дамбы, насыпи, обваловки каналов |
Почему threshold=0.1 (а не 0.15 как в World-UAV)
UAV_VisLoc содержит больше экстремальных сцен:
- Тёмная вода (почти чёрная) — confidence по
water = 0.12-0.14
- Мокрый грунт — confidence по
bare soil = 0.11-0.13
- При threshold=0.15 эти пиксели уходят в background, при 0.1 — корректно классифицируются
Неустранимый background (~5-10%)
Остаётся background для изображений, где SegEarth-OV3 физически не может сегментировать:
- Почти чёрные кадры (ночная вода, тень) — нет визуальной информации
- Однородные текстуры без семантических признаков
- Это нормально — background здесь семантически корректен
Конфигурация (unified 17 классов)
Расширенная палитра (16 классов)
| ID |
Класс |
RGB |
Цвет |
| 0 |
background |
(0, 0, 0) |
Black |
| 1 |
building |
(220, 40, 40) |
Red |
| 2 |
road |
(160, 160, 160) |
Gray |
| 3 |
vegetation |
(30, 180, 30) |
Green |
| 4 |
water |
(30, 120, 220) |
Blue |
| 5 |
sand and gravel ground |
(180, 140, 80) |
Tan |
| 6 |
rocky terrain |
(120, 100, 80) |
Brown |
| 7 |
farmland |
(200, 200, 50) |
Yellow |
| 8 |
railway |
(100, 60, 120) |
Purple |
| 9 |
parking lot |
(255, 165, 0) |
Orange |
| 10 |
sidewalk |
(200, 200, 200) |
Light gray |
| 11 |
bare soil |
(140, 100, 50) |
Dark tan |
| 12 |
rooftop |
(180, 60, 60) |
Dark red |
| 13 |
sports field |
(50, 200, 150) |
Teal |
| 14 |
muddy/wetland |
(80, 100, 70) |
Olive |
| 15 |
embankment |
(170, 130, 100) |
Sandy brown |
Конфигурация для GTA-UAV-LR: 14 классов
Характеристики датасета
GTA-UAV-LR — синтетический датасет, сгенерированный из игрового движка GTA V (Grand Theft Auto V).
| Параметр |
Значение |
| Drone изображения |
33 763 шт., 512x384 px, RGB PNG |
| Satellite изображения |
14 640 шт., 256x256 px, RGBA PNG |
| Итого |
48 403 изображения |
| Высоты полёта |
100, 200, 300, 400, 500, 600 м |
| Локация |
Карта GTA V (Лос-Сантос и окрестности) |
| Сцены |
Город, пригород, сельская местность, побережье, горы, пустыня |
| Формат аннотаций |
JSON (cross-area, same-area, train/test splits) |
Особенности:
- Satellite RGBA: alpha-канал обозначает границы карты GTA V. Прозрачные пиксели (alpha=0) = за пределами игрового мира. При обработке конвертируется в RGB (прозрачное → чёрный).
- Drone не квадратные: 512x384 → resize в 512x512 (потеря aspect ratio, но это синтетика — не критично).
- Синтетические текстуры: GTA V рендерит реалистичные но не фотореалистичные текстуры. SegEarth-OV3 справляется хорошо — текстуры достаточно близки к реальным для open-vocabulary grounding.
- Бассейны — характерная особенность пригородов GTA V (Vinewood Hills, Rockford Hills). Яркий бирюзовый цвет, уникальная геометрия — сильный localization cue для CVGL.
Выбор 14 классов
11 базовых классов (совпадают с World-UAV) + 3 специфичных:
| ID |
Промпт |
Обоснование |
| 11 |
bare soil and plowed field |
GTA V содержит много пустырей, стройплощадок, грунтовых дорог в пригородах (Sandy Shores, Grapeseed). Без этого класса ~10-15% уходит в background. |
| 12 |
roof and rooftop |
Плоские крыши коммерческих зданий, вертолётные площадки (Maze Bank Tower). GTA V рендерит крыши с детализированными текстурами (кондиционеры, антенны), которые building не ловит сверху. |
| 13 |
swimming pool |
Бассейны во дворах вилл — один из самых характерных визуальных элементов пригородов GTA V. Яркий бирюзовый цвет на сером/зелёном фоне — сильнейший landmark для cross-view matching. water не различает бассейн от океана. |
Почему не добавлены
| Класс |
Причина |
highway |
Покрыт road — SegEarth не различает шоссе и обычную дорогу |
beach |
Покрыт sand and gravel ground |
mountain |
Покрыт rocky terrain + vegetation |
sports field |
Есть в GTA V, но редко виден сверху (стадионы закрыты) |
muddy ground |
Не актуален для GTA V (нет болот в Лос-Сантосе) |
Конфигурация (unified 17 классов)
Оценка влияния на производительность
- Инференс: ~1.8–2.2x медленнее (11 vs 5 text prompts)
- На 973K изображений: дополнительные ~8–12 часов на RTX 4090
- Background на terrain: сокращение с 60–90% до ~10–20%
- Background на urban: сокращение с 30–50% до ~5–15%
Методология анализа
Просмотрено ~50 кадров с равномерной выборкой:
- По 1–3 кадра из каждой страны (разные города/районы)
- По 1 кадру из каждого типа terrain (первая доступная локация)
- Кадры выбирались из середины траектории (frame 30) для репрезентативности
- Дополнительно просмотрены кадры из начала/конца траектории для Мюнхена (полный обзор 76 кадров)
- Тестирование проведено в 3 итерации с подбором формулировок промптов и порога confidence