Method Article

Diseño e implementación de un marco de detección peatonal basado en matrices de puertas programables en campo para aplicaciones de conducción autónoma

June 12th, 2026

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Este artículo de investigación demuestra la implementación de un algoritmo de detección de peatones en tiempo real en hardware de matrices de puertas programables en campo, principalmente para aplicaciones de conducción autónoma. El algoritmo combina el histograma de gradientes orientados (HoG) con un clasificador de máquina de vectores de soporte (SVM), y los resultados muestran eficiencia en términos de velocidad, consumo de energía y utilización de recursos.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

La conducción autónoma ofrece una forma prometedora de abordar el creciente número de víctimas mortales por accidentes de tráfico. Un vehículo autónomo incluye muchas funciones, pero la capacidad de detectar peatones es crucial, desafiante y relevante para diversas situaciones en tiempo real como la vigilancia, el seguimiento de personas y la monitorización. Identificar con precisión a los peatones es difícil porque pueden aparecer en diferentes formas, posiciones y posturas. Pueden llevar varios tipos de ropa y a veces estar parcialmente ocultos o mezclarse con objetos cercanos. Este artículo se centra en la detección en tiempo real de peatones para coches autónomos utilizando una plataforma hardware popular: la matriz de puertas programable en campo (FPGA), Ultra 96 v2. El estudio implementa un método para la detección de peatones basado en un histograma de gradientes orientados (HOG) combinado con un clasificador de máquina de vectores de soporte (SVM) para reconocer a individuos en la placa FPGA, aprovechando herramientas de síntesis de alto nivel (HLS). La eficacia del sistema se ha probado tanto en imágenes fijas como en vídeo en directo. Los resultados muestran que placas FPGA avanzadas como la Ultra 96 v2 mejoran significativamente las métricas de rendimiento. El sistema opera a una frecuencia de reloj de 150 MHz utilizando menos de la mitad de los recursos disponibles y consumiendo alrededor de 2,5 W de energía. Además, el sistema informa de una precisión de detección peatonal cercana al 95% y otras métricas eficientes para la evaluación de detección, como precisión (78,6%), recuerdo (88,3%) y puntuación F1 (83,1%). En resumen, el sistema desarrollado puede detectar peatones en tiempo real y tiene el potencial de mejorar significativamente el desarrollo de un entorno de transporte inteligente y seguro.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

El desarrollo urbano y la aparición de ciudades inteligentes son temas de interés a nivel mundial. Todas las naciones están trabajando para el desarrollo de sus ciudades, que puedan construirse de manera que sean seguras y cómodas para quienes vivenen ellas 1,2. Pero en la situación actual, se ha observado que a medida que crece la población y incrementa la congestión en las carreteras, la tasa de muertes derivadas de accidentes de tráfico debido a negligencia al volante y problemas de mala visibilidad está aumentando alarmantemente. Una solución prometedora a estos problemas es la aparición de vehículos autónomos en todo el mundo, lo que ha impulsado la innovación 1,2,3,4, y los investigadores están realizando esfuerzos para desarrollar vehículos totalmente autónomos que permitan a los pasajeros relajarse sin preocupaciones. La necesidad de desarrollar vehículos autónomos surge del hecho de que incluso los conductores experimentados pueden enfrentarse a estrés, dilemas, fatiga o dificultades para detectar su entorno debido al mal tiempo, y todos estos problemas conducen a accidentes de tráfico. Un vehículo autónomo está diseñado para evitar accidentes durante el viaje, optimizar el uso de recursos del motor y cumplir con las leyes de tráfico, lo que sin duda mejorará el transporte 2,4. Un vehículo autónomo está equipado con múltiples características, sensores y funcionalidades que le permiten detectar su entorno con gran precisión, evitando colisiones y accidentes, y por ello ahora se han convertido en una solución prometedora para hacer el transporte seguroy protegido 1,2,3,4.

Entre todas las características incorporadas en un vehículo autónomo, una de las más vitales es la detección de peatones. Un sistema robusto de detección de peatones puede ayudar significativamente a reducir las muertes por accidentesde tráfico 5,6,7,8, ya que la mayoría de las víctimas de estos accidentes son peatones. La detección de peatones consiste en identificar a las personas en la carretera y evitar cualquier colisión con ellas. Esta función no solo es beneficiosa para coches autónomos, sino también para diversas otras áreas de aplicación como la monitorización de multitudes, la identificación de personas y el seguimiento9, 10 y 11. El aspecto clave de este proceso de detección es la velocidad y precisión de la detección. Es fundamental detectar a los peatones con precisión y rapidez para que el tiempo de respuesta sea mínimo. La detección de peatones supone un enorme desafío. Los peatones en la carretera pueden ir con cualquier ropa, apariencia o postura, y pueden ser invisibles debido al mal tiempo o a la oclusión 10,11,12,13,14. Además, es muy posible que los peatones no sigan las normas por sí mismos, y no se puede controlar la naturaleza humana, por lo que la mejor estrategia es dotar al vehículo de la inteligencia necesaria para manejar cualquier acción errónea y evitar fatalidades. El desarrollo completo del trabajo en esta investigación y la motivación detrás de la implementación por hardware de la detección de peatones pueden entenderse fácilmente a partir de la Figura 1 a continuación, que explica la necesidad de la detección peatonal, sus diversas áreas de aplicación, los desafíos implicados y la implementación en un FPGA para aprovechar los beneficios ofrecidos.

figure-introduction-1
Figura 1: Detección de peatones. La necesidad de detección de peatones, las áreas clave de aplicación de la detección peatonal, los desafíos que implica la detección de peatones y la implementación del flujo de detección peatonal en una placa FPGA. Por favor, haz clic aquí para ver una versión ampliada de esta figura.

Para identificar peatones en la carretera, existen numerosos algoritmos. Esta tarea general puede dividirse principalmente en dos subtareas principales: el paso inicial extrae características de una imagen de entrada, conservando solo aquellas que son significativas y transmiten información relevante, mientras ignora las redundantes. Para un reconocimiento efectivo de personas o peatones en una imagen, es crucial que estas características indiquen la presencia de una figura humana dentro de laescena 13,14. Tras esta extracción, las características deben enviarse a un clasificador que pueda determinar si las características identificadas corresponden a un humano. Por lo tanto, el algoritmo requiere una fase de extracción y descripción de características, seguida de un paso de clasificación para determinar la presencia peatonal en la escena de entrada. Existen varios algoritmos disponibles para este propósito. Sin embargo, el método más aceptado hasta la fecha para la detección de peatones sigue siendo la combinación del histograma de gradientes orientados (HoG) con el clasificador de la máquina de vectores de soporte (SVM) 12,13,14,15. Existen numerosos ejemplos de avances en software, pero en última instancia, el objetivo es portar la implementación a una plataforma hardware compatible, que luego pueda integrarse en el sistema de aplicaciones para su uso en tiempo real. Por lo tanto, el énfasis actual está en la realización del hardware. Por tanto, se puede afirmar que es necesario desarrollar una implementación adecuada de hardware para sistemas de detección de peatones, donde cámaras equipadas con hardware adecuado puedan instalarse en vehículos e identificar peatones en la carretera. Al considerar qué hardware es adecuado para estas implementaciones, una de las opciones más utilizadas es la matriz de puertas programable en campo (FPGA) debido a sus numerosas ventajas, incluyendo reducción del tiempo de diseño, escalabilidad, facilidad de modificación, reconfigurabilidad y menor consumo energéticoy energético 15,16,17,18,19,20,21.22.

