-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Add BEBLID local feature descriptor #2774
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great contribution!
Please take a look on comments below.
BEBLID::SIZE_512_BITS or BEBLID::SIZE_256_BITS. | ||
*/ | ||
CV_WRAP static Ptr<BEBLID> create(float scale_factor, | ||
BEBLID::BeblidSize n_bits = BEBLID::SIZE_512_BITS); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, lets use int
here for now.
I filled Java binding generator bug here: opencv/opencv#19056
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perfect, I changed the code to use int
again
…ng descriptors when no keypoints are detected.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well done! Thank you for contribution 👍
Thanks for your review and comments @alalek , it's a pleasure to contribute! 😃 |
Merge with extra: opencv/opencv_extra#827
BEBLID is a efficient binary descriptor learned with boosting. In several benchmarks it has proved to largely improve other binary descriptors like ORB or BRISK with the same efficiency. BEBLID describes using the difference of mean gray values in
different regions of the image around the KeyPoint, the descriptor is specifically optimized for
image matching and patch retrieval addressing the asymmetries of these problems.
This Pull Request ports the original code to OpenCV. The article explaining all the details and comparing the descriptor in several tasks can be found here.
Testing this implementation with the code of the A-KAZE tutorial, we have found that, detecting 10000 keypoints with ORB and describing with BEBLID obtains 561 inliers (75%) whereas describing with ORB obtains only 493 inliers (63%).
Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.