Una de las tareas clave para establecer mecanismos preventivos ante plagas de determinados insectos en los cultivos es la estimación de la población de los mismos.  Los técnicos combinan esta información con otros datos de variables de tipo ambiental (temperatura, humedad, velocidad de viento, etc.), alimentando de esta forma un modelo de predicción con el objetivo de adelantarse a épocas de riesgo. Adelantarse a una plaga da la oportunidad de poder aplicar las medidas preventivas correspondientes, obteniendo múltiples beneficios. Por un lado, minimizar los daños que potencialmente pudiera causar la plaga, con la consecuente pérdida económica. Por otro lado, se habilita la capacidad de ajustar los tratamientos fitosanitarios con el consiguiente ahorro para los agricultores e impacto positivo en el medio ambiente.  

En la actualidad, la recogida de datos de poblaciones de insectos se realiza por observación directa y realizando un recuento manual de los mismos. Esta tarea de recuento requiere de un gran esfuerzo, cantidad de mano de obra y tiempo (ya que los técnicos se desplazan en vehículos a los puntos de muestreo donde se dejan las trampas). Esto hace un tanto limitadas las posibilidades de aumentar este análisis a grandes superficies de terreno.  

En este contexto, el grupo ARCO inició – dentro del proyecto PLATINO – el desarrollo de una solución con base tecnológica para automatizar la estimación de poblaciones de insectos utilizando técnicas de visión por computador e inteligencia artificial a partir de imágenes de trampas cromáticas. Dichas imágenes son capturadas y enviadas por un nodo IoT basado en una Raspberry PI desplegado en el campo donde se encuentra el cultivo. Es importante mencionar que, al estar concebido como un dispositivo para ser desplegado en zonas remotas con imposibilidad de disponer de una fuente de energía estable, el nodo se encuentra alimentado por una batería que a su vez es cargada por un panel solar. La eficiencia en la gestión del consumo es, por lo tanto, un requisito no funcional a tener en cuenta a la hora de proponer soluciones que serán desplegadas en esta plataforma. 

La solución se encuentra en fase de despliegue y pruebas en el entorno final. En esta publicación se describe el algoritmo de procesamiento de imagen que se realiza en el dispositivo con el objetivo de segmentar la captura de la cámara.  El proceso de segmentación identifica y extrae las regiones de las imágenes que potencialmente pueden contener información relevante para etapas posteriores; en este caso, la presencia de insectos. La salida de la etapa de preprocesamiento y segmentación alimentará una etapa posterior de clasificación que será tratada en una publicación más adelante. 

A continuación, se ofrecen detalles de cuál ha sido el proceso de diseño y desarrollo del algoritmo de segmentación, aplicado a un caso concreto como es la estimación de la población de la mosca del olivo.  

 

Materiales y métodos 

Al comienzo del desarrollo del algoritmo, se ha trabajado con imágenes de las trampas tomadas con una cámara réflex Nikon D300 a una distancia de 40 cm.  La razón es disponer al principio de unas imágenes de la mejor calidad posible para posteriormente ajustar los parámetros de tamaño y resolución de las mismas a unos valores más apropiados para un sensor como el que iría montado en el sensor IoT y adaptado a su capacidad de procesamiento. Como iremos mostrando más adelante, la carga computacional es proporcional (exponencialmente) a la resolución de la imagen a procesar, lo que implica más tiempo y energía consumida, sin que necesariamente se mejore el resultado final. 

Se han tomado un total de 11 imágenes en diferentes condiciones de iluminación en exterior, emulando las condiciones reales de captura en el campo. La resolución inicial de las imágenes obtenidas es de 3872×2592 pixeles. 

Figura 1. Ejemplo de imagen de entrada al algoritmo de segmentación de insectos tras la identificación y recorte de la región de interés.

 