Las placas FPGA han evolucionado de forma constante y ahora se utilizan ampliamente en aplicaciones complejas y avanzadas de visión por ordenador que abarcan desde el procesamiento básico de imágenes hasta la detección de objetos, la realidad aumentada y el aprendizajeprofundo 20, 21, 22. Actualmente, varias placas FPGA de alto rendimiento ofrecen capacidades arquitectónicas excepcionales para acomodar el extenso procesamiento requerido para estas aplicaciones complejas. Si las características avanzadas de los vehículos autónomos, como la detección de peatones, se implementan en estas plataformas de hardware, estas plataformas pueden ser muy útiles para el desarrollo rápido de prototipos para analizar el rendimiento y, tras la optimización, el algoritmo implementado puede transferirse a circuitos integrados reales para su integración en el sistema.

Durante más de una década, se han publicado publicaciones significativas basadas en la implementación de la detección de peatones utilizando los métodos HoG y SVM en diferentes plataformas FPGA. La Tabla 1 resume los artículos en este campo durante el periodo 2015–2025 15,16,17,18,19,20,21,22,23,24, centrándose en factores clave como la resolución de imagen, el rendimiento o los fotogramas por segundo (FPS), el tipo de clasificador y los puntos destacados o las contribuciones realizadas por el papel.

ReferenciaPlataforma FPGAResolución de imagenClasificadorAspectos destacados / Contribuciones
15Xilinx Zynq640×480AdaBoostImplementación FPGA en tiempo real; eficiente en recursos; utiliza la binarización para optimización; Buena precisión en la detección.
16Placa DE1-SOC de Terasic640×480SVMExtractor de HOG de alto rendimiento; integra SVM; detección a escala única; Pipeline de baja latencia.
17Altera DE2-115640×480AdaBoostEvalúa el rendimiento desde múltiples puntos de vista; Implementación FPGA de HOG+AdaBoost; Detección de peatones en tiempo real.
18Intel Stratix V640×480SVMdetección peatonal a escala multipla; Pipeline HOG+SVM compatible con FPGA; Destaca los compromisos entre precisión y eficiencia hardware.
19Zynq UltraScale+ MPSoC3840×2160SVMProcesamiento UHD en tiempo real; HOG+SVM en pipeline; Implementación de SoC FPGA; optimización de punto fijo; Arquitectura escalable.
20No especificadoNo especificadoSVMAlcanza una precisión de detección del >95%; implementación de FPGA en tiempo real; aprovecha el paralelismo; diseño detallado de FPGA HOG+SVM para la detección de peatones.
21Zync 7000 FPGA1920×1080SVMArquitectura de flujo de alto rendimiento para HOG+SVM; soporta resolución HD; eficiente pipeline para aceleración FPGA.
22Ultra96 (rev1)240×320SVMImplementación de FPGA usando HLS; detecta semáforos rojos; calcula probabilidades en 891 regiones; La latencia varía entre 153.838 y 19 ciclos.
23Xilinx Zynq-7000 FPGA640 × 480HOG + SVMImplementó la detección de peatones usando HOG-SVM en FPGA, logrando un rendimiento en tiempo real con menor consumo energético en comparación con el procesamiento de CPU. Ha demostrado una tubería optimizada de extracción de características adecuada para aplicaciones de visión embebida.
24Xilinx Virtex-6 FPGA640 × 480Detector de objetos de punto fijo (características similares a Haar)Propuesta de aceleración FPGA de alto rendimiento para la detección de objetos usando aritmética de punto fijo, reduciendo el coste computacional manteniendo la precisión. Mostró un 15× de aceleración respecto a implementaciones de CPU con una utilización eficiente de recursos de hardware.

Tabla 1: Revisión bibliográfica de investigaciones basadas en la detección peatonal en FPGA (2015–2025).

La Tabla 1 resume que existe una amplia literatura en el ámbito de la detección de peatones, y la implementación de hardware es el área de interés para los investigadores. También es evidente que existen técnicas avanzadas de aprendizaje profundo y aprendizaje automático, como detectores basados en redes neuronales convolucionales (CNN) como YOLO, arquitecturas basadas en transformadores, etc., para la detección de peatones. Incluso superan en cuanto a precisión en comparación con el algoritmo tradicional de HoG, pero cuando se considera la implementación por hardware, los algoritmos avanzados conducen a una enorme utilización de recursos23,24 debido a la complejidad del algoritmo, que también puede afectar a otros parámetros de rendimiento, y también se ha observado que, debido a las complejidades añadidas, la velocidad es ligeramente mejor en el caso del algoritmo HoGtradicional 24, 25. También se ha observado que las técnicas avanzadas consumen más energía cuando se implementan en hardware24,26. Por tanto, el objetivo del trabajo implementado en este artículo es realizar la detección de peatones utilizando el marco tradicional HoG y SVM en hardware FPGA y lograr un compromiso favorable entre precisión, velocidad, recursos y energía para la incrustación en tiempo real. De la Tabla 1 queda bastante claro que, al analizar el trabajo basado en HoG y SVM, se observa que existen pocas publicaciones que han utilizado la recientemente introducida placa de desarrollo FPGA basada en Zynq UltraScale+ (Multi-Processor System On Chip) basada enFPGA para explorar la capacidad de estas placas, ya que desde el punto de vista arquitectónico estas placas han evolucionado, y ofrecen un gran potencial en términos de implementación de aplicaciones de visión por ordenador en tiempo real de alta gama. Existen pocas publicaciones que han realizado todo el sistema de detección de peatones en tiempo real en las placas FPGA. Sin embargo, se han centrado en la implementación eficiente o mejora de las tareas intermedias. Además, la mayoría de estas implementaciones se basan en realizar todo el sistema en una placa FPGA mediante el uso de lenguajes de descripción de hardware. Pocos han aprovechado los beneficios de las herramientas de Síntesis de Alto Nivel (HLS) para acelerar el ciclo de diseño. Este artículo demuestra el diseño e implementación de la detección de peatones en tiempo real en una placa FPGA dedicada a una aplicación de conducción autónoma. El artículo utiliza el marco HoG y SVM para la detección de peatones en imágenes fijas, vídeo o entrada real de cámaras. El hardware utilizado es una placa FPGA de vanguardia y recientemente lanzada, la Ultra96 v2, que es una arquitectura FPGA avanzada que constituye una plataforma potente para visión por ordenador, procesamiento de imágenes, aprendizaje automático, computación en el borde, etc.24. La Ultra96 v2 es una placa de desarrollo que incorpora un AMD Xilinx Zynq UltraScale+MPSoC 27 basado en Arm. Esta placa incluye el segmento de sistema de procesamiento (PS), que consiste en núcleos de CPU basados en ARM que gestionan los aspectos de software del proyecto, y el segmento de Lógica Programable (PL), que permite la aceleración por hardwarepersonalizable 20,21,22. En conjunto, estos componentes mejoran la funcionalidad de un sistema híbrido, donde la parte PS gestiona el control y la interacción con elementos externos, mientras que la parte PL gestiona la lógica de procesamiento real.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

