Se requiere una suscripción a JoVE para ver este contenido. Inicie sesión o comience su prueba gratuita.

Artículo de método

Una arquitectura de hardware adaptable a la resolución para la detección de bordes de Sobel en tiempo real, que logra un escalado de recursos sublineal

58 visualizaciones

⸱

DOI:

10.3791/71589

⸱

28 de agosto de 2026

 ,  , 

En este artículo

Resumen

Este trabajo presenta una implementación basada en FPGA del algoritmo de detección de bordes Sobel en la plataforma heterogénea Ultra96-V2, evaluando el uso de recursos, potencia y velocidad en resoluciones de imagen que van desde 256 × 256 hasta 2560 × 1440. La arquitectura propuesta demuestra una escalabilidad de recursos sublineal para aplicaciones de procesamiento de imágenes en tiempo real.

Resumen

La detección de bordes es un área fundamental dentro de la visión por computadora y se ha convertido en una parte integral de diversas aplicaciones. La detección de bordes permite identificar los bordes, que son características clave en las imágenes y representan atributos importantes que ayudan a extraer información esencial y distintiva de las imágenes. La implementación en hardware de la detección de bordes debe ser rápida, utilizar recursos mínimos, consumir poca energía y debe ser adaptable a diferentes resoluciones de imagen. En este artículo se implementa la detección de bordes de Sobel con resolución de imagen adaptable, que abarca desde imágenes de baja resolución hasta alta definición completa, utilizando una plataforma moderna de matriz de puertas programable heterogénea (FPGA), la Ultra96-V2. Los resultados revelan que solo se utiliza el 5 % de los recursos integrados en la FPGA, incluidas las tablas de búsqueda (LUT), los biestables (FF), el procesador de señal digital (DSP) y la memoria de bloque (BRAM), para imágenes de baja resolución, mientras que aproximadamente el 23 % de los recursos integrados se consume para imágenes de alta resolución. Esto demuestra que el aumento en la utilización de recursos al pasar de imágenes de baja a alta resolución es inferior al 20 %. Además, la disipación de potencia es de aproximadamente 2 W para la resolución más alta, y la frecuencia operativa máxima registrada es de 136 MHz para imágenes de alta resolución y de 166 MHz para imágenes de baja resolución, lo que muestra una disminución del solo 18 % en la frecuencia. La arquitectura propuesta logra una escalabilidad sublineal de los recursos, con menos del 20 % de aumento en la utilización de recursos y menos del 20 % de reducción en velocidad y potencia al manejar un incremento de 56 veces en el número de píxeles, aprovechando las ventajas de la arquitectura FPGA heterogénea moderna. En consecuencia, la capacidad de resolución adaptable combinada con la baja escalabilidad de recursos hace que el diseño propuesto sea particularmente adecuado para aplicaciones de detección de bordes en tiempo real que exijan un procesamiento de imágenes de alta calidad.

Introducción

La detección de bordes se ha convertido en un elemento crucial en casi todas las técnicas de visión por computadora utilizadas en diversos dominios de aplicación hoy en día1. La detección de bordes es una etapa de extracción de características y es responsable de recuperar detalles informativos y distintivos de las imágenes, que pueden aplicarse en una amplia gama de escenarios2. Los bordes dentro de una imagen indican regiones donde hay un cambio brusco en la intensidad; por lo tanto, proporcionan información importante y distintiva sobre esa imagen. Este proceso facilita la eliminación de detalles innecesarios e irrelevantes, conservando únicamente los elementos cruciales y únicos que pueden procesarse posteriormente para la aplicación específica.

La importancia de la detección de bordes queda resaltada por su aplicación en diversas tareas, incluyendo segmentación de imágenes, detección y reconocimiento de objetos, extracción de características, mejora de imágenes, identificación de objetos, imágenes médicas, vigilancia, automatización industrial, conducción autónoma, realidad aumentada y robótica2,3,4,5,6, como se muestra en Figura 1.

Existen múltiples métodos para la detección de bordes, incluyendo Sobel, Prewitt, Roberts, Canny y otros. Entre estas técnicas, la detección de bordes de Sobel destaca por su aplicación sencilla, baja complejidad de implementación y alta precisión en la identificación de bordes3,4,5,6. El algoritmo de detección de bordes de Sobel determina los gradientes de la imagen en las direcciones horizontal y vertical mediante los núcleos Gx y Gy, respectivamente, como se muestra a continuación2,4.

