h2suzuki / fast_akaze Goto Github PK
View Code? Open in Web Editor NEWThis project optimizes Accelerated-KAZE Feature detector and descriptor
License: BSD 3-Clause "New" or "Revised" License
This project optimizes Accelerated-KAZE Feature detector and descriptor
License: BSD 3-Clause "New" or "Revised" License
Can you please make this run on visual studio 2017 and opencv 4.0? Or help me do it?
Reported by Pablo, the original author of A-Kaze.
https://gist.github.com/h2suzuki/ddc40e5913a1674ce6d9
There seems to be a standard deviation about 5% for the number of detected keypoints using the same image and different executions of your code.
AKAZE2 sporadically loses some descriptor matches.
$ ./akaze_match.exe img1.ppm img4.ppm H1to4p --descriptor 5
AKAZE_Impl2 constructor called
AKAZE_Impl2 constructor called
AKAZEFeaturesV2 constructor called
hardware_concurrency: 8
AKAZEFeaturesV2 constructor called
hardware_concurrency: 8
Number of Keypoints Image 1: 1822
Number of Keypoints Image 2: 1091
A-KAZE Features Extraction Time (ms): 120.327
Matching Descriptors Time (ms): 16.2663
Number of Matches: 959
Number of Inliers: 889
Number of Outliers: 70
Inliers Ratio: 92.7007
$ ./akaze_match.exe img1.ppm img4.ppm H1to4p --descriptor 5
AKAZE_Impl2 constructor called
AKAZE_Impl2 constructor called
AKAZEFeaturesV2 constructor called
hardware_concurrency: 8
AKAZEFeaturesV2 constructor called
hardware_concurrency: 8
Number of Keypoints Image 1: 1822
Number of Keypoints Image 2: 1091
A-KAZE Features Extraction Time (ms): 122.356
Matching Descriptors Time (ms): 16.2488
Number of Matches: 957 <--- OOPS TWO LESS!!
Number of Inliers: 889
Number of Outliers: 68 <--- OOPS TWO LESS!!
Inliers Ratio: 92.8945
Reported by Pablo, the original author of A-Kaze.
I have been working with the descriptor DESCRIPTOR_MLDB_UPRIGHT.
Since the the descriptor uses 486 bits, 61 bytes are needed and there are two bits that are not used.
In my opinion these two bits should be initialized to a fixed known value, for instance zero.
In fact when using descriptor DESCRIPTOR_MLDB, these initialization is done, but when using the upright version I have not seen where it is done in the code and have seen that these two extra bytes are random (what causes problems for matching)
I think that an easy solution would be to set line 1074 of AKAZEFeatures.cpp to
desc = 0;
Reported by Pablo, the original author of A-Kaze.
VLFeat Benchmarks shows that the original A-KAZE seems to perform a bit better.
It might be related to the change in R8.5: refactoring Compute_Main_Orientation().
Hi
I have just compiled the fast_akaze with OpenCV 3.4.5. Two things are strange:
fast_akaze (#define USE_AKAZE2 1) runs at 5-6 fps while OpenCV's akaze (#define USE_AKAZE2 0) runs at 11-12 fps!
Both versions are unable to do matching. I can see the keypoints with their size and orientation but no match is shown. Number of matches is always 0.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.