El procedimiento de implementación utilizado en esta investigación, basado en la detección de peatones con HoG + SVM en una placa FPGA, aprovechando los beneficios de la síntesis de alto nivel, se ilustra en la Figura 2 a continuación.

figure-protocol-1
Figura 2: Procedimiento de diseño para la implementación de la detección de peatones en la placa FPGA. Fase 1: Algoritmo de detección de peatones usando HoG+SVM en la herramienta HLS y generación de bloques IP. Fase 2: Algoritmo de detección de peatones usando HoG+SVM para la implementación real del FPGA y la generación del archivo de bits. Fase 3: Programar la placa con el archivo de bits generado. Por favor, haz clic aquí para ver una versión ampliada de esta figura.

1. Detección de peatones usando HoG y SVM en la herramienta HLS

  1. Descarga el Entorno Integrado de Desarrollo (IDE) en Python dependiendo de las propiedades del sistema en las que se realice la descarga.
    NOTA: En este trabajo se utiliza la versión 3.10 de Python.
  2. Ejecuta un script en Python para ejecutar un modelo de entrenamiento usando el algoritmo HoG y el clasificador SVM. Comienza el script cargando las muestras positivas y negativas del conjunto de datos.
    NOTA: Utiliza el conjunto de datos11 de INRIA.
  3. Extrae las características HoG para un tamaño de ventana de 64 x 128.
  4. Divide los datos de entrenamiento y pruebas del conjunto de datos de INRIA en una proporción de 80/20 con barajado aleatorio para la reproducibilidad.
    NOTA: El conjunto de datos se baraja aleatoriamente usando la función de Python antes de partir los datos. Para garantizar la reproducibilidad y que se realice la misma división cada vez que se fija un valor semilla en el código.
  5. Entrena usando la SVM de clasificación vectorial de soporte C (SVC) con un núcleo lineal.
  6. Extrae los vectores de peso y el sesgo.
  7. Guarda los pesos SVM y el sesgo en formato Q8.8 de punto fijo para la implementación FPGA.
    NOTA: La conversión se realiza escalando la originalidad de cada valor de coma flotante generada por un factor de 256 (28) y convirtiendo el resultado en un entero.
  8. Prueba el modelo entrenado mediante otro script en Python y ajusta el parámetro de regularización C, hasta que la precisión sea calculada en más del 95%.
    NOTA: Parámetro de regularización optimizado obtenido: C = 0,05.
  9. Abre la herramienta HLS y crea un nuevo proyecto con el número de pieza seleccionado como xczu3eg-sbva484-1-e.
  10. Escribe un código de detección de peatones en la herramienta de síntesis de alto nivel usando lenguajes de alto nivel como C++.
  11. En el código, escribe tres scripts C++ diferentes: uno para el descriptor de características HoG y el clasificador SVM, otro para el banco de pruebas que proporcione entrada a las imágenes de prueba y guarde las imágenes de salida, y el tercero para un archivo de cabecera que declara los parámetros usados en el código.
  12. En el código para el cálculo de características de HoG, redimensiona la imagen a 640 x 480 y aplica una arquitectura de ventana deslizante con un tamaño de ventana de 64 x 128. Para cada ventana, calcula la magnitud y orientación del gradiente para cada bloque superpuesto de 8 x 8.
    NOTA: Es importante escanear toda la imagen a través del concepto de ventana deslizante para que cada área de la imagen esté cubierta y se identifiquen peatones de cualquier tamaño posible.
  13. En la otra parte del mismo código para el descriptor de características HoG, pasa los gradientes calculados al clasificador SVM. Escribe el código para emparejar las características con los pesos del clasificador y compara con el umbral para clasificar la característica detectada como humana o no.
  14. Haz clic en Ejecutar Simulación C en la herramienta HLS para simular el código con la ayuda de un banco de pruebas y comprobar la corrección funcional.
  15. Proporciona diferentes imágenes de entrada al código y comprueba las imágenes de salida con los peatones detectados.
  16. Haz clic en Ejecutar C Síntesis para sintetizar el código y mapearlo a lenguajes de hardware mediante la herramienta y generar los informes de tiempos y utilización.
    NOTA: La herramienta abre automáticamente los informes de síntesis HLS. Este informe muestra la estimación de la frecuencia de reloj requerida para implementar la tarea codificada en una plataforma FPGA seleccionada, y también proporciona una estimación de los recursos utilizados. Estos valores reportados son solo estimaciones y los parámetros reales se calculan solo después de implementarse en la placa FPGA.
  17. Haz clic en Exportar RTL para exportar el bloque de Propiedad Intelectual (IP) del algoritmo HoG de detección de peatones.
    NOTA: Esta IP debe usarse en las etapas posteriores de la implementación.

