[en] Pedestrian detection is one of the most safety-critical applications in autonomous cars. The requirement of this application is not only accuracy but also speed and energy efficiency. In the literature, there are two main approaches to solve the problem: deep neural network based algorithms, that achieve high accuracy yet require large amount of computing resource and power; and handcrafted features based classifications, more suitable for embedded platforms with limited amount of computing and memory resources. Embedded platforms implemented using FPGAs and ASICs consume less power than GPU/CPU based systems to achieve similar results. On the other side, in terms of energy efficiency, GPUs is 10 times better than FPGAs in running CNN-based applications. However, FPGA-based implementations with low-level optimization techniques can beat GPU-based ones. Compared to ASICs, the advantage of FPGA device is that it is their re-configurability for later updates and time-to-market. This thesis presents the implementation of pedestrian detection systems on FPGAs using Histogram of Gradient feature extractor and SVM classifier. First, the pipeline of the algorithm is implemented in Verilog HDL to achieve a high-throughput and low power consumption system. Second, the same algorithm is realized using OpenCL programming model, a high-level synthesis approach. To compare to the state-of-the-art, since different implementations have different working frequencies and input image resolution, I calculate the number of pixels per clock cycle for fair comparison. The implementation in this thesis achieves second to the best with 0,068 pixels per clock even though it uses equal or less FPGA resources than the rest. The system consumes the least power at only 9 W. In terms of energy efficiency, our result achieves the third best at 1,22 FPS per Watt. However, the working frequency of this design is only half as high as the frequencies of the other implementations. If the pixel clock is doubled to be 100 MHz, the energy efficiency of this design would becomes the best.

[es] La detección de peatones es una de las aplicaciones más críticas para la seguridad de los coches autónomos. El requisito de esta aplicación es no sólo la precisión, sino también la velocidad y la eficiencia energética. En la literatura, existen dos aproximaciones principales para resolver el problema: algoritmos basados en redes neuronales profundas, que alcanzan una gran precisión pero requieren una gran cantidad de recursos y potencia de cálculo; y clasificaciones basadas en funciones hechas a medida, más adecuadas para plataformas incrustadas con unos recursos de cálculo y de memoria limitados. Las plataformas empotradas implementadas con FPGA y ASIC consumen menos energía que los sistemas basados en GPU/CPU para conseguir resultados similares. Por otra parte, en cuanto a eficiencia energética, las GPU son 10 veces mejores que las FPGA al ejecutar aplicaciones que utilizan CNNs. Sin embargo, las implementaciones basadas en FPGA con técnicas de optimización de bajo nivel pueden superar las basadas en GPUs. En comparación con los ASICs, la ventaja de las FPGAs reside en su reconfigurabilidad, que permite actualizaciones, y en el menor tiempo y coste de desarrollo. Esta tesis presenta la implementación de sistemas de detección de peatones utilizando FPGA mediante el uso del histograma de gradientes, como extractor de características, y del clasificador SVM. En primer lugar, el algoritmo se implementa en Verilog HDL para conseguir un sistema de alto rendimiento y bajo consumo de energía. En segundo lugar, el propio algoritmo se materializa mediante el modelo de programación OpenCL, con un enfoque orientado a la síntesis de alto nivel. He comparado mi implementación con el estado del arte aunque las distintas implementaciones tienen diferentes frecuencias de trabajo y resolución de imagen de entrada. Para obtener una comparación justa, calculo el número de píxeles por ciclo de reloj. La implementación de esta tesis logra el segundo mejor registro con 0,068 píxeles por reloj aunque utiliza menos recursos FPGA que el resto. El sistema desarrollado consume menos potencia (sólo 9 W). En cuanto a la eficiencia energética, nuestro resultado alcanza el tercero mejor a 1,22 FPS por vatio. Sin embargo, la frecuencia de trabajo de este diseño es sólo la mitad más alta que las frecuencias de las demás implementaciones. Si el reloj de píxeles se duplica hasta 100 MHz, la eficiencia energética de este diseño es la mejor.