Do you want to identify all of the products visible on a supermarket shelf? Or compare two books, perhaps? We are on the threshold of a great breakthrough. Take a look at the brilliant research carried out by our team, presented by its member Pawel Blazejowski.
Everyone knows already that recognizing a single, well-framed object in a digital image is nowadays possible. Algorithms that do this analyze a query image and try to find an object to the best of their abilities, which usually leads to the algorithm returning a single result. Why not take a wider view of the query image, extracting from it as many objects as possible and return them all?
To solve this problem, we created a brand new algorithm, which doesn’t stop when a single object is recognized, but continues to explore the query image until there is nothing more to be recognized. This results in a list of recognized objects, instead of returning only a single match.
Let’s try this. To show you how it works, I fed the algorithm with a picture containing eight different objects lying on the floor, which I took with an ordinary, compact camera. I choose this patchy background purposely, just to make the problem a little bit harder, in which even the law of reflection helped me, with a light reflection in the middle of the image. The algorithm correctly recognized all eight objects.
So I received a list of recognized objects, and here comes a question… How am I supposed to know which is which? No worries, the algorithm returns the estimated locations of the corners of each recognized object, so they can easily be marked on the query image (as has been done in the image above), or extracted from it when required. Since the corners are always returned in the same order, determining an object’s orientation in the query image is pretty simple.
The quality of recognition is comparable to the single-object case. Although there is much more data to process here, the algorithm’s response time is much shorter than it would be if all these objects were analyzed separately in single-object mode.
Now let’s have some fun, picking an even harder case, in which there are three objects, but:
− one of them is covered by another;
− only a part of one of them lies within the frame.
The image below shows that all three objects have been correctly recognized, although significant parts of two of them were missing. Note, that despite the hard conditions, the borders of all the objects are adequately estimated, which proves the power of the recognition process.
As you can see, Recognize.im goes beyond ordinary approaches for image recognition. We keep opening wider and wider perspectives, to let you create more riveting and powerful applications. This functionality isn’t yet included in our service, but as you can see tests are going very well and it is just a matter of time.