2. Programación de la placa FPGA

  1. Abre la herramienta para programación FPGA y crea un nuevo proyecto. Selecciona el número de pieza como xczu3eg-sbva484-1-e y crea un nuevo diseño de bloque.
    NOTA: Este diagrama de bloques se crea para establecer la integración entre la parte PS y la PL de la placa FPGA. El protocolo de comunicación utilizado es el protocolo Advanced eXtensible Interface (AXI).
  2. Busca el Catálogo de IPs en la herramienta y, una vez encontrado, ábrelo.
  3. Crea un repositorio de usuario añadiendo la ruta de la IP RTL exportada en el paso 1.17.
  4. En la nueva ventana de diseño de bloques , ahora haz clic derecho y selecciona añadir IP. Todas las IPs serán visibles, incluidas las proporcionadas por la herramienta, así como los repositorios añadidos por el usuario.
  5. Añade el bloque PS de Zync Ultrascale desde el repositorio.
    NOTA: Este bloque refleja la parte PS del sistema, que es responsable de generar los relojes requeridos, y también tiene los puertos maestro y esclavo para la conexión a la IP HoG importada a través del bloque de interconexión AXI, que funciona con los fundamentos del protocolo AXI.
  6. Añade 8 IPs HoG porque el sistema procesará 8 ventanas simultáneamente para aprovechar el beneficio del paralelismo que ofrece la placa FPGA.
  7. Añade un bloque de reinicio del sistema de procesador , que también controla el reloj y los suministros de reinicio de cada bloque del diagrama.
  8. Añade dos bloques de conexión axi_smart para conectar las IPs HoG con el bloque PS de Zync. El diagrama completo con las conexiones completas se muestra en la Figura 3.
    NOTA: Como se muestra en la Figura 3, todos los bloques que deben añadirse al diseño se han mostrado claramente. La Figura 3 se captura de la herramienta y muestra los puertos internos de cada bloque, así como las interconexiones entre los puertos de diferentes bloques. Este bloque es el diseño principal, ya que es responsable de establecer la interfaz entre el PS y la parte PL de la placa FPGA.
  9. Tras completar las conexiones según la Figura 3, haga clic en validar diseño.
    NOTA: La validación básicamente revisa las conexiones faltantes o rotas, lo que puede provocar problemas en etapas posteriores.
  10. Haz clic en síntesis y luego Implementa diseño en el tool después de que la validación del diagrama de bloques sea exitosa.
    NOTA: Synthesis mapea el diagrama de bloques diseñado y lo mapea en la placa FPGA. Este paso informará de cualquier infracción que pueda indicar que el diseño no puede implementarse en hardware.
  11. La herramienta también generará informes relacionados con el tiempo, la utilización de recursos y el consumo energético. Examina cuidadosamente los informes para detectar posibles infracciones de tiempo y analiza el rendimiento del sistema diseñado.
  12. Haz clic en Generar el archivo de flujo de bits que generará el archivo .bit necesario para programar la placa FPGA.

figure-protocol-2
Figura 3: Diagrama de bloques para detección de peatones usando HoG + SVM IP importada. Por favor, haga clic aquí para ver una versión ampliada de esta figura.

3. Implementación final en la placa FPGA

  1. Coge la placa FPGA e inserta la tarjeta SD con el archivo de imagen adecuado en la ranura de la placa.
  2. Conecta la placa al ordenador también.
  3. Arranca la placa FPGA en modo tarjeta SD para habilitar la programación en Python21,22.
  4. Accede a la plataforma Jupyter en la placa después de conectarla al wifi.
  5. Conecta una cámara web a la placa.
  6. Escribe un código en python para importar el archivo de bits generado y realiza la tarea de acceder a las imágenes de la cámara.
  7. En el código, escribe el script de modo que la imagen se escriba en la memoria de la placa FPGA a través de la parte PS y pase a la parte PL para su procesamiento.
    NOTA: La parte PL de la placa que corresponde a las IPs HoG accede a los píxeles de imagen a través de estas ubicaciones de memoria, los procesa y proporciona las puntuaciones como salida.
  8. Escribe el código adecuado en el mismo script Python para leer las imágenes procesadas y mostrarlas en la pantalla del ordenador.
    NOTA: Esto completa todo el diseño y el sistema está ahora listo para su despliegue en aplicaciones reales. Todos los códigos utilizados en este estudio se suben como archivos de codificación suplementaria (Archivo Suplementario 1 [Script_1_train_test.py], Archivo Suplementario 2 [Script_2_HLS_hog.cpp], Archivo Suplementario 3 [Script_3_HLS_test_bench.cpp], Archivo Suplementario 4 [Script_4_HLS_consts.h], Archivo Suplementario 5 [Script_5_jupyter_code.txt]).

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Implementación de detección de peatones en HLS
La Figura 4 muestra los resultados de la simulación en la herramienta HLS para la detección de peatones usando HoG + SVM. Se alimenta una imagen de entrada con un peatón como entrada de prueba al código, y se muestra la salida con los peatones detectados. Hay dos secciones en la imagen. La primera detección muestra muchas cajas delimitadoras alrededor del mismo peatón una y otra vez, y en la segunda imagen, las cajas superpuestas se eliminan y se suprimen, quedando solo las cajas principales de detección.

figure-results-1
Figura 4: Resultado de simulación de la herramienta HLS. (A,B) Dos imágenes de entrada diferentes y las imágenes resultantes con los peatones detectados. Por favor, haz clic aquí para ver una versión ampliada de esta figura.

La herramienta HLS también proporciona informes de síntesis sobre el momento y la utilización de recursos. El resumen de tiempos destaca el periodo de tiempo requerido por el diseño y proporciona los valores máximos y mínimos de latencia en términos del número de ciclos. Esta información es útil para estimar cuánto tiempo requiere el diseño para ejecutarse y cuál debería ser la frecuencia de reloj al pasar a la implementación real del hardware. La tabla 2 siguiente muestra el informe de temporización tras la síntesis HLS, que muestra claramente que el periodo de reloj objetivo era de 6 ns y el diseño tardaba 5,25 ns, que es menos que el objetivo, por lo que el periodo puede ser de 6 ns o más, pero no inferior a 5 ns.

Resumen de tiempos
RelojObjetivoEstimado
6,00 ns5.250 ns
Resumen de utilización
Total / DisponiblePorcentaje de utilización
BRAM18K22 / 4325%
DSP48E13 / 3603%
FF5611/ 1411203%
LUT9904/ 7056014%
URAM00

Tabla 2: Informe estimado de tiempo y utilización de recursos de la herramienta HLS para la detección de peatones usando HoG-SVM.

La Tabla 2 también muestra el informe de utilización. Muestra el porcentaje de utilización de recursos importantes de FPGA a bordo según la placa objetivo seleccionada. Para este diseño de detección de peatones, el informe de utilización muestra que el diseño consume el 14% de las tablas de consulta (LUTs), el 3% de los Flip Flops (FF), el 3% del procesamiento digital de señales (DSP) y el 5% de la memoria de acceso aleatorio por bloques (BRAM). Estas estimaciones no son los informes exactos de utilización, pero los informes reales se acercan a estas estimaciones. Estas son solo las estimaciones que pueden calcularse las herramientas HLS. La implementación real suele ser muy diferente de estas estimaciones.

