CVM2 Real Time Vision System
NOT Recommended for new designs.
What is the CVM2
The CVM2 is the second generation computer vision system from CVM
family. The CVM family is designed to execute real time computer
vision algorithms at a highly affordable price. The CVM2's small size
and very low power make it ideal for mobile and aerial robotics. It
can also be easily embedded into larger systems to solve time critical
vision problems or used on a desktop or lab bench for applied
vision research or algorithm development.
The CVM2 system consist of a digital signal processor card onto which
is stacked a video card. When stacked the system forms a small,
sturdy package that can easily be attached to a robot chassis,
instrument case, or remain resting on a table top surface.
DSP CARD (KA-1100)
The DSP card CPU is the floating point digital signal processor
TMS320C31. This processor is capable of executing code at upto 25-30
MIPS, or 50-60 MFLOPs. [Benchmarks in 1995 indicated that for image
processing the C31 was twice the speed of the Pentium 100, and around
six times the speed of a Sun Sparc 5 system.] The DSP card contains
three RS-232 serial communication ports, 2 Mbytes static RAM (SRAM),
two banks of in system re-programmable non-volatile storage (FLASH
EPROM), an 8 bit Flex-PC processor expansion bus, an IIC controller,
and a high speed synchronous serial port.
The large zero wait state main memory permits full speed sequential and
random access - without the performance penalties typically
associated with DRAM and SDRAM based desktop or embedded systems.
The RS-232 serial ports may be used to connect a host computer, a second
CVM system in a two processor system, and RS-232 based sensors, and
other computers in the embedded system.
The DSP board boots a modified version of the MIT AI LAB kernel called
NEOS. The command shell supports basic memory read and
modify commands, receiving and executing programs. A background
debugger is under development that will permit variable inspection and
modification and program break points.
Video CARD (VX-1500)
The video card consist of a 24 bit (RGB 4:4:4 and YUV 4:2:2) digital
video decoder, a 24 bit digital video encoder, 2 banks of 1 Mbyte
video RAM, and a hobby servo controller interface. The video input
can be any of the world-wide composite or S-Video standards (including
NTSC, PAL, RS-170). With the integrated video multiplexes four
composite or two S-Video sources may be connected. The single channel
video output is available in both composite and S-Video format.
Unlike many other vision systems, the CVM2 can grab a video frame
while the processor is accessing the same video memory - without any
performance penalty. This unique ability permits applications that can
analyze regions of every field at 60 hertz (NTSC).
Video Display The video display is a general purpose 24 bit
color video display buffer similar to those found on desktop computers
- except that the output format is NTSC. The display can output any
mix of images or graphics as specified in the user application
software. The display directly supports over 16 million colors, a
color palate is optional.
The video display facilitates algorithm debugging by permitting the
original image to displayed - with graphic enhancement, along with
several intermediate images (such as edge enhanced, color segmented,
left-right disparity, etc.). The video output can also be connected
directly to a video recorder for documentation and presentations or to
a video transmitter for remote viewing.
The video display can also be used in enhanced reality research and
applications. Typical examples include highlighting of object of
interest in an object recognition system, obstacle marking in obstacle
avoidance, targeting cross hairs in a tracking system, and visual
morphing, distortion, and mapping effects.
Hobby Servo Interface
The video board contains a connector that supports attachment of a PCB
to which eight hobby type PWM servos may be connected. The hobby servos
can be used to position small cameras for a low cost active vision
head. The hobby servo board may also be connected to a PWM type hobby
Programming the CVM2
The CVM2 is fully programmable in the C programming language. No
assembly language or special knowledge of the hardware is required.
Early users, with no prior experience with our systems, began using the
CVM with a two page getting started document and a few very simple
software examples - apparently without difficulties. Our goal of
designing the CVM system be easy to use appears to have been met.
Typically C code is written on a UNIX based workstation or a Windows
based PC. Using a C compiler for the TMS320C3X/C4X (available from
Texas Instruments or a variety of 3rd parties) code is compiled and
linked. The compiled code is then transferred over a serial port to
the CVM2 executed. To facilitate the program transfer and debugging,
communications software for both SunOS and the PC is supplied.
To further simplify program development, we supply general purpose
makefiles, gnu-make, and a generic linker command file.
The ease of programming is the result of an extensive system support
librarys. The compiler's library, rts30.lib, implements the functions
from "math.h", "stdlib.h", "strings.h", "ctype.h", and others.
The CVM2 libraries consist of the DSP library, and video library. The
DSP library consist of functions from "stdio.h" and functions that
support and abstract the DSP hardware.
The stdio.h library supports the derivatives of printf, scanf, gets,
getc, puts, and putc. The stdio.h contains the type FILE * which
permits multiple streams to be read and written using fgets and
fprintf. (Host and client software to implement fopen is under
The video library contains functions to initialize the video hardware,
enable a particular grabbing pattern, grab images from sub regions of
the frame buffer, and display images onto the display.
Customer satisfaction is of prime importance, thus if required,
extensive technical support is freely available.
Primary support is Internet based though the CVM2 support web page.
This web page contains all the documentation, libraries, example
software, utility software, and NEOS updates.
If the support web page does not solve the problem then we can provide
support either through Internet email or telephone.
Key improvements over the CVM:
- Single, 5 volt, supply operation.
- Power consumption less than 5 watts
- Video input from VCR
- NTSC and multistandard video output
- Four channel video input
- Reduced overhead servicing frame grabber and display
- FLASH memory permits user application to execute directly out of system reset
- Power supply overvoltage and reverse voltage protection.
CVM2 System Specifications
- Three RS-232 serial port
- 256K x 32 high speed memory
- 256K x 32 nonvolatile user reprogrammable storage
- 512K x 32 video memory
- Power requirements : 5V +- 10%, less than 1Amp, 5 watts
- Typical power 4.0 watts, 800mA.
- Low power mode less than 700mA.
- Dimensions : 6.2 x 4.2 x 1.8 inches, 15.5 x 10.5 x 4.4 cm
- Mass : approximately 300 grams.
- Visual navigation and obstacle avoidance
- Autonomous mobile robotics and aerial robotics
- Real time visual mapping of unknown environment
- Color visual tracking systems
- Color stereo depth segmentation
- Color object and pattern recognition
- Advanced security systems
- Gesture recognition systems
- Wearable computing, enhanced reality systems
- Image processing
Some CVM family users
Applied AI Systems, Inc.
Ian Horswill at Northwestern University
Liana Loriga and the Mars Rover Project
Mike Wessler with the Modular Visual Tracking
Dr. Steve Mann with University of Toronto
To place an order :
Address and contact information
Last modified : 12-17-98 CEB