To locate visual motion within the wide-angle visual fields.
The motion detection module receives a wide-angle camera image as input and computes
the difference between consecutive images within a local field. The motion segmenter then
uses a region-growing technique to identify contiguous blocks of motion within the
difference image.
The motion detection process receives a digitized 120x120 image from the left wide
camera. Incoming images are stored in a ring of three frame buffers; two frame buffers
hold the current complete image and the previous complete image while the extra frame
buffer is being written to. The absolute value of the difference between the grayscale
values in each image is thresholded to provide a raw motion image. The raw motion image is
then used to produce a motion receptive field map. The receptive field map is a 40x40
array in which each cell corresponds to the number of cells in a 3x3 receptive field of
the raw motion image that are above threshold. This reduction in size allows for greater
noise tolerance and increased processing speed in the motion segmentation module.
The motion segmentation module takes the receptive field map from the motion detection
processor and produces a bounding box for the largest contiguous motion group. The process
scans the receptive field map marking all locations which pass threshold with an
identifying tag. Locations inherit tags from adjacent locations through a region
grow-and-merge procedure. Once all locations above threshold have been tagged, the tag
that has been assigned to the most locations is declared the ``winner''.
The motion detection and segmentation processes are fully implemented.
In order to operate at speeds close to frame rate, the motion detection and
segmentation routines were divided between two processors.
The following pictures summarize the results of the algorithm. The first image is Cog's
view of its left arm. The second image is the result of the motion detection and
segmentation algorithm just after the arm started moving.
The motion detection algorithm produces a rough outline of the moving arm while the
segmenter combines these to produce the solid white box that outlines the area containing
the largest block of contiguous motion.
A more detailed concept of motion will be more useful in later processing stages. We
especially will need to incorporate information on the direction of motion, as produced by
optic flow algorithms.
|