Skip to content

Métodos para la detección y conteo

En esta página se describen los métodos y técnicas utilizados para realizar las detecciones de colonias en el proyecto El procedimiento se presentará paso a paso y con una imagen presentando el resultado del algoritmo.

El principal problema para poder detectar colonias a partir de las distintas imágenes de las colonias era poder generar una binarización de la cuál sólo se obtengan las colonias y no otros artefactos, ya sea por iluminación no uniforme u otros elementos de la imagen.

Imagen original

La imagen de la Figura 1 será utilizada de muestra para la descripción del procedimiento de detección.

Figura 1: Imagen original con ID 755 e iluminación clara que forma parte del dataset.

Recorte de la placa de Petri

El primer paso fue poder recortar la imagen para obtener centrada a la placa de Petri, se realizó binarizando la imagen y teniendo en cuenta la mayor área dentro de los contornos encontrados. El relleno del area entre el borde de la placa de Petri y el borde de la imagen fue realizado calculando el valor promedio de los pixeles de la placa de Petri para que interfiriera lo menos posible en los siguientes pasos.

Figura 2: Resultado de recortar la imagen para obtener la placa de Petri centrada

Primera binarización e Inpaint

Uno de los principales problemas de las imágenes de las placas de Petri es la presencia de texto escrito sobre la placa que interfiere con el proceso de binarización, es por esto que es necesario retirarlo sin interferir en el conteo. Una forma de retirarlo es realizando una máscara del mismo. Para esto primero realizo una binarización adaptativa promedio como se observa en la Figura 3, este resultado es utilizado como máscara para el algoritmo de Inpaint, en el mismo se utilizan características de los pixeles vecinos para rellenar los pixeles presentes en la máscara. Este algoritmo fue presentado por Telea et al. 1. El resultado de este paso se puede observar en la Figura 4.

Figura 3: Resultado de realizar la binarización adaptativa promedio sobre la imagen recortada

Figura 4: Resultado de utilizar el algoritmo de Inpaint

Corrección de iluminación no uniforme

Un problema presente en esta imagen y en muchas otras es la presencia de iluminación no uniforme, para poder corregirlo utilicé una técnica denominada filtrado homomórfico. La técnica anterior aplica la transformada de Fourier para obtener las componentes de baja y alta frecuencia de dicha imagen y así poder aplicar un filtro pasa-alto para mejorar la iluminación. El resultado de este paso se observa en Figura 8.

Figura 5: Resultado de realizar la corrección de Iluminación.

Binarización con Otsu

En este paso se obtiene el resultado final del procesamiento de las imágenes de las placas de Petri, realizando una binarización con Otsu y posteriormente una operación morfológica para mejorar la definición de los bordes de las colonias, ayudando así al cálculo de características.

Figura 6: Resultado final de procesamiento.

Se puede observar cómo las colonias quedan definidas en la binarización y existe a su vez pequeñas zonas con ruido.

Conteo

Una vez realizado el procesamiento para obtener la imagen de la placa de Petri binarizada, se realiza el conteo y se obtiene el bounding box o cuadrado delimitante de cada colonia encontrada.

Resumen del algoritmo utilizado:

  1. Etiquetado de la imagen.
  2. Calculo de circularidad.
  3. Filtrado de ruido.
  4. Resolución de aglomerados.
  5. Conteo de las colonias.

Detalle:

  1. Se etiqueta la imagen binarizada para obtener las regiones que pueden llegar a ser colonias o aglomerados de las mismas.

  2. Se calcula la circularidad de las colonias con la siguiente ecuación:

    \[ \text{Circularidad} = \frac{4\pi \times \text{Área}}{\text{Perímetro}^2} \]

    De esta manera puedo separar las colonias en una primera instancia de acuerdo a su circularidad, aunque hay que tener en cuenta que esta no es una medida exacta debido a la diversidad en las formas de las colonias y la presencia de los aglomerados.

  3. Se procede a filtrar el ruido y posible presencia de artefactos.

    • El ruido es separado en primera instancia por área y también por valores de circularidad muy pequeños (menores a 0.1).

    • En segunda instancia se intentó utilizar algún algoritmo de clustering para separar el ruido de las colonias, el problema fue que no se consiguió encontrar una característica que sirviera para todas las especies de colonias. El algoritmo utilizado en las pruebas fue DBSCAN, el cuál funciona buscando cluster en zonas de alta densidad de muestras y luego aumentando el tamaño de los mismos, la ventaja de este tipo de algoritmo es que no es necesario incluir una cantidad de clusters a buscar porque es posible que en una imagen solo hubiera colonias y no ruido. La desventaja es que el volumen de datos es muy poco para encontrar clusters correctamente, sumado a la dificultad en la elección de características para dicha separación. Se probaron varias características relacionadas al color de las colonias, tanto en la imagen en escala de grises previo a la binarización, como en la imagen a color, pero debido a la alta diversidad de las especies de colonias no se encontró una característica que lograra separar a als colonias del ruido en todos los casos.

  4. En las áreas etiquetadas que no cumplieron con la circularidad utilizo un algoritmo basado en segmentación llamado Watershed 2. En el mismo en primera instancia se calcula la distancia de cada píxel a un píxel del fondo de la imagen, generando así una imagen de distancia. Luego se identifican los máximos locales que serán utilizados como marcadores como entrada para el algoritmo de Watershed. Estos marcadores se etiquetan y el algoritmo se aplica a la imagen de distancia, generando una nueva imagen etiquetada con las diferentes regiones basadas en las distancias calculadas. De esta manera se puede separar un posible aglomerado en varias colonias.

    Figura 7: Se muestra el resultado luego de utilizar el algoritmo de Watershed en una colonia sospechosa de ser un aglomerado. Se observa la presencia de ruido en los límites de las regiones encontradas.

    En la Figura 7 se muestra el resultado de aplicar este algoritmo sobre una colonia sospechosa de ser un aglomerado. A esta imagen se le realiza un filtrado por área para poder separar el ruido. La región o regiones resultantes son consideradas colonias, de las cuáles se obtienen los cuadrados delimitantes poder compararlos con los cuadrados delimitantes reales de la imagen de la placa de Petri original.

  5. Se calcula la suma de todas las colonias para obtener el resultado del conteo.

Resultado

El resultado de este algoritmo sobre la imagen con ID 755 se puede apreciar en la Figura 8.

Figura 8: Resultado final del conteo, junto con los cuadros delimitantes calculados (en azul) y los originales (en verde). En rojo se muestra el centro de las colonias encontradas.

En el ejemplo anterior se puede ver cómo la detección funciona correctamente en la mayoría de los casos, se observa un error al detectar un aglomerado de dos colonias como una sola.


  1. Alexandru Telea. An image inpainting technique based on the fast marching method. Journal of Graphics Tools, 9:, 01 2004. doi:10.1080/10867651.2004.10487596

  2. Serge Beucher and Christian Lantuéjoul. Use of watersheds in contour detection. In International Workshop on Image Processing: Real-time Edge and Motion Detection/Estimation, 132:, 01 1979.