We have implemented a prototype system called AVE! that encodes the algebraic operations described in this paper as well as a large number of image processing algorithms used by various operators in AVE!. The system contains approximately 5000 lines of C++ code running under Windows 2000.
Figure 19.6 shows the key parts of the AVE! implementation. The implementation consists of the following major parts:
A graphical user interface through which the user may express his or her query.
A video query processing engine that contains algorithms to implement the various video algebra operations described here.
A set of image processing algorithms
A relational database system in which information about objects, roles, activities, etc. is stored. Queries expressed in the video algebra are converted into queries over the relational database as well as invocations to the image processing algorithms.
Figure 19.6: AVE! key parts
The image processing algorithms currently included in AVE! are:
Entropy based detection of objects in video frames (cf.)
Active vision algorithms to detect salient regions in an image (cf. )
A set of morphological functions for common image processing tasks
Diffusion filtering algorithms.
Fading algorithms are used to ensure continuity within an answer. In AVE!, fading effects are obtained via the use of a Gabor filter applied several times on the last frame in a block.
Figure 19.7 provides a screen dump of the AVE! system.
Figure 19.7: The AVE! system screendump