La implementación real resulta de la programación por hardware
Una vez que el código se mapea a una IP, que se importa en la herramienta de programación FPGA, y el diseño se implementa en el hardware real del FPGA, también se generan varios informes. La primera es el resumen de tiempos, que muestra si la frecuencia de reloj proporcionada al diseño es suficiente o no. Si se cumplen todas las restricciones de tiempo y no hay violaciones, entonces el diseño puede avanzar. La tabla 3 siguiente muestra el resumen de tiempos generado por la herramienta. Como se muestra en la tabla, el resumen de tiempos indica el peor margen negativo, que es de 4,073 ns. Como este valor es positivo, indica que aún queda disponible este tiempo. Los valores negativos indican que el FPGA tarda más en completar la tarea y el reloj avanza rápido. Dado que en este caso no hay valores negativos, lo que significa que se cumplen las restricciones temporales.

Resumen del Tiempo de Diseño
ConfiguraciónEsperaAncho de pulso
Peor holgura negativa 4,073 nsPeor holgura de sujeción 0,010 nsPeor ancho de pulso: holgura 3.500 ns

Tabla 3: Resumen real del tiempo para la detección de peatones en la placa FPGA.

Además, la herramienta muestra los informes de utilización de recursos, que son la utilización real de los recursos a bordo según la placa FPGA seleccionada. En este caso, la placa seleccionada es la placa de desarrollo FPGA27 basada en Zynq UltraScale+ MPSoC (Multi-Processor System On Chip). La siguiente tabla 4 muestra la utilización de recursos y la Figura 5 muestra la representación diagramática de la utilización de recursos.

El resumen de utilización indica el consumo real de los recursos a bordo, dado que se utilizan 8 IPS HoG en paralelo, y las estimaciones reportadas por la síntesis HLS eran para una única IP HoG. Pero incluso después de un uso tan extenso, la utilización de recursos para cada recurso es inferior al 50%. La Tabla 4 indica claramente la utilización respecto a los distintos recursos y su porcentaje de utilización, que se representa pictóricamente en la Figura 5.

RecursoUtilizaciónDisponiblePorcentaje de utilización
LUT405367056057.45%
LUTRAM73042880025.36%
FF3334214112023.63%
BRAM6821631.48%
DSP12836035.56%
BUFG21961.02%

Tabla 4: Informe de utilización real para la detección de peatones en la placa FPGA.

figure-results-2
Figura 5: Utilización de recursos para la detección de peatones en la placa FPGA tras la implementación real. Consulta tablas (LUT): 57%, LUTRAM: 25%, Flip flops (FF): 24%, RAM bloqueada (BRAM): 31%, procesadores de señal digital (DSP): 36%, búferes: 1%. Por favor, haz clic aquí para ver una versión ampliada de esta figura.

El tercer informe trata sobre las estimaciones de potencia de la placa para la cantidad de consumo energético por el diseño. La figura 6 a continuación muestra el informe de consumo energético, que muestra que la potencia total en el chip es de 2,435 W. También se muestran la temperatura de la unión y la potencia consumida por cada red y componente importante. Las mediciones de potencia no muestran ningún consumo alarmante y, por tanto, el diseño puede considerarse eficiente energéticamente.

figure-results-3
Figura 6: Estimación de potencia para la detección de peatones en la placa FPGA tras la implementación real. El informe de potencia generado por las herramientas muestra la potencia total consumida como 2,435 W y también muestra la distribución de la potencia entre los distintos recursos en la placa FPGA. Por favor, haz clic aquí para ver una versión ampliada de esta figura.

Se realiza otro análisis para entender la ventaja de usar 8 IPs HoG en lugar de una IP HoG única o más de 8 en el diagrama de bloques creado, como se muestra en la Figura 3. Las métricas de rendimiento relacionadas con el hardware se calcularon tanto para una IP HoG como para 8 IP HoG en paralelo. La tabla 5 a continuación muestra la comparación.

Métrica de rendimiento1 IP8 IPs
Sincronización (ns)5.312~5.25
Frecuencia (MHz)188150
Potencia (W)1.92.43
LUTs499840536
FF / Registros4,03133,342
DSP16128
BRAM8.568
FPS~10–1183

Tabla 5: Comparación de métricas de rendimiento usando IPs HoG únicas frente a múltiples.

La Tabla 5 indica claramente que cuando se consideran los recursos como las LUTs, FFs, DSPs y BRAM, entonces con una IP HoG única y 8 IPs HoG, la escala es lineal con un aumento de casi 8 veces en los recursos utilizados. Esto es claramente de esperar, ya que más IPs llevarán a que se consuman más recursos. Además, si se observa la frecuencia, la frecuencia máxima también se degrada ligeramente un 20% de 188 MHz a 150 MHz. Esto también es de esperar, ya que más bloques conducen a más conexiones y, por tanto, a caminos más largos, provocando un aumento de rutas críticas. Pero los factores ventajosos como los frames por segundo (FPS) mejoran de 10 a 83, demostrando un escalado no lineal en el caso de los FPS debido al concepto introducido de paralelismo, debido a 8 IPs HoG. Además, la potencia escala de 1,9 W a 2,4 W, lo que indica una mejora en la eficiencia energética gracias a la tubería de tubería. Por tanto, este análisis indica claramente que la introducción de 8 IPs HoG es beneficiosa para el diseño, y escalar más allá de 8 puede causar un sobreconsumo de recursos; por tanto, el número de bloques superiores a 8 no se considera favorable.

Resultados de detección de peatones tras la implementación de FPGA
Finalmente, todo el sistema está integrado en la placa FPGA y se genera el archivo de flujo de bits, que luego se programa en la placa a través de la tarjeta SD arrancada con capacidad de programabilidad en Python. Una vez que la placa arranca con la tarjeta SD, se puede acceder a la interfaz jupyter y se puede escribir y ejecutar código Python en la plataforma. El código Python se ejecuta y prueba para detectar peatones en diferentes imágenes de entrada. El resultado de algunas imágenes se muestra en la Figura 7 a continuación. Estas imágenes se utilizan del conjunto de datos INRIA, así como imágenes aleatorias de peatones obtenidas de fuentes onlinede código abierto 26,27.

figure-results-4
Figura 7: Resultados de detección de peatones en imágenes fijas a través de la placa FPGA. Las imágenes probadas incluyen imágenes del conjunto de datos INRIA, imágenes de código abierto disponibles en Google para comprobar la precisión de detección en calles concurridas de India. Por favor, haz clic aquí para ver una versión ampliada de esta figura.

El sistema también se prueba en captura de fotogramas en tiempo real mediante una cámara web y detecta a los peatones en el encuadre, así como se prueba con entradas de vídeo ya grabadas de peatones. Los resultados de esto se muestran en la Figura 8 y la Figura 9. La Figura 8 muestra un conjunto de fotogramas de ejemplo capturados por la cámara web y los resultados de la detección de peatones en cada fotograma, mientras que la Figura 9 muestra los resultados de la detección de peatones implementados en un vídeo de entrada proporcionado al sistema.

