Commit Graph

59 Commits

Author SHA1 Message Date
Alexander Smorkalov
9772ec861b Added Ubuntu 24.04 pipeline for 5.x 2024-07-03 09:21:54 +03:00
alexlyulkov
6af0394cd2
Merge pull request #25458 from alexlyulkov:al/dnn-openvino-int-support
Added int support for OpenVINO dnn backend #25458

Modified dnn OpenVINO integration to support type inference and int operations.

Added OpenVINO support to Cast, CumSum, Expand, Gather, GatherElements, Scatter, ScatterND, Tile layers.
I tried to add Reduce layer, but looks like OpenVINO uses float values inside Reduce operation so it can't pass our int tests.

OpenVINO uses int32 precision for int64 operations, so I've modified input values for int64 tests when backend is OpenVINO.

OpenVINO has a strange behavior with custom layers and int64 values. After model compilation OpenVINO may change types, so the model can have different output type. That's why these tests were disabled:
- Test_ArgMax_Int.random/0, where GetParam() = (4, NGRAPH/CPU)
- Test_ArgMax_Int.random/6, where GetParam() = (11, NGRAPH/CPU)
- Test_Reduce_Int.random/6, where GetParam() = (11, NGRAPH/CPU)
- Test_Reduce_Int.two_axes/6, where GetParam() = (11, NGRAPH/CPU)

Also these tests were temporary disabled, they didn't work on both 4.x and 5.x branches:
- Test_Caffe_layers.layer_prelu_fc/0, where GetParam() = NGRAPH/CPU
- Test_ONNX_layers.LSTM_Activations/0, where GetParam() = NGRAPH/CPU
- Test_ONNX_layers.Quantized_Convolution/0, where GetParam() = NGRAPH/CPU
- Test_ONNX_layers.Quantized_Eltwise_Scalar/0, where GetParam() = NGRAPH/CPU
- Test_TFLite.EfficientDet_int8/0, where GetParam() = NGRAPH/CPU


### 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
- [x] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2024-05-15 11:51:59 +03:00
Alexander Smorkalov
b5ffdd4673
Merge pull request #25428 from asmorkalov:as/win32_arm_ci_5.x
CI pipeline with Windows 10 ARM64 for 5.x #25428

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] 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
2024-04-22 15:56:08 +03:00
alexlyulkov
1d1faaabef
Merge pull request #24411 from alexlyulkov:al/dnn-type-inference
Added int32, int64 support and type inference to dnn #24411

**Added a type inference to dnn similar to the shape inference, added int32 and int64 support.**

- Added getTypes method for layers that calculates layer outputs types and internals types from inputs types (Similar to getMemoryShapes). By default outputs and internals types = input[0] type
- Added type inference pipeline similar to shape inference pipeline. LayersShapes struct (that is used in shape inference pipeline) now contains both shapes and types
- All layers output blobs are now allocated using the calculated types from the type inference.
- Inputs and constants with int32 and int64 types are not automatically converted into float32 now.
- Added int32 and int64 support for all the layers with indexing and for all the layers required in tests.

Added  int32 and int64 support for CUDA:
- Added host<->device data moving for int32 and int64
- Added int32 and int64 support for several layers (just slightly modified CUDA C++ templates)

Passed all the accuracy tests on CPU, OCL, OCL_FP16, CUDA, CUDA_FP16. (except RAFT model)

**CURRENT PROBLEMS**:
-  ONNX parser always converts int64 constants and layers attributes to int32, so some models with int64 constants doesn't work (e.g. RAFT). The solution is to disable int64->int32 conversion and fix attributes reading in a lot of ONNX layers parsers (https://github.com/opencv/opencv/issues/25102)
- I didn't add type inference and int support to VULCAN, so it doesn't work at all now.
- Some layers don't support int yet, so some unknown models may not work.

**CURRENT WORKAROUNDS**:
- CPU arg_layer indides are implemented in int32 followed by a int32->int64 conversion (the master branch has the same workaround with int32->float conversion)
- CPU and OCL pooling_layer indices are implemented in float followed by a float->int64 conversion
- CPU gather_layer indices are implemented in int32, so int64 indices are converted to int32 (the master branch has the same workaround with float->int32 conversion)

