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

17 vistas

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.

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.

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.

Tabla 3 muestra los informes de síntesis y los parámetros generados de temporización y utilización de recursos en el Ultra96-V2 con la parte FPGA xczu3eg-sbva484-1-e. El informe consta de información relacionada con la temporización que indica si el diseño cumple con las restricciones de temporización especificadas por el usuario. Según el resumen de temporización, el tiempo estimado de 8,544 ns es menor que el tiempo objetivo de 10 ns, lo que sugiere claramente que el diseño cumple con las restricciones del usuario.

Las herramientas HLS también generan una estimación del uso de recursos, que proporciona al diseñador una evaluación del posible aprovechamiento de los recursos integrados. Los parámetros reales de utilización solo pueden generarse tras la realización física del hardware. Aunque existen numerosas categorías diferentes de recursos en un FPGA, los componentes de hardware más utilizados son las LUT (tablas de búsqueda), los FF (biestables), las porciones DSP (porciones de procesamiento de señal digital) y la memoria.

Tabla 3 también muestra el tiempo real y la utilización de recursos cuando la detección de bordes Sobel se implementa en el Ultra96-V2 para imágenes de alta resolución. El análisis de temporización muestra que la holgura negativa máxima es de 3,102 ns, lo que indica que hay suficiente tiempo para el procesamiento, y por lo tanto se logra una velocidad de reloj de 144 MHz. La frecuencia de operación alcanzada de 144 MHz a una resolución de 1920 × 1080 corresponde a un rendimiento de aproximadamente 299 MP/s, lo cual supera los 62 MP/s necesarios para el procesamiento en tiempo real de video Full HD a 30 fps. Para comprender la escala de recursos y el efecto sobre los parámetros al pasar de imágenes de baja a alta resolución, la tabla presenta los resultados experimentales que incluyen los mismos pasos repetidos para diferentes resoluciones.

Tabla 4 menciona el tamaño de la imagen y, por tanto, el número total de píxeles, y luego la frecuencia de operación, la potencia y la utilización de recursos en términos de LUT, FF, BRAM y DSP. Puede observarse claramente que al pasar de la resolución más pequeña considerada de 256 × 256 a la más alta de 2560 × 1440, lo que implica un aumento de casi 56 veces en la cantidad de píxeles, los parámetros solo cambian en un 20 %. Esto indica claramente una escalabilidad sublineal de los recursos, en la que los datos a procesar aumentan varias veces, pero la degradación en las métricas de rendimiento es muy mínima, lo que la hace adecuada para su implementación en tiempo real.

Los resultados presentados en la Tabla 4 demuestran claramente que la aplicación de la detección de bordes de Sobel en el Ultra96-V2 ofrece ventajas significativas para tareas que requieren resoluciones adaptables, ya que las métricas de rendimiento permanecen optimizadas y no muestran cambios considerables al actualizar el tamaño de la imagen desde baja hasta alta resolución. Este éxito se atribuye al enfoque de implementación híbrida que evita sobrecargar la lógica FPGA con datos de imagen, permitiendo que el procesador de la placa gestione la carga de trabajo sustancial de imágenes. El procesador simplemente retransmite los datos de la imagen al componente lógico FPGA, siendo cualquier aumento en la escala de recursos o reducción en la frecuencia máxima el resultado únicamente del gran volumen de datos que requiere un manejo mayor. Por lo tanto, puede afirmarse que el enfoque seguido en este artículo logra una escalabilidad sublineal de recursos, aunque los píxeles de la imagen aumenten casi 56 veces.

El trabajo implementado también se compara con los diseños existentes para comprender la comparación entre las métricas de rendimiento, como la resolución de imagen, la frecuencia de reloj, el consumo de energía y la utilización de recursos. Tabla 5 muestra la comparación con la literatura más reciente.

