Articulo de referencia

Algoritmo de condensación

El algoritmo de condensación ( propagación de densidad condicional ) es un algoritmo de visión artificial . Su principal aplicación consiste en detectar y rastrear el contorno d...

El algoritmo de condensación ( propagación de densidad condicional ) es un algoritmo de visión artificial . Su principal aplicación consiste en detectar y rastrear el contorno de objetos que se mueven en un entorno complejo. El seguimiento de objetos es uno de los aspectos más básicos y difíciles de la visión artificial y, por lo general, un requisito previo para el reconocimiento de objetos . Identificar qué píxeles de una imagen conforman el contorno de un objeto es un problema complejo. La condensación es un algoritmo probabilístico que intenta resolver este problema.

El algoritmo en sí es descrito en detalle por Isard y Blake en una publicación en el International Journal of Computer Vision en 1998. [ 1 ] Una de las facetas más interesantes del algoritmo es que no realiza cálculos en cada píxel de la imagen. En cambio, los píxeles a procesar se eligen aleatoriamente, y solo se procesa un subconjunto de ellos. La naturaleza probabilística del enfoque permite plantear múltiples hipótesis sobre lo que se mueve. Las funciones de evaluación provienen en gran medida de trabajos previos en el área e incluyen muchos enfoques estadísticos estándar. La parte original de este trabajo es la aplicación de técnicas de estimación de filtros de partículas.

La creación del algoritmo se inspiró en la incapacidad del filtro de Kalman para realizar un seguimiento de objetos eficaz en presencia de un ruido de fondo significativo. La presencia de ruido tiende a generar distribuciones de probabilidad para el estado del objeto que son multimodales y, por lo tanto, el filtro de Kalman no las modela adecuadamente. El algoritmo de condensación, en su forma más general, no requiere suposiciones sobre las distribuciones de probabilidad del objeto ni de las mediciones.

Descripción general del algoritmo

El algoritmo de condensación busca resolver el problema de estimar la conformación de un objeto descrito por un vector.incógnitat{\displaystyle \mathbf {x_{t}} }en ese momentot{\displaystyle t}, dadas las observacionesz1,...,zt{\displaystyle \mathbf {z_{1},...,z_{t}} }de las características detectadas en las imágenes hasta el momento actual inclusive. El algoritmo genera una estimación de la densidad de probabilidad condicional del estado.pag(incógnitat|z1,...,zt){\displaystyle p(\mathbf {x_ {t}} |\mathbf {z_ {1},...,z_ {t}} )} mediante la aplicación de un filtro no lineal basado en el muestreo factorizado y puede considerarse como un desarrollo de un método de Montecarlo . [ 1 ]pag(incógnitat|z1,...,zt){\displaystyle p(\mathbf {x_ {t}} |\mathbf {z_ {1},...,z_ {t}} )}es una representación de la probabilidad de posibles conformaciones para los objetos basada en conformaciones y mediciones previas. El algoritmo de condensación es un modelo generativo [ 2 ] ya que modela la distribución conjunta del objeto y el observador.

La densidad condicional del objeto en el momento actualpag(incógnitat|z1,...,zt){\displaystyle p(\mathbf {x_ {t}} |\mathbf {z_ {1},...,z_ {t}} )}se estima como un conjunto de muestras ponderadas e indexadas en el tiempo.{st(norte),norte=1,...,norte}{\displaystyle \{s_{t}^{(n)},n=1,...,N\}}con pesasπt(norte){\displaystyle \pi _{t}^{(n)}}. N es un parámetro que determina el número de conjuntos de muestras elegidos. Una realización depag(incógnitat|z1,...,zt){\displaystyle p(\mathbf {x_ {t}} |\mathbf {z_ {1},...,z_ {t}} )}se obtiene mediante muestreo con reemplazo del conjuntost{\displaystyle s_{t}}con probabilidad igual al elemento correspondiente deπt{\displaystyle \pi _{t}}. [ 1 ]

Las suposiciones de que la dinámica del objeto forma una cadena de Markov temporal y que las observaciones son independientes entre sí y de la dinámica facilitan la implementación del algoritmo de condensación. La primera suposición permite que la dinámica del objeto esté completamente determinada por la densidad condicional.pag(incógnitat|incógnitat1){\displaystyle p(\mathbf {x_{t}} |\mathbf {x_{t-1}} )}. El modelo de la dinámica del sistema determinado porpag(incógnitat|incógnitat1){\displaystyle p(\mathbf {x_{t}} |\mathbf {x_{t-1}} )}También debe seleccionarse para el algoritmo, y generalmente incluye dinámicas tanto deterministas como estocásticas .

El algoritmo se puede resumir mediante la inicialización en el tiempot=0{\displaystyle t=0}y tres pasos en cada instante t :

Inicialización

Forme el conjunto de muestras inicial y asigne ponderaciones mediante muestreo según la distribución previa . Por ejemplo, especifique una distribución gaussiana y asigne ponderaciones iguales entre sí.

