I'm trying to do object recognition in an embedded environment, and for this I'm using Raspberry Pi (Specifically version 2).
I'm using OpenCV Library and as of now I'm using feature detection algorithms contained in OpenCV.
So far I've tried different approaches:
I tried different keypoint extraction and description algorithms: SIFT, SURF, ORB. SIFT and SURF are too heavy and ORB is not so good. Then I tried using different algorithms for keypoint extraction and then description. The first approach was to use FAST algorithm to extract key points and then ORB or SURF for description, the results were not good and not rotation invariant, then i tried mixing the others. I now am to the point where I get the best results time permitting using ORB for keypoint extraction and SURF for description. But it is still really slow.
Right now it is being used to match the object image (400x200) with frames captured from webcam. My definition of too slow is 2fps with 640x400 frame resolution. I wanted to take it to at least 5-6 fps per second, to obtain a more fluent video stream
So do you have any suggestions or new ideas to obtain better results? Am I missing something?
As additional information, I'm using Python 3.5 with OpenCV 3.1