Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FastCV Extension code for OpenCV 2ndpost-1 #3844

Merged
merged 10 commits into from
Dec 20, 2024

Conversation

quic-xuezha
Copy link
Contributor

Depends on: opencv/opencv#26617
Requires binary from opencv/opencv_3rdparty#90

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

Comment on lines +42 to +43
* @param minRadius Minimum circle radius, default is 0
* @param maxRadius Maximum circle radius, default is 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I propose to move the note about radius here. Also it's not clear what zero means.

Comment on lines +22 to +23
* @param srcPyr Pyramid built from intial motion frame
* @param dstPyr Pyramid built from final motion frame
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should they be fp32 pyramids produced by cv::fastcv::buildPyramid? Please add reference here

Comment on lines +44 to +47
* @param srcPyr Pyramid built from intial motion frame
* @param dstPyr Pyramid built from final motion frame
* @param srcDxPyr Pyramid of Sobel derivative by X of srcPyr
* @param srcDyPyr Pyramid of Sobel derivative by Y of srcPyr
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same about references

*
* @sa GaussianBlur
*/
CV_EXPORTS_W void gaussianBlur(cv::InputArray _src, cv::OutputArray _dst, int kernel_size = 3, bool blur_border = true);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the difference with HAL version?

*
* @sa Filter2D
*/
CV_EXPORTS_W void filter2D(InputArray _src, OutputArray _dst, int ddepth, InputArray _kernel);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is difference with cv::Filter2d? Why it's not in HAL.

*
* @sa sepFilter2D
*/
CV_EXPORTS_W void sepFilter2D(InputArray _src, OutputArray _dst, int ddepth, InputArray _kernelX, InputArray _kernelY);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same question.

