Visión por computador para la detección de círculos
El seguimiento (tracking) de objetos en un video es un problema común en la visión por computador. Algunos métodos se basan en la búsqueda de keypoints, que posteriormente se cotejan con las siguientes imágenes.
En este post se describe un método basado en la identificación de objetos con formas simples, en particular círculos, para realizar un tracking de forma robusta (a pesar del movimiento o el cambio de tamaño del objeto) para todos los frames del video donde ese objeto aparezca. Además, el método permite el tracking de más de un círculo simultáneamente (multi-tracking).
El caso de estudio que se presenta aquí es el de una escena estática, con una cámara móvil, pero pueden diseñarse métodos similares para cámaras estáticas y objetos móviles. Este método se divide en dos partes: la identificación de círculos y el tracking de objetos.
Detección de círculos basados en visión por computador
Los círculos se detectan frame a frame, sin ningún conocimiento previo de los círculos detectados anteriormente. Es posible que haya más de un objeto circular en el mismo frame, así que el detector de círculos debe ser capaz de devolver más de un círculo, si ese es el caso. Por tanto, para cada frame se proporciona un conjunto de círculos candidatos a ser objetos circulares en la imagen.
Primero se procesa el frame para que la búsqueda de círculos resulte más fácil. El paso más importante en el pre-procesado es la obtención de los bordes de los objetos en la imagen. A partir de esos bordes, se buscan los círculos y solo los mejores son proporcionados al tracking.
En este punto, algunos círculos podrían no pertenecer a algún objeto circular, de modo que es necesario un post-procesado. Los círculos pueden filtrarse con base a conocimientos previos sobre los objetos, por ejemplo estableciendo límites en el tamaño o la posición. También es posible comprobar si los círculos intersectan unos con otros, o si se encuentran demasiado cerca o lejos los unos de los otros.
Imagen en escala de grises, bordes y círculos detectados (rojo). Los círculos azul y verde son los tracks.
Para esta parte de detección, es tan importante detectar los círculos cuando aparecen en la imagen como no detectarlos cuando no hay objetos con círculos. Por tanto, solo los mejores círculos, si hay alguno bueno, se proporcionan a la parte de tracking.
(Multi) tracking de círculos
El objetivo del multi-tracking es obtener una estimación de la posición (centro) y tamaño (radio) de círculos a lo largo de todos los frames donde el objeto es visible, simultáneamente para todos los objetos. Esta estimación debe calcularse incluso si no hay un círculo detectado para un objeto en un frame (o varios frames consecutivos).
Para aquellos casos en los que no exista detección, se ha desarrollado un modelo dinámico con el que poder predecir el tamaño y posición de los círculos en frames consecutivos, conociendo el movimiento de la cámara (en el caso de escenas estáticas).
A medida que se detectan nuevos círculos como candidatos a objetos, estos son descartados, asociados a un track actual, o usados como comienzo de un nuevo track. Se ha probado que el tracking es robusto contra la detección de falsos objetos.
Los círculos se descartan si no son lo suficiente similares ni diferentes a los actualmente seguidos. Un círculo se establece como una nueva observación de un objeto si es lo suficiente similar a la predicción de dicho objeto.
Finalmente, un nuevo objeto ha sido detectado si el círculo observado es lo suficiente diferente de cualquier otro círculo predicho, para todos los tracks actuales.
Tras asociar las nuevas observaciones con algunos objetos actualmente en tracking, el estado de estos objetos es estimado. Esto se realiza frame a frame, combinando la información proporcionada por el modelo de predicción y el círculo observado, dando como resultado un conocimiento completo y filtrado de la posición y tamaño del objeto a lo largo de todos los frames.
Conclusiones
Este método proporciona una estimación precisa de varios objetos circulares simultáneamente, calculando una medida de tamaño y posición para todos los frames, incluso si no siempre se han detectado círculos. Es robusto contra el cambio de tamaño y posición de los objetos, y puede ser extrapolado a otros métodos similares que involucren otras formas o escenas.
Esperamos que te haya sido útil este artículo. Si tienes entre manos algún proyecto de ingeniería y crees que podemos ayudarte, aquí te dejo el enlace donde nos podrás contactar y explicarnos más a cerca de ello.