52 lines
5.4 KiB
Markdown
52 lines
5.4 KiB
Markdown
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.
|