Como se ilustra claramente en la Tabla 5, el trabajo implementado en este artículo presenta métricas de rendimiento adecuadas, pero las soluciones existentes de implementaciones previas reportadas9,10 poseen parámetros mejores. Sin embargo, cuando se realiza una comparación general, se puede observar que ambos trabajos anteriores9,10 se basaron en resoluciones de imagen bajas y en plataformas FPGA heredadas, mientras que los resultados mostrados en este artículo corresponden a resoluciones de imagen adaptables, en las que el tamaño de la imagen considerado varía desde la resolución más baja de 256 × 256 hasta la resolución de alta definición de hasta 2560 × 1440. Los resultados indican que el enfoque implementado de detección de bordes de Sobel, que aprovecha las capacidades tanto del procesador como de la parte lógica de la placa FPGA heterogénea Ultra96-V2, resulta útil para lograr una escalabilidad sublineal de recursos conforme el número de píxeles aumenta casi 56 veces, mientras que la utilización de recursos solo crece en un 20 %, y la degradación en potencia y velocidad también es inferior al 20 %. Para la resolución más baja, se utiliza únicamente el 5 % de los recursos, y la utilización máxima alcanza solo el 23 %, dejando una gran disponibilidad para procesamientos adicionales. Por tanto, puede afirmarse claramente que, debido a la diferencia en las resoluciones de imagen, resulta difícil comparar; sin embargo, si se analiza el diseño implementado en este trabajo, la frecuencia de reloj es de 136 MHz, el consumo de potencia es de 2 W y la utilización de recursos es inferior al 23 % de los recursos totales de la placa. Es importante señalar que las implementaciones reportadas en trabajos previos9,10 demuestran métricas de rendimiento individuales superiores. No obstante, es fundamental destacar que ambos trabajos evalúan sus diseños a una única resolución de imagen fija, mientras que el trabajo propuesto se evalúa en un amplio rango de resoluciones, desde 256 × 256 hasta 2560 × 1440. Por lo tanto, los objetivos de diseño son fundamentalmente distintos, ya que los trabajos9,10 optimizan el rendimiento máximo a una sola resolución, mientras que la arquitectura propuesta prioriza la adaptabilidad y la escalabilidad sublineal de recursos a través de múltiples resoluciones. Esto hace que el diseño implementado sea adecuado para aplicaciones que requieren detección de bordes.

Por lo tanto, puede afirmarse que, en este trabajo, la escala sublineal de recursos se define como la condición en la que el aumento porcentual en la utilización de recursos es significativamente menor que el aumento porcentual en el número de píxeles. Cuando la resolución aumenta de 256 × 256 a 2560 × 1440, el número de píxeles aumenta aproximadamente en un 5600 %, mientras que la utilización de recursos a bordo aumenta menos del 20 %. Esta tasa de crecimiento de recursos desproporcionadamente baja, resultado directo de la estrategia de particionamiento heterogéneo PS-PL, confirma el comportamiento de escalamiento sublineal de la arquitectura propuesta. Aunque la implementación propuesta demuestra una escala sublineal de recursos en todo el rango de resoluciones probado, deben señalarse ciertas limitaciones para una interpretación precisa de los resultados. La frecuencia de operación disminuye un 18 % al pasar de baja a alta resolución, y la extrapolación más allá de 2560 × 1440 podría requerir ajustes arquitectónicos para mantener el cierre temporal. Además, dado que la transferencia de datos de imagen es gestionada por el procesador ARM, la sobrecarga de transferencia en el lado PS crece linealmente con el número de píxeles y podría limitar el rendimiento en aplicaciones de transmisión continua de video de alta resolución más allá de lo que sugieren únicamente las métricas del lado PL.

Diagrama de aplicaciones de detección de bordes: robótica, imágenes, realidad aumentada, automatización, vigilancia.
Figura 1: Diversas áreas de aplicación de la detección de bordes. Ilustración de áreas representativas en las que se utiliza comúnmente la detección de bordes, incluyendo visión por computadora, imágenes médicas, vigilancia, robótica y automatización industrial. Haga clic aquí para ver una versión más grande de esta figura.

