Изменения

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

Задача нахождения объектов на изображении

6297 байт добавлено, 19:38, 4 сентября 2022
м
rollbackEdits.php mass rollback
В задачах классификации с локализацией и детекции объектов для определения достоверности местоположения ограничивающей рамки в качестве метрики чаще всего используется отношение площадей ограничивающих рамок (англ. '''Intersection over Union'''):
$IoU = \frac{S(A \cup cap B)}{S(A \cap cup B)}$,
где $A$ и $B$ {{---}} предсказанная ограничивающая рамка и настоящиая ограничивающая рамка соответственно. $IoU$ равно нулю в случае непересекающихся ограничивающих рамок и равно единице в случае идеального наложения.
где $x$ {{---}} настоящая ограничивающая рамка, $c_i$ {{---}} центроид кластера. Количество ограничивающих рамок-центроидов выбирается при помощи "метода локтя" (англ. elbow method). Также в YOLOv2 используется предположение, что ограничивающиеся рамки не слишком отклоняются от местоположения центра, что обеспечивает стабильность на фоне менее эффективного равномерного выбора рамок-кандидатов по всему исходному изображению. YOLO9000, представленный в той же статье и названный согласно использованию 9000 лучших классов ImageNet, использует древовидную структуру классов, учитывая их вложенность. Например, если среди классов есть метка "Персидская кошка", это будет означать, что найденный объект будет подклассом метки "Кошка". Таким образом, не возникает взаимной исключительности классов, и softmax ко всем классам не применяется. Чтобы предсказать вероятность узла класса, мы можем следовать по пути от узла к корню:
$p($persian cat$|$object$) = p($persian cat$|$cat$) \cdot p($cat$|$animal$) \cdot p($animal$|$object$) \cdot p($object$)$
$p($object$)$ {{---}} вероятность обнаружения объекта, вычисленная на этапе генерации ограничительных рамок. Путь прогнозирования условной вероятности может остановиться на любом этапе, в зависимости от того, какие метки доступны.
YOLOv3<ref>[https://arxiv.org/abs/1804.02767 YOLOv3]</ref>, в свою очередь, является небольшим улучшением YOLOv2 {{---}} используется логистическая регрессия для оценок достоверностей ограничивающих рамок вместо суммы квадратов ошибок для условий классификации в YOLO и YOLOv2; использование нескольких независимых логистических классификаторов для каждого класса вместо одного слоя softmax; добавление межуровневых соединений между уровнями прогнозирования ограничивающих рамок; использование архитектур DarkNet и ResNet для свёрточных сетей.
[[Файл:SSD.png|300px|thumb|right|Архитектура нейронной сети для алгоритма SSD]]
Модель Single Shot Detector<ref>[https://arxiv.org/abs/1512.02325 Single Shot Detector]</ref> (SSD) использует идею использования пирамидальной иерархии выходов свёрточной сети для эффективного обнаружения объектов различных размеров. Изображение последовательно передаётся на слои свёрточной сети, которые уменьшаются в размерах. Выход из последнего слоя каждой размерности участвует в принятии решения по детекции объектов, таким образом, складывается "пирамидальная характеристика" изображения. Это позволяет обнаруживать объекты различных масштабов, так как размерность выходов первых слоёв сильно коррелирует с ограничивающими рамками для крупных маленьких объектов, а последних {{---}} для небольшихкрупных. В отличие от YOLO, SSD не разбивает изображение на сетку произвольного размера, а предсказывает смещение ключевых рамок. Ключевые рамки на разных уровнях масштабируются так, что одна размерность выходного слоя отвечает за объекты своего масштаба. В результате, большие объекты могут быть обнаружены только на более высоком уровне, а маленькие объекты {{---}} на низких уровнях. Как и в других алгоритмах, функция потерь обеспечивает совместный вклад как потерь локализации, так и потерь классификации. ===Anchor boxes=== Anchor boxes {{---}} алгоритм нахождения объектов, основанный на предсказании категории объекта и отступа от истинной ограничивающей рамки для большого количества сгенерированных ключевых рамок с последующей их фильтрацией. ====Генерация ключевых рамок==== Пусть входное изображение имеет высоту $h$ и ширину $w$. Генерируем ключевые рамки с различными формами и размерами, центрированные на каждом пикселе изображения. Предположим, что размер $s∈(0, 1]$, соотношение сторон $r>0$, тогда ширина и высота ключевой рамки равны $ws\sqrt{r}$ и $hs/\sqrt{r}$. Затем определяем набор размеров $s_1,\ldots, s_n$ и набор соотношений $r_1,\ldots, r_m$. Если использовать комбинацию всех размеров и пропорций, то входное изображение будет иметь $whnm$ ключевых рамок, что может привести к большой вычислительной сложности. Поэтому обычно выбираются только комбинации, содержащие размеры $s_1$ и пропорции $r_1$: $(s_1, r_1), (s_1, r_2), \ldots, (s_1, r_m), (s_2, r_1), (s_3, r_1), \ldots, (s_n, r_1).$ При таком подходе число рамок для входного изображения сокращается до $wh(n+m-1)$. ====Процесс обучения==== Пусть набор ключевых рамок входного изображения это $A_1, A_2, \ldots, A_{n_a}$, а набор истинных ограничивающих рамок это $B_1, B_2, \ldots, B_{n_b}$, и $n_a \geq n_b$. Определяем матрицу $\mathbf{X} \in \mathbb{R}^{n_a \times n_b}$, где элемент $x_{ij}$ - это $IoU$ ключевой рамки $A_i$ с истинной рамкой $B_j$. Затем находим наибольший элемент в матрице $\mathbf{X}$ и сохраняем индекс строки и колонки элемента как $i_1,j_1$. Так мы обозначили ограничивающую рамку $B_{j_1}$ для ключевой рамки $A_{i_1}$. Далее исключаем все элементы в строке с индексом $i_1$ и колонке с индексом $j_1$ в матрице $\mathbf{X}$ для последующих поисков максимального элемента. Теперь ищем наибольший элемент среди оставшихся элементов матрицы $\mathbf{X}$ и сохраняем его индексы как элемент $i_2, j_2$, и также исключаем элементы из соответствующих колонок и строк.  Повторяем данные действия пока все $n_b$ колонки матрицы $\mathbf{X}$ не будут исключены. Затем, для оставшихся $n_a - n_b$ ключевых рамок $A_i$ находим лучшую истинную рамку $B_j$ с наибольшим IoU в строке матрицы $\mathbf{X}$ с индексом $i$. Присваиваем ключевой рамке $A_i$ ограничивающую рамку $B_j$ только если IoU больше предустановленного порогового значения. Теперь мы можем определить категорию и отступ для каждой ключевой рамки. Если ключевой рамке $\mathbf{A}$ назначена $\mathbf{B}$, то тогда ее категория такая же как и у $\mathbf{B}$. А смещение ключевой рамки $\mathbf{A}$ устанавливается в соответствии с относительным положением центральных координат $\mathbf{B}$ и $\mathbf{A}$ и относительными размерами двух рамок. Поскольку положения и размеры различных рамок в наборе данных могут различаться, эти относительные положения и относительные размеры обычно требуют некоторых специальных преобразований, чтобы сделать распределение смещений более равномерным и более простым для подгонки. Предположим, что центр ключевой рамки $\mathbf{A}$ это $(x_a, y_a)$, высота и ширина это $h_a$ и $w_a$; для $\mathbf{B}$ - $(x_b, y_b)$, $h_b$ и $w_b$ соответственно. В таком случае отступ для A рассчитывается следующим образом: $\left( \frac{ \frac{x_b - x_a}{w_a} - \mu_x }{\sigma_x},\frac{ \frac{y_b - y_a}{h_a} - \mu_y }{\sigma_y},\frac{ \log \frac{w_b}{w_a} - \mu_w }{\sigma_w},\frac{ \log \frac{h_b}{h_a} - \mu_h }{\sigma_h}\right)$ Дефолтные значения констант $\mu_x = \mu_y = \mu_w = \mu_h = 0$, $\sigma_x=\sigma_y=0.1$, и $\sigma_w=\sigma_h=0.2$. Если ключевой рамке не назначен ограничивающий прямоугольник, то устанавливаем категорию background. ====Процесс предсказаний==== На этапе прогнозирования сначала генерируется несколько ключевых рамок для изображения, а затем прогнозируются их категории и смещения. Затем на основе ключевых блоков и их прогнозируемых смещений получаются ограничивающие рамки прогнозирования. Когда имеется много ключевых рамок или много одинаковых ограничивающих рамок предсказания могут выводиться несколько раз для одного и того же объекта. Чтобы упростить результаты, можно удалить аналогичные ограничивающие рамки прогнозирования. Обычно используется метод, который называется не максимальное подавление (NMS). 
==См.также==
* [[Сверточные нейронные сети]]
* [[Модель алгоритма и ее выбор]]
 
==Примечания==
<references/>
==Источники информации==
* [httpshttp://arxivcs231n.orgstanford.edu/slides/abs2017/1502cs231n_2017_lecture11.02734 Weakly- pdf Stanford CS231n: Detection and Semi-Supervised Learning of a DCNN for Semantic Image Segmentation]* [https://arxivstepik.org/abs/1605.06211 Fully Convolutional Networks for Semantic Segmentation]* [https:course/57457/arxivpromo Stepik.org/abs/1505.04597 U-Net: Convolutional Networks for Biomedical Image SegmentationDeep Learning School]* [https://arxivhabr.orgcom/absru/1611.09326 The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation]* [https:company/mipt/arxiv.orgblog/abs458190/1606.00915 DeepLabHabr: Semantic Image Segmentation with обзор Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFsLearning в Computer Vision]* [https://arxivgithub.orgcom/abshoya012/1706.05587 Rethinking Atrous Convolution for Semantic Image Segmentationdeep_learning_object_detection Список статей о детекции объектов методами глубокого обучения]* [https://paperswithcodetowardsdatascience.com/paper/encoderr-cnn-fast-r-cnn-decoderfaster-withr-atrouscnn-separable Encoderyolo-Decoder with Atrous Separable Convolution for Semantic Image Segmentation]* [https://arxiv.org/abs/1311.2524 Rich feature hierarchies for accurate object -detection and semantic segmentation]* [https://arxiv.org/abs/1504.08083 -algorithms-36d53571365e R-CNN, Fast R-CNN]* [https://arxiv.org/abs/1506.01497 , Faster R-CNN: Towards Real-Time , YOLO — Object Detection with Region Proposal NetworksAlgorithms]* [https://arxivd2l.orgai/abschapter_computer-vision/1703anchor.06870 Mask Rhtml Dive into deep lerning -CNN]* [https://arxiv.org/abs/1506.02640 You Only Look Once: Unified, RealComputer vision -Time Object Detection]* [https://arxiv.org/abs/1612.08242 YOLO9000: Better, Faster, StrongerAnchor Boxes]* [https://arxiv.org/abs/1804.02767 YOLOv3: An Incremental Improvement]* [https://arxiv.org/abs/1512.02325 SSD: Single Shot MultiBox Detector] 
[[Категория: Машинное обучение]]
1632
правки

Навигация