Изменения

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

Определение положения человека

5599 байт добавлено, 20:46, 28 января 2021
Нет описания правки
{{В разработке}}
 
'''Определение положения человека''' (англ. ''Human pose estimation'') {{---}} частный случай задачи [[Сегментация изображений | сегментации изображения]] из раздела [[Компьютерное зрение | компьютерного зрения]] о нахождении и локализации частей тела человека на изображениях или видео (рассматривается как последовательность изображений). Чаще всего позицией человека называют набор соединённых ключевых точек (англ. ''Joint''), соответствующих суставам (плечи, локти, кисти, тазобедренные суставы, колени, стопы) и другим ключевым точкам (шея, голова, центр торса). Эту задачу можно рассматривать в двух или трёх измерениях, от чего зависит сложность задачи и практические применения результатов. Также задачу можно разделить на два подтипа: определение положения для одного человека (англ. ''Single Person Pose Estimation''), определение положения для нескольких человек (англ. ''Multi Person Pose Estimation'')
===AlphaPose (2015)===
'''{|align="right"|-valign="top"|[[file:AlphaPoseResult.png|300px|thumb| Рисунок 9. Результат работы AlphaPose. [[https://arxiv.org/pdf/1612.00137.pdf Источник]]]]|}AlphaPose<ref name="AlphaPose''' ">[https://arxiv.org/abs/1612.00137 RMPE: Regional Multi-Person Pose Estimation, Hao-Shu Fang1, Shuqin Xie, Yu-Wing Tai, Cewu Lu1, 2018]</ref> позволяет решать проблему определения положения как одного человека, так и нескольких человек в режиме реального времени. Имеется официальная страничка Данное решение задачи региональной оценки позы для нескольких человек (англ. ''Region Multi Person Estimation'', '''''RMPE''''') призвано облегчить оценку позы при наличии неточных окружающих рамок (англ. ''bounding box'') человека. Решение доступно для общего пользования и опубликовано на [https://github.com/MVIG-SJTU/AlphaPose гитхабеGitHub].  Структура решения состоит из трех компонентов: симметричная сеть пространственных преобразователей (англ. ''Symmetric Spatial Transformer Network'', '''''SSTN'''''), параметрическое не-максимальное подавление позы (англ. ''Parametric Pose Non-maximum Suppression'', '''NMS'''<ref name="NMS">[https://towardsdatascience.com/non-maximum-suppression-nms-93ce178e177c Non-maximum Suppression, Sambasivarao. K, 2019]</ref>)) и генератор предложений с указанием позы (англ. ''Pose-Guided Proposals Generator'', '''''PGPG'''''). Для На рисунке 10 показан процесс работы решения. Сеть симметричных пространственных преобразователей состоит из сети пространственных преобразователей (англ. ''Spatial Transformer Network'', '''''STN''''') и сети обратных пространственных преобразований (англ. ''Spatial De-Transformer Network'', '''''SDTN'''''). Модуль '''''STN''''' отдает результаты своей работы на вход определителю поз (англ. ''Single Person Pose Estimator'', '''''SPPE'''''), который, в свою очередь отдает свои результаты модулю '''''SDTN'''''. '''''STN''''' получает предположения относительно людей {{---}} выделенные окружающими рамками потенциальные фигуры, а '''''SDTN''''' генерирует окончательные предположения о позах людей. Параллельный определитель поз (англ. ''Single Person Pose Estimator'', '''''SPPE''''') действует как дополнительный регуляризатор на этапе обучения. Наконец, выполняется параметрическое не-максимальное подавление позы (англ. ''Parametric Pose Non-maximum Suppression'', '''NMS'''<ref name="NMS">[https://towardsdatascience.com/non-maximum-suppression-nms-93ce178e177c Non-maximum Suppression, Sambasivarao. K, 2019]</ref>) для устранения избыточных оценок позы. В отличие от традиционного обучения использовались датасеты MPII HumanPose, а также MSCOCO мы обучаем модуль '''''SSTN + SPPE''''' на изображениях, сгенерированных генератором предложений с указанием позы (Keypoint Challangeангл. ''Pose-Guided Proposals Generator'', '''''PGPG''''').
Идея в томЕсли говорить о внутренних нюансах реализации решения, что они добавили так называемый spatial transformer network ('''''STN)''''' базируется на ResNet18<ref name="ResNet">[https://docs.exponenta.ru/deeplearning/ref/resnet18.html Non-maximum ResNet18]</ref>, детектор людей {{---}} на VGG<ref name="VGG">[https://arxiv.org/abs/1409.1556 Very Deep Convolutional Networks for Large-Scale Image RecognitionKaren Simonyan, который выделяет человека (одного!) с выделенного прямоугольникаAndrew Zisserman, чтобы детектору2014]</ref> SSD-500<ref name="SSD">[https://arxiv.org/abs/1512.02325 SSD: Single Person Estimation было намного прощеShot MultiBox Detector, Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg, 2015]</ref>, '''''SPPE''''' представляет собой 8 последовательных сетей вида "песочые часы" (англ. В целом работает так''8-stack hourglass network''<ref name="hourglassnetwork">[https: находим границы людей//arxiv.org/abs/1603.06937 Stacked Hourglass Networks for Human Pose Estimation, Alejandro Newell, Kaiyu Yang, разбиваем на прямоугольникиJia Deng, потом прогоняем через STN и потом уже просто SPE2016]</ref>).
{|align="left"|-valign="top"|[[file:AlphaPose.png |1125px800px|thumb| Рисунок 10. Процесс работы решения. [[https://arxiv.org/pdf/1612.00137.pdf Источник]]]]|}<br><br><br><br><br><br><br><br><br><br><br><br>Так как AlphaPose, как и OpenPose, является решением, работающим в реальном времени, то сравнение этих двух решений наиболее интересно. На наборе данных MPII Human Pose<ref name="MPII">[http://human-pose.mpi-inf.mpg.de/ MPII Human Pose]</ref> было выполнено сравнение вероятности корректности определения ключевой точки (англ. ''Probability of Correct Keypoint'', '''''PCK'''''). Результаты представлены в таблице на рисунке 11. {|align="left"|-valign="top"|[[file:AlphaPoseTestResults.png|800px|thumb| Рисунок 11. Результаты на датасете MPII в сравнении с OpenPose. [[https://arxiv.org/pdf/1612.00137.pdf Источник]]]]|}<br><br><br><br><br><br><br><br>
===DeepCut (2016)===
{|align="right"
|-valign="top"
|[[file:Deepcutexamle.png|400px|thumb| Рисунок 9 12 [[https://arxiv.org/pdf/1511.06645.pdf Источник]]]]
|}
DeepCut<ref name="DeepCut">[https://arxiv.org/pdf/1511.06645.pdf DeepCut: Joint Subset Partition and Labeling for Multi Person Pose Estimation, Leonid Pishchulin, Eldar Insafutdinov, Siyu Tang, Bjoern Andres, Mykhaylo Andriluka, Peter Gehler, and Bernt Schiele, 2016]</ref> решает задачу определения поз для нескольких людей (англ. ''Multi person Pose estimation'') и находится в открытом [https://github.com/eldar/deepcut доступе].
Авторы предлагают разделение и разметку набора гипотез о частях тела, созданных с помощью детекторов частей на основе [[сверточные нейронные сети|CNN]]. Неявно выполняется не-максимальное подавление (англ. ''Non-maximum Suppression'', '''NMS'''<ref name="NMS">[https://towardsdatascience.com/non-maximum-suppression-nms-93ce178e177c Non-maximum Suppression, Sambasivarao. K, 2019]</ref>) для набора возможных частей и производится группировка, чтобы сформировать конфигурации частей тела с учетом геометрических ограничений и ограничений внешнего вида.
Пример работы алгоритма представлен на рисунке 912: (a) начальное определение возможных частей и попарных связей между всеми обнаруженными частями, которые (b) кластеризуются по принадлежности одному человеку (один цвет {{---}} один человек) и каждая часть помечается меткой соответствующего этой части класса (разные цвета и символы относятся к разным частям тела); (c) демонстрация результата.
Для оценки эффективности решения проводилось сравнение нескольких вариантов архитектуры, использующих DeepCut друг с другом и с тремя другими решениями. Использовались наборы данных LSP (Leeds Sport Poses)<ref name="LSP">[https://sam.johnson.io/research/lsp.html LSP dataset]</ref>, LSPET (LSP Extended)<ref name="LSPET">[https://dbcollection.readthedocs.io/en/latest/datasets/leeds_sports_pose_extended.html LSPET dataset]</ref> и MPII Human Pose<ref name="MPII">[http://human-pose.mpi-inf.mpg.de/ MPII Human Pose]</ref>. Были рассмотрены два варианта архитектуры, использующие DeepCut SP (Single Person) и DeepCut MP (Multi Person), совмещающие в себе DeepCut и адаптированная быстрая [[сверточные нейронные сети|сверточная нейронная сеть]] на основе регионов (англ. ''Adapted Fast R-CNN''<ref name="FastR-CNN">[https://arxiv.org/abs/1504.08083 Fast R-CNN, Ross Girshick, 2015]</ref>, '''''AFR-CNN''''') в одном случае и DeepCut и плотные [[сверточные нейронные сети]] (англ. ''Dense-CNN'') в другом. Также в сравнении участвовали решения Tompson et al.<ref name="Tompson">[J. J. Tompson, A. Jain, Y. LeCun, and C. Bregler. Joint training of a convolutional network and a graphical model for human pose estimation. In NIPS’14]</ref>, Chen&Yuille<ref name="Chen&Yuille">[X. Chen and A. Yuille. Articulated pose estimation by a graphical model with image dependent pairwise relations. In NIPS’14]</ref>, Fan et al.<ref name="Fan">[X. Fan, K. Zheng, Y. Lin, and S. Wang. Combining local appearance and holistic view: Dual-source deep neural networks for human pose estimation. In CVPR’15]</ref>.
Оценивалась вероятность корректности определения ключевой точки (англ. ''Probability of Correct Keypoint'', '''''PCK'''''). На рисунке 10 13 представлены графики данной величины от нормализованного расстояния между ключевыми точками (близкорасположенные точки корректно определить сложнее). На рисунке 11 14 {{---}} таблица, отражающая качество определения тех или иных частей тела, вероятности корректности определения ключевой точки (PCK) и площадь под кривой ошибок (англ. ''area under ROC curve'', '''''AUC''''').
{|align="left"
|-valign="top"
|[[file:Deepcutgraphics.png|400px|thumb| Рисунок 10 13 [[https://arxiv.org/pdf/1511.06645.pdf Источник]]]]|[[file:Deepcuttable.png|400px|thumb| Рисунок 11 14 [[https://arxiv.org/pdf/1511.06645.pdf Источник]]]]
|}
<br><br><br><br><br><br><br><br><br><br><br><br>
{|align="left"
|-valign="top"
|[[file:Openpose.jpg|300px|thumb| Рисунок 12 15 Примеры результатов работы алгоритма [[https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/README.md Источник]]]]
|}
OpenPose<ref name="OpenPose">[https://arxiv.org/pdf/1812.08008.pdf OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields, Zhe Cao, Gines Hidalgo, Tomas Simon, Shih-En Wei, and Yaser Sheikh, 2019]</ref> {{---}} первая система, решающая задачу определения поз для нескольких людей (англ. ''Multi person Pose estimation'') в режиме реального времени c открытым [https://github.com/CMU-Perceptual-Computing-Lab/openpose исходным кодом].
{|align="left"
|-valign="top"
|[[file:Openpose example.png|800px|thumb|Рисунок 13 16 [[https://arxiv.org/pdf/1611.08050.pdf Источник]]]]
|}
<br><br><br><br><br><br><br><br><br><br>
{|align="right"
|-valign="top"
|[[file:Openposeschema.png|500px|thumb|Рисунок 14 17 [[https://arxiv.org/pdf/1611.08050.pdf Источник]]]]
|}
Логика архитектуры 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:Openposestagebystage.png|600px|thumb|Рисунок 1518. Результаты на слоях 1, 3 и 6 [[https://arxiv.org/pdf/1611.08050.pdf Источник]]]]
|}
{|align="right"
|-valign="top"
|[[file:Openpose vs competition.png|300px|thumb| Рисунок 16 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>
* [https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/README.md OpenPose github page]
* [https://medium.com/analytics-vidhya/understanding-openpose-with-code-reference-part-1-b515ba0bbc73 Understanding OpenPose (with code reference)— Part 1]
* [https://arxiv.org/pdf/1612.00137.pdf RMPE: Regional Multi-Person Pose Estimation, Hao-Shu Fang1, Shuqin Xie1, Yu-Wing Tai2, Cewu Lu, 2018]
* [https://www.mvig.org/research/alphapose.html Shanghai Jiao Tong University, Machine Vision and Intelligence Group]
* [https://arxiv.org/abs/1612.00137 RMPE: Regional Multi-Person Pose Estimation, Hao-Shu Fang1, Shuqin Xie, Yu-Wing Tai, Cewu Lu, 2018]
* [https://arxiv.org/pdf/1812.08008.pdf OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields, Zhe Cao, Gines Hidalgo, Tomas Simon, Shih-En Wei, and Yaser Sheikh, 2019]
[[Категория: Машинное обучение]]
[[Категория: Компьютерное зрение]]
174
правки

Навигация