Reputation: 1015
I was playing with OpenCV Mixed Processing
tutorial and I experienced a good framerate (~27) when detecting features in camera frames with FAST detector.
I changed the detector to ORB and the framerate dropped to around 10. Is this because ORB is not as fast as FAST or I'm missing something?
Mat& mGr = *(Mat*)addrGray;
vector<KeyPoint> v;
OrbFeatureDetector detector(50);
// FastFeatureDetector detector(50);
detector.detect(mGr, v);
Upvotes: 0
Views: 1267
Reputation: 11359
This is fairly typical behavior. FAST is so named in part because it is, well, fast. In fact, it's the second fastest feature detector that I know of. FAST is able to achieve high detection speed because it sacrifices scale and rotation invariance. ORB attempts to achieve both of these, which requires more work. Hence, ORB is slower.
It is possible to only do detection every N number of frames, if you modify your code to do it. That is probably beyond the scope of this question.
Upvotes: 4