split into chapters
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
2.3.1 Применение архитектуры сиамских близнецов для сопоставления кадров из различных доменов
|
||||
|
||||
Абстрактно, сиамские близнецы представляют собой следующую архитектуру (рисунок 1):
|
||||
На вход подаются два или более объекта с одинаковой сигнатурой.
|
||||
Каждая входная информация проходит одинаковый пайплайн обработки (получение признаков при помощи CNN).
|
||||
Полученные наборы признаков объединяются в вектор (1\times M).
|
||||
Голова модели представляет собой полносвязную нейронную сеть.
|
||||
|
||||
|
||||
|
||||
Рисунок 1 – Абстрактная архитектура сиамских близнецов
|
||||
|
||||
В качестве входной информации выступят два кадра: текущий снимок видеокамеры и эталонный снимок, для которого точно известна позиция. Выходная информация будет представлять собой вещественное число от 0 до 1 – степень схожести двух картинок (Рисунок 2).
|
||||
|
||||
|
||||
|
||||
Рисунок 2 – Интерфейс алгоритма (входные и выходные данные)
|
||||
|
||||
На базе такой архитектуры реализована модель «SiaN-Similarity» с использованием фреймворка PyTorch и включает общий скелет на базе предобученной модели «ResNet18» и голову сравнения (рисунок 3). На вход подаются два изображения размером \left(B,3,256,256\right), где B – размер пакета данных (batch). Эти изображения представляют собой текущий кадр («Image 1») и кандидат-эталон «Image 2». Извлеченные при помощи «ResNet18» признаки f_1 и f_2 объединяются в вектор [f_1,f_2,f1–f2,f1*f2] размером \left(B,2048\right), так как каждый из векторов f_1 и f_2 имеет размер (B,\ 256). Все это проходит через многослойный перцептрон (MLP), где выход – вероятность схожести картинок (рисунок 3).
|
||||
Обучение модели проводилось на собственном датасете «ya_go_maps» - собственный набор, состоящий из 327 пар изображений разных доменов (261 тренировочных и 66 валидационных) с бинарными метками (одинаковы или разный домен). Датасет сформирован на основе снимков из различных онлайн-карт («Яндекс.Карты» и «Google Maps»). Для обучения использовалась функция потерь Binary Cross Entropy Loss (BCELoss), которая идеально подходит для бинарной классификации схожести изображений:
|
||||
l_n=-\left(y_nlog\left(x_n\right)+\left(1-y_n\right)log\left(1-x_n\right)\right),
|
||||
где x_n – предсказанная вероятность, y_n – истинная метка (1 для одинаковых пар снимков, 0 – для разных). Средняя потеря по батчу вычисляется как
|
||||
\frac{1}{N}\sum_{n}l_n
|
||||
BCELoss выбрана из-за совместимости с сигмоидным выходом и способности эффективно различать градиенты для вероятностей, что отлично подходит для задач сопоставления изображений с доменным сдвигом.
|
||||
|
||||
|
||||
Рисунок 3 – Архитектура модели «SiaN-Similarity»
|
||||
|
||||
Платформа обучения – «Kaggle» с видеокартой «Tesla P100». Весь процесс обучения занял 24 минуты и остановился на 56 эпохе (ранняя остановка). Train Loss снизилась до 0.27 и монотонно убывала на протяжении всех эпох (за небольшими исключениями. После ~30 эпохи модель начала переобучаться и сработала ранняя остановка (early stopping). Лучшая Val Loss – 0.2929 (эпоха 36) при Val Accuracy 0.90. Однако лучшая точность достигнута на последней эпохе – 0.9630, правда функция потерь в том случае слишком высокая и слишком низкий recall, что критично для дальних полетов, ведь высок риск еще большего накопления ошибок.
|
||||
|
||||
|
||||
|
||||
Рисунок 4 – Графики обучения «SiaN-Similiarity»
|
||||
|
||||
Модель демонстрирует консервативный характер: высокий recall минимизирует пропуски истинных совпадений эталонных кадров (false negatives), что критично для коррекции траектории БПЛА. Низкая объясняется доменным сдвигом и малым размером датасета – модель склонна классифицировать неоднозначные пары как одинаковые. Это приемлемо для навигации, где false positives приводят лишь к проверке дополнительных кандидатов, а false negatives могут вызвать потерю позиции (рисунок 5).
|
||||
|
||||
|
||||
|
||||
Рисунок 5 – Матрица ошибок «SiaN-Similarity»
|
||||
|
||||
|
||||
На рисунке 6 и 7 показаны примеры верных предсказании модели и неверных соответственно.
|
||||
|
||||
|
||||
|
||||
Рисунок 6 – Верно угаданные сэмплы «SiaN-Similarity»
|
||||
|
||||
|
||||
|
||||
Рисунок 7 – Неверно угаданные сэмплы «SiaN-Similiarity»
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
2.3.2 Применение архитектуры сиамских близнецов для вычисления матрицы гомографии между двумя кадрами
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
2.3.3 Применение архитектуры сиамских близнецов для вычисления матрицы гомографии между двумя кадрами
|
||||
|
||||
|
||||
5
dissertation/chapter_2/2.3_deep_learning/2.3_overview.md
Normal file
5
dissertation/chapter_2/2.3_deep_learning/2.3_overview.md
Normal file
@@ -0,0 +1,5 @@
|
||||
2.3 Методы глубого обучения
|
||||
|
||||
Основным минусом базового решения является то, что любая его реализация предполагает накопление погрешности. В таком случае корректировка позиции может стать хорошим дополнением для снижения дрейфа.
|
||||
Одной из проблем такого подхода является поиск необходимого эталонного снимка. Снимки могут совершаться в разное время суток, в разных годах, при неодинаковых условиях (ветер, туман, погода, сезон года), но иметь какие-то общие схожие паттерны. Классические способы решения сопоставления таких кадров работают крайне плохо, однако модели на основе нейронных сетей справляются с этой задачей куда лучше.
|
||||
|
||||
8
dissertation/chapter_2/2.3_deep_learning/readme.md
Normal file
8
dissertation/chapter_2/2.3_deep_learning/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# 2.3 Эталонные снимки
|
||||
|
||||
## Содержание раздела
|
||||
|
||||
| Подраздел | Название | Файл |
|
||||
|-----------|----------|------|
|
||||
| 2.3.1 | Применение архитектуры сиамских близнецов для сопоставления кадров из различных доменов | 2.3.1_siamese_match.md |
|
||||
| 2.3.2 | Применение архитектуры сиамских близнецов для вычисления матрицы гомографии | 2.3.2_siamese_homography.md |
|
||||
Reference in New Issue
Block a user