Gx resalta los bordes en la dirección ×, y Gy resalta los bordes en la dirección y12,13. Cuando se combinan, definen completamente todos los bordes en una imagen6. La convolución con el proceso del kernel y la ventana deslizante se utiliza para aplicar la detección de bordes de Sobel a una imagen. Uno por uno, se extrae de la imagen una ventana, por ejemplo, de 3 por 3 píxeles, y esta ventana se convoluciona con la matriz del filtro para obtener el nuevo valor del píxel central. Toda la imagen se procesa de esta manera nuevamente. En la detección de bordes de Sobel se utilizan dos kernels de este tipo: uno para extraer bordes en la dirección x y otro para la dirección y. Para obtener todos los bordes, se combinan luego estos dos resultados. La detección de bordes de Sobel produce resultados precisos y confiables, que pueden mejorarse aún más con algún preprocesamiento4,5,15. La detección completa de bordes de Sobel se interpreta en Figura 2.

Aunque toda la literatura publicada tiene contribuciones significativas en el campo de la detección de bordes, todas las principales investigaciones reportadas han trabajado con resoluciones de imagen bajas, mientras que el trabajo presentado en este artículo opera con diferentes resoluciones de imagen, que varían desde imágenes de baja resolución (256 × 256) hasta resolución de imagen de alta definición completa (HD) (2560 × 1440). En consecuencia, investigar la implementación en hardware del algoritmo de detección de bordes de Sobel para distintas resoluciones de imagen es fundamental para comprender la eficiencia de la implementación cuando se aplica en escenarios en tiempo real con resoluciones de imagen variables. La matriz de puertas programables en campo (FPGA) ha sido reconocida como una plataforma adecuada para implementaciones en hardware, debido a su idoneidad para el desarrollo rápido de prototipos y a ventajas como la reconfigurabilidad, que permite realizar modificaciones fáciles en el diseño sin necesidad de cambiar toda la configuración del hardware6,7,8,9,10,11,12,13. Además, las FPGAs ofrecen la posibilidad de procesamiento paralelo y segmentación; una vez que las métricas de rendimiento se optimizan y la plataforma se valida, el diseño puede avanzar hacia la producción real de circuitos integrados específicos para aplicaciones (ASICs)14,15. Otra característica importante de las FPGA es su reconfigurabilidad, que permite a los diseñadores modificar el diseño del producto en cualquier momento sin necesidad de reemplazar ningún componente de hardware. Solo es necesario reprogramar el chip, lo cual requiere muy poco tiempo o esfuerzo, siempre que el diseñador domine lenguajes de descripción de hardware como VHDL/Verilog4,6,13,16,17. Para el análisis de la implementación en FPGA, los parámetros principales considerados son la velocidad (frecuencia máxima), la utilización de recursos y la eficiencia energética. Tabla 1, que muestra el creciente volumen de literatura publicada en el ámbito de las FPGA y cómo han evolucionado las publicaciones sobre FPGA en el período comprendido entre 2006 y 2024. Se explica claramente que el campo de investigación en FPGA ha pasado ahora a aplicaciones en tiempo real, realidad aumentada, computación en el borde y otras aplicaciones de alto nivel13,14,15,16,17,18,19,20,21,22,23.

Tabla 2 destaca los trabajos realizados en la literatura existente relacionados con la implementación de la detección de bordes de Sobel en FPGA desde 2020 hasta 2025. Tabla 2 menciona la placa FPGA utilizada, los algoritmos implementados, la metodología de diseño, los hallazgos, las métricas, el área de aplicación y los desafíos de cada artículo referenciado.