Aplicando un detector de formas sobre dicha imagen (basado en el algoritmo de Ramer–Douglas–Peucker), se identifica y aísla la región rectangular correspondiente a la trampa cromática. De esta forma, se realiza un recorte de la imagen original para eliminar los elementos exteriores que hayan entrado en el encuadre, y que no correspondan con la zona de pegamento en la que están atrapados los insectos.  

Una vez se tiene la región de interés, comienza el proceso de segmentación de la imagen. La siguiente imagen muestra la cadena de procesamiento de la imagen, formada una serie de operaciones consecutivas que serán explicadas a continuación. 

Figura 2. Pasos seguidos por el algoritmo propuesto para la segmentación de insectos en trampas cromáticas.

El primer paso es realizar una conversión del espacio de color de formato RGB a escala de grises. Esto reducirá un 66% el uso de memoria en los pasos siguientes, además de suponer también una disminución en la complejidad y tiempo de procesamiento de los mismos. 

Otro factor que tiene un impacto muy importante en el tiempo de ejecución de estas operaciones es la resolución de las imágenes. La reducción de la escala a la hora de realizar las operaciones supone una mejora del tiempo de ejecución que llega a ser exponencial en algunas ocasiones.  

La siguiente gráfica muestra el impacto que tiene el tamaño de la imagen de entrada para cada una de las cinco etapas restantes del algoritmo, dadas cuatro resoluciones diferentes. Los tiempos de ejecución medidos corresponden a una implementación del algoritmo en C++, utilizando la versión 4.5.2 de la librería OpenCV, sobre una Raspberry Pi 3B, que es el modelo que monta el nodo IoT desarrollado por el grupo ARCO. 

Figura 3. Impacto de la resolución de la imagen de entrada en el tiempo de cómputo para cada etapa del algoritmo

Las imágenes de entrada al sistema estarán afectadas por condiciones ambientales variables, como por ejemplo diferencias en la intensidad de la luz en el momento de capturar las imágenes. Estas diferencias se traducen en variaciones entre las imágenes de los valores de los pixeles asociados tanto al fondo de la trampa cromática como a los insectos atrapados en ellas.  Incluso en una misma imagen, esas diferencias existen entre regiones debido, por ejemplo, a que la luz incide de manera distinta en unas partes de la superficie de la trampa que en otras. 

El objetivo a la hora de diseñar un algoritmo de las características del presentado en esta publicación es que éste sea lo menos sensible a dichas variaciones. Algunas de las etapas del mismo (p. ej. binarización) hacen uso de parámetros que sí se ven afectados por estos cambios. Así, si queremos establecer unos parámetros uniformes para aquellas etapas de la cadena de procesamiento de la imagen sensibles a variaciones lumínicas, lo primero es reducir el impacto de las condiciones de iluminación en el proceso de captura de las imágenes. Es por esto que se realiza una ecualización del histograma de la imagen.  

La operación de ecualización incrementa el contraste de los pixeles de dicha imagen de manera relativa a la función de distribución que representa el histograma de la imagen en escala de grises. De manera que, para un histograma dado, los valores de los pixeles son ajustados y distribuidos de manera proporcional a lo largo de todo el rango de valores posibles, consiguiendo que los máximos y los mínimos se ajusten al rango posible. Si el concepto de ecualización es nuevo para vosotros, os recomendamos ver este vídeo donde se explican las diferentes estrategias de ecualización del histograma y ver el efecto que tienen. 

En la siguiente imagen se muestra el resultado de dicha ecualización sobre la imagen en blanco y negro (parte superior) que usamos como entrada a nuestro algoritmo. 

 

Figura 4. Imagen de ejemplo tras su conversión a blanco y negro e histograma correspondiente.

Figura 5. Imagen de ejemplo tras la ecualización de su histograma. Se puede apreciar el incremento en el contraste de los elementos atrapados en la trampa respecto al fondo. Detalles como las alas de los insectos atrapados ahora sí son distinguibles de la trampa, lo que ayuda a delimitar mejor el área de interés.

