1277
Estabilización de imagen digital con cámaras fijas - enfoque correlacional
Introducción h4> En este artículo, me decidí a escribir después de leer el artículo « masivamente paralelo de estabilización de imagen », que describe algoritmo para PTZ de estabilización de imagen. El hecho de que en un momento yo estaba implementado el algoritmo de estabilización de imagen con cámaras fijas, que se utiliza en MagicBox servidor IP-vídeo y otros determinados productos de Synesis , en el que estoy trabajando actualmente. El algoritmo resultó bastante éxito en sus características de velocidad. En particular, es muy eficiente algoritmo de búsqueda ejecutado por el sesgo de la imagen actual en relación con el fondo. Esto se permite la eficiencia de utilizar sus características básicas (por supuesto con algunas modificaciones) para acompañar a los objetos, y también para comprobar en su inmovilidad.
Algoritmo de Estabilización incluye los siguientes elementos principales: el sesgo de detección para la trama actual, la compensación de la polarización y la actualización periódica del contexto en el que hay una estabilización. A continuación detallo la señal para cada uno de ellos.
Fig. 1 La estabilización de imagen es a veces muy útil.
El sesgo de detección del marco actual h4> El enfoque básico, que se basa en el enfoque de correlación para determinar el sesgo se pueden describir brevemente como sigue:
1) Tome la parte central de la imagen de fondo. La magnitud de la sangría es determinado por el máximo posible, compensar, lo que queremos determinar. La parte central no debe ser demasiado pequeño, de lo contrario la función de correlación (ver más abajo) no tendrá datos suficientes para un funcionamiento estable.
2) la trama actual se selecciona porción del mismo tamaño, pero desplazada con respecto al centro de la imagen.
3) Para cada desplazamiento se calcula una métrica que describe la correlación entre la parte central del fondo y de la imagen actual. Esto se puede utilizar, por ejemplo, la suma de las diferencias al cuadrado, para cada punto de las dos imágenes o, por ejemplo, la suma de la diferencia absoluta para cada punto.
4) El desplazamiento para el que la correlación máxima (inferior a la suma de las diferencias al cuadrado o la suma de la diferencia absoluta) es el desplazamiento necesario.
Fig. 2 El cambio de la trama actual con el fondo.
Naturalmente, si se aplica este enfoque a la frente, entonces la velocidad del algoritmo es catastróficamente baja, incluso a pesar de que la velocidad de las funciones de correlación puede ser muy alta. Esto no es sorprendente, ya que tendremos que pasar por todas las posibles opciones para el desplazamiento de la imagen respecto a la otra (la complejidad del algoritmo puede estimarse como O (n ^ 2), donde n - número de píxeles en la imagen).
La primera optimización es no utilizar la enumeración completa de todas las opciones posibles y utilizar el método de la pendiente más pronunciada, en un principio, la correlación se calcula para una región de 3x3 de traslado de origen se selecciona a continuación, con el cambio de correlación máximo, y el proceso se repite hasta que hasta que se detecta un máximo local. Este método es considerablemente más rápido, pero en el peor caso de grandes desplazamientos tendrá una complejidad O (n ^ 1.5), que no es aceptable.
Figura 3. Buscar el máximo de la función de correlación. Pendiente de descenso.
La manera de salir de esta situación es el uso de imágenes multi-escala (cada nivel de zoom reduce la imagen dos veces). Ahora buscar la correlación máximo local vamos a tratar de maximizar la escala y luego en una escala más pequeña que especificar de forma coherente. Así, la complejidad del algoritmo se reduce a O (n), que es bastante aceptable.
Figura 4. Imagen Multiescala.
precisión de subpíxeles h4> Si compensar imágenes de la cámara de fluctuación con precisión de píxeles, la imagen sigue siendo estabilizado tirón muy notable. Afortunadamente se puede arreglar. Si analizamos cuidadosamente la zona cerca del pico de la función de correlación (ver Fig. 3), podemos ver que los valores de las funciones no son simétricas con respecto al máximo, lo que significa que la máxima no está en el punto (3, 2), en algún lugar entre su y el punto (1, 4). Si nos aproximamos el comportamiento de la función de correlación cerca del máximo del paraboloide A * x ^ 2 + b * x * y + C * y ^ 2 + D * x + E * y + F = 0 , a continuación, la tarea de verificar el origen de la máxima reduce a la selección de parámetros tales paraboloide en el que su desviación de los valores reales en puntos conocidos es mínima. La experiencia indica que la precisión obtenida de esta manera se aclarará el orden de 0,1-0,2. Al agitar la compensación con tal precisión, imagen estable casi no tiene tirones.
compensado Compensación h4> compensar la indemnización de todo el cambio es el siguiente: Desplaza la imagen actual en el turno encontrado con signo opuesto. Área vacía cerca del borde del relleno de fondo. Para la compensación de desplazamiento subpixel método ejecuta la interpolación bilineal. En este caso, sin embargo, puede haber un ligero desenfoque de la imagen estabilizada. Si este es crítica, es posible utilizar la interpolación bicúbica.
Actualización del fondo h4> En el fondo se puede utilizar cualquier fotograma anterior. Sin embargo, la calidad de la estabilización mejoró significativamente si el uso como fondo promediada sobre muchos cuadros de imagen. El fondo es conveniente actualizar periódicamente para compensar los posibles cambios en la iluminación de la escena. Al actualizar el fondo que necesita para asegurarse de que el valor de fondo suficiente contraste y no homogénea. De lo contrario, la función de correlación no tiene un pico claro, lo que reduce en gran medida la precisión del estabilizador. También es muy deseable que en el contexto de los objetos presentes en movimiento.
Trabajo en conjunto con detección de movimiento h4> Si el estabilizador está emparejado con un detector de movimiento, el proceso de actualización del fondo para que sea mucho más fácil. Por lo general, detector de movimiento ya tiene en su composición, como promedio durante muchos marcos de fondo contra el que se detecta el movimiento. El mismo patrón se puede utilizar para la operación del estabilizador. Estabilizar la imagen del estabilizador a su vez reduce el número de falsos positivos para la detección de movimiento. También puede utilizar el hecho de que el detector de movimiento en el curso de su trabajo se pone la máscara de las áreas con presencia de movimiento. Esta máscara resultante detector de movimiento en el último fotograma, se puede utilizar en el cálculo de la función de correlación para excluir áreas con movimiento. Que también tiene un efecto positivo sobre el trabajo del estabilizador de imagen.
Ventajas del enfoque propuesto: h4> 1) La alta velocidad del algoritmo. En particular, con el fin de estabilizar la resolución de imagen de formato 1280x720 procesador BGRA32 Core i7-4470 (1 núcleo involucrados) algoritmo toma 1,5 milisegundos.
2) El pago de movimiento de la cámara con precisión de subpíxeles.
Las desventajas del enfoque propuesto h4> 1) Estabilización de Imagen en la implementación actual sólo es posible para las cámaras fijas.
2) Detecta y compensa única cámara desplazamiento espacial, la rotación de la cámara no se compensa.
3) El fondo debe ser suficientemente clara y no uniforme, de lo contrario la función de correlación no agarrarse. Por lo tanto, en la oscuridad o en la estabilización de niebla no va a funcionar bien.
4) El fondo debe ser fijo. Estabilizador en el fondo de las ondas que viajan también es imposible.
Notas sobre la aplicación práctica h4> Para empezar, observamos que para la determinación de un amplio uso de cizalla sólo la imagen de color gris, las características de color tienen prácticamente ninguna influencia sobre la precisión, pero, naturalmente, ralentizan cálculos.
Cuando se implementa, es deseable usar un estabilizador de funciones optimizadas para trabajar con imágenes. He utilizado para este propósito biblioteca SIMD . Se puede encontrar en particular:
1) SimdAbsDifferenceSum y SimdAbsDifferenceSumMasked - para el cálculo de la función de correlación.
2) SimdReduceGray2x2, SimdReduceGray3x3, SimdReduceGray4x4 y SimdReduceGray5x5 -. Para la construcción de imágenes multi-escala
3) SimdBgrToGray - para imágenes en gris
.
4) SimdShiftBilinear - para compensar el cambio
.
ver el resultado del algoritmo h4> Ejemplo 1:
Ejemplo 2:
Fuente: habrahabr.ru/post/219815/
El derecho de acceso a Internet
Google recibió una patente para lentes de contacto con una cámara de vídeo