Los autores4 han recomendado utilizar el método de detección de bordes de Sobel en 8 direcciones para aumentar la precisión en la detección de bordes; sin embargo, informaron un mayor consumo de recursos para la metodología propuesta. Navinkumar et. al. utilizan una técnica para reducir las operaciones matemáticas complejas de multiplicación y raíz cuadrada que intervienen en la detección tradicional de bordes de Sobel, lo que permite ahorrar recursos a bordo y mejorar la velocidad9. Los autores17 documentaron el uso del algoritmo de detección de bordes de Sobel para identificar carriles en sistemas avanzados de asistencia al conductor. Su objetivo fue acelerar la detección y reducir el tiempo de procesamiento. En general, se sugirió que el uso de la detección de bordes es un método confiable para la extracción de la región de interés en el futuro, lo cual podría ser muy útil en diversas aplicaciones donde sea necesario extraer el área requerida de una imagen ignorando cualquier otra información innecesaria. Los desafíos reportados colectivamente incluyeron un mayor uso de recursos y memoria, sensibilidad al ruido, alto costo computacional y escalabilidad limitada para imágenes de mayor resolución4,5,6,11,12,13,21,22,23.

En este trabajo, se realiza la implementación tradicional del algoritmo de detección de bordes Sobel en la placa FPGA Ultra96-V2, para distintas resoluciones de imagen que van desde una resolución baja de 256 × 256 hasta una resolución de alta definición completa de 2560 × 1440. Ultra96-V2 es una placa que combina las capacidades de programación FPGA con el potente procesamiento Arm (Cortex-A53/R5) para aplicaciones de alto rendimiento. Esta placa se lanzó por primera vez en 2018 y utiliza el nodo tecnológico FinFET de 16 nm18.

Para garantizar la reproducibilidad, toda la implementación se realizó utilizando una cadena de herramientas estándar compuesta por Vivado HLS 2019.2 para síntesis de alto nivel (HLS) y Vivado 2019.2 para colocación y enrutamiento, así como la imagen PYNQ publicada por los recursos Ultra96-V2. El código HLS se utilizó para obtener el IP (Propiedad Intelectual) de detección de bordes Sobel, que fue exportado e integrado en la suite de diseño Vivado. El IP se implementó en la parte PL (Lógica Programable), y la parte PS (Sistema de Procesamiento) del FPGA se encargó de la transferencia de datos y los mecanismos de control. La interfaz entre PS y PL se realizó mediante el protocolo AXI. Todas las métricas reportadas—frecuencia, utilización de recursos y potencia—se tomaron de los informes posteriores a la implementación, no de estimaciones de HLS. Los ajustes de implementación se mantuvieron constantes, y solo se modificaron las resoluciones de imagen a lo largo de los experimentos.

Los logros significativos de este trabajo consisten en un bajo consumo de energía, una baja utilización de recursos y una alta velocidad. Los resultados indican menos del 20 % de utilización de recursos a bordo (18 % de tablas de búsqueda (LUT), 11 % de biestables (FF), 3 % de memoria y 10 % de DSP) para imágenes de alta resolución, lo que señala una gran disponibilidad para integrar un procesamiento mucho mayor sobre estas imágenes, como se espera en cualquier sistema de visión por computadora, dado que la detección de bordes es solo una etapa intermedia. Asimismo, la disipación de potencia es de casi 2 W y la frecuencia máxima de operación se reporta en 144 MHz. Los resultados muestran que escalar los tamaños de imagen en aproximadamente 56 veces incrementa la utilización de recursos en apenas un 20 %. La velocidad y la disipación de potencia también se degradan en aproximadamente un 20 %. Este análisis investiga significativamente el algoritmo desde una perspectiva diferente, que no ha sido reportada en otras publicaciones anteriores, indicando así que la implementación es muy adecuada para aplicaciones en tiempo real sin necesidad de limitar las imágenes a tamaños pequeños o menor resolución, lo cual definitivamente degradaría la cantidad de información necesaria en las etapas posteriores tras la detección de bordes.

La novedad de este trabajo no radica en el algoritmo en sí, sino que se centra en evaluar el rendimiento del algoritmo tradicional de detección de bordes de Sobel en diversas resoluciones de imagen sobre arquitecturas FPGA heterogéneas modernas, aprovechando las ventajas de las técnicas de implementación basadas en HLS. Las principales contribuciones de este artículo consisten principalmente en la aplicación de una metodología híbrida implementada en un FPGA, distribuyendo eficazmente la carga de trabajo entre las secciones PS y PL de la arquitectura para permitir que el diseño se ajuste sin esfuerzo a diferentes resoluciones. Otra contribución implica experimentar para evaluar cómo la escalabilidad de recursos varía con los cambios en las resoluciones de imagen, lo cual ayuda a comprender el rendimiento en diferentes configuraciones y para diversas aplicaciones.

