FVision - A Declarative Language for Visual Tracking

John Peterson, Paul Hudak, Alastair Reid, Gregory D. Hager
Yale University
[pdf] [doi]

Practical Aspects of Declarative Languages, Third International Symposium (PADL 2001)
Lecture Notes in Computer Science, volume 1990
Las Vegas, Nevada, USA
March 2001

Abstract

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 Haskellglue 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.

First page of paper

BibTeX

@inproceedings{DBLP:conf/padl/PetersonHRH01 , abstract = { 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. } , affiliation = {Yale University} , ar_file = {PADL_01} , ar_shortname = {PADL 01} , author = {John Peterson and Paul Hudak and Alastair Reid and Gregory D. Hager} , booktitle = {Practical Aspects of Declarative Languages, Third International Symposium (PADL 2001)} , day = {11-12} , doi = {10.1007/3-540-45241-9\_21} , editor = {I. V. Ramakrishnan} , file = {fvision-padl01-2.pdf} , location = {Las Vegas, Nevada, USA} , month = {March} , pages = {304--321} , png = {fvision-padl01-2.png} , publisher = {Springer} , series = {Lecture Notes in Computer Science} , title = {F{V}ision: {A} Declarative {L}anguage for {V}isual {T}racking} , volume = {1990} , year = {2001} }