Business Card Recognizer


The business card recognizer is an application that allows the user to first build a database of business card logos, then have them recognized later. The cards are seen, catalogged, and recognized through a video camera attached to a computer. The specifications include that the business card must be white, the logo must contain color, and the text of the card must be black.

An example scenario of the system in action:
A businessman returns home from a trip having exchanged many business cards and making many new contacts. He sits down at his desk and begins to pull out each card and present it to the camera sitting at his desk. The computer looks at each card and attempts to match it to the database. If a match is positive, it displays other contact from the same company and prompts the professional to enter the personal information from the card (or, in future incarnations, reads the text as well.) If the company is not recognized, the user is asked to supply information to create a new entry.

The system works in several different steps. To create an entry in the data base, the following preocedure is followed:
When the user first presents the card, which is accomplished simply by holding the car to the camera, the camera detects the presence of a lrage white blob. It finds the boundaries of the blob, then runs a blurring algorithm on it. The blurred image is then scanned for color (thus the need for a color logo, black text, and a white card.) The image is blurred to prevent many small regions of color from being recognized as separate logos, since often one or two colors are employed, with white being used as a third color. Finally, the boundaries of the colored region are determined, and the original, non-blurred portion of the image is isolated. This region is then converted into a histogram, based on the hue of each pixel. The aspect ration of the image, the size, and the amount of white in the image is also computed. These numbers are then placed in a database with an identifier for the image.

The process is basically applied to the recognition portion of the program:
The histogram is obtained in the same manner as detailed above. Instead of adding the information to the database, the program compares the histogram and other data to the information in the database and finds the closest match.

My contribution to this project included writing all the code except for the blob finding algorithm, which was written by Jeffery Levine of the Vision and Modelling Group.


-Send me mail- Back -