Abstract
This paper proposes a strategy for the design of computer vision on Field Programmable Gate Arrays (FPGAs). We show that there are certain advantages to the approach of designing an algorithm to specifically suit hardware rather than attempting to replicate the behavior of software implementations in hardware. We justify this approach through the analysis of two case studies. In the first case study, we present FPGA implementations of two corner detectors. We make a number of observations which point to the advantages of an FPGA-tailored algorithm. In the second case study, we investigate the feasibility of this approach by designing a proof-of-concept face detection algorithm that was designed specifically for an FPGA. We show that this design allows for high detection speed on a low-cost FPGA device, although the same algorithm would not be considered in software. Finally, we conclude that FPGAs offer special opportunities for specialized algorithms that are infeasible in software.
Similar content being viewed by others
References
Altera FPGAs. http://www.altera.com/devices/fpga/fpga-index.html
Altera HardCopy IV ASICs. http://www.altera.com/devices/asic/hardcopy-asics/hardcopy-iv/hciv-index.jsp
Altera Nios II C2H Compiler. http://www.altera.com/devices/processor/nios2/tools/c2h/ni2-c2h.html
Caltech Frontal Face Dataset. http://www.vision.caltech.edu/html-files/archive.html
CBCL Face Database \(\#1\). http://cbcl.mit.edu/projects/cbcl
Terasic DE2-115. http://de2-115.terasic.com/
Terasic TRDB-D5M 5 Megapixel Camera. http://d5m.terasic.com
Xilinx Virtex-5 Documentation. http://www.xilinx.com/support/documentation/virtex-5.htm
Altera: RAM-based shift register megafunction user guide. www.altera.com/literature/ug/ug_shift_register_ram_based.pdf
Bailey, D.: Adapting algorithms for hardware implementation. In: 7th IEEE Workshop on Embedded Computer Vision, pp. 177–184 (2011)
Bay, H., Ess, A., Tuytelaars, T., van Gool, L.: Speeded-up robust features (surf). Comput. Vis. Image Underst. 110(3), 346–359 (2008)
Benedetti, A., Perona, P.: Real-time 2-d feature detection on a reconfigurable computer. In: IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Proceedings. pp. 586–593 (1998). doi:10.1109/CVPR.1998.698665
Brand, J., Mason, J.: A comparative assessment of three approaches to pixel-level human skin-detection. In: 15th International Conference on Pattern Recognition, Proceedings. vol. 1, pp. 1056–1059 (2000)
Calonder, M., Lepetit, V., Strecha, C., Fua, P.: Brief: binary robust independent elementary features. In: European Conference on Computer Vision. Heraklion (2010)
Che, S., Li, J., Sheaffer, J.W., Skadron, K., Lach, J.: Accelerating compute-intensive applications with gpus and fpgas. In: Proceedings of the 2008 Symposium on Application Specific Processors, SASP ’08, pp. 101–107. IEEE Computer Society, Washington, DC (2008). doi:10.1109/SASP.2008.4570793
Cho, J., Mirzaei, S., Oberg, J., Kastner, R.: FPGA-based face detection system using Haar classifiers. In: FPGA ’09: Proceeding of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays, pp. 103–112. New York (2009)
Gribbon, K., Bailey, D., Bainbridge-Smith, A.: Development issues in using FPGAs for image processing. In: Image and Vision Computing New Zealand, pp. 282–287 (2007)
Gribbon, K., Johnson, C., Bailey, D.: Formalizing design patterns for image processing algorithm development on FPGAs. In: Proceedings of the Third IEEE International Workshop on Electronic Design, Test, and Applications, pp. 47–53 (2006)
Harris, C., Stephens, M.: A combined corner and edge detection. In: Proceedings of The Fourth Alvey Vision Conference, pp. 147–151 (1988)
Kim, J., Hwangbo, M., Kanade, T.: Parallel algorithms to a parallel hardware: Designing vision algorithms for a gpu. In: Workshop on Embedded Computer Vision (ECV), 2009 (held in conjunction with ICCV) (2009)
Kraft, M., Schmidt, A., Kasinski, A.J.: High-speed image feature detection using fpga implementation of fast algorithm. In: Proceedings of the VISAPP (2008)
MacLean, W.J.: An evaluation of the suitability of FPGAs for embedded vision systems. In: 1st IEEE Workshop on Embedded Computer Vision (2005)
Quinlan, J.R.: Induction of decision trees. Mach. Learn. 1(1), 81–106 (1986)
Rosten, E., Drummond, T.: Machine learning for high-speed corner detection. In: European Conference on Computer Vision, vol. 1, pp. 430–443 (2006)
Rosten, E., Porter, R., Drummond, T.: Faster and better: A machine learning approach to corner detection. IEEE Trans. Pattern Anal. Mach. Intell. 32, 105–119 (2010)
Rublee, E., Rabaud, V., Konolige, K., Bradski, G.: Orb: An efficient alternative to sift or surf. In: International Conference on Computer Vision. Barcelona (2011)
Shi, J., Tomasi, C.: Good features to track. In: IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 1994. Proceedings CVPR ’94, pp. 593–600 (1994). doi:10.1109/CVPR.1994.323794
Sung, K.K., Poggio, T.: Example based learning for view-based human face detection. IEEE Trans. Pattern Anal. Mach. Intell. 20, 39–51 (1995)
Viola, P., Jones, M.J.: Robust real-time face detection. Int. J. Comput. Vis. 57, 137–154 (2004)
Yang, M., Crenshaw, J., Augustine, B., Mareachen, R., Wu, Y.: Adaboost-based face detection for embedded systems. Comput. Vis. Image Underst. 114(11), 1116–1125 (2010)
Author information
Authors and Affiliations
Corresponding author
Electronic supplementary material
Below is the link to the electronic supplementary material.
Rights and permissions
About this article
Cite this article
Lim, Y.K., Kleeman, L. & Drummond, T. Algorithmic methodologies for FPGA-based vision. Machine Vision and Applications 24, 1197–1211 (2013). https://doi.org/10.1007/s00138-012-0474-9
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00138-012-0474-9