Aunque a simple vista parezca que el resultado ha empeorado significativamente la calidad de la imagen, de cara a nuestro objetivo la salida de la ecualización simplifica mucho el trabajo de la siguiente etapa. No olvidemos que lo que se persigue en estos primeros pasos es discernir entre lo que es fondo y lo que es objetos atrapados en la trampa. Así, para la figura con la imagen cuyo histograma ha sido ecualizado, podemos observar cómo detalles como las alas de los insectos se encuentran más definidas. De esa forma, podremos delimitar mejor el área de interés para la posterior segmentación de la imagen. 

Al desplazar relativamente los pixeles más oscuros a rangos cercanos al valor 0 y los más brillantes al 255, ya podemos establecer un parámetro de corte común para la etapa de binarización, de forma que se pueda separar el fondo (superficie de la trampa cromática no cubierta) de lo que sería el resto. El proceso de binarización transformará la imagen ecualizada en escala de grises a una imagen en blanco y negro cuyos pixeles sólo pueden tomar dos valores; blanco y negro. Se busca, pues, obtener una máscara que determine la región de la imagen donde se encuentren los objetos de interés que posteriormente serán segmentados como son insectos o restos de materia vegetal y polvo que hayan podido quedar pegados. 

Existen múltiples funciones de binarización que se basan en la aplicación de una función umbral (valores de píxeles por encima o por debajo de un determinado valor son asignados el color blanco o negro respectivamente). Dicho umbral puede ser tanto estático, es decir un valor fijo, establecido en tiempo de diseño, fijo calculado para cada imagen o dinámico que significa que utiliza un valor umbral diferente para cada pixel en función de la información de pixeles vecinos.  Experimentalmente se ha comprobado que la técnica concreta de binarización no afecta significativamente al resultado final del algoritmo, por lo que se ha optado por utilizar una función umbral de valor estático en tiempo de diseño. De esta forma, se sigue siendo fiel al principio de simplicidad y baja carga computacional del sistema, apropiado para su despliegue en un sistema empotrado (nodo IoT) donde la gestión de la energía es un aspecto clave en su funcionamiento. 

Figura 6. Imagen de entrada tras la fase de binarización, aplicando un valor umbral en tiempo de diseño de valor 10.

Así, tras pasar por la etapa de binarización, tenemos una imagen como la que podemos ver arriba. Llegados a este punto, tenemos que el fondo se representa con pixeles en color negro y los insectos atrapados (además del anteriormente mencionado posible ruido comprendido por polvo, restos vegetales… etc.) con pixeles en color blanco. Dado que para muchos grupos de pixeles es evidente que no suponen información relevante a la hora de contar el número de insectos, éstos pueden ser descartados.  

Para esto se realiza una serie de operaciones morfológicas con las cuales eliminar estas regiones no relevantes que suponen ruido, y mantener las que sí resultan de interés. Aunque la forma original del grupo de pixeles resulte alterada, el objetivo es conseguir identificar las regiones de interés, que posteriormente serán recortadas y que finalmente pasarán a un sistema que los clasificará. En este proceso, se intenta no alterar en exceso la forma original de dicho grupo de pixeles, obteniendo una máscara lo más ajustada posible sobre la que centrar el posterior recorte. 

A modo de ejemplo, en la imagen de abajo se puede ver el efecto de esta etapa en la cadena de procesamiento de la imagen, donde se observa claramente cómo el ruido ha desaparecido y se intensifican los tres cuerpos principales que aparecen.

Figura 7. Resultado tras aplicar la secuencia de operadores morfológicos a la imagen binarizada.

Las operaciones morfológicas requieren de un elemento denominado estructurante y de una operación.  El elemento estructurante va a ser el encargado de identificar los pixeles vecinos que van a ser tomados en cuenta a la hora de realizar la operación. Mientras que la operación por su parte define cuál va a ser el resultado del píxel de salida para una posición, dados los pixeles del vecindario. 

