|
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:
- Vision-based control of manipulators using two cameras. We have a separate WEB
page on these hand-eye experiments.
- A simple vision-based animation which tracks the eyes and mouth of a person and
animates a clown face based on the shape and position of both.
- A vision-based drawing program where the user interacts with the drawing objects
using hand gestures and motions.
- Video games which track their player(s).
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.
|
Sections
Other Links
Back to Top
|