Git Product home page Git Product logo

Comments (13)

pmoulon avatar pmoulon commented on July 30, 2024

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.

pablofdezalc avatar pablofdezalc commented on July 30, 2024

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.

aledalgrande avatar aledalgrande commented on July 30, 2024

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.

pablofdezalc avatar pablofdezalc commented on July 30, 2024

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.

aledalgrande avatar aledalgrande commented on July 30, 2024

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.

pmoulon avatar pmoulon commented on July 30, 2024

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.

aledalgrande avatar aledalgrande commented on July 30, 2024

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.

brspurri avatar brspurri commented on July 30, 2024

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.

aledalgrande avatar aledalgrande commented on July 30, 2024

I don't think OpenMP is supported by CLANG and iOS?

from akaze.

brspurri avatar brspurri commented on July 30, 2024

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.

aledalgrande avatar aledalgrande commented on July 30, 2024

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.

pablofdezalc avatar pablofdezalc commented on July 30, 2024

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.

aledalgrande avatar aledalgrande commented on July 30, 2024

Seems to be working fast enough on OpenCV 3.0

from akaze.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.