Cuanto mayor es el tamaño del elemento estructurante, más impacto tiene la operación que lo usa en la imagen resultado. Por ello el tamaño de éste está definido como el resultado de la división del número de filas de la imagen entre 120. Por ejemplo, para una imagen 640×360 el tamaño del elemento estructurante será de 3×3, para una de 1920×1080 de 9×9… etc. Esta relación se ha obtenido de forma puramente experimental, tras la ejecución de diversas pruebas con diversos tamaños y observar la calidad del resultado obtenido. 

La secuencia de operaciones morfológicas realizadas es: 

  • Dilatación con 1 iteración – El objetivo es el de fusionar regiones cercanas separadas pero que pertenecen al mismo objeto y que, por la sensibilidad del proceso de binarización, aparecen como partes independientes. Ver Figura 8, paso 1. 
  • Erosión con 2 iteraciones – El resultado es la eliminación de regiones no relevantes que corresponden con ruido en la imagen (polvo, pequeñas hojas e insectos, etc.). Ver Figura 8, paso 2.  
  • Dilatación con 1 iteración. Finalmente, se recupera el área perdida por la erosión en aquellas regiones que, por su tamaño, no han sido consideradas ruido y eliminadas tras la etapa anterior. Ver Figura 8, paso 3. 

Figura 8. La aplicación de sucesivas operaciones morfológicas sobre la imagen, elimina el ruido de la misma y aísla y destaca aquellas áreas donde es probable que se encuentre un objeto de nuestro interés.

La elección de la forma del elemento estructurante condicionará igualmente el resultado obtenido. En el caso de nuestro experimento se ha seleccionado la forma de elipse. continuación, se puede ver el resultado que obtendrían las formas cuadradas y en cruz del elemento estructurante:

Figura 9. Resultados alternativos para la etapa de aplicación de operadores morfológicos sobre la imagen binarizada para un elemento estructural tipo cuadrado (a) y elíptico (b).

Finalmente, con la imagen limpia de ruido y habiendo dejado sólo los grupos de píxeles que potencialmente corresponden con regiones en las que se podría encontrar un insecto de nuestro interés, el siguiente paso es el de realizar una asignación de números (etiquetado) a cada uno de los pixeles que componen las regiones en la imagen. Dentro de una misma región, el valor asignado será el mismo para todos los pixeles y entre distintas regiones el valor se irá incrementando progresivamente. Este proceso, además, también obtiene estadísticas como: los límites superior izquierdo (mínimo) e inferior derecho (máximo) del rectángulo que la contiene y el área como el número de píxeles etiquetados con ese valor. Estas estadísticas sirven para, posteriormente al etiquetado, realizar un filtrado adicional de regiones que, por sus características, no son candidatas a contener objetos de nuestro interés. 

Para realizar este etiquetado, se ha hecho uso de la función de OpenCV conectedComponentsWithStats tomando como parámetros de la máscara una conectividad de 4. Estas mascaras recorren todos los pixeles de la imagen de manera consecutiva evaluando el valor que se le tiene que asignar a cada uno. De este modo la conectividad se refiere a la cantidad de pixeles adyacentes que se deben de tener en cuenta para tomar este resultado. Este parámetro puede tomar los valores de conectividad 4 y 8, incluyendo o no los pixeles situados en diagonal respectivamente. 

Figura 10. Resultado final del algoritmo de segmentación tras la utilización de la información obtenida por la etapa de etiquetado. En la región analizada existen tres grupos de pixeles diferentes, delimitados por un área. La imagen de entrada es recortada, con el centro determinado por las estadísticas de cada región, y aplicada la máscara que corresponde al grupo de píxeles con el mismo identificador.

Las estadísticas obtenidas tras el etiquetado son utilizadas para la generación de un conjunto de imágenes (los segmentos) para su posterior utilización. Entre los usos de dichas imágenes tenemos: creación de un conjunto de datos para entrenar algoritmos de clasificación, alimentar algoritmos de inteligencia artificial para determinar si dicha imagen corresponde o no a un determinado insecto, o para ser inspeccionadas manualmente por un operador humano. 

