FVision: A Declarative Language for Visual Tracking
- 260 Downloads
Functional programming languages are not generally associated with computationally intensive tasks such as computer vision. We show that a declarative programming language like Haskell is effective for describing complex visual tracking systems. We have taken an existing C++ library for computer vision, called XVision, and used it to build FVision (pronounced “fission”), a library of Haskell types and functions that provides a high-level interface to the lower-level XVision code. Using functional abstractions, users of FVision can build and test new visual tracking systems rapidly and reliably. The use of Haskell does not degrade system performance: computations are dominated by low-level calculations expressed in C++ while the Haskell “glue code” has a negligible impact on performance.
FVision is built using functional reactive programming (FRP) to express interaction in a purely functional manner. The resulting system demonstrates the viability of mixed-language programming: visual tracking programs continue to spend most of their time executing low-level image-processing code, while Haskell’s advanced features allow us to develop and test systems quickly and with confidence. In this paper, we demonstrate the use of Haskell and FRP to express many basic abstractions of visual tracking.
KeywordsReference Image Video Stream Visual Tracking Video Source Edge Tracker
Unable to display preview. Download preview PDF.
- Conal Elliott and Paul Hudak. Functional reactive animation. In International Conference on Functional Programming, pages 163–173, June 1997.Google Scholar
- G. D. Hager and P. N. Belhumeur. Eficient region tracking of with parametric models of illumination and geometry. To appear in IEEE PAMI., October 1998.Google Scholar
- P. Henderson. Functional programming, formal spepcification, and rapid prototyping. IEEE Transactions on SW Engineering, SE-12(2):241–250, 1986.Google Scholar
- P. Hudak. Building domain specific embedded languages. ACM Computing Surveys, 28A:(electronic), December 1996.Google Scholar
- Paul Hudak. Modular domain specific languages and tools. In Proceedings of Fifth International Conference on Software Reuse, pages 134–142. IEEE Computer Society, June 1998.Google Scholar
- J. Hughes. Why functional programming matters. Technical Report 16, Programming Methodology Group, Chalmers University of Technology, November 1984.Google Scholar
- R.E. Kahn, M.J. Swain, P.N. Prokopowicz, and R.J. Firby. Gesture recognition using Perseus architecture. In Proc. IEEE Conf. Comp. Vision and Patt. Recog., pages 734–741, 1996.Google Scholar
- J. Peterson, P. Hudak, and C. Elliott. Lambda in motion: Controlling robots with haskell. In Proceedings of PADL 99: Practical Aspects of Declarative Languages, pages 91–105, Jan 1999.Google Scholar
- A. Reid, J. Peterson, P. Hudak, and G. Hager. Prototyping real-time vision systems. In Proceedings of ICSE 99: Intl. Conf. on Software Engineering, May 1999.Google Scholar
- C. Consel S. Thibault, R. Marlet. A domain-specific language for video device drivers: From design to implementation. In Proceedings of the first conference on Domain-Specific Languages, pages 11–26. USENIX, October 1997.Google Scholar
- The Khoros Group. The Khoros Users Manual. The University of New Mexico, Albuquerque, NM, 1991.Google Scholar