Bradley Gannon
Bradley Gannon
Having done some profiling of the example code—lightly modified to repeat critical operations many times—it looks like a good first target for performance improvement is the Gaussian blur that gets...
I didn't realize that recursively repeating any positive filter eventually [results](http://nghiaho.com/?p=1159) in a Gaussian. That's a neat result which is apparently due to the Central Limit Theorem. We already have...
As for modifying `filter:gaussian_blur_f32`, I gave it a shot but quickly realized that `box_filter` expects a single-channel image, but the Gaussian blur function takes a general `Image`. Changing that here...
I switched the underlying type for `BinaryDescriptor` from `Vec` to `Vec`. This improved performance from about 85 ns per candidate to 15 ns. I guess finding all those `bool`s on...
I think this is getting close to done. Each descriptor computation takes about 10.9 µs on my machine, and the matching with LSH is down to about 1.4 µs per...
Benchmark output on my machine: ``` $ cargo bench --package imageproc --lib -- binary_descriptors::tests --nocapture ... test binary_descriptors::tests::bench_brief_fixed_test_pairs_1000_keypoints ... bench: 7,990,448 ns/iter (+/- 749,063) test binary_descriptors::tests::bench_brief_random_test_pairs_1000_keypoints ... bench: 7,905,290 ns/iter...
I've just finished implementing ORB on my fork of `imageproc` [here](https://github.com/bmgxyz/imageproc/tree/orb-descriptor). I'll try porting that implementation into this crate as well and see how it turns out.
Backporting performance and API improvements from my [ORB implementation](https://github.com/bmgxyz/imageproc/tree/orb-descriptor), which depends on these changes. New benchmark output: ``` $ cargo bench --package imageproc --lib -- binary_descriptors --include-ignored ... test binary_descriptors::brief::tests::bench_brief_fixed_test_pairs_1000_keypoints...
Not a problem. When I implemented ORB on that other branch, I ended up making a lot of changes that wouldn't have been included if this had been merged sooner....
@theotherphil I've been thinking about whether or not feature descriptors really belong in `imageproc`. Maybe it would be better to put them in `rust-cv/cv`? If this gets merged (along with...