Page 4 out of 26 total pages


About QBIC


Query By Image Content (QBIC) is a technology that allows you to query collections of images by their content. "Query by content" means that you can query a collection of images in order to locate images that are similar to the query image, where similarity can be based on color, texture, or other image properties. For example, you can search for images that have predominantly red colors or striped textures, where the color and texture information is automatically computed. Queries by content complement traditional queries that use image file names or keyword descriptions.

This chapter provides a brief overview of QBIC including:

What You Get with QBIC

When you install QBIC, you get:

Image Types Supported by QBIC

QBIC supports the following commonly used image formats. QBIC recognizes image format based on the image file extension:

Overview of QBIC's Image Query Processes

The API computes, stores, and retrieves data in databases and catalogs.

Phases of a Query

Querying by content requires two phases:

Types of Query

A simple query involves only one feature. An example of a simple query would be to find images in the database that have a color distribution similar to the query image.

A complex query involves more than one feature and can be either a multi-feature or a multi-pass query. In a multi-feature query, QBIC searches through different types of feature data in the database in order to find images that closely resemble the query image. All feature classes are treated equally during the database search, and all involved feature tables are searched at the same time. An example of a multi-feature query would be finding images in the database that have a color distribution and texture similar to a query image.

A "pass" is a single feature or multi-feature search. In a multi-pass query, the output of an initial search is used as the input for the next search. QBIC reorders the search results from a previous pass based on the "feature distances" in the current pass. An example of a multi-pass query would be finding images in the database that have a color distribution similar to the query image, and then reordering the results based on color composition.

For multi-feature and multi-pass queries, you can weight features to specify their relative importance, which provides flexibility for advanced applications where the returned results must be fine tuned.

QBIC queries can be classified into the following types:

The Predefined QBIC Feature Class

QBIC has predefined methods to compute image properties. Each method is implemented as a C++ class.

Error Checking and Handling

The QBIC API implements extensive error checking routines that keep track of internal errors. If any QBIC method call returns a nonzero return code, it implies that an error occurred. If an error occurs in the class constructor (or any other method that does not return a value), you can query the internal state of the instance of the class by using the IsOk() method. If this method returns False, it means that the instance has failed, most likely due to a memory allocation failure.

QBIC includes error handling routines, which you can call at the beginning of your program or before QBIC calls. See "QBIC Error Handling Routines" on page  165 for information.

Advanced QBIC Features Available by Special License Agreement

The QBIC API contains advanced features that can speed up a QBIC search and improve QBIC feature extraction. These advanced features are not supported in this QBIC release, although some methods that support these advanced features are included in this API. If you are interested in implementing any of the following features in your applications, contact IBM. See "Licensing Information" on page  xiii for how to contact IBM.

SubParts

Many of the QBIC feature classes support the concept of SubPart or Object features. SubPart and Object features represent feature data that is computed for only part of an image, the "part" being selected by an mask image. Queries are computed for these subimages using the SubPartFeatureClass.

The mask must:

Cluster Indexing

To speed up queries for very large databases, QBIC has a method that organizes feature vectors into clusters for a given feature class. This feature is called cluster indexing.

If cluster indexing is enabled, QBIC will match against a subset of the feature vectors during a query, thereby reducing the query time. The cluster tables are stored in special database files. Modifications, such as the addition or deletion of records, are handled by the QbCatalogClass.

Precomputed Queries

This QBIC advanced feature provides the ability to store the top results of the image keys inside a database to any query keys also inside the database. Using this feature if a user submits a query using a key inside the database which is often the case, QBIC only needs to read a record from a special database file and return the result.

As with cluster indexing, modifications to the database are handled by the QbCatalogClass. Extra data is stored in the global information.




Page 4 out of 26 total pages


xzhu@almaden.ibm.com or tedl@almaden.ibm.com
Copyright © 1998, IBM Corporation. All rights reserved.