Изменения
→Использование нейронных сетей
* '''Функция потерь''': определим [[Функция потерь и эмпирический риск|функцию потерь]], для предсказанной карты <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>
=== Построение с помощью капсульных нейронных сетей ===
== См. также ==