* @param _dsty If this param is needed, will store the result of Y direction 1 order derivative
* @param normalization If do normalization for the result
*/
CV_EXPORTS_W void sobel3x3u8(cv::InputArray _src, cv::OutputArray _dst, cv::OutputArray _dsty = noArray(), int ddepth = CV_8U,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HAL?

* @param binary If 1, binary image (0x00-black, oxff-white); if 0, grayscale image
* @param _src Input image with type CV_8UC1, CV_32SC1, CV_32FC1
* @param binary If true, assumes the image to be binary (0x00 for black, 0xff for white), otherwise assumes the image to be
* grayscale.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please mention a difference with cv::Moments.

* @param boundingBoxes Array containing bounding boxes of found contours
* @param contourData Array containing additional information about found contours
*/
CV_WRAP virtual void detect(InputArray src, std::vector<std::vector<Point>>& contours, std::vector<cv::Rect>& boundingBoxes,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to check bindings generation here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How can I check bindings generation? Is there any guidance?

@quic-xuezha
Copy link
Contributor Author

will add reference in the hpp file.

return m;

fcvMoments* mFCV = new fcvMoments();
fcvMoments mFCV;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since mFCV is not a pointer now, its usage should be changed:

  • no need to call delete mFCV
  • should be dereferenced as mFCV.m00, not mFCV->m00

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these changes should be make in next PR, revert back to the original

else
mean_val = cv::mean(src);

EXPECT_NEAR(mean_val[0], mean_val_fcv, 2);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These tests do not converge on my phone:

[ RUN      ] fcv_momentsTest.accuracy/1, where GetParam() = (false, 640x480, 4)
/home/savuor/code/qc-fastcv-ext/opencv_contrib/modules/fastcv/test/test_moments.cpp:44: Failure
The difference between mean_val[0] and mean_val_fcv is 2642411.6411946616, which exceeds 2, where
mean_val[0] evaluates to -2660369.5142415366,
mean_val_fcv evaluates to -17957.873046875, and
2 evaluates to 2.
[  FAILED  ] fcv_momentsTest.accuracy/1, where GetParam() = (false, 640x480, 4) (24 ms)
[ RUN      ] fcv_momentsTest.accuracy/4, where GetParam() = (false, 1280x720, 4)
/home/savuor/code/qc-fastcv-ext/opencv_contrib/modules/fastcv/test/test_moments.cpp:44: Failure
The difference between mean_val[0] and mean_val_fcv is 246997.88133572048, which exceeds 2, where
mean_val[0] evaluates to 26830.587414279515,
mean_val_fcv evaluates to 273828.46875, and
2 evaluates to 2.
[  FAILED  ] fcv_momentsTest.accuracy/4, where GetParam() = (false, 1280x720, 4) (72 ms)
[ RUN      ] fcv_momentsTest.accuracy/7, where GetParam() = (false, 1920x1080, 4)
/home/savuor/code/qc-fastcv-ext/opencv_contrib/modules/fastcv/test/test_moments.cpp:44: Failure
The difference between mean_val[0] and mean_val_fcv is 530242.66986786271, which exceeds 2, where
mean_val[0] evaluates to -360915.18549286266,
mean_val_fcv evaluates to 169327.484375, and
2 evaluates to 2.
[  FAILED  ] fcv_momentsTest.accuracy/7, where GetParam() = (false, 1920x1080, 4) (161 ms)

[ RUN      ] fcv_momentsTest.accuracy/10, where GetParam() = (false, 127x61, 4)
/home/savuor/code/qc-fastcv-ext/opencv_contrib/modules/fastcv/test/test_moments.cpp:44: Failure
The difference between mean_val[0] and mean_val_fcv is 5544038.4969020262, which exceeds 2, where
mean_val[0] evaluates to -11985612.996902026,
mean_val_fcv evaluates to -6441574.5, and
2 evaluates to 2.
[  FAILED  ] fcv_momentsTest.accuracy/10, where GetParam() = (false, 127x61, 4) (1 ms)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above

@quic-xuezha
Copy link
Contributor Author

quic-xuezha commented Dec 17, 2024 via email

@asmorkalov
Copy link
Contributor

Linux version:

-- FASTCV: Downloading fastcv_linux_aarch64_2024_12_11.tgz from https://raw.githubusercontent.com/opencv/opencv_3rdparty/1eb84499ee9996616529fc48b0bab5631f64c2dc/fastcv/fastcv_linux_aarch64_2024_12_11.tgz
CMake Warning at cmake/OpenCVDownload.cmake:271 (message):
  FASTCV: Hash mismatch: a194679b934516dc2d377bb33e71ae76
Call Stack (most recent call first):
  3rdparty/fastcv/fastcv.cmake:29 (ocv_download)
  cmake/OpenCVFindLibsPerf.cmake:187 (download_fastcv)
  CMakeLists.txt:797 (include)


CMake Warning at 3rdparty/fastcv/fastcv.cmake:40 (message):
  FastCV: package download failed!
Call Stack (most recent call first):
  cmake/OpenCVFindLibsPerf.cmake:187 (download_fastcv)
  CMakeLists.txt:797 (include)

@asmorkalov
Copy link
Contributor

The build issue was my fault. Android build is ok, but not Linux arm64. See the issue above.

Typical value range [0.1 1.0], typical value 0.2
* @return Feature detector object ready for detection
*/
CV_WRAP static Ptr<MSER> create(cv::Size imgSize,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend to change the interface as follows:

CV_WRAP static Ptr<fastcv::MSER> create(const cv::Size& imgSize,

Otherwise it leads to Java binding build issue (cv::MSER and cv::fastcv::MSER conflict).

@asmorkalov
Copy link
Contributor

asmorkalov commented Dec 17, 2024

I hacked the hash by myself and tried to build code with Jetson Orin (natively). Issues I see:

[100%] Linking CXX executable ../../bin/opencv_test_fastcv
/usr/bin/ld: warning: libcdsprpc.so.1, needed by ../../3rdparty/fastcv/libs/libfastcvopt.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: CMakeFiles/opencv_test_fastcv.dir/test/test_tracking.cpp.o: in function `opencv_test::(anonymous namespace)::TrackingTest_accuracy_Test::Body()':
test_tracking.cpp:(.text._ZN11opencv_test12_GLOBAL__N_126TrackingTest_accuracy_Test4BodyEv+0x72c): undefined reference to `cv::fastcv::trackOpticalFlowLK(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, cv::TermCriteria)'
/usr/bin/ld: test_tracking.cpp:(.text._ZN11opencv_test12_GLOBAL__N_126TrackingTest_accuracy_Test4BodyEv+0x1584): undefined reference to `cv::fastcv::trackOpticalFlowLK(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::Size_<int>, int)'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `rpcmem_free'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlclose@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlerror@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_join@GLIBC_2.34'
/usr/bin/ld: /mnt/flashdrive/opencv_build/3rdparty/fastcv/libs/libfastcvdsp_stub.so.1: undefined reference to `remote_handle64_invoke'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_mutex_trylock@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlsym@GLIBC_2.34'
/usr/bin/ld: /mnt/flashdrive/opencv_build/3rdparty/fastcv/libs/libfastcvdsp_stub.so.1: undefined reference to `remote_handle64_open'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlopen@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_once@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_create@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `rpcmem_alloc'
/usr/bin/ld: /mnt/flashdrive/opencv_build/3rdparty/fastcv/libs/libfastcvdsp_stub.so.1: undefined reference to `remote_handle64_close'
collect2: error: ld returned 1 exit status
make[3]: *** [modules/fastcv/CMakeFiles/opencv_test_fastcv.dir/build.make:399: bin/opencv_test_fastcv] Error 1
make[2]: *** [CMakeFiles/Makefile2:8392: modules/fastcv/CMakeFiles/opencv_test_fastcv.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:8399: modules/fastcv/CMakeFiles/opencv_test_fastcv.dir/rule] Error 2
make: *** [Makefile:1835: opencv_test_fastcv] Error 2

Looks like some CMake options for PThreads are missing. Also rpcmem_alloc is not found.

@quic-xuezha
Copy link
Contributor Author

checking the build issue

I hacked the hash by myself and tried to build code with Jetson Orin (natively). Issues I see:

[100%] Linking CXX executable ../../bin/opencv_test_fastcv
/usr/bin/ld: warning: libcdsprpc.so.1, needed by ../../3rdparty/fastcv/libs/libfastcvopt.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: CMakeFiles/opencv_test_fastcv.dir/test/test_tracking.cpp.o: in function `opencv_test::(anonymous namespace)::TrackingTest_accuracy_Test::Body()':
test_tracking.cpp:(.text._ZN11opencv_test12_GLOBAL__N_126TrackingTest_accuracy_Test4BodyEv+0x72c): undefined reference to `cv::fastcv::trackOpticalFlowLK(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, cv::TermCriteria)'
/usr/bin/ld: test_tracking.cpp:(.text._ZN11opencv_test12_GLOBAL__N_126TrackingTest_accuracy_Test4BodyEv+0x1584): undefined reference to `cv::fastcv::trackOpticalFlowLK(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::Size_<int>, int)'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `rpcmem_free'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlclose@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlerror@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_join@GLIBC_2.34'
/usr/bin/ld: /mnt/flashdrive/opencv_build/3rdparty/fastcv/libs/libfastcvdsp_stub.so.1: undefined reference to `remote_handle64_invoke'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_mutex_trylock@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlsym@GLIBC_2.34'
/usr/bin/ld: /mnt/flashdrive/opencv_build/3rdparty/fastcv/libs/libfastcvdsp_stub.so.1: undefined reference to `remote_handle64_open'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlopen@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_once@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_create@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `rpcmem_alloc'
/usr/bin/ld: /mnt/flashdrive/opencv_build/3rdparty/fastcv/libs/libfastcvdsp_stub.so.1: undefined reference to `remote_handle64_close'
collect2: error: ld returned 1 exit status
make[3]: *** [modules/fastcv/CMakeFiles/opencv_test_fastcv.dir/build.make:399: bin/opencv_test_fastcv] Error 1
make[2]: *** [CMakeFiles/Makefile2:8392: modules/fastcv/CMakeFiles/opencv_test_fastcv.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:8399: modules/fastcv/CMakeFiles/opencv_test_fastcv.dir/rule] Error 2
make: *** [Makefile:1835: opencv_test_fastcv] Error 2

Looks like some CMake options for PThreads are missing. Also rpcmem_alloc is not found.

@quic-apreetam
Copy link

I hacked the hash by myself and tried to build code with Jetson Orin (natively). Issues I see:

[100%] Linking CXX executable ../../bin/opencv_test_fastcv
/usr/bin/ld: warning: libcdsprpc.so.1, needed by ../../3rdparty/fastcv/libs/libfastcvopt.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: CMakeFiles/opencv_test_fastcv.dir/test/test_tracking.cpp.o: in function `opencv_test::(anonymous namespace)::TrackingTest_accuracy_Test::Body()':
test_tracking.cpp:(.text._ZN11opencv_test12_GLOBAL__N_126TrackingTest_accuracy_Test4BodyEv+0x72c): undefined reference to `cv::fastcv::trackOpticalFlowLK(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, cv::TermCriteria)'
/usr/bin/ld: test_tracking.cpp:(.text._ZN11opencv_test12_GLOBAL__N_126TrackingTest_accuracy_Test4BodyEv+0x1584): undefined reference to `cv::fastcv::trackOpticalFlowLK(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::Size_<int>, int)'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `rpcmem_free'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlclose@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlerror@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_join@GLIBC_2.34'
/usr/bin/ld: /mnt/flashdrive/opencv_build/3rdparty/fastcv/libs/libfastcvdsp_stub.so.1: undefined reference to `remote_handle64_invoke'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_mutex_trylock@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlsym@GLIBC_2.34'
/usr/bin/ld: /mnt/flashdrive/opencv_build/3rdparty/fastcv/libs/libfastcvdsp_stub.so.1: undefined reference to `remote_handle64_open'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `dlopen@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_once@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `pthread_create@GLIBC_2.34'
/usr/bin/ld: ../../3rdparty/fastcv/libs/libfastcvopt.so: undefined reference to `rpcmem_alloc'
/usr/bin/ld: /mnt/flashdrive/opencv_build/3rdparty/fastcv/libs/libfastcvdsp_stub.so.1: undefined reference to `remote_handle64_close'
collect2: error: ld returned 1 exit status
make[3]: *** [modules/fastcv/CMakeFiles/opencv_test_fastcv.dir/build.make:399: bin/opencv_test_fastcv] Error 1
make[2]: *** [CMakeFiles/Makefile2:8392: modules/fastcv/CMakeFiles/opencv_test_fastcv.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:8399: modules/fastcv/CMakeFiles/opencv_test_fastcv.dir/rule] Error 2
make: *** [Makefile:1835: opencv_test_fastcv] Error 2

Looks like some CMake options for PThreads are missing. Also rpcmem_alloc is not found.

hi @asmorkalov did you try to build code with Jetson Orin for the 1stPost code changes as well?

@asmorkalov
Copy link
Contributor

Yes, the same issue there. It's related to prebuilt binary in opencv_3rdparty, but not the PR itself.

asmorkalov pushed a commit to opencv/opencv that referenced this pull request Dec 18, 2024
FastCV-based HAL for OpenCV acceleration 2ndpost-1 #26617

### Detailed description:

- Add parallel support for cv_hal_sobel
- Add cv_hal_gaussianBlurBinomial and parallel support.
- Add cv_hal_addWeighted8u and parallel support
- Add cv_hal_warpPerspective and parallel support

Requires binary from [opencv/opencv_3rdparty#90](opencv/opencv_3rdparty#90)
Related patch to opencv_contrib: [opencv/opencv_contrib#3844](opencv/opencv_contrib#3844)

### Pull Request Readiness Checklist

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

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
@quic-xuezha
Copy link
Contributor Author

quic-xuezha commented Dec 19, 2024

updated the code.
BTW, it seems unsigned int is also not supported, I change it to uint32_t

@asmorkalov asmorkalov merged commit 67815e9 into opencv:4.x Dec 20, 2024
10 of 11 checks passed
asmorkalov pushed a commit that referenced this pull request Dec 23, 2024
FastCV Extension code for OpenCV 2ndpost-2 #3845

### Description:
- Add support for cv::fastcv::calcHist

Depends on: [#3844](#3844)
Depends on: [opencv/opencv#26619](opencv/opencv#26619)
Requires binary from: [opencv/opencv_3rdparty#90](opencv/opencv_3rdparty#90)

### Pull Request Readiness Checklist

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

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
@asmorkalov asmorkalov mentioned this pull request Jan 15, 2025
shyama7004 pushed a commit to shyama7004/opencv that referenced this pull request Jan 20, 2025
FastCV-based HAL for OpenCV acceleration 2ndpost-1 opencv#26617

### Detailed description:

- Add parallel support for cv_hal_sobel
- Add cv_hal_gaussianBlurBinomial and parallel support.
- Add cv_hal_addWeighted8u and parallel support
- Add cv_hal_warpPerspective and parallel support

Requires binary from [opencv/opencv_3rdparty#90](opencv/opencv_3rdparty#90)
Related patch to opencv_contrib: [opencv/opencv_contrib#3844](opencv/opencv_contrib#3844)

### Pull Request Readiness Checklist

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

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
NanQin555 pushed a commit to NanQin555/opencv that referenced this pull request Feb 24, 2025
FastCV-based HAL for OpenCV acceleration 2ndpost-1 opencv#26617

### Detailed description:

- Add parallel support for cv_hal_sobel
- Add cv_hal_gaussianBlurBinomial and parallel support.
- Add cv_hal_addWeighted8u and parallel support
- Add cv_hal_warpPerspective and parallel support

Requires binary from [opencv/opencv_3rdparty#90](opencv/opencv_3rdparty#90)
Related patch to opencv_contrib: [opencv/opencv_contrib#3844](opencv/opencv_contrib#3844)

### Pull Request Readiness Checklist

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

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants