Commit Graph

17 Commits

Author SHA1 Message Date
Maksim Shabunin
6308739638 features2d: fixed out of bounds access in SIFT 2024-09-13 14:30:27 +03:00
HAN Liutong
aa143a3dd1
Merge pull request #24301 from hanliutong:rewrite-stereo-sift
Rewrite Universal Intrinsic code: features2d and calib3d module. #24301

The goal of this series of PRs is to modify the SIMD code blocks guarded by CV_SIMD macro: rewrite them by using the new Universal Intrinsic API.

This is the modification to the features2d module and calib3d module.

Test with clang 16 and QEMU v7.0.0. `AP3P.ctheta1p_nan_23607` failed beacuse of a small calculation error. But this patch does not touch the relevant code, and this error always reproduce on QEMU, regardless of whether the patch is applied or not. I think we can ignore it
```
[ RUN      ] AP3P.ctheta1p_nan_23607
/home/hanliutong/project/opencv/modules/calib3d/test/test_solvepnp_ransac.cpp:2319: Failure
Expected: (cvtest::norm(res.colRange(0, 2), expected, NORM_INF)) <= (3e-16), actual: 3.33067e-16 vs 3e-16
[  FAILED  ] AP3P.ctheta1p_nan_23607 (26 ms)

...

[==========] 148 tests from 64 test cases ran. (1147114 ms total)
[  PASSED  ] 147 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] AP3P.ctheta1p_nan_23607
```

Note: There are 2 test cases failed with GCC 13.2.1 without this patch, seems like there are someting wrong with RVV part on GCC.
```
[----------] Global test environment tear-down
[==========] 148 tests from 64 test cases ran. (1511399 ms total)
[  PASSED  ] 146 tests.
[  FAILED  ] 2 tests, listed below:
[  FAILED  ] Calib3d_StereoSGBM.regression
[  FAILED  ] Calib3d_StereoSGBM_HH4.regression
```

The patch is partially auto-generated by using the [rewriter](https://github.com/hanliutong/rewriter).

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [ ] I agree to contribute to the project under Apache 2 License.
- [ ] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [ ] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
2023-09-25 13:03:25 +03:00
Alexander Alekhin
47293f28cf Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2023-02-11 18:35:00 +00:00
whuaegeansea
400572b19f Fix bug 2023-02-01 11:25:31 +08:00
Alexander Alekhin
18cbfa4a4f Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2023-01-23 00:11:12 +00:00
Alexander Alekhin
5bacd8753b build: eliminate GCC9 warning from sift.simd.hpp 2023-01-10 01:38:12 +00:00
Alexander Alekhin
2ebdc04787 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2022-08-14 15:50:42 +00:00
Alexander Alekhin
85b0b0cd77 build: add missing GCC condition for pragma 2022-07-24 12:19:37 +03:00
Andrey Senyaev
d2b1e38207 Pragma to ignore -Waggressive-loop-optimizations on Linux ARM64 2022-07-14 11:17:38 +03:00
Developer-Ecosystem-Engineering
9557b9f70f Improve SIFT for arm64/Apple silicon
- Reduce branch density by collapsing compares.
- Fix windows build errors
- Use OpenCV universal intrinsics
- Use v_check_any and v_signmask as requested
2021-06-17 10:14:48 -07:00
Yosshi999
1834eed809
Merge pull request #18001 from Yosshi999:sift-8bit-descr
* 8-bit SIFT descriptors

* use clearer parameter

* update docs

* propagate type info

* overload function for avoiding ABI-break

* bugfix: some values are undefined when CV_SIMD is absent
2020-08-17 10:28:44 +00:00
Alexander Alekhin
d41b20b268 Merge pull request #17830 from alalek:fix_17815 2020-07-13 18:52:34 +00:00
Alexander Alekhin
36da867caf features2d: v_fma => v_muladd for integers 2020-07-13 17:31:08 +00:00
Yosshi999
0df8fb70b4 use bufferarea for allocating buffer 2020-07-09 16:50:20 +00:00
Yosshi999
920c180052 use universal SIMD intrinsics for SIFT 2020-06-30 06:44:12 +00:00
Alexander Alekhin
1f9713195b features2d(sift): enable runtime dispatching 2020-05-03 11:59:27 +00:00
Alexander Alekhin
7093752cb5 features2d: copy sift.simd.hpp 2020-04-27 18:17:15 +00:00