Procesamiento de imágenes: diagrama de detección de bordes con operador Sobel y núcleos de convolución sobre una imagen de entrada.
Figura 2: Descripción de los pasos en el algoritmo de detección de bordes de Sobel. Flujo de trabajo que ilustra el proceso de detección de bordes mediante el operador Sobel, incluyendo la extracción de una ventana de imagen de 3 × 3, la convolución con núcleos horizontales y verticales de Sobel y la generación de la imagen de salida con bordes detectados. Haga clic aquí para ver una versión más grande de esta figura.

Diagrama de bloques de Zynq UltraScale+, arquitectura del sistema que muestra el flujo de datos y los componentes del interconect AXI.
Figura 3: Diagrama de bloques implementado para la detección de bordes Sobel en la placa FPGA Ultra96-V2 mediante la interfaz entre la PS (sistema de procesamiento) y la PL (lógica programable). Diagrama de bloques que muestra la arquitectura de hardware y la interconexión entre el sistema de procesamiento (PS), la lógica programable (PL) y los núcleos IP auxiliares utilizados para la implementación en FPGA. Haga clic aquí para ver una versión más grande de esta figura.

Proceso de grabado de imagen PYNQ y flujo de diseño Vivado; configuración de la tarjeta SD, validación, generación de archivo bit.
Figura 4: Pasos para programar la placa Ultra96-V2 para la detección de bordes Sobel utilizando la plataforma PYNQ y el resultado de la detección de bordes Sobel en una imagen de entrada. Flujo de trabajo que muestra el procedimiento de programación de la placa Ultra96-V2 utilizando la plataforma PYNQ y una imagen de salida representativa obtenida tras la implementación en FPGA. Haga clic aquí para ver una versión más grande de esta figura.

Detección de color y bordes en el procesamiento de imágenes; cuadrícula comparativa de imágenes originales y mejoradas en los bordes.
Figura 5: Resultados de la simulación de la detección de bordes mediante el operador Sobel en diferentes imágenes estándar utilizando Vivado HLS (2019.2). Imágenes de entrada representativas y sus salidas correspondientes con bordes detectados, obtenidas durante la simulación funcional del algoritmo de detección de bordes Sobel usando Vivado HLS 2019.2. Haga clic aquí para ver una versión más grande de esta figura.

Tabla 1: Evolución de las aplicaciones de FPGA en la investigación de visión por computadora (2006–2024). Resumen de aplicaciones representativas basadas en FPGA en el campo de la visión por computadora, publicadas entre 2006 y 2024. Haga clic aquí para descargar esta tabla.

Tabla 2: Literatura relacionada con la implementación de algoritmos de detección de bordes en FPGA (2020-2025). Comparación de implementaciones recientes de detección de bordes basadas en FPGA, que incluye plataforma, metodología y métricas de rendimiento reportadas. Haga clic aquí para descargar esta tabla.

Tabla 3: Implementación de la detección de bordes de Sobel en FPGA: parámetros estimados y parámetros reales. Resultados estimados de la síntesis HLS y los tiempos y utilización de recursos correspondientes tras la implementación obtenidos para la implementación en FPGA. Haga clic aquí para descargar esta tabla.

Tabla 4: Utilización de recursos y métricas de rendimiento del algoritmo de detección de bordes Sobel implementado en diferentes resoluciones de imagen. Métricas de rendimiento, frecuencia de operación, consumo de potencia y utilización de recursos de FPGA de la implementación propuesta en distintas resoluciones de imagen. Haga clic aquí para descargar esta tabla.