figure-results-5
Figura 8: Resultados de detección de peatones en un fotograma capturados por una cámara en tiempo real a través de la placa FPGA. Captura en tiempo real de vídeo mediante cámara web 720 P y demostración de la detección en tiempo real de peatones. Las imágenes borrosas se producen al tomar instantáneas del vídeo en directo en curso. Por favor, haz clic aquí para ver una versión ampliada de esta figura.

figure-results-6
Figura 9: Resultados de detección de peatones en vídeos proporcionados como entrada a la placa FPGA. Los vídeos fueron tomados de enlaces de código abierto. Por favor, haz clic aquí para ver una versión ampliada de esta figura.

Estimación de métricas de rendimiento
Para calcular la eficiencia y analizar el rendimiento del diseño implementado anteriormente, es esencial calcular métricas de rendimiento útiles para evaluar el rendimiento. Las métricas de rendimiento para detectar la eficiencia de un algoritmo de detección dependen básicamente de los valores de verdaderos positivos (TP), verdaderos negativos (TN), falsos positivos (FP) y falsos negativos (FN). A partir de estos valores, las métricas de rendimiento como precisión, recuerdo, puntuación F1, falsos positivos por imagen y precisión pueden calcularse según las ecuaciones que se indican a continuación. Se ha observado que la mayoría de los artículos de investigación informan su rendimiento de detección a través del parámetro de precisión. Pero se ha observado que el cálculo de precisión que implica el uso de TN puede ser un parámetro engañoso, ya que el valor de TN no puede calcularse correctamente en un sentido verdadero, ya que implica encontrar el conteo de todas las ventanas de detección en una imagen que en realidad no tiene un peatón, y el algoritmo implementado también lo informa como sin detecciones. Este número suele ser muy grande, ya que el número total de ventanas de detección en una imagen es grande, y las áreas de fondo en cada imagen suelen corresponder a regiones sin peatones. Observando detenidamente la fórmula de precisión mostrada en las ecuaciones [1] – [5], se puede deducir que, dado que el valor de TN será bastante alto en comparación con TP+FP+FN, el parámetro de precisión suele tener un valor alto. Para evaluar realmente el rendimiento, es mucho mejor informar de métricas como precisión, recuerdo y puntuación F1 que no dependen del TN y, por tanto, son mucho más precisas.

figure-results-7 [1]

figure-results-8 [2]

figure-results-9 [3]

figure-results-10 [4]

figure-results-11 [5]

Para encontrar los valores de TP, TN y FN para este artículo, el experimento con imágenes fijas se repitió en un gran número de imágenes. A partir de los resultados de cada imagen, se calculó el valor de los verdaderos positivos, que es el número de peatones detectados correctamente, falsos positivos, el número de peatones detectados erróneamente y falsos negativos, que son los peatones reales que no fueron detectados. Los siguientes valores se informaron tras los experimentos realizados y se muestran en la Tabla 6 a continuación.

Métrica de rendimientoValor
TP143
FP39
FN19
Precison0.786 (78.6%)
Revocación0.883 (88.3%)
Puntuación de F10.831 (83.1%)
FPPI0.867

Tabla 6: Métricas de rendimiento para el algoritmo de detección de peatones implementado basado en FPGA.

La Tabla 6 anterior describe así la precisión del algoritmo de detección de peatones a través de las distintas métricas de rendimiento, precisión, recuerdo, puntuación F1 y FPPI, cuando el algoritmo se implementa en la plataforma de hardware.

Comparación de rendimiento con implementaciones HoG basadas en FPGA existentes
Finalmente, el trabajo realizado puede compararse con la literatura previa para señalar cualquier contribución significativa de esta investigación. Esta comparación se muestra en la Tabla 715, 16, 17, 21, 24a continuación. Los artículos con los que se realiza la comparación se basan todos en aplicaciones de detección de peatones implementadas en plataformas FPGA, y los algoritmos usados para estas detecciones también son los mismos para todos, que es HoG combinado con un clasificador, que es un clasificador Adaboost o SVM. El tamaño de imagen también es el mismo para cada uno (640 × 480). La comparación se basa en parámetros como la frecuencia de reloj que afecta a la velocidad, los fotogramas por segundo, el consumo de energía y la utilización de recursos en términos de LUTs, DSPs, memoria, slices y registros. Para inducir una comparación justa, los artículos de investigación considerados para comparación tienen una resolución de imagen similar, y para normalizar la comparación de recursos, cada utilización de recursos se normaliza dividiendo el número de recursos consumidos por el total de recursos disponibles según la placa FPGA utilizada.

ReferenciaTamaño de la imagenPlaca FPGAFrecuencia de relojFotogramas por segundo (FPS)EnergíaPíxeles /relojLUTs (%)DSP48s (%)BRAMs /Bits de memoria (%)Registros/FF (%)
15640×480Xilinx Zynq82,2 MHz40-14020-
24640×480Virtex 6150 MHz1019 W395322-
16640×480Ciclón V162 MHz5269 W0.99218610021
17640×480Altera DE2-11550 MHz1293,6 W-73-7260
21640×480Zync 7000100 MHz2401,6 W-133110
ESTA OBRA640 x 480Ultra 96 v2150 MHz832,435W0.063257353124

Tabla 7: Comparación de parámetros y rendimiento para implementaciones de detección de peatones en FPGA

Como es visible en la Tabla 7 anterior, se puede observar que cuando se compara la implementación en esta investigación con los trabajos anteriores, las comparaciones muestran mejoras significativas en términos de velocidad. La placa FPGA es capaz de funcionar a una frecuencia de reloj de 150 MHz, lo que indica que el periodo de tiempo para completar toda la tarea es inferior a 6 ns. Aunque algunos trabajos previos reportan un aumento significativo de FPS, mediante un examen cuidadoso puede analizarse que esta ventaja tiene el coste de un mayor consumo energético y de una utilización casi completa de ciertos recursos. Si se considera el consumo energético, en este trabajo la potencia reportada también es inferior y las utilizaciones de recursos sugieren que el consumo de cada recurso es ligeramente superior al de ciertas implementaciones, pero igual o inferior al 50% (57% LUTs, 35% DSPs y 31% BRAM), lo que muestra un margen significativo para que se implementen más tareas en este diseño. En general, se puede afirmar que el trabajo implementado en este documento logra un equilibrio equilibrado entre rendimiento, energía y utilización de recursos. Además, el trabajo presentado mostró paralelismo escalable a través de múltiples bloques IP sin afectar drásticamente los parámetros de rendimiento.

Archivo suplementario 1: Script_1_train_test.py.Por favor, haga clic aquí para descargar este archivo.

