A Light-Weighted Realtime Image Matching SDK in C\C++
Yang’s Scientific Research Institute, LLC.(YangSky), developed a heavy duty Image Search Engine call PicSeer for searching and indexing massive image database based on Physical Linguistic Vision Technologies. However, in many cases, for example, when an image search engine must be used in a small handheld PDA, a cellular phone or even a small embedded system, PicSeer becomes too big to fit into the very limited resources for these devices. To trim down the image search engine to fit into an embedded system, YangSky developed a light-weighted image search engine, called KeyImgSrh, which uses real-time and resource conserving algorithm to matching images from less massive image base. The key characteristics of KeyImgSrh are:
1. A key image that contains partials or whole of the image that the user wants to search will be fed into KeyImgSrh.
2. KeyImgSrh works fast and can perform the indexing tasks in real-time using very few computational resources.
3. KeyImgSrh can tolerate color and intensity changes and some rotations if the detailed searching mode is used.
4. KeyImgSrh locates accurately portions of image that contain the key image.
5. KeyImgSrh gives a rank to search results and the most relevant images are of high rank.
To get the latest version of documents for the KeyImgSrh SDK,
the reader can send an email to us at
1. The Zipped Demo Package
Please note that this is a limited and primary version, many advanced functions might not be included in this release. To evaluate the fully-developed commercial SDK, please contact us at the email address above.
2. Why and how it works.
(August 20, 2006, Tucson, Arizona, USA.)
KeyImgSrh: the Demo Interface for KeyImgSrh SDK
Main Interface
| The following image shows the main interface of KeyImgSrh 1.0.0.1. To keep this demo simple, only two buttons are active and useful. |
 |
| |
Step 1: Load a key image by click the highlighted button. |
| |
 |
This is a Key-Image loading interface:  |
| This is changed interface after the key image, which in this case is a F22, loaded. Note that there are two places had been changed to indicated that the key image had been loaded. |
 |
| In some cases the key image might not be shown(see below), just click any two of the display window to refresh the display to show it. |

|
| |
| |
Step 2. Load Image File to Match
KeyImgSrh can match every image under a given folder to assign a rank for each image in that folder to show how well the images match the key image. For domo purpose, KeyImgSrh use a simple interface to perform this task. Click the following high-lighted button to load any image under a folder, then all image in that folder will be matched against the key image. |
 |
This is the image loading interface  |
| This is what looks like when the image matching for all images in folder "D:\Demo\WebImgSrh\KeyImgSrh\run\images\images " had been done. |
 |
| You can find the matching results in folder "D:\Demo\WebImgSrh\KeyImgSrh\run\images\images\rated". Since in this image we show the results image folder that was in the order of the file name and since we put the rank of each image in the form containing the rank of each image at the first part of the image name, we can expect that the image with high rank will be arranged towards the end of the image list in this result image folder. Observe that the last image, which has the biggest rank, is exactly what we need to find form 53 images; namely, a F22 image. |
 |
| Let us take a close look at the last image, the properties of which is shown in the image followed. It has a file name "8.368227e-001_f22@43fc1f65.jpg" where "8.368227e-001" is the rank of this image to be an F22 and "f22@43fc1f65.jpg" is the orginal image name. Therefore, to find the image with highest rank, one must sort all images in the "D:\Demo\WebImgSrh\KeyImgSrh\run\images\images\rated" folder using "sort by name" choice. |
 |
| A close look to the last image also reveal a red rectangle, that is the region where the F22 key image found the biggest correlation. One should observe that the similar red rectangle, which denotes the region with biggest correlation to the key image, is also plotted on the rest of images even if there was no F22 detected. Therefore we need to get the final rank order of each image based on the image name in this demo. In the commercial version this kind of representation of rank can be substituted by using different kinds of data structures and data communication interfaces. |

|
| |
Matching Against Panda Key |
|

|
| |
Matching Against FBI-Seal Key |
 |
 |
| |
Matching Against Sunflower Key |
 |
 |
| Observe that the marching of a partial image doesn’t need to be the same from the
key image. This image marching algorithm can tolerate a certain degree of
difference between the key image and the image to march based on the demand
of the user. |
|
|
|
|
|
|
|
|