Basic operations

At the lowest level in the hierarchy are basic operations. These are simple low-level functions which can be used in one or more of the higher level task-specific visual routines.

The implementation uses special real-time image processing hardware, namely two Datacube boards. One is a color digitizer (Digicolor) and the other is the main processing board (MV200) with six dual-port memory surfaces and processing elements for convolution, linear and non-linear arithmetic operations, and a warper module. The Datacube boards are connected to a host computer (Sun Sparc) via a VME bus which allows image transfers from memory surfaces to host memory for further processing.

Color

The role of the color primitive is to detect blobs of a given color. The figure below illustrates the pipeline processing involved. A color image (a) is digitized using the Hue, Saturation, Value mode of the Digicolor. A number of colors are manually defined as regions in the hue-saturation space and a 16 bit lookup table is programmed accordingly. The output from the lookup table (b) has only a few non-zero levels, one for each of the selected colors.

To store a binary map corresponding to a particular color, the intermediate result (b) is passed through another 8 bit lookup table which extracts the desired color and the resulting binary map is then stored in a memory surface (c). At the same time the intensity image (d) is stored in two different memory surfaces (one for display and the other for generating a Gaussian pyramid).

The binary color map is sent to the host computer for blob labeling. To reduce the transfer and analysis time, the size is reduced by building a Gaussian pyramid from the color map and working on a higher pyramid level. After the reduced size mask is transferred into host memory, a blob labeling algorithm is applied. The end result is a list of bounding rectangles for the blobs of the given color.


Static features

The role of the static feature primitive is to detect objects of a specific appearance. The idea is to create a unique index for every image location by convolving the image at different spatial resolutions with filters from a basis set. Searching for an object in an image is realized by comparing the index of a suitable point on the model with the index for every image location. The first step is to store the index (response vector) for the chosen point on the model object. To search for that object in a new image the response at every image point is compared to the stored index and the one that minimizes the error is selected (provided that the error is below some threshold).


Dynamic features

The goal of this primitive is to detect features that expand or contract in the visual field. The primitive combines three separate characteristics:


URCS Home Page