Archivo suplementario 2: Script_2_HLS_hog.cpp. Por favor, haga clic aquí para descargar este archivo.

Archivo suplementario 3: Script_3_HLS_test_bench.cpp. Por favor, haga clic aquí para descargar este archivo.

Archivo suplementario 4: Script_4_HLS_consts.h.Por favor, haga clic aquí para descargar este archivo.

Archivo suplementario 5: Script_5_jupyter_code.txt.Por favor, haga clic aquí para descargar este archivo.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Este estudio implementa eficazmente un sistema de detección de peatones en tiempo real utilizando el algoritmo HoG + SVM en hardware FPGA avanzado basado en la placa de desarrollo Zynq UltraScale+ MPSoC24. Los resultados indican que el algoritmo tradicional HoG de detecciónhumana 11 alcanza una precisión cercana al 95% y utiliza solo la mitad de los recursos FPGA a bordo (LUTs, FFs, BRAM, DSPs), dejando una enorme capacidad de incluir mucho más procesamiento para realizar tareas diferentes. Cuando se analiza todo el enfoque de implementación, se observa que hay varios pasos críticos involucrados. Un paso importante es entrenar el modeloSVM 18,19,24 con un conjunto de datos adecuado para una detección efectiva de peatones, de modo que los pesos se extraigan y utilicen en la programación FPGA. El código de entrenamiento indicará la precisión del rendimiento, y el umbral de detección debe ajustarse cuidadosamente mediante el parámetro de regularización para lograr una precisión cercana al 95%. Los parámetros seleccionados en el entrenamiento son los descriptores personalizados de HoG con un tamaño de ventana de 64 x 128, un tamaño de bloque de 16 x 16, un tamaño de celda de 8 x 8, y un número de contenedores seleccionado como 9. Actualmente, la formación se ha realizado en el conjunto de datos11 de INRIA con 2416 imágenes positivas y 1218 imágenes negativas. La ampliación incluye la rotación de imágenes para proporcionar la versión horizontal espejada. Otras inclusiones importantes, como la evaluación del modelo en condiciones de mala visibilidad o variaciones de escala, se abordarán en trabajos futuros para garantizar la reproducibilidad y la robustez. El conjunto de datos considerado para la formación debe incluir imágenes de peatones en varias posturas, y también debe incluir imágenes que no tenganpeatones en él 18,19.

El otro paso crítico es crear el diagrama de bloques para todo el sistema para que la parte PS de la placa FPGA pueda comunicarse con la parte PL. En este paso, es necesario asegurarse de que cada bloque esté parametrizado con los puertos correctos y que esté correctamente conectado con los demás bloques. La herramienta también ofrece enrutamiento automático con sugerencias para ayudar al diseñador. Un paso muy crucial es la asignación de direcciones tras completar el diagrama de bloques. Las IPs HoG importadas deben tener direcciones asignadas según su profundidad, y estas direcciones no deben ser las mismas para dos IPs. Estas direcciones son necesarias en el código Python de la tarjeta SD, lo que ayudará a la parte PS de la placa FPGA a entender la ubicación de direcciones en PL a la que debe acceder para leer/escribir los datos. Por tanto, el paso desafiante es el desarrollo de interfaces en la plataforma Python, que permite al usuario enviar las imágenes de entrada/vídeos/transmisión en directo de la cámara al FPGA, y mostrar la imagen de salida con los peatones detectados tras recibir las imágenes procesadas del FPGA. El código en Python debe escribirse con varios mensajes de depuración para que los resultados intermedios puedan ser consultados por el diseñador y, en caso de fallos, los errores puedan ser diagnosticados y corregidos. Se dedicó una enorme cantidad de tiempo a esta investigación a establecer una interfaz adecuada entre la PS y la parte PL. El script en Python de esta interfaz podía acceder a los datos de las IPs de HoG tras varias iteraciones, y la inclusión de varias sentencias para mostrar los resultados intermedios era muy útil para solucionar problemas y corregir los errores.

Una limitación observada del método es la utilización de la parte de Python para establecer la interfaz entre la parte PS y la parte PL de FPGA. Aunque la plataforma Python redujo drásticamente el tiempo de diseño, introduce sobrecargas adicionales que afectan al rendimiento en tiempo real. El sistema acelerado por hardware para la detección de peatones reportaba un rendimiento de 83 FPS, pero el rendimiento general del sistema se veía afectado por la latencia o dejaba de responder durante las pruebas en directo de la cámara debido a los retrasos causados por la transferencia de datos entre la PS y la parte PL. La perspectiva futura ofrece la posibilidad de desarrollar un sistema completo acelerado por hardware sin depender del software.

Aunque existen limitaciones como las descritas anteriormente, la investigación contribuye significativamente, ya que el sistema desarrollado puede adaptarse sin problemas para la detección de peatones en imágenes fijas, transmisiones en directo o entradas de vídeo. Los tres métodos requieren solo modificaciones menores al código Python en la plataforma Jupyter, demostrando la rápida adaptabilidad del sistema a diversos escenarios. Los resultados indican que la implementación en las arquitecturas avanzadas de FPGA da resultados alentadores, ya que los parámetros de rendimiento están altamente optimizados, lo que resulta en valores buenos y aceptables. La frecuencia de reloj alcanzada es comparable a la literaturaanterior 14,15,16,20,23, lo que indica que la velocidad no se ve comprometida, mientras que el consumo mínimo de energía sugiere que no hay problemas de calentamiento. Además, la utilización de recursos muestra que todos los recursos se utilizan por debajo del 50 %, lo que indica un potencial significativo para mejoras de diseño adicionales.

