125
правок
Изменения
→OpenPose (2019)
|}
Логика архитектуры OpenPose следующая: во-первых, входное RGB-изображение (рисунок 13а16а) подается как вход в многослойную CNN с двумя ветвями.
Две ветви означают, что CNN производит два разных вывода. На рисунке 14 17 верхняя ветвь, показанная бежевым цветом, предсказывает карты достоверности (англ. ''confidence map'') (рисунок 13b16b) расположения различных частей тела. Нижняя ветвь, показанная синим цветом, предсказывает поля сходства фрагментов (англ. ''affinity field'', '''''PAFs''''') (рисунок 13c16c), которые представляют степень связи между различными частями тела.
Многослойность означает следующее: на первом слое (левая половина рисунка 1417) сеть создает начальный набор карт достоверности обнаружения $S$ и набор полей сходства для части $L$. Затем на каждом последующем слое (правая половина рисунка 1417) прогнозы из обеих ветвей на предыдущем этапе и характеристики исходного изображения $F$, объединяются (объединение обозначено знаком $+$ на рисунке 1417) и используются для получения более точных прогнозов. В реализации OpenPose последним этапом $t$ выбран шестой.
На рисунке 15 18 показаны преимущества многослойной архитектуры. В этом примере мы наблюдаем некоторую начальную путаницу между левой и правой частями тела на первых нескольких этапах. Но по мере того, как слой увеличивается, сеть начинает лучше различать их.
В конце карты достоверности и поля сходства обрабатываются методом жадного вывода<ref name="GreedyInference">[https://vtechworks.lib.vt.edu/handle/10919/81860 Greedy Inference Algorithms for Structured and Neural Models, Sun, Qing, 2018]</ref> (рисунок 13d16d) для вывода двумерных ключевых точек для всех людей на изображении (рисунок 13e16e).
{|align="left"
|-valign="top"
|[[file:Openpose vs competition.png|300px|thumb| Рисунок 19 [[https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/README.md Источник]]]]
|}
Важной особенностью является скорость работы данного решения. На рисунке 16 18 представлено сравнение времени работы трех доступных библиотек, решающих задачу определения положения человека (в одинаковых условиях на одинаковом аппаратном обеспечении): OpenPose, Alpha-Pose<ref name="Alpha-Pose">[https://github.com/MVIG-SJTU/AlphaPose AlphaPose, Hao-Shu Fang, Shuqin Xie, Yu-Wing Tai and Cewu Lu, 2018]</ref> (fast Pytorch version), и Mask R-CNN<ref name="MaskR-CNN">[https://arxiv.org/abs/1703.06870 Mask R-CNN, Kaiming He, Georgia Gkioxari, Piotr Dollár, Ross Girshick, 2018]</ref>. Время исполнения OpenPose является постоянным, в то время как у Alpha-Pose и Mask R-CNN линейно растет с числом людей на исходных данных.
<br><br><br><br><br><br><br><br><br><br>