Files
autopilot/dissertation/chapter_2/2.4_dataset/2.4_dataset.md
2026-04-01 14:00:38 +03:00

52 lines
5.4 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.
2.4 Датасет
Для обучения и тестирования моделей глубокого обучения, описанных в разделе 2.3, был создан специализированный датасет `ya_go_maps`, состоящий из пар изображений, полученных из двух различных картографических источников: Яндекс.Карт и Google Maps.
\section{Структура датасета}
Каждый элемент датасета представляет собой пару изображений одной и той же географической локации, полученных с различных картографических сервисов. Изображения в паре имеют одинаковое разрешение и именуются по шаблону: `{id}_google.png` и `{id}_yandex.png`, где `id` — порядковый номер пары. Например, изображения `0063_google.png` и `0063_yandex.png` соответствуют одному и тому же участку местности.
\section{Географические координаты и масштаб}
Сбор данных осуществлялся в пределах следующего географического региона:
\begin{itemize}
\item Широта: от 49.134520 до 49.235065
\item Долгота: от 55.767660 до 55.825204
\end{itemize}
Данный регион соответствует территории города Казань. Снимки выполнялись на уровне приближения (zoom) 18, что обеспечивает детализацию, достаточную для распознавания характерных объектов на местности.
\section{Трансформация перспективы}
При полёте беспилотного летательного аппарата камера направлена приблизивно вниз, что существенно отличается от ракурса, под которым пользователь просматривает карту в веб-браузере. Для корректного обучения модели, которая будет применяться в реальных условиях полёта, к исходным снимкам карт применяется аффинное преобразование перспективы. Данная трансформация выполняется с использованием класса `Simulator` (файл `simulator.py`).
После применения преобразования изображения масштабируются до размера `CHUNK_WIDTH / 2` пикселей. Значение константы `CHUNK_WIDTH` определяется в файле `constants.py` и соответствует размеру кадра, с которым работает система технического зрения автопилота.
\section{Формирование датасета}
Процесс генерации датасета реализован в файле `generate_dataset.py` и включает следующие этапы:
\begin{enumerate}
\item Определение географических координат (широта и долгота) путём случайной выборки или перебора точек в пределах заданного диапазона
\item Загрузка снимков с Яндекс.Карт и Google Maps для выбранной локации
\item Применение аффинного преобразования перспективы к обоим снимкам
\item Масштабирование изображений до целевого разрешения
\item Сохранение пары изображений в директорию `dataset_ya_go_maps/`
\end{enumerate}
\section{Применение датасета}
Датасет `ya_go_maps` используется для обучения сиамских нейронных сетей, предназначенных для решения двух задач:
\begin{itemize}
\item Сопоставление изображений из различных доменов (раздел 2.3.1)
\item Вычисление матрицы гомографии между кадрами (раздел 2.3.2)
\end{itemize}
Наличие парных изображений от разных картографических провайдеров позволяет модели научиться находить соответствия между изображениями, полученными в различных условиях визуализации, что критически важно для системы навигации БПЛА.
\section{Доступность}
Датасет доступен в двух версиях: `ya_go_maps_v1.zip` (около 463 МБ) и `ya_go_maps_v2.zip` (около 197 МБ). Версия v2 содержит оптимизированный набор данных, полученный путём перебора географических точек по сетке 20×20.