Acceso restringido. Inicie sesión o comience una prueba gratuita para ver este contenido.

Protocolo

1. Implementación de la detección de bordes de Sobel en la herramienta HLS

  1. Abra la herramienta Vivado HLS 2019.2 y cree un proyecto. Seleccione la placa FPGA como Ultra96-V2.
  2. Escriba el código en lenguaje de alto nivel utilizando el lenguaje C++ para la detección de bordes de Sobel, con el parámetro de tamaño de imagen generalizado y no fijo.
    NOTA: El ancho y alto de la imagen no están fijos y se escriben como un parámetro general en el código, de modo que puedan cambiarse fácilmente al variar la resolución de la imagen sin necesidad de modificar múltiples ubicaciones.
  3. Escriba el código del banco de pruebas para el algoritmo de detección de bordes de Sobel en C++.
    NOTA: El banco de pruebas se escribe para proporcionar las imágenes de entrada sobre las cuales se prueba el código.
  4. Haga clic en “run C simulation” para simular el código y verificar la corrección funcional. Proporcione una imagen de entrada al banco de pruebas y luego revise la salida generada, que debe ser una imagen con bordes.
  5. Haga clic en “run C synthesis” para sintetizar el código HLS y exportar el IP para la detección de bordes de Sobel.
    NOTA: El proceso de síntesis básicamente asigna el diseño codificado a componentes de hardware y hace que el diseño sea compatible y listo para la implementación en hardware.
  6. Revise los informes de temporización y utilización de recursos generados por la herramienta y asegúrese de que el tiempo estimado no supere el tiempo objetivo.
    NOTA: Todos estos resultados de la plataforma HLS son solo una estimación, y los parámetros reales se calculan únicamente cuando el diseño se implementa en un FPGA.
  7. Haga clic en “export IP” para exportar el IP del procedimiento de detección de bordes de Sobel.
    NOTA: Este IP se utiliza en el siguiente paso al diseñar el diagrama de bloques para la implementación en FPGA con la herramienta Vivado.

2. Implementación de la detección de bordes Sobel en la plataforma FPGA, Ultra96-V2, utilizando IP HLS extraída

  1. Abra la herramienta de diseño Vivado y cree un nuevo proyecto. Seleccione la placa objetivo como Ultra96-V2 y haga clic en “Crear un nuevo diseño de bloques”.
  2. Importe el IP de detección de bordes Sobel exportado desde la herramienta HLS. Añada los demás bloques necesarios para completar la interfaz entre la parte PS y la PL.
    NOTA: El diagrama de bloques también utiliza otros bloques IP importantes, como el IP Zynq Ultrascale, el Smart Connect y el reinicio del procesador, entre otros, para establecer la interfaz entre PS y PL mediante el protocolo Advanced eXtensible Interface (AXI).
  3. Haga clic en “validar diseño” para validar el diseño de bloques. Asegúrese de que la herramienta no informe errores de diseño. Si existen errores, siga las instrucciones para corregirlos y vuelva a validar.
    NOTA: Este paso garantiza que no haya conexiones faltantes en el diagrama de bloques, pero no verifica la corrección funcional del diseño de bloques.
  4. Haga clic en “crear el contenedor HDL” para obtener un código HDL generalizado del diseño de bloques.
  5. Haga clic en “ejecutar síntesis” para sintetizar el diseño y comprobar si hay errores reportados. Si no se encuentran errores, la herramienta informará una síntesis exitosa. Tras completar la síntesis con éxito, acceda a los informes de síntesis de temporización para verificar posibles violaciones de temporización.
  6. Para comprobar violaciones de temporización, asegúrese de que ninguna temporización aparezca en texto rojo, ya que esto indica que el tiempo utilizado excede el objetivo asignado y, por tanto, indica violaciones.
  7. Haga clic en “ejecutar implementación” para implementar el diseño y evaluar los informes de temporización, potencia y utilización de recursos.
  8. Genere el archivo “.bit” para programar la placa FPGA.
    NOTA: El diagrama de bloques para la detección de bordes Sobel en Ultra96-V2 se muestra en Figura 3. Como ya se indicó, el diagrama de bloques es esencialmente necesario para establecer una interfaz entre la parte PS y la PL de la placa FPGA.

