High-level dataflow programming for real-time image processing on smart cameras
- 410 Downloads
- 3 Citations
Abstract
We describe the application of the caph programming language to the implementation of complex real-time image processing application on a FPGA embedded in a smart camera architecture. caph is based upon the dataflow model of computation. Applications are described as networks of purely dataflow actors exchanging tokens through unidirectional channels and the behavior of each actor is defined as a set of transition rules using pattern matching. We show that this model is naturally suited to the description of applications operating on the fly on digital video streams and supports a fully automated compilation path producing efficient VHDL code. This is demonstrated on an application performing the extraction of HOG (histogram of oriented gradient) feature vectors in real time on the dreamcam smart camera, an experimental platform developed at our institute.
Keywords
FPGA Dataflow DSL Real-time image processing HOGReferences
- 1.Ahmed, S.: Application of a Dataflow Programming Language to the High Level Synthesis of Real-Time Vision Systems on Reconfigurable Hardware. PhD thesis, Université Blaise Pascal-Clermont-Ferrand II, (2013)Google Scholar
- 2.Bauer, S., Kohler, S., Doll, K., Brunsmann, U.: Fpga-gpu architecture for kernel svm pedestrian detection. In: 2010 IEEE Computer Society Conference on, Computer Vision and Pattern Recognition Workshops (CVPRW), pp. 61–68 (2010)Google Scholar
- 3.Birem, M., Berry, F.: DreamCam: a modular FPGA-based smart camera architecture. J. Syst. Archit. 60(6), 519–527 (2014). doi: 10.1016/j.sysarc.2014.01.006
- 4.Sérot, J.: The caph software and reference manual. http://caph.univ-bpclermont.fr
- 5.Cao, P., Deng, G.: Real-time vision- based stop sign detection system on FPGA. In: International Conference on Digital Image Computing: Techniques and Applications (DICTA), IEEE Computer Society, pp. 465–471 (2008)Google Scholar
- 6.Dalal, N., Triggs, B.: Histograms of oriented gradients for human detection. In: Schmid, C., Soatto, S., Tomasi, C. (eds) International Conference on Computer Vision and Pattern Recognition, vol. 2, pp. 886–893. June (2005)Google Scholar
- 7.Dahlin, A., Ersfolk, J., Yang, G., Habli, H., Lilius, J.: The Canals language and its compiler. In: Proceedings of th 12th International Workshop on Software and Compilers for Embedded Systems, SCOPES ’09, ACM, pp. 43–52. New York, NY, USA (2009)Google Scholar
- 8.Dollr, P., Wojek, C., Schiele, B., Perona, P.: Pedestrian detection: A benchmark. In: IEEE International Conference on Computer Vision and Pattern Recognition (CVPR), (2009)Google Scholar
- 9.Enzweiler, M., Gavrila, D.M.: Monocular Pedestrian Detection: Survey and Experiments. In: IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), (2008)Google Scholar
- 10.Frigo, J., Gokhale, M., Lavenier, D.: Evaluation of the streams-C C-to-FPGA compiler: an applications perspective. In: Proceedings of the 2001 ACM/SIGDA ninth international symposium on Field programmable gate arrays, FPGA ’01, pp. 134–140. ACM, New York, NY (2001). doi: 10.1145/360276.360326
- 11.Gupta, S., Dutt, N., Gupta, R., Nicolau, A.: Spark A high-level synthesis framework for applying parallelizing compiler transformations. In: International Conference on VLSI Design, pp. 461–466 (2003)Google Scholar
- 12.Kadota, R., Sugano, H., Hiromoto, M., Ochi, H., Miyamoto, R., Nakamura, Y.: Hardware architecture for hog feature extraction. In: Proceedings of the 2009 Fifth International Conference on Intelligent Information Hiding and Multimedia Signal Processing, IEEE Computer Society, pp. 1330–1333. Washington, DC, USA (2009)Google Scholar
- 13.Lucarz, C., Mattavelli, M., Wipliez, M., Roquier, G., Raulet, M., Janneck, J., Miller, I., Parlour, D.: Dataflow/Actor-Oriented language for the design of complex signal processing systems. In: Proceedings of the 2008 Conference on Design and Architectures for Signal and Image Processing, DASIP 2008, pp. 168–175 (2008)Google Scholar
- 14.Najjar, W.A., Lee, E.A., Gao, G.R.: Advances in the dataflow computational model. Parallel Comput. 25(13–14), 1907–1929 (1999)CrossRefGoogle Scholar
- 15.Najjar, W.A., Boehm, W., Draper, B.A., Hammes, J., Rinker, R., Beveridge, J.R., Chawathe, M., Ross, C.: High-level language abstraction for reconfigurable computing. Computer 36, 63–69 (2003)CrossRefGoogle Scholar
- 16.Sérot, J.: The semantics of a purely functional graph notation system. In: Achten, P., Koopman, P.W.M., Morazán, M.T. (eds.) Draft Proceedings of the Ninth Symposium on Trends in Functional Programming, TFP 2008, May 26–28. Nijmegen, The Netherlands (2008)Google Scholar
- 17.Sérot, J., Berry, F., Ahmed, S.: Implementing stream-processing applications on fpgas: a dsl-based approach. In: Proceedings of the 2011 21st International Conference on Field Programmable Logic and Applications, FPL ’11, IEEE Computer Society, pp. 130–137. Washington, DC, USA (2011)Google Scholar
- 18.Sérot, J., Berry, F., Ahmed, S.: CAPH: a language for implementing stream-processing applications on FPGAs. In: Athanas, P. (ed.) Embedded Systems Design with FPGAs. Springer, New York (2013)Google Scholar
- 19.Zhu, Q., Yeh, M.-C., Cheng, K.-T., Avidan, S.: Fast human detection using a cascade of histograms of oriented gradients. In: Proceedings of the 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, IEEE Computer Society, vol 2, pp. 1491–1498. Washington, DC, USA (2006)Google Scholar
- 20.Handel-c language reference manual (2009). http://www.agilityds.com/literature/HandelC_Language_Reference_Manual
- 21.Impulse accelerated technologies. http://www.impulsec.com