Reputation: 5997
We have a task at work to create application that can downloads some template images from web server and perform a realtime recognition of these images. We've made some research and only solution that seems reasonable is this:
We extract feature descriptors from template images and store them into memory when application starts.
From every available frame (not every, this is dependent on speed of algorithm) are also extracted this descriptors and we matched them against each of the template descriptors and pick the best of them.
In the first prototype of application (we used OpenCV) iOS was quite ok with this approach but Android, especially low-end devices, takes a lot of time to extract and match those descriptors. We use SURF algorithm because we've found that its the best for this task and for matching between descriptors we use kNN algorithm.
Do you think that our solution is the right one, or there exist some better, smartphone friendly one?
Thanks
Upvotes: 0
Views: 1369
Reputation: 4702
I have made an app similar to yours, for android we use boofCV, whose surf is much faster than OpenCV. You can read about it's performance on the website. The approach is completely fine, you can consider the threshold value for the SURF Algorithm to be tuned with respect to your domain because if the threshold value is low, you are going to get a lot of features, the more features you get the more computation takes place and you get a lower frame rate.
Upvotes: 2