3. Programación de la placa FPGA

  1. Para preparar la tarjeta SD, descargue el archivo de imagen PYNQ (.img) para la placa Ultra96-V216 e instale el archivo descargado en la tarjeta SD.
  2. Encienda la placa en el modo de arranque desde la tarjeta SD seleccionando las posiciones del interruptor según el manual de referencia de Ultra96-V216.
  3. Visite la URL, http://192.168.3.1, y escriba el nombre de usuario y la contraseña, ambos como “xilinx”, cuando se solicite.
    NOTA: Es preferible utilizar el navegador Google Chrome para evitar cualquier incompatibilidad técnica.
  4. Acceda a la plataforma Jupyter y escriba código Python para la parte PS con el fin de leer las imágenes o videos de entrada y enviar la imagen leída a la parte PL para su procesamiento.
  5. Escriba código para la tarea de escribir de vuelta las imágenes procesadas desde PL a PS y mostrar el resultado.
    NOTA: Para mostrar los resultados en el Ultra96-V2, se utiliza la plataforma PYNQ, lo que facilita considerablemente la visualización de las imágenes de salida simplemente mediante el uso de códigos Python y las bibliotecas OpenCV.
    Figura 4 muestra los pasos del enfoque Ultra96-V2 tal como se demuestra en esta sección y las salidas obtenidas.

Acceso restringido. Inicie sesión o comience una prueba gratuita para ver este contenido.

Resultados

Esta sección analiza los resultados obtenidos en el diseño de la detección de bordes de Sobel en Ultra96-V2. Figura 5 muestra a continuación las imágenes de entrada y salida obtenidas mediante la simulación HLS. Las imágenes utilizadas son imágenes estándar de tamaño 512 × 512. Estos resultados demuestran que el código HLS escrito para la detección de bordes de Sobel es funcionalmente correcto. Los bordes deben ser claramente visibles en las imágenes resultantes.

Acceso restringido. Inicie sesión o comience una prueba gratuita para ver este contenido.

Discusión

Este artículo se centra en la ejecución del algoritmo de detección de bordes de Sobel, que es un componente esencial en diversas aplicaciones de múltiples áreas de la visión por computadora y el procesamiento de imágenes2,3,4,5,6. La implementación de la detección de bordes de Sobel se lleva a cabo utilizando la herramienta Vivado HLS, lo que permite programar en lenguajes de alto...

Acceso restringido. Inicie sesión o comience una prueba gratuita para ver este contenido.

Divulgaciones

Los autores declaran que no existen conflictos de interés. No se utilizaron herramientas de inteligencia artificial (IA) en la elaboración de este manuscrito.

Agradecimientos

Los autores no tienen reconocimientos que declarar. Esta investigación no recibió financiamiento externo.

Acceso restringido. Inicie sesión o comience una prueba gratuita para ver este contenido.

Materiales

Lista de materiales utilizados en este artículo
NombreEmpresaNúmero de catálogoComentarios
Placa FPGA Ultra96-V2 Xilinx Presentada en 2018Plataforma de implementación de hardware utilizada para implementar el algoritmo de detección de peatones
Vivado HLS AMD2019.2Herramienta de síntesis de alto nivel utilizada para la programación de alto nivel del código de detección de peatones en el artículo, con el fin de exportar la Propiedad Intelectual (IP)
Vivado AMD2019.2Herramienta de programación FPGA utilizada para programar la placa FPGA Ultra96 v2 con el algoritmo de detección de bordes Sobel 