En la imagen de arriba vemos un ejemplo del resultado final del proceso. Tras el etiquetado de la imagen binarizada y tratada con los operadores morfológicos, se identifican tres regiones independientes. Se generan tres máscaras diferentes, una por cada grupo de píxeles etiquetados con el mismo valor de la región. La forma elegida para la máscara es un cuadrado, y su tamaño es definido en tiempo de diseño.  

Es necesario mencionar que el algoritmo de segmentación propuesto trabaja de manera interna con una resolución de la imagen inferior a la imagen capturada por la cámara que monta el nodo IoT. De esta forma se optimiza el tiempo de cómputo y los recursos necesarios (principalmente memoria), lo que tiene un impacto directo en la eficiencia de la gestión del consumo energético. Por lo tanto, una vez se ha obtenido la máscara, ésta debe ser escalada para que tenga una correspondencia con la resolución de la imagen de entrada. Además, se debe realizar una serie de cálculos a partir de los valores de las coordenadas obtenidas por el algoritmo de etiquetado, de manera que se superponga correctamente la máscara sobre la imagen original. 

Al final de todo el proceso tendremos un total de imágenes igual al número de etiquetas asignadas. La figura de más abajo muestra algunos de los recortes resultado de ejecutar el algoritmo de segmentación propuesto sobre una imagen de una trampa cromática tomada en una finca de Castellar de Santiago, provincia de Ciudad Real. En ella se ve perfectamente cómo los elementos de interés son perfectamente identificados, aislados y centrados en respectivos recortes para su posterior procesamiento, análisis o inspección. Pero ésa es otra historia que contaremos en otro capítulo. 

 

Resultados 

Tal y como se ha mencionado antes, tenemos como resultado del proceso un conjunto de imágenes de todas y cada una de las regiones identificadas en la trampa cromática. Idealmente, cada una de estas imágenes solo contendrá información representativa de un insecto individual. Pero no siempre es así, aunque de este problema se encargará la fase de clasificación, que es abordada en otra publicación. Lo que si se consigue es eliminar las posibles interferencias por ruido que podrían afectar a la hora de clasificar, tras la inclusión en los recortes de otras partes de insectos o elementos indeseados. 

Figura 11. Muestra del conjunto de imágenes generadas tras ejecutar el algoritmo de segmentación propuesto.

Discusión 

A lo largo de este artículo, se ha mencionado en repetidas ocasiones que el establecimiento de ciertos parámetros asociados a cada una de las etapas de la cadena de procesamiento se ha realizado de manera totalmente empírica. Así, basándonos en multitud de pruebas y analizando el impacto en el resultado final, finalmente se estableció un valor a dichos parámetros persiguiendo un objetivo; obtener la mejor relación tiempo de cómputo-calidad. Hay que recordar que el algoritmo de segmentación será desplegado en un nodo IoT de fabricación propia y que éste es alimentado por un panel solar conectado a una batería. 

También, como se ha comentado al comienzo de esta publicación, es clave para nuestro objetivo determinar la resolución de la imagen con la que trabajar. Hoy en día, las cámaras disponibles en el mercado para montar en una Raspberry PI como la que incluye el nodo IoT, montan sensores con una resolución de hasta 4K. Si bien se trata de una resolución que permite obtener un magnífico detalle de la superficie de la trampa y que permite distinguir los elementos atrapados en ellas (lo que ayudará a mejorar la identificación y clasificación de dichos elementos), procesar una imagen de dichas características es aproximadamente 35 veces más costoso que la misma imagen en resolución VGA (ver Tabla 1). 

Resolución   Conversión de color  Ecualización   Binarización (thresholding)  Operadores morfológicos   Componentes conectadas  Filtrado comp.  Tiempo total (ms)   
4K   23,00  22,00  10,00  880,00  149,00  0,02  1084,02  x35,1 
FHD   5,00  5,00  3,00  126,00  37,00  0,02  176,02  x5,7 
HD   2,00  3,00  1,00  34,00  16,00  0,01  56,01  x1,8 
VGA  0,60  2,00  0,30  5,00  23,00  0,02  30,92   

