Opening: How are you? As a reminder you can withdraw Any questions? Before we begin some general questions about you:
Appendix 7: Example of subordinate theme table.
Dentro de los métodos de detección de contornos, utilizar métodos basados en la derivada permite grandes avances en la visión artificial, debido a que en esta etapa se delimitan los cuerpos u objetos de una circunstancia, para que después puedan ser procesados [26]. Además con la extracción del contorno de la imagen permite ubicar ciertos errores que esta pueda contener que a simple vista no se puedan observar. De los algoritmos más modernos, se encuentra un enfoque hibrido, el cual es realizado en India. La detección de bordes es un paso elemental utilizado en diversas aplicaciones de procesamiento de imágenes. Los principales problemas en los algoritmos de detección de bordes existentes son las pobres localizaciones de los bordes, menos capacidad de eliminación de ruido, no puede detectar los bordes de las imágenes de fondo complejas y la incapacidad para detectar correctamente los bordes de color en las imágenes [27]. Por lo tanto, se propone un enfoque híbrido secuencial para superar todas las limitaciones de los algoritmos de detección de bordes existentes.
El problema de la utilización de algoritmos de detección de bordes es que estos pueden ser computacionalmente costosos y toma bastante tiempo de ejecución para el procesamiento de los datos [27]. Así que, este algoritmo también mejora la técnica de detección de bordes híbrida utilizando el enfoque de paralelismo de datos [27].
2. Algoritmos de Procesamiento de Imágenes 32
Figura 2-13: Diagrama de flujo de detección de bordes hibrido. [27]
Por como se indica en la figura anterior, se realiza el algoritmo de manera paralela, haciendo que su rendimiento sea optimo, comparándolo con un algoritmo de enfoque secuencial.
Ahora bien, en los criterios basados en la derivada es común un utilizar un kernel, el cual es el núcleo que utiliza el algoritmo para procesar la imagen y detectar los contornos o bordes. Un ejemplo claro de la evolución de este proceso es el mejoramiento del kernel, ya sea el IRKT (Transformación improvisada de núcleo giratorio) o el IRKTE (IRKT aplicado a detección de bordes). Si se adopta el enfoque de línea de los algoritmos de trasformación de núcleo giratorio, se obtiene un nuevo modelo de detección de bordes según la diferencia de dirección entre borde y regiones lisas [28]. Al mismo tiempo, se presenta un enfoque de ubicación precisa basada en la dirección normal del borde para superar la gran anchura causada por el kernel a gran escala del IRKT.
2. Algoritmos de Procesamiento de Imágenes 33
Dentro del trabajo propuesto, se mejora el algoritmo IRKT añadiendo peso a los bordes, este nuevo algoritmo se denomina IRKTEW, el cual mejora la capacidad de resistir el ruido de manera efectiva. Para la prueba de este algoritmo se realizan experimentos con imágenes que contengan ruido, y que permita verificar la potencia del algoritmo [28]. En la figura 2-14, se evidencia el resultado de estas pruebas, verificando su eficacia con bordes con ruidos fuertes, además que el rendimiento de la detección de bordes se mejora bastante.
Figura 2-14: Resultados de la detección de bordes. (a) Imagen original, (b) Imagen con el algoritmo IRKT, (c) Imagen con el algoritmo IRKTEW [28]
Continuando con la investigación en métodos basados en la derivada, se logra poner en claro que la detección de bordes y contornos es un campo que ha intrigado a los programadores desde principios de 1970 [29]. Desde entonces, un gran número de técnicas de detección de bordes han llegado, pero la técnica llamada “Canny” es ampliamente utilizada. Sin embargo, se ha observado que los resultados no son tan eficientes en el trato con secciones alfanuméricas, figuras geométricas o imágenes con
2. Algoritmos de Procesamiento de Imágenes 34
líneas muy finas.
Para realizar mejoras en este tipo de técnicas y algoritmos, en India, en el Instituto de Tecnología Netaji Subhas, han desarrollado lo que ellos llaman DGW-Canny, lo cual es una técnica de detección de bordes improvisado [29]. La técnica utiliza un Laplaciano del gradiente de Gauss con un nuevo enfoque hacia la sección de umbral, lo que permite que la imagen final sea más clara, precisa y no olvide o desaparezca líneas de la imagen de entrada.
Este tipo de algoritmo se ha probado en imágenes con vectores característicos, que permiten visualizar la potencia del algoritmo y compararlo con el algoritmo clásico. En la siguiente tabla se videncia la comparación respectiva:
Tabla 2-1: Comparación entre Canny y DGW-Canny [29]
Imagen Imagen Canny Imagen DGW-Canny
1
2
2. Algoritmos de Procesamiento de Imágenes 35
4
5
6
7
Los resultados experimentales muestran efectos alentadores con el detector de borde DGW-Canny, el cual tiene mucha mejor eficacia en comparación con el algoritmo Canny clásico. Dentro de las pruebas correspondientes se realizan variaciones en los parámetros principales como la naturaleza y el componente artificial de la imagen, observando que si se modifica el último parámetro afecta de manera negativa los bordes resultantes [29].
Y si bien, el algoritmo Canny tiene dificultades de procesamiento, ya se han realizado procesos para la optimización de esta técnica, debido a que es un algoritmo con rendimiento superior. Originalmente, el algoritmo Canny utiliza el tamaño completo de la imagen para realizar el procesamiento debido [29], pero ahora, dentro de una investigación mancomunada entre ingenieros de India, China y EE.UU, han dado una solución al proponer aplicar el mecanismo Canny a nivel de bloques [30].
2. Algoritmos de Procesamiento de Imágenes 36
Ellos plantean un mecanismo para aplicar el algoritmo Canny a nivel de bloque sin ninguna pérdida en el rendimiento de detección de bordes en comparación con el algoritmo de Canny nivel original. Aplicar directamente el algoritmo Canny original en el nivel de bloque lleva a la detección de bordes excesivos en las regiones lisas de la imagen y a la pérdida de bordes significativos en regiones de alto detallado ya que el algoritmo Canny original calcula los umbrales superior e inferior sobre el tamaño completo de la imagen [30].
Para resolver este problema, se presenta un algoritmo de detección de bordes basado en Canny de forma distribuida que computa de forma adaptativa los umbrales de detección de bordes en función del tipo de bloque y el tamaño local de la imagen y sus gradientes correspondientes a cada bloque de la imagen. Conjuntamente, el nuevo algoritmo utiliza un histograma independiente para cada bloque para calcular el umbral y tener un mejor resultado [30].
Figura 2-15: Diagrama de bloques, algoritmo Canny por bloques [30]
El algoritmo basado en bloques resultante se puede integrar fácilmente con otros códecs de imagen basados en bloques por lo que es capaz de soportar la detección de bordes rápida de imágenes y vídeos con altas resoluciones, incluyendo HD completa [30]. Así mismo, las valoraciones de prueba que tiene e algoritmo demuestran un rendimiento más amplio en sistemas de 32 bits [30], por lo que probar el algoritmo exige un hardware potente. Por tanto, este algoritmo se implementa utilizando una arquitectura de 32 bits y se sintetiza en una FPGA Xilinx Virtex-5. El lenguaje de programación utilizado es VHDL debido a que este permite una mejor implementación en el manejo de bloques del
2. Algoritmos de Procesamiento de Imágenes 37
algoritmo, además que admite una programación de sistemas paralelos, lo que hace que el algoritmo tenga una gran efectividad de procesamiento.
El algoritmo sintetizado en la FPGA tarda en procesar aproximadamente 0.721 ms (incluyendo las funciones de lectura de la imagen y escritura de la imagen resultante), para detectar bordes y contornos de una imagen de 512 × 512 pixeles. Se debe tener en cuenta que la velocidad de reloj de la FPGA es de 100 MHz, por lo que al compararlo con una GPU normal es más rápido el procesamiento [30].