Estimación de la pose humana: análisis del algoritmo OpenPose
?La estimación de la pose humana es un problema muy básico en visión por ordenador. A juzgar por el nombre, puede entenderse como una estimación de la posición de la postura del "cuerpo humano" (puntos clave, como la cabeza, la mano izquierda, el pie derecho, etc.).
?La estimación de la postura humana se puede dividir en dos ideas,
(1) "De arriba hacia abajo" se refiere a detectar el área del cuerpo humano y luego detectar los puntos clave del cuerpo humano. en la zona.
?Las deficiencias del método "de abajo hacia arriba" existente son: (1) No utiliza la información previa del contexto global, es decir, la información del punto clave del cuerpo de otras personas en la imagen (; 2) Cuando los puntos clave corresponden a Cuando hay diferentes caracteres individuales, la complejidad del algoritmo es demasiado alta.
?Punto de mejora: propusimos "Campos de afinidad parcial (PAF)", donde cada píxel es un vector bidimensional utilizado para representar información de posición y orientación. En función de las uniones detectadas y las áreas relacionadas con las uniones, utilizando un algoritmo de inferencia codicioso, estas uniones se pueden asignar rápidamente a diferentes individuos de carácter.
La función de pérdida es el punto clave más importante para garantizar la convergencia de la red, por lo que el autor utiliza la pérdida L2 para ambas ramas. Durante el entrenamiento, se genera una pérdida en cada etapa para evitar que los gradientes desaparezcan; al predecir, solo se utiliza la salida de la última capa. La fórmula se expresa de la siguiente manera:
Entre ellos, representa el mapa de etiquetas de la rama 1, también llamado mapa de calor, y el mapa de etiquetas de la rama 2, también llamado mapa vectorial. Además, considerando que algunos conjuntos de datos de entrenamiento solo etiquetan los puntos de unión de algunos caracteres en la imagen, la función de pérdida aplica una operación de ponderación espacial. W representa la matriz de máscara binaria. Cuando falta la etiqueta en la posición p, su valor es 0. , De lo contrario es 1. Obviamente, para los puntos de conexión de caracteres no marcados, así como los puntos de conexión de caracteres marcados y los puntos de no conexión, los puntos de conexión de caracteres no marcados no afectarán el proceso de aprendizaje del modelo. La función objetivo de optimización de toda la arquitectura de la red CNN es la siguiente: < / p>
? De hecho, se trata de utilizar un modelo de distribución gaussiana bidimensional para encontrar el mapa de calor de la j-ésima parte del cuerpo humano en una imagen. La k-ésima persona representa información de posición, entonces hay:
? Indica el uso de un campo de afinidad parcial (PAF) para modelar el área del hueso. Para cada píxel en el área del hueso, se utiliza un vector bidimensional. para representar la información de posición y orientación, donde la orientación se refiere es la dirección de conexión del par de puntos de articulación correspondiente del hueso actual, correspondiente al diagrama vectorial. Tome el área del hueso en la figura siguiente como ejemplo
. Después del proceso anterior, hemos obtenido el mapa de coordenadas de cada punto de articulación: el mapa de calor y el mapa vectorial conectado al par de articulaciones. Ahora bien, ¿cómo razonar las etapas para conectar racionalmente estas articulaciones en un segmento de hueso y ensamblarlas en un ser humano?
?Empalme de articulaciones: Para dos posiciones de articulación cualesquiera y la correlación del par de puntos óseos se caracteriza calculando la integral lineal del PAF, es decir, la confianza del par de puntos óseos, expresada por la siguiente fórmula. Para calcular rápidamente la integral, generalmente se utiliza el método de muestreo uniforme para aproximar la similitud de dos uniones. Detección múltiple: dado que el número de personas en la imagen es incierto y va acompañado de problemas como oclusión y deformación, solo el uso del método anterior para calcular la similitud de los pares de articulaciones solo puede garantizar la optimización local. Por lo tanto, el autor adopta la idea de. Relajación codiciosa para generar el mejor emparejamiento global. Las operaciones específicas son las siguientes:
(1) Se conocen los mapas de calor de diferentes articulaciones, es decir, los conjuntos de puntos de una determinada articulación de diferentes personas
(2) Ahora necesitamos realizar diferentes conjuntos de puntos. Una combinación única, como un conjunto de puntos que representa un conjunto de puntos para el codo y un conjunto de puntos para la muñeca, debe haber una coincidencia única entre los puntos en los dos conjuntos de puntos
(3) Se conoce la correlación PAF entre uniones. En el caso de la correlación PAF entre puntos clave, los puntos clave se consideran los vértices del gráfico, la correlación PAF entre los puntos clave se considera como el peso del borde del gráfico. Luego, el problema de detección de varias personas se transforma en un problema de coincidencia de mapas de bits de dos caras y se utiliza El algoritmo húngaro encuentra la coincidencia óptima de los puntos clave conectados.
?Como se puede ver en la imagen de arriba, el conjunto de datos COCO tiene un total de 18 puntos clave y 17 esqueletos de extremidades, pero el mapa de calor tiene una imagen de fondo adicional y el mapa vectorial tiene una extremidad adicional de orejas y hombros. ¿Por qué son ficticios? ¿Qué pasa con esta extremidad? Porque a veces el cuerpo humano está de espaldas a la cámara, los puntos clave de los ojos son invisibles. Para predecir mejor las orejas, presentamos estas dos extremidades. llamados pares conjuntos: 2-16 y 2-16). Para predecir mejor las orejas, introdujimos estas dos extremidades (también llamadas pares de articulaciones: 2-16 y 5-17). Por lo tanto, hay un total de 19 miembros****, que deberían ser mapas vectoriales. Es un vector, dividido en componentes xey para la predicción, por lo que hay 19*2=38
?Completo. reference/m0_37477175/article/details/81236115, combinado con la fórmula de cálculo de vectormap() en la Sección 2.4 y la fórmula matemática del punto de área establecido en el cuadro de puntos verdes para comprender.
?La clave es que el significado geométrico del producto cruz es el área del paralelogramo formado por dos vectores, por lo que representa el área a una distancia paralela al vector, es decir, el ancho del esqueleto.
Más tarde, los autores del artículo mejoraron la estructura de la red para hacerla mejor y más rápida, Referencia 11.
1 Estimación de pose 2D de varias personas en tiempo real utilizando campos de afinidad parcial
2 El pasado, presente y futuro de la estimación de pose humana
3 Interpretación del artículo- -Estimación de pose 2D multijugador en tiempo real utilizando campos de afinidad parcial
4 Estimación de pose 2D multijugador en tiempo real utilizando campos de afinidad parcial para lectores novatos
5 puntos de conocimiento: openpose notas p>
6 Resumen del artículo de openpose: Estimación de pose 2D de varias personas en tiempo real utilizando campos de afinidad parcial
7 Introducción detallada a los pasos del algoritmo húngaro
8 Github proyecto - Formato de salida de puntos clave de OpenPose
9 Método de procesamiento detallado de openpose
10 Generación de etiquetas de estimación de pose humana tf-openpose - mapa de calor - mapa vectorial
11 OpenPose. Uso de afinidad de componentes Estimación de pose 2D de varias personas en tiempo real en el campo
11 OpenPose.