Tabla 1. Tiempos de procesado totales y su descomposición por etapas para diferentes resoluciones de la imagen de entrada al algoritmo.

La pregunta que uno puede hacerse es, ¿afecta la resolución de la imagen con la que trabaja el algoritmo a los resultados obtenidos? En nuestro caso, tomamos como indicador el número de regiones de interés etiquetadas para responder a dicha pregunta. Como se puede ver en la Tabla 2, no existe una variación significativa en dicho valor. Las dos columnas corresponden a los valores de las regiones obtenidas tras la ejecución del algoritmo de etiquetado y después de descartar aquellas (filtrado post-etiquetado) que no cumplen unos requisitos mínimos de forma y área. Se observa que, a medida que la resolución de la imagen decrece, aparecen más regiones identificadas como posibles contenedores de objetos de interés. Éste puede ser el efecto del algoritmo de escalado utilizado que, al reducir el tamaño, reduce también la distancia entre regiones pequeñas de pixeles que tras la ejecución de la operación de dilatación se unifica en un único conjunto de pixeles. Cabe destacar que para realizar estas pruebas a distintas resoluciones se ha diseñado el sistema de forma adaptativa para que aplique unos criterios proporcionales, tanto en la agresividad de los operadores morfológicos como en los parámetros de filtrado. Como conclusión tenemos que el uso de una imagen con una resolución menor, no sólo no afecta al resultado obtenido, sino que permite reducir significativamente el tiempo de procesado. 

Imagen  Regiones tras el etiquetado  Regiones tras filtrado 
4K   71   70  
FHD   73   72  
HD   78   77  
VGA  78   77  

Tabla 2. Número de regiones identificadas en función de la resolución de la imagen con la que trabaja el algoritmo de segmentación propuesto.

Analizando los tiempos de procesamiento por etapas, destaca el importante peso que tiene la fase de ejecución de los operadores morfológicos. No es de extrañar ya que, en realidad, esta etapa comprende la ejecución de 4 pasos (1+2+1) para dos operadores diferentes (erosión y dilatación). Como se observa en el siguiente diagrama, estamos hablando de un 80% del tiempo total de ejecución.

Figura 12. Peso de las diferentes etapas de la cadena de procesamiento. De largo, la ejecución de los operadores morfológicos es la que más contribuye.

 

Por lo tanto, parece razonable preguntarse si existe una alternativa al uso de los operadores morfológicos que permita reducir y optimizar aún más la cadena de procesamiento. En esta situación se plantea reemplazar el uso de los operadores morfológicos por otra operación que fuera capaz de obtener unos resultados parecidos. Así, se observó que, estadísticamente, las regiones que catalogamos como ruido están caracterizadas por tener un valor de área (es decir, número de pixeles de color blanco) muy por debajo del promedio del área que ocuparía el objeto de nuestro interés. En nuestro caso, como veremos en un próximo artículo, nuestro objetivo es identificar un insecto determinado (la mosca del olivo) en los segmentos generados. En base a esta observación, trabajamos con la hipótesis de que se podría establecer un umbral para el valor del área, el cual es utilizado para descartar todas las regiones que se encuentren por debajo del mismo. Para el caso de uso concreto de la mosca del olivo, este valor de área umbral se establece en torno a los 800 pixeles en una imagen 4K teniendo en cuenta la distancia a la que se tomó la imagen, etc. Si dividimos este umbral por la cantidad de pixeles totales de la imagen obtenemos una relación la cual podemos extrapolar a escalados de la imagen sin modificar los resultados obtenidos. 

Como se puede observar en la Tabla 3, al eliminar los operadores morfológicos se reduce significativamente el tiempo de procesamiento, con una mejora entre 2,4 y 5,3 veces respecto a la versión original del algoritmo. 

