3 DISEÑO
3.1 Detección de objetos en movimiento
3.1.1 Detección de puntos de interés en movimiento
El primer paso del método que hemos propuesto para la detección de objetos se basa en la búsqueda de correspondencias de puntos de interés entre dos frames consecutivos.
39
Posteriormente, se evalúa el movimiento producido por cada correspondencia y se identifica qué conjunto de puntos no corresponde al fondo. Podemos dividirlo en:
Localización de puntos característicos en el fotograma y en el fotograma . Correspondencia entre los descriptores de los puntos de interés del frame y del
frame .
Decisión de qué puntos corresponden al fondo de la escena y cuáles al primer plano. Una vez realizados dichos pasos, se alcanza un conjunto de puntos correspondiente a objetos en movimiento (adicionalmente puede introducirse ruido producido por correspondencias erróneas).
3.1.1.1 Extracción de características
La localización y descripción de puntos de interés, vistos en los apartados 2.2.1 y 2.2.2, es una técnica utilizada para adquirir puntos distintivos de imágenes. Tiene como objetivo localizar un conjunto de puntos representativo y definir cada punto mediante un descriptor. Se utiliza para reconocer la misma característica entre diferentes vistas de un mismo objeto, ya que son repetitivos.
Esta es la parte de mayor carga temporal del sistema MODET, en consecuencia, vamos a utilizar los puntos y descriptores detectados para el resto de módulos que los requieran como en el seguimiento de objetos. Además, en esta parte se necesitan comparar los puntos detectados en dos frames consecutivos, es por ello que, para optimizar el tiempo de ejecución, sólo buscaremos los puntos característicos en el frame reutilizando los descritos en el instante . Observaremos este hecho en el capítulo 5.
Existen multitud de métodos utilizados en la literatura para la localización de puntos de interés. Los más utilizados en investigación son SIFT y SURF.
SIFT se define por su invarianza frente a las rotaciones, traslaciones, escala y cambios de iluminación. Para alcanzar estas especificaciones hay que realizar una alta carga computacional. El tamaño del descriptor con el que se define cada punto es de 128 elementos.
SURF mantiene aproximadamente la misma robustez de SIFT, en cambio, tiene un descriptor de 64 elementos y, en consecuencia, una mayor velocidad en el cálculo y en la búsqueda de correspondencias.
Para decidir qué algoritmo utilizar hemos comparado los métodos SIFT y SURF. El motivo principal para decantarnos por estos algoritmos, frente a otros más recientes como ORB o BRIEF, ha sido su respaldo en distintas investigaciones científicas, ya que existen multitud de trabajos previos de tracking que los utilizan. Además, son más robustos frente a rotaciones y cambios de escala. La principal mejora de los algoritmos más recientes es su reducción en el tiempo de cálculo, pudiendo así ser aplicadas en sistemas de tiempo real.
40
Figura 3.3. Puntos característicos SIFT y SURF.
En la figura 3.3 podemos observar los puntos de interés localizados por el algoritmo SIFT y los puntos de interés localizados por el algoritmo SURF, para una misma imagen. Hemos establecido sendos umbrales para que cada algoritmo localice el mismo número de puntos de interés. En este ejemplo, tanto para SIFT como para SURF se detectan 1030 puntos de interés. El algoritmo SIFT tarda en localizar y describir los puntos de interés 4.35 segundos, por el contrario, el algoritmo SURF tarda 1.16 segundos. Además, el algoritmo SURF encuentra puntos de interés más dispersos.
En una fase preliminar hemos utilizado SIFT como algoritmo de descripción de puntos característicos consiguiendo muy buenos resultados. Sin embargo, en las pruebas realizadas a lo largo de este proyecto hemos comprobado cómo la calidad entre SIFT y SURF es muy similar, por tanto, de ahora en adelante utilizaremos SURF para localizar y describir puntos de interés, logrando una mejora temporal de aproximadamente el 400%.
Así, para cada instante de la secuencia, conseguimos un conjunto de puntos de interés, descritos por el algoritmo SURF. A continuación, pasamos a la fase de búsqueda de correspondencias entre el conjunto de puntos detectado en el frame y el conjunto detectado en el frame .
3.1.1.2 Correspondencias
Las correspondencias, como hemos estudiado en detalle en el apartado 2.2.5, identifican el mismo punto entre dos conjuntos de puntos, cada uno perteneciente a una imagen distinta. En la fase de detección de movimiento, vamos a buscar siempre correspondencias entre frames adyacentes.
41
Figura 3.4. Correspondencia entre puntos característicos del frame i - 1, círculo rojo, y del frame i, cruz verde.
Como podemos observar en la figura 3.4, gracias a estas correspondencias adquirimos el movimiento de cada punto basándonos en las localizaciones en el frame (círculo rojo) y en el frame (cruz verde) y así podemos identificar qué puntos de interés pertenecen a objetos en movimiento y cuáles a fondo.
3.1.1.3 Decisión de los puntos correspondientes al fondo.
Después de obtener el movimiento de cada punto de interés localizado, establecemos las reglas para decidir qué puntos corresponden al fondo y qué puntos corresponden al primer plano.
Para establecer los criterios de decisión partimos de la siguiente hipótesis:
Suponemos que la mayoría de puntos característicos localizados pertenecen a puntos del fondo del escenario. Basamos esta afirmación en que el área correspondiente a objetos en movimiento, generalmente, va a ser mínima en comparación con el escenario completo. Esto es correcto para todos los vídeos analizados en el apartado 5.
Apoyándonos en esta hipótesis podemos establecer que, los puntos que tengan consenso con el modelo de movimiento mayoritario del conjunto total de puntos, pertenecen al fondo de la escena. En escenarios con cámaras fijas el movimiento mayoritario será de cero píxeles y la matriz de transformación en coordenadas homogéneas:
42 [
] (3.1)
Para alcanzar este modelo de transformación, así como los puntos que contiene, vamos a utilizar algoritmos de alineamiento. Gracias a estos algoritmos seremos capaces de agrupar los puntos que pertenecen al fondo y los puntos que pertenecen al primer plano.
Como revisamos en el apartado 2.2.6 del estado del arte, el algoritmo de alineamiento más utilizado es RANSAC. El problema de RANSAC en vídeos de baja calidad, es que puede fallar al no encontrar el número de inliers suficientes para estimar el movimiento. Para este módulo del algoritmo siempre vamos a tener el número de puntos suficientes para estimar el movimiento mayoritario ya que utilizamos todos los de la imagen. Pero como veremos más adelante, en el módulo de seguimiento buscamos correspondencias entre conjuntos reducidos de puntos, pertenecientes a puntos del objeto, por lo que pueden no ser suficientes para RANSAC. RAMOSAC en cambio, estudiado en detalle en el apartado 2.2.7, establece un modelo de transformación más o menos complejo, ajustándose al tamaño del conjunto de correspondencias, y así ofreciendo mejores resultados en estimaciones de movimiento con conjuntos de correspondencias reducidos. Por consistencia con el módulo de seguimiento, vamos a utilizar también en la detección RAMOSAC, aunque obtendríamos resultados comparables con RANSAC. Una vez que, mediante RAMOSAC, encontramos el modelo de transformación que contiene el mayor número de puntos de consenso o inliers, podemos etiquetar los inliers como fondo de la escena. Los puntos de interés que no siguen el modelo u outliers, corresponden al primer plano. Este conjunto contiene inevitablemente, además de los puntos correspondientes a objetos en movimiento, puntos generados por errores en el cálculo de correspondencias.
43
Figura 3.5. En azul, puntos de interés etiquetados como fondo, y en rojo, puntos de interés etiquetados como
primer plano.
En la figura 3.5 se puede observar un ejemplo de puntos correspondientes al fondo y los puntos correspondientes al primer plano. En el siguiente apartado conectaremos los puntos del primer plano que correspondan a objetos, filtrando los puntos que pueden ser debido a errores.