Comments (13)
Hi Alessandro.
Did you have compare the feature count in ORB and in AKAZE mode?
Perhaps the timings is different because ORB detects less features.
You can also see how many octave ORB handle and AKAZE handle by default.
from akaze.
Hi Alessandro,
Be sure you compile AKAZE with paralellization support and optimized compiling options.
In any case, AKAZE detector is slower to the one in ORB. However, the performance of AKAZE detector is much better at the cost of being slower.
from akaze.
Hi guys, yes it might be I didn't compile with parallelization, as I imported in XCode. Is the number of octaves the nsublevels
in AKAZE?
from akaze.
The number of octaves is different than the number of sublevels. The number of sublevels is the number of levels you compute for one octave in the scale space. You can reduce the number of octaves and sublevels to get faster detection.
from akaze.
I tried today with omax = 2
and nsublevels = 1
, it improved to 6-7 seconds. I still want to have it sub-second, probably need to dive more in the code, but from my experiments with findHomography
it's the only feature detector/extractor/matcher that gives a really good, near perfect result! That's astounding. I will experiment more today with the 5-point algorithm, which is recovering the pose for me and that's the reason for which I switched to AKAZE (tried ORB and SURF before that).
from akaze.
You can also make the resize your image too a smaller size before detection
and let default settings for omax and nsublevels if you see that matching
performance are still good.
2014-07-12 3:22 GMT+02:00 Alessandro Dal Grande [email protected]:
I tried today with omax = 2 and nsublevels = 1, it improved to 6-7
seconds. I still want to have it sub-second, probably need to dive more in
the code, but from my experiments with findHomography it's the only
feature detector/extractor/matcher that gives a really good, near perfect
result! That's astounding. I will experiment more today with the 5-point
algorithm, which is recovering the pose for me and that's the reason for
which I switched to AKAZE (tried ORB and SURF before that).—
Reply to this email directly or view it on GitHub
#16 (comment).
Regards/Cordialement,
Pierre M
from akaze.
It's already resized to 640x480 so don't think it will improve with a smaller format. I think it's not parallel at all as I imported vanilla AKAZE into Xcode and clang doesn't support OMP (not sure Arm supports it anyway). If I paralellized or delegated to GPU I would speed up. The feature extraction seems fast, most of the time is spent on matching, I usually get 10-100 valid matches.—
Alessandro Dal Grande
On Fri, Jul 11, 2014 at 11:27 PM, Pierre Moulon [email protected]
wrote:
You can also make the resize your image too a smaller size before detection
and let default settings for omax and nsublevels if you see that matching
performance are still good.
2014-07-12 3:22 GMT+02:00 Alessandro Dal Grande [email protected]:I tried today with omax = 2 and nsublevels = 1, it improved to 6-7
seconds. I still want to have it sub-second, probably need to dive more in
the code, but from my experiments with findHomography it's the only
feature detector/extractor/matcher that gives a really good, near perfect
result! That's astounding. I will experiment more today with the 5-point
algorithm, which is recovering the pose for me and that's the reason for
which I switched to AKAZE (tried ORB and SURF before that).—
Reply to this email directly or view it on GitHub
#16 (comment).Regards/Cordialement,
Pierre M
Reply to this email directly or view it on GitHub:
#16 (comment)
from akaze.
I use it on my iPhone as well. I find that the image size makes the largest difference in speed, so you'll need to optimize primarily based on that. I resize all my images to 200px
wide, and I'm using omax=8
and nsublevels=4
. This generally results in about 100
keypoints per image (if there are a lot of heavy features). With the added performance of AKAZE, I see this as being enugh for accurate matching.
When running this way, my code performs the feature extraction and description is 150ms
per image.
I'm using a different matching algorithm, so I can't really comment on speed there.
Also, there is an OpenCV
form by @BloodAxe (https://github.com/BloodAxe/opencv) that contains KAZE/AKAZE
. He integrates OpenCV
parallel_for_
method in a lot of places AKAZE
uses OMP
. Bear in mind, this enables parallelizing on the iPhone, but only to two cores because thats all the phone has (as of now).
from akaze.
I don't think OpenMP is supported by CLANG and iOS?
from akaze.
No, OpenMP
is defiantly not supported in iOS
. However, cv::parallel_for
abstracts the parallelization on for specific devices. So for iOS
, cv::parallel_for_
spawns embarrassingly parallel jobs via GCD ( https://github.com/Itseez/opencv/blob/master/modules/core/src/parallel.cpp).
It's a great tool, but admittedly not very well documented.
AKAZE
, out of the box, will not utilize this without code changes, but the @BloodAxe fork of OpenCV
has done a good job of doing just that.
from akaze.
Oh thanks, very insightful.
Alessandro Dal Grande
On Wednesday, 13 August 2014 at 14:07, brspurri wrote:
No, OpenMP is defiantly not supported in iOS. However, cv::parallel_for abstracts the parallelization on for specific devices. So for iOS, cv::parallel_for_ spawns embarrassingly parallel jobs via GCD ( https://github.com/Itseez/opencv/blob/master/modules/core/src/parallel.cpp).
It's a great tool, but admittedly not very well documented.
AKAZE, out of the box, will not utilize this without code changes, but the @BloodAxe (https://github.com/bloodaxe) fork of OpenCV has done a good job of doing just that.—
Reply to this email directly or view it on GitHub (#16 (comment)).
from akaze.
If you use a small image like 200px wide, there is no point in using omax=8. By default in AKAZE the smallest image size that handles is 80x40, so it will be using a smaller number of octaves.
The bloodaxe fork of OpenCV has been improved considerably thanks to a Google Summer of Code Program and OpenCV. There are also some speed-ups about 20-30%. The code will come out soon in OpenCV master branch, and I will also update the AKAZE library.
from akaze.
Seems to be working fast enough on OpenCV 3.0
from akaze.
Related Issues (20)
- VLBenchmarks code HOT 1
- Finding scale space extrema HOT 2
- Error compiling akaze.mexa64 HOT 1
- Which descriptor type should I use? HOT 2
- Does opencv 3.1 provide flann based matching with CUDA HOT 1
- how to sort the keypoints? HOT 1
- Illegal instruction HOT 2
- Find_Scale_Space_Extrema questions HOT 8
- The source code should be made a little change in Ubuntu 16.04
- Question: Scharr derivatives in AKAZE HOT 3
- Use Compute_Descriptors on an existing vector<KeyPoint>? HOT 4
- --json command not found HOT 1
- Current status in development HOT 2
- Existence of patent for A-KAZE and KAZE
- Is it mandatory to convert the image to float? HOT 6
- usr/bin/ld: /usr/local/lib/libAKAZE.so: undefined reference to `cudaMemcpy2DAsync HOT 2
- Compile nbergst / akaze on TX2 HOT 7
- CUDA_AKAZE returns multiple instances of the same keypoint HOT 2
- Akaze Flip Invariance HOT 1
- Cuda-Akaze not building
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from akaze.