A Brief Tour of XVision

The Philosophy of XVision

One of the recent revolutions in desktop workstations has been the trend toward high-quality graphics on the desktop. This is arguably due two factors: a decrease in the cost of graphics hardware, and the availability of portable graphics toolkits such as XWindows which made it easy to write complex, engaging, and machine-independent user interfaces and graphics programs.

Our belief is that desktop vision is now at the same critical juncture. Cheap cameras and framegrabbers are now plentiful, and the processing power of most workstations has reached the point where interesting realtime vision can performed with little or no special purpose hardware. However, no toolkits exist that can exploit this untapped potential. The goal of XVision has been to fill that gap. Potential applications of this technology include surveillance, video conferencing, interactive video games, interactive animation, and vision-based user interfaces to name a few.

The History

In the summer of 1993 Greg Hager and Sidd Puri wrote the first version of XVision framework, and built an edge tracker based on Greg Hager's dissertation work. Kentaro Toyama then added more types of line tracking and built a snake tracker. Greg Hager wrote an region-tracking class based on sum-of-squared difference (SSD) methods, and most recently added a blob tracking class. Since then, various people have contributed to the system. The core system has almost completely revamped twice (about once a year it seems) to include more functionality including time-histories of feature states and color support. As of the winter of 1997, we are preparing to release version 1.3 of XVision. We are also putting together a port to the Windows NT operating system, with help from collaborators at UIUC, to be included in a future release of XVision. Of course, there is still a lot more work to do. You might want to check our list of
things to do if you've got some spare time on your hands, or, if you have written software you would like to see included in our package, please get in touch!

What You Need to Run XVision

The version of XVision that we distribute is written in C++ and uses XWindows graphics for display. The code compiles successfully under gcc/g++ on a variety of platforms, and also compiles well on SGI systems. In order to use the system, you need a source of video input. For those of you without cameras, it is possible to run from image sequences stored as files, and recently Kinh Tieu developed an MPEG interface. The system has also been used in combination with a number of framegrabbers. Visit our page of
supported platforms which lists various hardware and software configurations that have been found to work.

What XVision Provides

XVision provides an application independent set of tools for visual feature tracking optimized to be simple to configure at the user level, yet extremely fast to execute. Although it started as a byproduct of our research in hand-eye coordination, we have used it in a number of demonstrations including:

The principle point of all of these applications is that XVision allows the user to interact directly with his or her workstation in a non-intrusive, natural manner. Hence, as opposed to most multi-media applications where the visual signal is passively transformed, using XVision it is possible to program interactive, feedback-based applications with passive sensing.

The system consists of a core set of classes which define a standard interface to trackable features, interfaces to displays and video devices, and some standard software tools (e.g. images and matrices). On top of that functionality, we've implemented edge tracking, region-tracking and blob-tracking, as well as various edge-aggregates (corners and snakes). Each package includes a set of demo programs, some of which you can download for certain platforms . We've given the software to about 60 educational and research sites at this point. A few of these sites are active collaborators who have extended or augmented the system in various ways. We keep a page of collaborators as a way of providing a clearing house of who is doing what. Let us know if you'd like to be added.

For more information:

Contact Information

Currently, the XVision package is being maintained by
Darius Burschka. If you have any comments, questions, or problems getting XVision to work, we would like to hear from you.


     Other Links

     Back to Top