ERAN ASA
Electronics Engineer
Image Recognition
Implementation of Image recognition for Book's Store (Kodeshbooks)
This project has been implemented for Shimara Application Company.
The goal is to find a book from a large data-base (~ 15,000 books) by Image Processing techniques.
There is two main steps in the project:
1. Image Pre-Processing - building the DB.
2. Recognition - finding the book in the DB.
1. Image Pre-Processing
The Book image taken by a webcam (Microsoft hd) and Locate at specific Position with specific Background (That’s make the recognition easier because the position of the book and the light condition is roughly the same)
Here we extract the data from the image and saving the information in the DB.
The process we do is like this:
-
each book get an unique id (the id represent a row in Excel file that has the information about this book)
-
calculate the RGB mean values of the image
-
finding the Harris Corner Points . in the DB we save each (x,y) coordinate of the Harris Point
-
for each Harris Point we extract a window(local template) around the Point and Normalize it(doing the normalize now save us time in the recognition step – faster correlation calculation)
can see the flow in the block diagram
2. Recognition
Now we want to find the captured image in the DB.
See the flow in the block diagram
So we do the same image process like in the first step (RGB, Feature extract) for the query image, and then do the Matching stage:
-
Compute RGB distance (Euclidean distance) from the query image to all images in the DB and sort them in ascending order.
By sorting the images, we expect to get the corresponding image in the very first images, so no need to run the entire DB.
-
A corner point from the Query image is matched to corner point in the other image if the local correlation (between the templates we extract in the pre-processing level) is highest (compared to local correlation with all possible corner points in specific radius) and must also be above a specified minimum threshold.
-
Sum all matching points.
Finally, we get a measure for matching – the number of matching points.
By testing I got a clear threshold for identifying, so when we get this threshold we stop the search and return the matching book.