Computer vision algorithms are notoriously difficult to implement. maintain, and share. These difficulties are a major obstacle to the progress of research in this area. Techniques are poorly documented, because existing languages make it difficult to encode them precisely in compact form. New techniques are rarely tested or adopted by other researchers, because significant programming effort is required to reimplement the method or adapt imported code.
Like many researchers in computer vision, we built and maintained a large package of computer vision utilities, written in a combination of Common Lisp and C, installed on two achitectures (HP and IBM workstations) and used for both research and teaching. Our experiences with this package led us to analyze why the code was so complex and difficult to write, and eventually to develop programming language primitives that would make it simpler.
The unreadability of computer vision code stems from the fact that existing programming languages provide poor support for manipulating image data. Researchers in computer vision have developed a number of libraries of standard image processing operations. However, no standard common programming language has emerged from these packages, it is unlikely that any will.
In addition, the I/O in existing languages seems to have been designed for the VT100 and patched to run on modern hardware. Graphics primitives seem to be word-for-word translations of C operations rather than suitable companions for the other constructs of a modern programming language. The programming front-end is frequently emacs, again a kludge dating back to the days of VT100 terminals.
Ownership, Maintenance and Disclaimers
Manual Top Page