Procedimiento iterativo

  1. Muestra con reemplazonorte{\displaystyle N}tiempos del conjunto{s0(norte),norte=1,...,norte}{\displaystyle \{s_{0}^{(n)},n=1,...,N\}}con probabilidad{π0(norte),norte=1,...,norte}{\displaystyle \{\pi _{0}^{(n)},n=1,...,N\}}generar una realización depag(incógnitat|z1,...,zt){\displaystyle p(\mathbf {x_ {t}} |\mathbf {z_ {1},...,z_ {t}} )}.
  2. Aplicar la dinámica aprendidapag(incógnitat|incógnitat1){\displaystyle p(\mathbf {x_{t}} |\mathbf {x_{t-1}} )}a cada elemento de este nuevo conjunto, para generar un nuevo conjunto{st(norte)}{\displaystyle \{s_{t}^{(n)}\}}.
  3. Para tener en cuenta la observación actualzt{\displaystyle \mathbf {z_ {t}}}, colocarπt(norte)=pag(zt|s(norte))j=1nortepag(zt|s(j)){\displaystyle \pi _{t}^{(n)}={\frac {p(\mathbf {z_{t}} |s^{(n)})}{\sum _{j=1}^{N}p(\mathbf {z_{t}} |s^{(j)})}}}para cada elemento{st(norte)}{\displaystyle \{s_{t}^{(n)}\}}.

Este algoritmo genera la distribución de probabilidad.pag(incógnitat|z1,...,zt){\displaystyle p(\mathbf {x_ {t}} |\mathbf {z_ {1},...,z_ {t}} )}que se puede utilizar directamente para calcular la posición media del objeto rastreado, así como los demás momentos del objeto rastreado.

En cambio, se pueden utilizar ponderaciones acumulativas para lograr un muestreo más eficiente. [ 1 ]

Consideraciones para la implementación

Dado que el seguimiento de objetos puede ser un objetivo en tiempo real, la consideración de la eficiencia del algoritmo se vuelve importante. El algoritmo de condensación es relativamente simple en comparación con la intensidad computacional de la ecuación de Ricatti requerida para el filtrado de Kalman. El parámetronorte{\displaystyle N}, que determina el número de muestras en el conjunto de muestras, implicará claramente una compensación entre eficiencia y rendimiento.

Una forma de aumentar la eficiencia del algoritmo es seleccionar un modelo con pocos grados de libertad para representar la forma del objeto. El modelo utilizado por Isard (1998) es una parametrización lineal de B-splines, donde las splines se limitan a ciertas configuraciones. Se encontraron configuraciones adecuadas determinando analíticamente combinaciones de contornos a partir de múltiples vistas del objeto en diferentes poses, y mediante análisis de componentes principales (ACP) sobre el objeto en deformación.

Isard y Blake modelan la dinámica del objeto.pag(incógnitat|incógnitat1){\displaystyle p(\mathbf {x_{t}} |\mathbf {x_{t-1}} )}como una ecuación de diferencias de segundo orden con componentes deterministas y estocásticas:pag(incógnitat|incógnitat1)mi12||B1((incógnitatincógnita¯)A(incógnitat1incógnita¯))||2){\displaystyle p(\mathbf {x_{t}} |\mathbf {x_{t-1}} )\propto e^{-{\frac {1}{2}}||B^{-1}((\mathbf {x_{t}} -\mathbf {\bar {x}} )-A(\mathbf {x_{t-1}} -\mathbf {\bar {x}} ))||^{2})}}

dóndeincógnita¯{\displaystyle \mathbf {\bar {x}} }es el valor medio del estado, yA{\displaystyle A},B{\displaystyle B}son matrices que representan los componentes deterministas y estocásticos del modelo dinámico, respectivamente.A{\displaystyle A},B{\displaystyle B}, yincógnita¯{\displaystyle \mathbf {\bar {x}} }se estiman mediante la estimación de máxima verosimilitud mientras el objeto realiza movimientos típicos. [ 1 ] [ 3 ]

El modelo de observaciónpag(z|incógnita){\displaystyle p(\mathbf {z} |\mathbf {x} )}no se puede estimar directamente a partir de los datos, lo que requiere hacer suposiciones para poder estimarlo. Isard (1998) supone que el desorden que puede hacer que el objeto no sea visible es un proceso aleatorio de Poisson con densidad espacial.λ{\displaystyle \lambda }y que cualquier medición objetivo verdadera es insesgada y se distribuye normalmente con desviación estándarσ{\displaystyle \sigma }.

El algoritmo de condensación básico se utiliza para rastrear un solo objeto en el tiempo. Es posible extender el algoritmo de condensación utilizando una única distribución de probabilidad para describir los estados probables de múltiples objetos y así rastrear varios objetos en una escena simultáneamente. [ 4 ]

Dado que el desorden puede provocar que la distribución de probabilidad del objeto se divida en múltiples picos, cada pico representa una hipótesis sobre la configuración del objeto. El suavizado es una técnica estadística que condiciona la distribución basándose en mediciones pasadas y futuras una vez completado el seguimiento, con el fin de reducir los efectos de los múltiples picos. [ 5 ] El suavizado no se puede realizar directamente en tiempo real, ya que requiere información de mediciones futuras.

