split into chapters
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
2.1 Постановка задачи возврата БПЛА в точку старта
|
||||
|
||||
В данной работе рассматривается задача автономного возврата беспилотного летательного аппарата в точку старта при отсутствии или потере сигналов спутниковой навигации (GPS/ГЛОНАСС) и любой другой внешней связи. Дрон оснащен:
|
||||
бортовой камерой для получения изображений местности в реальном времени;
|
||||
инерциальной навигационной системой, обеспечивающей измерения угловых скоростей и ускорений;
|
||||
бортовым вычислителем, способным выполнять обработку изображений и управляющие вычисления.
|
||||
В рамках настоящей работы предполагается только наличие бортовой камеры.
|
||||
Исходные данные:
|
||||
Циклический маршрут – последовательность координат точек \{p_0,p_1,\ldots,p_n\}, где p_0=p_n (первая точка совпадает с последней);
|
||||
Эталонная карта местности – изображение или последовательность изображений вдоль траектории маршрута, полученная до начала полета (например, спутниковые снимки или предварительная загрузка участков карты);
|
||||
Видеопоток в реальном времени – последовательности кадров, получаемых бортовой камерой в процессе полета.
|
||||
Задача: разработать алгоритм навигации, который корректирует угол и направление полета таким образом, чтобы пройти через каждую заданную точку маршрута \{p_1,p_2,\ldots,p_{n-1}\}, вернуться в исходную позицию p_o с наименьшей с наименьшей погрешностью в координатах и обеспечить устойчивость к различиям между эталонной картой и реальными изображениями.
|
||||
Формально говоря, цель состоит в минимизации конечной ошибки позиционирования:
|
||||
e_{final}=\left|\left|p_{actual}\left(T\right)-p_0\right|\right|,
|
||||
Где p_{actual}\left(T\right) – фактическое положение БПЛА в момент завершения возврата, p_0 – исходная точка старта.
|
||||
Дополнительным критерием точности может выступить минимизация средней накапливаемой ошибки на каждой точке:
|
||||
s_{final}=\sum_{i=1}^{P}\left|\left|p_{actual}\left(i\right)-p_i\right|\right|,
|
||||
где p_{actual}\left(i\right) – фактическое положение БПЛА при прохождении через точку i, а p_i – положение точки i, P - количество точек
|
||||
|
||||
5
dissertation/chapter_2/2.1_formalization/readme.md
Normal file
5
dissertation/chapter_2/2.1_formalization/readme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# 2.1 Формализация задачи возврата БПЛА в точку старта
|
||||
|
||||
## Содержание раздела
|
||||
|
||||
Описание формализации задачи находится в файле 2.1_formalization.md
|
||||
@@ -0,0 +1,39 @@
|
||||
2.2 Базовое решение задачи
|
||||
|
||||
Обозначим последовательность изображений \{u_i\ |\ i\in[0..N]}, где N – итоговое количество кадров, которое было получено во время всего полета. Пусть
|
||||
I_i\left(x,y\right) – интенсивность пикселя в позиции (y,\ x), где x\ \in[0..W-1] и y\ \in[0..W-1], W – ширина кадра.
|
||||
Матрица H_i – матрица гомографии, которая описывает переход от кадра u_{i-1} к кадру u_i:
|
||||
I_{i-1}\left(x,y\right)=I_i\left(x^\prime,y^\prime\right),
|
||||
t\ast\left(\begin{matrix}x\prime\\y\prime\\1\\\end{matrix}\right)=H_i\times\left(\begin{matrix}x\\y\\1\\\end{matrix}\right)
|
||||
Матрица гомографии (H) описывает проективное между двумя плоскостями и может быть представлена в следующем виде:
|
||||
H=K_1\times R\times T\times{K_2}^{-1},
|
||||
где K_1 и K_2 – матрицы внутренних параметров камеры, R – матрица поворотов, T – матрица трансляции.
|
||||
Матрицы K_1 и K_2 представляют собой матрицы внутренних параметров и обычно равны между собой (различаются центры изображений). Однако в случаях разного разрешения картинок они могут иметь разные параметры. В общем виде такая матрица представляется следующим образом:
|
||||
|
||||
K_i=\left(\begin{matrix}f&\gamma&c_x^i\\0&f&c_y^i\\0&0&1\\\end{matrix}\right),
|
||||
|
||||
Где f – фокусное расстояние в пикселях, c_x и c_y – координаты оптического центра камеры на плоскости изображения, \gamma – коэффициент скоса, описывающий угол наклона пикселей (в рамках симуляции равен 0).
|
||||
Матрицу R можно получить при помощи стандартной функции OpenCV decomposeHomographyMat, также эту матрицу можно вычислить самостоятельно, поскольку первые два столбца матрицы гомографии H инвариантны смещению.
|
||||
Матрица R представляет собой следующий вид:
|
||||
R=R_x\times R_y\times R_z
|
||||
Где R_x,R_y,R_z – матрицы вращения вокруг осей OX,\ OY,\ OZ соответственно.
|
||||
Если известны угол рыскания \psi, тангажа \theta и крена \gamma, то эти матрицы вычисляются следующим образом:
|
||||
|
||||
R_x\left(\gamma\right)=\left(\begin{matrix}1&0&0\\0&cos\left(\gamma\right)&-sin\left(\gamma\right)\\0&sin\left(\gamma\right)&cos\left(\gamma\right)\\\end{matrix}\right),
|
||||
|
||||
R_y\left(\theta\right)=\left(\begin{matrix}cos\left(\theta\right)&0&sin\left(\theta\right)\\0&1&0\\-sin\left(\theta\right)&0&cos\left(\theta\right)\\\end{matrix}\right),
|
||||
|
||||
R_z\left(\psi\right)=\left(\begin{matrix}cos\left(\psi\right)&-sin\left(\psi\right)&0\\sin\left(\psi\right)&cos\left(\psi\right)&0\\0&0&1\\\end{matrix}\right),
|
||||
|
||||
Зная матрицу H,\ K_1, K_2,\ и R, можно получить матрицу T:
|
||||
|
||||
T=R^{-1}\times K_1^{-1}\times H\times K_2
|
||||
л.в.что:T=R-1×K1-1×K1×R×T×K2-1×K2
|
||||
|
||||
Матрица трансляции имеет вид:
|
||||
|
||||
T=\lambda0λxf0λλyf00λz=λ *10xf01yf00z
|
||||
|
||||
Таким образом, можно получить смещение между кадрами, зная матрицы внутренних параметров камеры и матрицу гомографии.
|
||||
Чтобы получить положение БПЛА в момент времени t, достаточно получить матрицу трансляции из произведения всех промежуточных матриц гомографии (обозначим за G_t) на префиксе кадров [0..t]:
|
||||
G_t=\prod_{i=1}^{t}H_i=H_1\times H_2\times\ldots\times H_t
|
||||
5
dissertation/chapter_2/2.2_base_solution/readme.md
Normal file
5
dissertation/chapter_2/2.2_base_solution/readme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# 2.2 Базовое решение задачи
|
||||
|
||||
## Содержание раздела
|
||||
|
||||
Описание базового решения находится в файле 2.2_base_solution.md
|
||||
@@ -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 |
|
||||
7
dissertation/chapter_2/2.4_dataset/2.4_dataset.md
Normal file
7
dissertation/chapter_2/2.4_dataset/2.4_dataset.md
Normal file
@@ -0,0 +1,7 @@
|
||||
2.4 Датасет
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5
dissertation/chapter_2/2.4_dataset/readme.md
Normal file
5
dissertation/chapter_2/2.4_dataset/readme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# 2.4 Датасет
|
||||
|
||||
## Содержание раздела
|
||||
|
||||
Описание датасета находится в файле 2.4_dataset.md
|
||||
2
dissertation/chapter_2/2.5_training/2.5_training.md
Normal file
2
dissertation/chapter_2/2.5_training/2.5_training.md
Normal file
@@ -0,0 +1,2 @@
|
||||
2.5 Обучение моделей глубокого обучения
|
||||
|
||||
5
dissertation/chapter_2/2.5_training/readme.md
Normal file
5
dissertation/chapter_2/2.5_training/readme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# 2.5 Обучение моделей глубокого обучения
|
||||
|
||||
## Содержание раздела
|
||||
|
||||
Описание обучения моделей находится в файле 2.5_training.md
|
||||
@@ -1,131 +0,0 @@
|
||||
|
||||
2.1 Постановка задачи возврата БПЛА в точку старта
|
||||
|
||||
В данной работе рассматривается задача автономного возврата беспилотного летательного аппарата в точку старта при отсутствии или потере сигналов спутниковой навигации (GPS/ГЛОНАСС) и любой другой внешней связи. Дрон оснащен:
|
||||
бортовой камерой для получения изображений местности в реальном времени;
|
||||
инерциальной навигационной системой, обеспечивающей измерения угловых скоростей и ускорений;
|
||||
бортовым вычислителем, способным выполнять обработку изображений и управляющие вычисления.
|
||||
В рамках настоящей работы предполагается только наличие бортовой камеры.
|
||||
Исходные данные:
|
||||
Циклический маршрут – последовательность координат точек \{p_0,p_1,\ldots,p_n\}, где p_0=p_n (первая точка совпадает с последней);
|
||||
Эталонная карта местности – изображение или последовательность изображений вдоль траектории маршрута, полученная до начала полета (например, спутниковые снимки или предварительная загрузка участков карты);
|
||||
Видеопоток в реальном времени – последовательности кадров, получаемых бортовой камерой в процессе полета.
|
||||
Задача: разработать алгоритм навигации, который корректирует угол и направление полета таким образом, чтобы пройти через каждую заданную точку маршрута \{p_1,p_2,\ldots,p_{n-1}\}, вернуться в исходную позицию p_o с наименьшей с наименьшей погрешностью в координатах и обеспечить устойчивость к различиям между эталонной картой и реальными изображениями.
|
||||
Формально говоря, цель состоит в минимизации конечной ошибки позиционирования:
|
||||
e_{final}=\left|\left|p_{actual}\left(T\right)-p_0\right|\right|,
|
||||
Где p_{actual}\left(T\right) – фактическое положение БПЛА в момент завершения возврата, p_0 – исходная точка старта.
|
||||
Дополнительным критерием точности может выступить минимизация средней накапливаемой ошибки на каждой точке:
|
||||
s_{final}=\sum_{i=1}^{P}\left|\left|p_{actual}\left(i\right)-p_i\right|\right|,
|
||||
где p_{actual}\left(i\right) – фактическое положение БПЛА при прохождении через точку i, а p_i – положение точки i, P - количество точек
|
||||
|
||||
2.2 Базовое решение задачи
|
||||
|
||||
Обозначим последовательность изображений \{u_i\ |\ i\in[0..N]}, где N – итоговое количество кадров, которое было получено во время всего полета. Пусть
|
||||
I_i\left(x,y\right) – интенсивность пикселя в позиции (y,\ x), где x\ \in[0..W-1] и y\ \in[0..W-1], W – ширина кадра.
|
||||
Матрица H_i – матрица гомографии, которая описывает переход от кадра u_{i-1} к кадру u_i:
|
||||
I_{i-1}\left(x,y\right)=I_i\left(x^\prime,y^\prime\right),
|
||||
t\ast\left(\begin{matrix}x\prime\\y\prime\\1\\\end{matrix}\right)=H_i\times\left(\begin{matrix}x\\y\\1\\\end{matrix}\right)
|
||||
Матрица гомографии (H) описывает проективное между двумя плоскостями и может быть представлена в следующем виде:
|
||||
H=K_1\times R\times T\times{K_2}^{-1},
|
||||
где K_1 и K_2 – матрицы внутренних параметров камеры, R – матрица поворотов, T – матрица трансляции.
|
||||
Матрицы K_1 и K_2 представляют собой матрицы внутренних параметров и обычно равны между собой (различаются центры изображений). Однако в случаях разного разрешения картинок они могут иметь разные параметры. В общем виде такая матрица представляется следующим образом:
|
||||
|
||||
K_i=\left(\begin{matrix}f&\gamma&c_x^i\\0&f&c_y^i\\0&0&1\\\end{matrix}\right),
|
||||
|
||||
Где f – фокусное расстояние в пикселях, c_x и c_y – координаты оптического центра камеры на плоскости изображения, \gamma – коэффициент скоса, описывающий угол наклона пикселей (в рамках симуляции равен 0).
|
||||
Матрицу R можно получить при помощи стандартной функции OpenCV decomposeHomographyMat, также эту матрицу можно вычислить самостоятельно, поскольку первые два столбца матрицы гомографии H инвариантны смещению.
|
||||
Матрица R представляет собой следующий вид:
|
||||
R=R_x\times R_y\times R_z
|
||||
Где R_x,R_y,R_z – матрицы вращения вокруг осей OX,\ OY,\ OZ соответственно.
|
||||
Если известны угол рыскания \psi, тангажа \theta и крена \gamma, то эти матрицы вычисляются следующим образом:
|
||||
|
||||
R_x\left(\gamma\right)=\left(\begin{matrix}1&0&0\\0&cos\left(\gamma\right)&-sin\left(\gamma\right)\\0&sin\left(\gamma\right)&cos\left(\gamma\right)\\\end{matrix}\right),
|
||||
|
||||
R_y\left(\theta\right)=\left(\begin{matrix}cos\left(\theta\right)&0&sin\left(\theta\right)\\0&1&0\\-sin\left(\theta\right)&0&cos\left(\theta\right)\\\end{matrix}\right),
|
||||
|
||||
R_z\left(\psi\right)=\left(\begin{matrix}cos\left(\psi\right)&-sin\left(\psi\right)&0\\sin\left(\psi\right)&cos\left(\psi\right)&0\\0&0&1\\\end{matrix}\right),
|
||||
|
||||
Зная матрицу H,\ K_1, K_2,\ и R, можно получить матрицу T:
|
||||
|
||||
T=R^{-1}\times K_1^{-1}\times H\times K_2
|
||||
л.в.что:T=R-1×K1-1×K1×R×T×K2-1×K2
|
||||
|
||||
Матрица трансляции имеет вид:
|
||||
|
||||
T=\lambda0λxf0λλyf00λz=λ *10xf01yf00z
|
||||
|
||||
Таким образом, можно получить смещение между кадрами, зная матрицы внутренних параметров камеры и матрицу гомографии.
|
||||
Чтобы получить положение БПЛА в момент времени t, достаточно получить матрицу трансляции из произведения всех промежуточных матриц гомографии (обозначим за G_t) на префиксе кадров [0..t]:
|
||||
G_t=\prod_{i=1}^{t}H_i=H_1\times H_2\times\ldots\times H_t
|
||||
|
||||
2.3 Эталонные снимки
|
||||
|
||||
Основным минусом базового решения является то, что любая его реализация предполагает накопление погрешности. В таком случае корректировка позиции может стать хорошим дополнением для снижения дрейфа.
|
||||
Одной из проблем такого подхода является поиск необходимого эталонного снимка. Снимки могут совершаться в разное время суток, в разных годах, при неодинаковых условиях (ветер, туман, погода, сезон года), но иметь какие-то общие схожие паттерны. Классические способы решения сопоставления таких кадров работают крайне плохо, однако модели на основе нейронных сетей справляются с этой задачей куда лучше.
|
||||
|
||||
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»
|
||||
|
||||
|
||||
2.3.2 Применение архитектуры сиамских близнецов для вычисления матрицы гомографии между двумя кадрами
|
||||
|
||||
2.3.3 Применение архитектуры сиамских близнецов для вычисления матрицы гомографии между двумя кадрами
|
||||
|
||||
|
||||
2.4 Датасет
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2.5 Обучение моделей глубокого обучения
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
2.1 Формализация задачи возврата БПЛА в точку старта
|
||||
2.2 Базовое решение задачи
|
||||
2.3 Эталонные снимки
|
||||
2.3.1 Применение архитектуры сиамских близнецов для сопоставления кадров из различных доменов
|
||||
# Глава 2. Постановка задачи и выбор методов решения
|
||||
|
||||
## Содержание
|
||||
|
||||
| Раздел | Название | Путь |
|
||||
|--------|----------|------|
|
||||
| 2.1 | Формализация задачи возврата БПЛА в точку старта | 2.1_formalization/ |
|
||||
| 2.2 | Базовое решение задачи | 2.2_base_solution/ |
|
||||
| 2.3 | Методы глубокого обучения | 2.3_deep_learning/ |
|
||||
| 2.3.1 | Сиамские близнецы для сопоставления кадров из различных доменов | 2.3_deep_learning/2.3.1_siamese_match.md |
|
||||
| 2.3.2 | Сиамские близнецы для вычисления матрицы гомографии | 2.3_deep_learning/2.3.2_siamese_homography.md |
|
||||
| 2.4 | Датасет | 2.4_dataset/ |
|
||||
| 2.5 | Обучение моделей глубокого обучения | 2.5_training/ |
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
- Оглавление в readme.md оформить в виде таблицы
|
||||
- распарсить _temp_full_content.md по папкам (потому что там будет большой подпункт, а внутри уже маленькие подпункты, поэтому их уже файлами). То есть ещё папка, а потом файлы уже. Создай readme.md, оформи их.
|
||||
- [x] Оглавление в readme.md оформить в виде таблицы
|
||||
- [x] распарсить _temp_full_content.md по папкам и файлам
|
||||
|
||||
Reference in New Issue
Block a user