Referencias

  1. Rani N. Image processing techniques: a review. J Today Ideas Tomorrow Technol. 2017;5(1):40-9.
  2. Gonzalez RC. Digital image processing. Pearson Education; India; 2009.
  3. Jena KK, Mishra S, Mishra S. An edge detection approach for fractal image processing. In: Examining Fractal Image Processing and Analysis. IGI Global; 2020. p. 1-22.
  4. Gayathri AG, Remya AS. VLSI implementation of improved Sobel edge detection algorithm [conference presentation]. Presented at: 2021 International Conference on Communication, Control and Information Sciences (ICCISc); 2021 Jun 16. Available from: https://ieeexplore.ieee.org/
  5. Obaid MT. Efficient Implementation of Sobel Edge Detection with ZYNQ-7000 [Master's thesis]. Purdue University.
  6. Asharani P, et al. A inventive method for door detection on FPGA using Sobel edge algorithm [conference presentation]. Presented at: 2022 2nd International Conference on Intelligent Technologies (CONIT); 2022 Jun 24. Available from: https://ieeexplore.ieee.org/
  7. Shylashree N, Anil Naik M, Sridhar V. Design and implementation of image edge detection algorithm on FPGA. Int J Circuits Syst Signal Process. 2022;16:628-36.
  8. Zhou G, Guo S, Chen Z. FPGA-based improved Sobel operator edge detection. Front Comput Intell Syst. 2023;5(2):6-11.
  9. Navinkumar K, Logesh R, VishnuBabu P, Ananthalakshmi AV. FPGA implementation of Sobel edge detection algorithm. EAI Endorsed Trans Internet Things. 2024;10.
  10. Ravichandran S, et al. Parallel processing of Sobel edge detection on FPGA: enhancing real-time image analysis. Sensors. 2025;25(12):3649.
  11. Baloch A, et al. Hardware synthesize and performance analysis of intelligent transportation using Canny edge detection algorithm. Int J Eng Manuf. 2021;11(4):22-32.
  12. Patel CS, Solanki N, Tailor N. Analysis of edge detection using Zynq based SoC FPGA. Turk Online J Qual Inq. 2021;12(7).
  13. Kashyap S, Bhandari AK, Giri P. Low resource FPGA implementation based efficient image edge detector architecture. Multimed Tools Appl. 2024;83(9):25595-615.
  14. Dakshayani V, et al. Design of a Gabor filter-based image denoising hardware model. Electronics. 2022;11(7):1063.
  15. Belmessaoud NM, Bentoutou Y, El-Mezouar MC. FPGA implementation of feature detection and matching using ORB. Microprocess Microsyst. 2022;94:104666.
  16. Castells-Rufas D, et al. A survey of FPGA-based vision systems for autonomous cars. IEEE Access. 2022;10:132525-63.
  17. Vedavyas Y, Vasavi S, Harsha SS, Subhash MS. An FPGA-based adaptive real-time quality enhancement system for drone imagery. SN Comput Sci. 2022;4(1):84.
  18. Avnet. Ultra96-V2 Single Board Computer Hardware User's Guide. Revision 1.0. Avnet; 2020 May.
  19. Singh G, et al. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security [conference presentation]. Presented at: 2024 5th International Conference for Emerging Technology (INCET); 2024 May 24. Available from: https://ieeexplore.ieee.org/
  20. Kaur A. A survey on FPGA implementations in embedded augmented reality applications [conference presentation]. Presented at: 6th Edition of International Conference on Wireless Networks and Embedded Systems (WECON); 2018 Nov 16. Available from: https://ieeexplore.ieee.org/
  21. Kalaiselvi A, Sajina S, Nithish S, Sowmiya M. Implementation of Sobel edge detection. Int Res J Mod Eng Technol Sci. 2023;5(3):701-11.
  22. Narasimhamurthy CG, Kulkarni S. Fast architecture for low level vision and image enhancement for reconfigurable platform [conference presentation]. Presented at: 2021 International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT); 2021 Feb 19. Available from: https://ieeexplore.ieee.org/
  23. Pujare A, Sawant P, Sharma H, Pichhode K. Hardware implementation of Sobel edge detection algorithm [conference presentation]. Presented at: ITM Web of Conferences; 2020. Available from: https://www.itm-conferences.org/

Acceso restringido. Inicie sesión o comience una prueba gratuita para ver este contenido.

Reimpresiones y permisos

Explorar más artículos

Detección de bordes en tiempo realresolución de imagen adaptativaarquitectura FPGAimplementación de hardwareFPGA Ultra96-V2procesamiento de imágenesvisión artificial