**DISABLED TESTS**:
- RAFT model

**REMOVED TESTS**:
- Greater_input_dtype_int64 (because it doesn't fit ONNX rules, the whole test is just comparing float tensor with int constant)

**TODO IN NEXT PULL REQUESTS**:
- Add int64 support for ONNX parser
- Add int support for more layers
- Add int support for OCL (currently int layers just run on CPU)
- Add int tests
- Add int support for other backends
2024-03-01 17:07:38 +03:00
Alexander Smorkalov
8495910165 Enable RISC-V CI configuration for 5.x 2023-10-26 08:26:37 +03:00
Alexander Smorkalov
eab8eb8f3b Add CI configuration with Ubuntu 22.04 for 5.x branch. 2023-08-02 11:43:25 +03:00
Alexander Smorkalov
1a3523d2d8 Drop Python2 support. 2023-07-14 15:06:53 +03:00
Alexander Smorkalov
bd9a3ee161 Enable Vulkan tests for 5.x branch after 4.x->5.x merge. 2023-07-06 10:16:52 +03:00
Alexander Alekhin
593a376566 Merge branch 4.x 2023-01-09 11:08:02 +00:00
Alexander Smorkalov
b00ac7b07a Added ARM64 debug configuration to CI. 2022-10-25 13:44:14 +03:00
Alexander Smorkalov
d933034ad4 Added ARM64 debug configuration to CI. 2022-10-25 13:41:10 +03:00
Andrey Senyaev
3aaa9251e9 Trigger on dnn (onnx) label (5.x) 2022-10-18 09:03:27 +03:00
Andrey Senyaev
871bc98933 Trigger on dnn (onnx) label 2022-10-18 08:55:10 +03:00
Andrey Senyaev
67be6a334f Workflow Ubuntu 20.04 x64 with CUDA support (5.x) 2022-10-12 14:42:40 +03:00
Andrey Senyaev
cfafd0493c Workflow Ubuntu 20.04 x64 with CUDA support (4.x) 2022-10-12 14:41:19 +03:00
Alex
7d96ef2671 build: harden arm64-build-checks.yml permissions
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2022-09-19 21:01:34 +02:00
Alex
2882725927 build: harden lint_python.yml permissions
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2022-09-19 21:01:06 +02:00
Andrey Senyaev
4c1f9fb042 Docs workflow in GHA for 5.x 2022-07-28 17:47:03 +03:00
Andrey Senyaev
759cbd7486 Docs workflow in GHA for 4.x 2022-07-28 17:46:01 +03:00
Alexander Alekhin
638a0788fe Merge pull request #22281 from asenyaev:asen/android_5.x 2022-07-22 09:58:56 +00:00
Alexander Alekhin
a42b35598e Merge pull request #22280 from asenyaev:asen/android_4.x 2022-07-22 09:58:28 +00:00
Andrey Senyaev
7ea095cc38 Android GHA workflow for 5.x branch 2022-07-21 17:59:31 +03:00
Andrey Senyaev
71e33265f5 Android GHA workflow for 4.x branch 2022-07-21 17:59:16 +03:00
Andrey Senyaev
c2ab4c052d Linux ARM64 rename ubuntu version on 5.x 2022-07-19 13:14:09 +03:00
Andrey Senyaev
65c173f2a3 Linux ARM64 rename ubuntu version on 4.x 2022-07-19 13:12:50 +03:00
Yuantao Feng
8d38922571
Merge pull request #22187 from fengyuentau:ci_job_rename_5.x
Rename jobs for better understanding for branch 5.x

* rename jobs

* remove dots from job names

* correct ubuntu version for linux arm64
2022-07-05 01:46:49 +03:00
Yuantao Feng
fb9463c55f
Merge pull request #22186 from fengyuentau:ci_job_rename_4.x
Rename jobs for better understanding for branch 4.x

* rename jobs

* remove dots from job names

* correct ubuntu version for linux arm64
2022-07-05 01:46:01 +03:00
Andrey Senyaev
9c78dc2490 Workflow for labeled iOS PRs in 5.x branch 2022-06-30 11:27:53 +03:00
Andrey Senyaev
a311d1bdc0 Workflow for labeled iOS PRs in 4.x branch 2022-06-30 11:22:34 +03:00
fengyuentau
66fee4a8d2 add workflows for macOS for 5.x 2022-06-15 11:06:52 +08:00
fengyuentau
f4a6c3e7ea add workflows for macOS for 4.x 2022-06-15 11:02:07 +08:00
Andrey Senyaev
3d207ccf11 Move workflows to a dedicated repository for 4.x branch 2022-05-20 19:46:56 +03:00
Andrey Senyaev
2f65a1b501 Move workflows to a dedicated repository for 5.x branch 2022-05-20 19:46:37 +03:00
fengyuentau
07ad6a437e add ARM64 workflow for 4.x
add opencv_contrib fork check

use image hosted on quay.io
2022-05-14 15:26:56 +00:00
OpenCV Developers
d9a444ca1a Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2022-05-14 11:23:21 +00:00
Andrey Senyaev
1099b4c881 Move environment variables on a host side (GHA Windows) 2022-05-14 09:03:21 +00:00
Andrey Senyaev
affcea8822 Added opencv_contrib branch check on Windows 2022-05-13 17:37:54 +00:00
OpenCV Pushbot
53f0be00a9
Merge pull request #21975 from asenyaev:asen/fix_terminating_windows_actions 2022-05-13 17:34:30 +00:00
Yuantao Feng
2cc4309bf8
Merge pull request #21924 from fengyuentau:workflow_arm64_3.4
Workflow to build and test on ARM64 for 3.4 branch

* add ARM64 workflow for 3.4

* add opencv_contrib fork check

* rename RET to OPENCV_EXTRA_FORK
2022-05-13 17:27:01 +00:00
Andrey Senyaev
2b5b192cd7 Moved from https to ssh for Windows in Github Actions 2022-05-13 01:37:55 +03:00
Andrey Senyaev
a3f81b79ed
Merge pull request #21917 from asenyaev:asen/self_hosted_runner_linux_3.4
Workflow to use a self-hosted Github runner on Linux x86_64 for 3.4 branch

* Changed a workflow to use a self-hosted Github runner for 3.4 branch
2022-05-12 08:52:23 +00:00
Andrey Senyaev
4502003e61 GTest filtered list for 4.x 2022-05-11 18:08:44 +03:00
Andrey Senyaev
07abb6240e GTest filtered list 2022-05-11 17:53:40 +03:00
Andrey Senyaev
c8228e5789
Merge pull request #21896 from asenyaev:asen/worflow_windows_4.x
Added workflow for Github Actions to build and test OpenCV on Windows for 4.x branch
2022-05-05 08:09:20 +00:00
OpenCV Developers
1b07274e34 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2022-04-30 18:54:20 +00:00
OpenCV Pushbot
f63feea05e
Merge pull request #21920 from asenyaev:asen/contrib_fork_check 2022-04-29 18:14:06 +00:00
Andrey Senyaev
18ada77d8a
Merge pull request #21888 from asenyaev:asen/workflow_only_windows_3.4
Added workflow for Github Actions to build and test OpenCV on Windows for 3.4 branch

* Added workflow for Github Actions to build and test OpenCV on Windows

* Updated Github Actions for 3.4 branch on Windows using self-hosted runner

* Fixed url for a fork in Windows workflow (3.4 branch)

* opencv_extra fork usage in Github Actions
2022-04-28 19:07:07 +00:00
Andrey Senyaev
a848eccfc6 opencv_contrib fork usage in Github Actions (3.4 branch) 2022-04-28 16:19:00 +03:00
Andrey Senyaev
ec4015d73c opencv_extra fork usage in Github Actions (4.x branch) 2022-04-26 14:20:44 +03:00
Andrey Senyaev
8c42dbf71c opencv_extra fork usage in Github Actions 2022-04-26 14:05:21 +03:00