Resolución   Conversión de color  Ecualización   Binarización (thresholding)  Componentes conectadas  Filtrado comp.  Tiempo total (ms)  Ganancia vs op. morfológicos 
4K   19,00  23,00  17,00  147,00  0,05  206,05  x5,3 
FHD   5,00  5,00  3,00  37,00  0,04  50,04  x3,5 
HD   2,00  2,00  1,00  18,00  0,05  23,05  x2,4 
VGA  0,50  2,00  0,30  5,00  0,03  7,83  x3,9 

Tabla 3.Tiempos de procesado totales y su descomposición por etapas para diferentes resoluciones de la imagen de entrada al algoritmo. Se omite la etapa de operadores morfológicos y se optimiza el filtrado de regiones etiquetadas en función de las estadísticas de las mismas.

Sin embargo, la asignación de etiquetas en ausencia de procesamiento morfológico de la imagen es mucho más elevada como puede verse en la Tabla 4. La explicación a ello tiene que ver con el resultado obtenido por la función de binarización. Al establecer un valor de umbral estático en tiempo de diseño, los pixeles que realmente pertenecen a un mismo objeto pueden ser considerados como fondo, dando lugar a varias regiones para un mismo objeto (ver de nuevo la imagen binarizada en la Figura 8). 

Este hecho tiene implicaciones negativas por dos razones. Por un lado, supone un aumento en la memoria necesaria para las tablas que utiliza el algoritmo de etiquetado. Para la configuración y dispositivo concretos que se han considerado en este caso de uso quizás no tenga especial relevancia, pero si tenemos en consideración un escenario más restrictivo, es fundamental realizar una gestión eficiente de los recursos. En un futuro artículo veremos cómo, para una correcta implementación del algoritmo de etiquetado en hardware reconfigurable, es clave limitar el uso de memoria para que el rendimiento del acelerador sea óptimo. Por otra parte, el tiempo de procesamiento necesario posteriormente para el descarte de las regiones se ve incrementado, aunque el impacto en el total es prácticamente despreciable. 

Imagen  Regiones tras el etiquetado  Regiones tras filtrado 
4K   1170   81 
FHD   1011   82 
HD   912   83 
VGA  503   86 

Tabla 4. Número de regiones identificadas en función de la resolución de la imagen. En esta versión del algoritmo se han omitido los operadores morfológicos.

Como puede deducirse de la lectura de los datos en la Tabla 4, el número de regiones identificadas por el algoritmo de etiquetado es bastante más elevado en esta versión de la cadena de procesamiento. Esta variación en el número de regiones finales en ausencia de procesamiento morfológico se la podemos achacar a la forma de las regiones en la imagen, que al no estar modificadas por el uso de operadores adquieren unos parámetros de área ligeramente distintos. 

También se puede observar en la tabla que la propia reducción en la escala de las imágenes contribuye a la reducción de ruido resultante de la etapa de binarización. 

Es necesario tener en cuenta que, a mayor número de segmentos o regiones de interés identificadas, será necesario un mayor esfuerzo de cómputo para clasificarlas, por ejemplo. Además, si la calidad de dichos segmentos (regiones solapadas, conteniendo partes de múltiples objetos, etc.) no es la adecuada, no es recomendable para alimentar la etapa de aprendizaje de los algoritmos de clasificación a desarrollar. 

También, al no utilizarse los operadores morfológicos, las zonas resultantes tienen una forma mucho más ajustada al contorno original de la segmentación, lo cual no tiene por qué representar en todos los casos el contorno total del insecto. 

 

Conclusiones 

En base a los resultados obtenidos podemos concluir que la utilización de los operadores morfológicos en las fases de procesamiento de la imagen aporta un poco más de información a los resultados obtenidos al no limitar tanto la zona de recorte. Si que es cierto que suponen un elevado coste computacional, sin embargo, la reducción del tamaño de las imágenes a la hora de realizar el procesamiento reduce enormemente el tiempo de ejecución a la vez que no supone un cambio relevante en los resultados finales. 

 

Referencias de interés