Aplicaciones

El algoritmo puede utilizarse para la localización de robots móviles mediante visión artificial. [ 6 ] Sin embargo, en lugar de rastrear la posición de un objeto en la escena, se rastrea la posición de la plataforma de la cámara. Esto permite localizar globalmente la plataforma de la cámara a partir de un mapa visual del entorno.

También se han utilizado extensiones del algoritmo de condensación para reconocer gestos humanos en secuencias de imágenes. Esta aplicación del algoritmo de condensación influye en el rango de interacciones posibles entre humanos y computadoras. Se ha utilizado para reconocer gestos simples de un usuario en una pizarra blanca para controlar acciones como seleccionar regiones de la pizarra para imprimirlas o guardarlas. [ 7 ] Otras extensiones también se han utilizado para el seguimiento de varios automóviles en la misma escena. [ 8 ]

El algoritmo de condensación también se ha utilizado para el reconocimiento facial en una secuencia de vídeo. [ 9 ]

Recursos

En el sitio web de Michael Isard se puede encontrar una implementación del algoritmo de condensación en C.

Se puede encontrar una implementación en MATLAB en Mathworks File Exchange .

En los foros de OpenCV se puede encontrar un ejemplo de implementación utilizando la biblioteca OpenCV .

Véase también

  • Filtro de partículas : la condensación es la aplicación de la estimación de remuestreo por importancia de muestreo (SIR) al seguimiento de contornos.

Referencias

  1. 1 2 3 4 5 Isard, M.; Blake, A (agosto de 1998). "CONDENSACIÓN: propagación de densidad condicional del seguimiento visual". International Journal of Computer Vision . 29 (1): 5– 28. doi : 10.1023/A:1008078328650 . S2CID 6821810 . 
  2. Sminchisescu, C.; Kanaujia, A.; Metaxas, DN (noviembre de 2007). "BM3E: Propagación de densidad discriminativa para seguimiento visual". IEEE Transactions on Pattern Analysis and Machine Intelligence . 29 (11): 2030– 2044. CiteSeerX 10.1.1.78.1751 . doi : 10.1109/tpami.2007.1111 . PMID 17848782. S2CID 1949783 .   
  3. Blake, Andrea; Isard, Michael; Reynard, David (octubre de 1995). "Aprendizaje para rastrear el movimiento visual de contornos" . Inteligencia Artificial . 78 ( 1–2 ): 179–212 . doi : 10.1016/0004-3702(95)00032-1 .
  4. Koller-Meier, Esther B.; Ade, Frank (28 de febrero de 2001). "Seguimiento de múltiples objetos mediante el algoritmo de condensación". Robótica y sistemas autónomos . 34 ( 2–3 ): 93–105 . doi : 10.1016/s0921-8890(00)00114-7 .
  5. Isard, Michael; Blake, Andrew (28 de mayo de 2006). «Un filtro de suavizado para la condensación». Visión por Computadora — ECCV'98 . Notas de Conferencia en Ciencias de la Computación. Vol. 1406. págs. 767–781 . doi : 10.1007/BFb0055703 . ISBN   978-3-540-64569-6.
  6. Dellaert, F.; Burgard, W.; Fox, D.; Thrun, S. (1999). "Uso del algoritmo CONDENSATION para la localización robusta de robots móviles basada en visión". Actas. Conferencia de la Sociedad de Computación IEEE de 1999 sobre Visión por Computadora y Reconocimiento de Patrones (Cat. No PR00149) . Vol. 2. págs. 588–594 . doi : 10.1109/CVPR.1999.784976 . hdl : 1853/21565 . ISBN   0-7695-0149-4. S2CID 16130780 . 
  7. Black, MJ; Jepson, AD (14 de abril de 1998). «Reconocimiento de trayectorias temporales mediante el algoritmo de condensación». Actas de la Tercera Conferencia Internacional IEEE sobre Reconocimiento Automático de Rostros y Gestos . págs. 16–21 . CiteSeerX 10.1.1.154.1402 . doi : 10.1109/AFGR.1998.670919 . ISBN   0-8186-8344-9. S2CID 5159845 . 
  8. Meier, EB; Ade, Frank (1999). "Seguimiento de automóviles en imágenes de rango utilizando el algoritmo CONDENSATION". Actas de la 199.ª Conferencia Internacional IEEE/IEEJ/JSAI sobre Sistemas de Transporte Inteligentes (Cat. No. 99TH8383) . págs. 129–134 . doi : 10.1109/ITSC.1999.821040 . ISBN  0-7803-4975-X. S2CID 12548469 . 
  9. Zhou, Shaohua; Krueger, V.; Chellappa, R. (21 de mayo de 2002). "Reconocimiento facial a partir de vídeo: un enfoque de CONDENSACIÓN". Actas de la Quinta Conferencia Internacional IEEE sobre Reconocimiento Automático de Gestos Faciales . págs. 221–226 . doi : 10.1109/AFGR.2002.1004158 . ISBN  0-7695-1602-5. S2CID 8505547 .