Tabla 5: Comparación de la detección de bordes Sobel implementada y existente en FPGA. Comparación de la implementación propuesta en FPGA con implementaciones previas reportadas de la detección de bordes Sobel utilizando métricas de rendimiento representativas. Haga clic aquí para descargar esta tabla.

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 nivel en lugar de depender de lenguajes de descripción de hardware. El código de Vivado HLS se ejecuta en la placa Ultra96-V2. Los resultados posteriores a la implementación indican que el diseño implementado soporta imágenes de alta resolución y funciona a una frecuencia de 136 MHz con un consumo de potencia de 2 W y menos del 20 % de los recursos totales de la placa. Asimismo, los resultados mostraron que el enfoque es adecuado para la resolución adaptativa de imágenes, ya que distintas aplicaciones pueden requerir el uso de tamaños de imagen variados, y la detección de bordes suele ser un paso intermedio2,3,4,5,6, que se realiza con mucha frecuencia en tuberías de diseño complejas. Por lo tanto, se puede afirmar que el sistema diseñado puede implementarse en aplicaciones en tiempo real que requieran detección de bordes. La gran disponibilidad de recursos sugiere que se pueden incorporar varios otros pasos de procesamiento al sistema desarrollado6,7,8,9,10,11,12,13,14,15.

La implementación exitosa del detector de bordes Sobel en la placa Ultra96-V2 requiere una atención cuidadosa a varios aspectos prácticos. El entorno PYNQ simplifica considerablemente la interacción entre el PS y el PL al permitir el control del hardware mediante bibliotecas de Python, reduciendo así el esfuerzo de desarrollo de software. Sin embargo, es necesario descargar la imagen PYNQ correcta desde la fuente oficial y configurar adecuadamente la tarjeta SD antes del despliegue. La verificación funcional del diseño HLS mediante bancos de pruebas exhaustivos es esencial antes de la exportación del IP, ya que la validación temprana ayuda a identificar errores algorítmicos y de interfaz antes de la implementación en hardware. Durante las implementaciones en FPGA, el diseño del diagrama de bloques también requiere una gran atención por parte del diseñador, ya que se recomienda comprender adecuadamente la arquitectura del hardware FPGA en consideración y, por tanto, seleccionar los bloques adecuados y realizar las conexiones correctamente. No se recomienda automatizar completamente las conexiones, ya que esto podría provocar conexiones perdidas o conexiones inadecuadas para el diseño que se desea seguir. En esta etapa de la interfaz entre PS y PL, errores como una asignación incorrecta de direcciones AXI, incompatibilidades entre dominios de reloj o transferencias DMA configuradas incorrectamente pueden impedir la comunicación exitosa entre el procesador y la lógica programable. Estos problemas pueden identificarse mediante las herramientas de validación de diseño de Vivado y resolverse verificando las asignaciones de direcciones, configuraciones de reloj, conexiones de interrupciones y ajustes de DMA antes de la generación del bitstream. Durante la implementación en FPGA, pueden ocurrir violaciones de temporización debido a caminos combinatorios largos o un pipelining inadecuado. Incrementar las etapas de pipeline, optimizar las estructuras de bucles o relajar las restricciones de temporización cuando sea apropiado puede ayudar a lograr el cierre de temporización.

Si bien este trabajo valida la arquitectura de particionamiento PS-PL propuesta específicamente para la detección de bordes de Sobel, el enfoque arquitectónico es inherentemente generalizable. Cualquier algoritmo que pueda expresarse como una convolución con ventana deslizante—incluyendo Prewitt, Roberts, Laplaciano del Gaussiano o la etapa de gradiente de Canny—puede implementarse con un enfoque similar, con cambios principalmente en el diseño HLS3,4,5,6. Existen ciertas limitaciones del trabajo propuesto. Una de ellas es el retardo debido a la transferencia de datos entre la parte PS y la parte PL del FPGA, lo cual afecta el tiempo total de ejecución del algoritmo. Además, el hallazgo de escalado sublineal es particular a la arquitectura heterogénea Ultra96-V216 y podría no aplicarse directamente a plataformas FPGA homogéneas que carezcan de un núcleo de procesador dedicado.

El alcance futuro implica una mejora adicional del diseño con ciertas optimizaciones que podrían aumentar la velocidad y reducir aún más el consumo de energía. Asimismo, adaptar la implementación a escenarios en tiempo real es otro aspecto potencial a considerar en el futuro.

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.

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/

Reimpresiones y permisos

Etiquetas

EngineeringComputer VisionField Programmable Gate ArrayImage ProcessingImage ResolutionSobel Edge Detection