El sistema desarrollado puede utilizarse en cualquier aplicación que requiera la tarea de detectar humanos y puede adaptarse para aplicaciones en tiempo real. Además, los esfuerzos futuros podrían centrarse en eliminar las limitaciones mencionadas desarrollando todo el sistema, ya sea completamente en la parte PL, haciendo que la lógica FPGA lea por sí misma las imágenes de entrada y muestre las imágenes procesadas de salida, ya que casi el 50 % de los recursos a bordo siguen disponibles. Además, si se va a utilizar la integración de PS y PL, se puede llevar a cabo el desarrollo de interfaces mediante herramientas de Software Development Kit (SDK). Otras posibles extensiones podrían ser identificar peatones en condiciones meteorológicas significativamente más duras o durante baja visibilidad, o identificar a los peatones ocluidos que están ocultos tras otros objetos, lo que requeriría modificaciones en el algoritmo. La única modificación necesaria en estos casos sería reemplazar los pesos entrenados por SVM tras un entrenamiento adecuado según el desafío seleccionado y el resto del sistema no requiere otras modificaciones. Por tanto, el sistema implementado es muy adecuado para adaptarse fácilmente a otros escenarios desafiantes. Otra perspectiva futura podría ser centrarse en incorporar características adicionales al sistema para crear un vehículo totalmente autónomo utilizando la avanzada placa FPGA.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Los autores declaran que no tienen conflicto de intereses.

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
PythonPythonVersión 3.10
Placa FPGA Ultra 96 V2  Xilinx Introducido en 2018Plataforma de Implementación de Hardware utilizada para implementar el algoritmo de detección de peatones
Vivado AMD2019.2Herramienta de programación FPGA utilizada para programar la placa FPGA Ultra 96 v2 con 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 para exportar la Propiedad Intelectual (PI)

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Nkuzo, L., Sibiya, M., Markus, E. Computer vision-based applications in modern cars for safety purposes: A systematic literature review. 2023 Conference on Information Communications Technology and Society (ICTAS), Durban, South Africa, , (2023).
  2. Nidamanuri, J., Nibhanupudi, C., Assfalg, R., Venkataraman, H. A progressive review - Emerging technologies for ADAS driven solutions. IEEE Trans Intell Veh. 7 (2), 326-341 (2021).
  3. Bathla, G., et al. Autonomous vehicles and intelligent automation: Applications, challenges, and opportunities. Mob Inf Syst. 2022, 7632892(2022).
  4. Yamamoto, R., Izumi, Y., Aono, R., Nagahara, T., Tanaka, T., Liao, W., Mitsuyama, Y. Development of autonomous driving system based on image recognition using programmable SoCs. 2021 International Conference on Field-Programmable Technology (ICFPT), Auckland, New Zealand, , (2021).
  5. Kasem, A., Reda, A., Vásárhelyi, J., Bouzid, A. A survey about intelligent solutions for autonomous vehicles based on FPGA. Carpathian J Electr Comput Eng. , (2021).
  6. Nane, R., et al. A survey and evaluation of FPGA high-level synthesis tools. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 35 (10), 1591-1604 (2015).
  7. Cao, J., et al. Pedestrian detection algorithm for intelligent vehicles in complex scenarios. Sensors. 20 (13), 3646(2020).
  8. Chen, W., Zhu, Y., Tian, Z., Zhang, F., Yao, M. Occlusion and multi-scale pedestrian detection: a review. Array. 19, 100318(2023).
  9. Galvao, L. G., Abbod, M., Kalganova, T., Palade, V., Huda, M. N. Pedestrian and vehicle detection in autonomous vehicle perception systems—A review. Sensors. 21 (21), 7267(2021).
  10. Akshayaa, S., Nithin, S. Comparative study of pedestrian detection techniques for driver assistance system. 2021 Second International Conference on Electronics and Sustainable Communication Systems (ICESC), Coimbatore, India, , (2021).
  11. Dalal, N., Triggs, B. Histograms of oriented gradients for human detection. Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), San Diego, CA, USA, , (2005).
  12. Singh, G., Kaur, A., Bhardwaj, V., Shrivastava, S. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security. 2024 5th International Conference for Emerging Technology (INCET), Belgaum, India, , (2024).
  13. Shrivastava, S., Kumar, B. V., Gupta, R., Sharma, V. Advancements in real-time image processing using Kintex and Virtex FPGAs: enhancing speed, efficiency, and versatility. 2025 IEEE International Conference on Interdisciplinary Approaches in Technology and Management for Social Innovation (IATMSI), Gwalior, India, , (2025).
  14. Rettkowski, J., Boutros, A., Göhringer, D. Real-time pedestrian detection on a Xilinx Zynq using the HOG algorithm. 2015 International Conference on Reconfigurable Computing and FPGAs (ReConFig), Riviera Maya, Mexico, , (2015).
  15. Ngo, V., Casadevall, A., Codina, M., Castells-Rufas, D., Carrabina, J. A high-performance HOG extractor on FPGA. arXiv. , 1802.02187(2018).
  16. Adiono, T., Prakoso, K. S., Putratama, C. D., Yuwono, B., Fuada, S. HOG-AdaBoost implementation for human detection employing FPGA ALTERA DE2-115. Int J Adv Comput Sci Appl. 9 (10), 353-358 (2018).
  17. Dürre, J., Paradzik, D., Blume, H. A HOG-based real-time and multi-scale pedestrian detector demonstration system on FPGA. Proceedings of the 2018 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, Monterey, California, USA, , (2018).
  18. Wasala, M., Kryjak, T. Real-time HOG+SVM based object detection using SoC FPGA for a UHD video stream. 2022 11th Mediterranean Conference on Embedded Computing (MECO), Budva, Montenegro, , (2022).
  19. Lin, Y. Research on HOG-SVM pedestrian detection method based on FPGA. Appl Computat Eng. 9, 272-281 (2023).
  20. Ranawaka, P., et al. Application specific architecture for hardware accelerating HOG-SVM to achieve high throughput on HD frames. 2019 IEEE 30th International Conference on Application-Specific Systems, Architectures and Processors (ASAP), New York, NY, USA, 2160, 131-134 (2019).
  21. Luo, J. H., Lin, C. H. Pure FPGA implementation of an HOG based real-time pedestrian detection system. Sensors. 18 (4), 1174(2018).
  22. Ma, X., Najjar, W. A., Roy-Chowdhury, A. K. Evaluation and acceleration of high-throughput fixed-point object detection on FPGAs. IEEE Transactions on Circuits and Systems for Video Technology. 25 (6), 1051-1062 (2015).
  23. Weng, G. Real-time pedestrian recognition on low computational resources. arXiv. , 2309.01353(2023).
  24. Nguyen, T. A., Tran-Thi, T. Q., Bui, D. H., Tran, X. T. FPGA-based human detection system using HOG-SVM algorithm. 2023 International Conference on Advanced Technologies for Communications (ATC), Da Nang, Vietnam, , (2023).
  25. Tarchoun, B., Khalifa, A. B., Dhifallah, S., Jegham, I., Mahjoub, M. A. Hand-crafted features vs deep learning for pedestrian detection in moving camera. Traitement du Signal. 37 (2), 209-216 (2020).
  26. Suleiman, A., Chen, Y. H., Emer, J., Sze, V. Towards closing the energy gap between HOG and CNN features for embedded vision. 2017 IEEE International Symposium on Circuits and Systems (ISCAS), Baltimore, MD, USA, , (2017).
  27. Ultra96-V2 Single Board Computer Hardware User’s Guide. , Avnet. Available from: https://www.avnet.com (2025).

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Pedestrian DetectionAutonomous DrivingField Programmable Gate ArrayFPGA ImplementationReal Time DetectionHistogram Of Oriented GradientsSupport Vector MachineHigh Level SynthesisUltra 96 V2Smart Transportation

Related Articles