Изменения

Перейти к: навигация, поиск

Карта глубины

614 байт добавлено, 17:27, 19 января 2021
Использование нейронных сетей
* '''Функция потерь''': определим [[Функция потерь и эмпирический риск|функцию потерь]], для предсказанной карты <math>\hat y</math>, <math>d_i = log( y_i) - log (\hat y_i)</math>, <math>\lambda \in [0, 1]</math> и <math>n </math> - количество пикселей. Где <math>y_i</math> и <math>\hat y_i</math>, это .Гиперпараметр <math>\lambda</math>, нужен для того, чтобы функция потерь меньше росла, при большом количестве пикселей, предсказание для которых достаточно близко к реальному. Например, если <math>\lambda = 0</math>, то мы просто придём к оптимизации в L2. <ref name="loss">David Eigen, Christian Puhrsch, Rob Fergus "Depth Map Prediction from a Single Imageusing a Multi-Scale Deep Network" стр. 5</ref>
 
Так же возможны, использования усложнённых архитектур свёрточных нейронных сетей, к примеру '''DenseNet'''<ref name=""> Ibraheem Alhashim, Peter Wonka "High Quality Monocular Depth Estimation via Transfer Learning" [https://arxiv.org/pdf/1812.11941.pdf]</ref>.
 
'''DenseNet'''<ref name="DenseNet">Оригинальная статья описывающая DenseNet [https://arxiv.org/abs/1611.09326]</ref> {{---}} это свёрточная нейронные сеть, в которой выход каждого из слоев, подаётся на вход всем слоям, которые лежат ниже.
<math>L(y, \hat y) = \frac{1}{n} \sum\limits_{i} d^2_i - \frac{\lambda}{n^2}(\sum\limits_{i} d_i)^2</math>
* '''Обучение сверточной нейронной сети''': далее идёт обычное обучение нейронной сети по карте различий, путем обратного распространения ошибки оптимизируя, заданную выше функцию потерь.
По итогу, по обученной нейронной сети, мы можем создавать карту глубины, не проводя расчётов для поиска карт смещения, и имея только 1 изображения объекта или пространства.<ref name="cnn">Реализация, основанная на свёрточных нейронных сетях [https://www.kaggle.com/kmader/cnn-for-generating-depth-maps-from-rgb-images]</ref>
=== Построение с помощью капсульных нейронных сетей ===
=== Построение с помощью DenseNet ===Сверточные нейроные сети имеют недостаток в распознавании объектов на картинке. Нейронные сети способны регистрировать, только наличие какого либо объекта на картинке, не кодируя его ориентацию и положение. Но '''капсульные нейронные сети''' лишены этого недостатка. 
'''DenseNet'''<ref name="DenseNet">Оригинальная статья описывающая DenseNet [https://arxiv.org/abs/1611.09326]</ref> - это свёрточная нейронные сеть, в которой выход каждого из слоев, подаётся на вход всем слоям, которые лежат ниже.
Принцип обучения будет тот же, что и в обычной свёрточной сети, но теперь мы попытаемся найти новую функцию потерь, которая минимизирует разницу значений глубины, а также компенсирует искажения высокочастотных деталей изображения."Капусльная нейронная сеть" {{---}}
== См. также ==
Анонимный участник

Навигация