89
правок
Изменения
→Использование нейронных сетей
* '''Функция потерь''': определим [[Функция потерь и эмпирический риск|функцию потерь]], для предсказанной карты <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>
<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>
В итоге, по обученной нейронной сети мы можем создавать карту глубины, не проводя расчётов для поиска карт смещения и имея только изображение объекта или пространства. <ref name="cnn">Реализация, основанная на свёрточных нейронных сетях [https://www.kaggle.com/kmader/cnn-for-generating-depth-maps-from-rgb-images]</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> {{---}} это свёрточная нейронные сеть, в которой выход каждого из слоев подаётся на вход всем слоям, которые лежат ниже.
=== Построение с помощью капсульных нейронных сетей ===