platform/upstream/opencv.git
2 years agoMerge pull request #21182 from mshabunin:split-cv2cpp
Maksim Shabunin [Sun, 5 Dec 2021 12:49:36 +0000 (15:49 +0300)]
Merge pull request #21182 from mshabunin:split-cv2cpp

Split cv2.cpp

* split cv2.cpp: util, numpy

* split cv2.cpp: convert

* split cv2.cpp: highgui, more utils

* split cv2.cpp: fix numpy import

2 years agoMerge pull request #21180 from tezz-io:4.x
Tejas M R [Sun, 5 Dec 2021 12:47:44 +0000 (18:17 +0530)]
Merge pull request #21180 from tezz-io:4.x

Added CV_PROP_RW macro to keypoints

* Added CV_PROP_RW macro to keypoints

As outlined in the feature request in the issue https://github.com/opencv/opencv/issues/21171 : the keypoints field has been made parsable by the bindings.

* Added test for keypoints

Added test to check if the CV_PROP_RW macro added in the previous commit makes keypoints public and accessible through the python API.

2 years agoMerge pull request #21167 from alalek:dnn_test_reenable_ov_2021_4
Alexander Alekhin [Sat, 4 Dec 2021 22:12:18 +0000 (22:12 +0000)]
Merge pull request #21167 from alalek:dnn_test_reenable_ov_2021_4

2 years agoMerge pull request #21145 from MaximMilashchenko:AudioUpdate
MaximMilashchenko [Sat, 4 Dec 2021 10:37:10 +0000 (13:37 +0300)]
Merge pull request #21145 from MaximMilashchenko:AudioUpdate

Audio MSMF: added the ability to set sample per second

* Audio MSMF: added the ability to set sample per second

* changed the valid sampling rate check

* fixed docs

* add test

* fixed warning

* fixed error

* fixed error

2 years agoMerge pull request #21147 from mjmdavis:4.x
Michael Davis [Fri, 3 Dec 2021 16:40:49 +0000 (08:40 -0800)]
Merge pull request #21147 from mjmdavis:4.x

* remove tickmarks on NSSlider

2 years agoMerge pull request #21012 from hanliutong:rvv_clang
HAN Liutong [Fri, 3 Dec 2021 15:13:24 +0000 (23:13 +0800)]
Merge pull request #21012 from hanliutong:rvv_clang

Update RVV backend for using Clang.

* Update cmake file of clang.

* Modify the RVV optimization on DNN to adapt to clang.

* Modify intrin_rvv: Disable some existing types.

* Modify intrin_rvv: Reinterpret instead of load&cast.

* Modify intrin_rvv: Update load&store without cast.

* Modify intrin_rvv: Rename vfredsum to fredosum.

* Modify intrin_rvv: Rewrite Check all/any by using vpopc.

* Modify intrin_rvv: Use reinterpret instead of c-style casting.

* Remove all macros which is not used in v_reinterpret

* Rename vpopc to vcpop according to spec.

2 years agodnn(test): re-enable tests which works with OpenVINO 2021.4.x
Alexander Alekhin [Tue, 30 Nov 2021 12:08:35 +0000 (12:08 +0000)]
dnn(test): re-enable tests which works with OpenVINO 2021.4.x

2 years agoMerge remote-tracking branch 'upstream/3.4' into merge-3.4
Alexander Alekhin [Fri, 3 Dec 2021 12:32:49 +0000 (12:32 +0000)]
Merge remote-tracking branch 'upstream/3.4' into merge-3.4

2 years agoMerge pull request #21177 from anna-khakimova:ak/simd_mulc
Anna Khakimova [Fri, 3 Dec 2021 12:30:39 +0000 (15:30 +0300)]
Merge pull request #21177 from anna-khakimova:ak/simd_mulc

* GAPI Fluid: SIMD for MulC kernel.

* Changes for MulDouble kernel.

2 years agoMerge pull request #21041 from sivanov-work:gin_gout_concept
Sergey Ivanov [Fri, 3 Dec 2021 12:30:05 +0000 (15:30 +0300)]
Merge pull request #21041 from sivanov-work:gin_gout_concept

G-API: GAPI introduce compile guard for some types for gin/gout params passing

* Initial for taged solution

* Move out tags to gtags.hpp & add protection for own::Mat

* Add compile guard to proper place

* Fix MACRO concat

* Add unit tests

* Remove class MACRO injection due to Python3

* Revert back unproper changes

* Apply comments: reuse shape from traits

* Throw away unused gtags

* Apply comments

* Handle own::*

* Fix test

* Fix test(1)

* Fix unix build

* Try on type list

* Apply comments

* Apply comments

* Fix warning

2 years agoMerge pull request #21165 from utibenkei:fix_android_ndk_camera_order_of_u_and_v
Alexander Alekhin [Thu, 2 Dec 2021 17:16:35 +0000 (17:16 +0000)]
Merge pull request #21165 from utibenkei:fix_android_ndk_camera_order_of_u_and_v

2 years agoMerge pull request #21162 from rogday:softmax_simplification
Alexander Alekhin [Thu, 2 Dec 2021 17:14:48 +0000 (17:14 +0000)]
Merge pull request #21162 from rogday:softmax_simplification

2 years agoMerge pull request #21160 from rogday:elu_alpha
Alexander Alekhin [Thu, 2 Dec 2021 17:13:56 +0000 (17:13 +0000)]
Merge pull request #21160 from rogday:elu_alpha

2 years agoMerge pull request #21159 from rogday:ceil_mode
rogday [Thu, 2 Dec 2021 17:11:11 +0000 (20:11 +0300)]
Merge pull request #21159 from rogday:ceil_mode

fix ceil_mode for Average/MaxPooling

* fix ceil_mode

* add a comment

2 years agoMerge pull request #21174 from APrigarina:fix_qr_encoder
Alexander Alekhin [Thu, 2 Dec 2021 16:41:02 +0000 (16:41 +0000)]
Merge pull request #21174 from APrigarina:fix_qr_encoder

2 years agoMerge pull request #21173 from alalek:3.4_dnn_test_reenable_ov_2021_4
Alexander Alekhin [Thu, 2 Dec 2021 16:33:15 +0000 (16:33 +0000)]
Merge pull request #21173 from alalek:3.4_dnn_test_reenable_ov_2021_4

2 years agoqr encoder: fix memory and unused variables issues
APrigarina [Thu, 2 Dec 2021 12:04:04 +0000 (15:04 +0300)]
qr encoder: fix memory and unused variables issues

2 years agoMerge pull request #21172 from alalek:dnn_test_drop_non_cpu_int8
Alexander Alekhin [Thu, 2 Dec 2021 13:50:04 +0000 (13:50 +0000)]
Merge pull request #21172 from alalek:dnn_test_drop_non_cpu_int8

2 years agoMerge pull request #21170 from JJJoonngg:4.x
Jong Sin Kim [Thu, 2 Dec 2021 13:48:11 +0000 (22:48 +0900)]
Merge pull request #21170 from JJJoonngg:4.x

Check buffer size when frameWidth * frameHeight bigger than allocated buffer size

2 years agodnn(test): re-enable tests which works with OpenVINO 2021.4.x (3.4)
Alexander Alekhin [Tue, 30 Nov 2021 12:08:35 +0000 (12:08 +0000)]
dnn(test): re-enable tests which works with OpenVINO 2021.4.x (3.4)

2 years agodnn(test): drop non OCV/CPU cases for Int8
Alexander Alekhin [Thu, 2 Dec 2021 05:52:12 +0000 (05:52 +0000)]
dnn(test): drop non OCV/CPU cases for Int8

- zero code coverage and up to x3-x8 tests slowdown
- implementation executes OCV/CPU in all cases
- wrong skip conditions

2 years agoMerge pull request #21164 from rogday:sum_identity
Alexander Alekhin [Wed, 1 Dec 2021 22:49:02 +0000 (22:49 +0000)]
Merge pull request #21164 from rogday:sum_identity

2 years agoMerge pull request #21163 from rogday:transpose_default
Alexander Alekhin [Wed, 1 Dec 2021 22:47:57 +0000 (22:47 +0000)]
Merge pull request #21163 from rogday:transpose_default

2 years agoMerge pull request #21158 from anna-khakimova:ak/simd_subC
Anna Khakimova [Wed, 1 Dec 2021 21:58:30 +0000 (00:58 +0300)]
Merge pull request #21158 from anna-khakimova:ak/simd_subC

* GAPI Fluid: SIMD for SubC kernel.

* Applied comments

2 years agoMerge pull request #21153 from alalek:build_warnings_msvs2017
Alexander Alekhin [Wed, 1 Dec 2021 12:49:28 +0000 (12:49 +0000)]
Merge pull request #21153 from alalek:build_warnings_msvs2017

2 years agoMerge pull request #21112 from vrabaud:3.4_luv_overflow
Vincent Rabaud [Wed, 1 Dec 2021 12:46:03 +0000 (13:46 +0100)]
Merge pull request #21112 from vrabaud:3.4_luv_overflow

* Fix integer overflow in cv::Luv2RGBinteger::process.

For LL=49, uu=205, vv=23, we end up with x=7373056 and y=458
which overflows y*x.

* imgproc(test): adjust test parameters to cover SIMD code

2 years agoadd sum of 1 input
Smirnov Egor [Tue, 30 Nov 2021 12:42:20 +0000 (15:42 +0300)]
add sum of 1 input

2 years agoadd default order to transpose
Smirnov Egor [Tue, 30 Nov 2021 12:34:34 +0000 (15:34 +0300)]
add default order to transpose

2 years agoadd new (Log)SoftMax simplification passes
Smirnov Egor [Tue, 30 Nov 2021 12:20:52 +0000 (15:20 +0300)]
add new (Log)SoftMax simplification passes

2 years agoadd alpha parameter to ELU layer
Smirnov Egor [Tue, 30 Nov 2021 09:20:35 +0000 (12:20 +0300)]
add alpha parameter to ELU layer

2 years agobuild: eliminate C4309 warning from protobuf files with MSVS2017
Alexander Alekhin [Tue, 30 Nov 2021 04:27:39 +0000 (04:27 +0000)]
build: eliminate C4309 warning from protobuf files with MSVS2017

2 years agoMerge pull request #21152 from rogday:fix_defaults
Alexander Alekhin [Mon, 29 Nov 2021 22:39:27 +0000 (22:39 +0000)]
Merge pull request #21152 from rogday:fix_defaults

2 years agoMerge pull request #21142 from alalek:dnn_two_inputs_ocl_fp16_3.4
Alexander Alekhin [Mon, 29 Nov 2021 21:44:59 +0000 (21:44 +0000)]
Merge pull request #21142 from alalek:dnn_two_inputs_ocl_fp16_3.4

2 years agoMerge pull request #20658 from smbz:lstm_optimisation
Andrew Ryrie [Mon, 29 Nov 2021 21:43:00 +0000 (21:43 +0000)]
Merge pull request #20658 from smbz:lstm_optimisation

* dnn: LSTM optimisation

This uses the AVX-optimised fastGEMM1T for matrix multiplications where available, instead of the standard cv::gemm.

fastGEMM1T is already used by the fully-connected layer.  This commit involves two minor modifications:
 - Use unaligned access.  I don't believe this involves any performance hit in on modern CPUs (Nehalem and Bulldozer onwards) in the case where the address is actually aligned.
 - Allow for weight matrices where the number of columns is not a multiple of 8.

I have not enabled AVX-512 as I don't have an AVX-512 CPU to test on.

* Fix warning about initialisation order

* Remove C++11 syntax

* Fix build when AVX(2) is not available

In this case the CV_TRY_X macros are defined to 0, rather than being undefined.

* Minor changes as requested:

 - Don't check hardware support for AVX(2) when dispatch is disabled for these
 - Add braces

* Fix out-of-bounds access in fully connected layer

The old tail handling in fastGEMM1T implicitly rounded vecsize up to the next multiple of 8, and the fully connected layer implements padding up to the next multiple of 8 to cope with this.  The new tail handling does not round the vecsize upwards like this but it does require that the vecsize is at least 8.  To adapt to the new tail handling, the fully connected layer now rounds vecsize itself at the same time as adding the padding(which makes more sense anyway).

This also means that the fully connected layer always passes a vecsize of at least 8 to fastGEMM1T, which fixes the out-of-bounds access problems.

* Improve tail mask handling

 - Use static array for generating tail masks (as requested)
 - Apply tail mask to the weights as well as the input vectors to prevent spurious propagation of NaNs/Infs

* Revert whitespace change

* Improve readability of conditions for using AVX

* dnn(lstm): minor coding style changes, replaced left aligned load

2 years agofix Clip, LeakyReLU, LRN, Split defaults
Smirnov Egor [Mon, 29 Nov 2021 16:56:23 +0000 (19:56 +0300)]
fix Clip, LeakyReLU, LRN, Split defaults

2 years agofix_android_ndk_camera_order_of_u_and_v
utibenkei [Mon, 29 Nov 2021 13:43:29 +0000 (22:43 +0900)]
fix_android_ndk_camera_order_of_u_and_v

2 years agoMerge pull request #21119 from anna-khakimova:ak/simd_addc
Anna Khakimova [Mon, 29 Nov 2021 11:20:53 +0000 (14:20 +0300)]
Merge pull request #21119 from anna-khakimova:ak/simd_addc

* GAPI Fluid: SIMD for AddC kernel

* Final version

* Applied comments.

2 years agoMerge pull request #20733 from rogday:argmaxnd
rogday [Sun, 28 Nov 2021 16:17:46 +0000 (19:17 +0300)]
Merge pull request #20733 from rogday:argmaxnd

Implement ArgMax and ArgMin

* add reduceArgMax and reduceArgMin

* fix review comments

* address review concerns

2 years agoMerge pull request #20957 from sturkmen72:update-documentation
Suleyman TURKMEN [Sun, 28 Nov 2021 12:56:28 +0000 (15:56 +0300)]
Merge pull request #20957 from sturkmen72:update-documentation

Update documentation

* Update DNN-based Face Detection And Recognition tutorial

* samples(dnn/face): update face_detect.cpp

* final changes

Co-authored-by: Alexander Alekhin <alexander.a.alekhin@gmail.com>
2 years agoMerge pull request #20933 from shubham-shahh:master
Supernovae [Sun, 28 Nov 2021 12:54:29 +0000 (18:24 +0530)]
Merge pull request #20933 from shubham-shahh:master

Improved overall readability of the code

* grid_nms.cu: minor fix-ups

* Update grid_stride_range.hpp

* Update tf_importer.cpp

2 years agodnn(DataLayer): fix CPU/OpenCL code paths for FP16 handling
Alexander Alekhin [Sun, 28 Nov 2021 04:29:54 +0000 (04:29 +0000)]
dnn(DataLayer): fix CPU/OpenCL code paths for FP16 handling

2 years agodnn(test): add two_inputs test with FP32/U8 data types
Alexander Alekhin [Sat, 27 Nov 2021 02:51:57 +0000 (02:51 +0000)]
dnn(test): add two_inputs test with FP32/U8 data types

- remove similar test from IE scope under HAVE_INF_ENGINE

2 years agoMerge pull request #21126 from alalek:dnn_test_ie_update_4.x
Alexander Alekhin [Sat, 27 Nov 2021 19:27:59 +0000 (19:27 +0000)]
Merge pull request #21126 from alalek:dnn_test_ie_update_4.x

2 years agoMerge pull request #21107 from take1014:remove_assert_21038
yuki takehara [Sat, 27 Nov 2021 18:34:52 +0000 (03:34 +0900)]
Merge pull request #21107 from take1014:remove_assert_21038

resolves #21038

* remove C assert

* revert C header

* fix several points in review

* fix test_ds.cpp

2 years agodnn(test): update InferenceEngine tests (4.x)
Alexander Alekhin [Thu, 25 Nov 2021 19:56:27 +0000 (19:56 +0000)]
dnn(test): update InferenceEngine tests (4.x)

2 years agoMerge remote-tracking branch 'upstream/3.4' into merge-3.4
Alexander Alekhin [Sat, 27 Nov 2021 13:17:44 +0000 (13:17 +0000)]
Merge remote-tracking branch 'upstream/3.4' into merge-3.4

2 years agoMerge pull request #21134 from alalek:gapi_fix_build_ie_msvs2015
Alexander Alekhin [Sat, 27 Nov 2021 12:59:45 +0000 (12:59 +0000)]
Merge pull request #21134 from alalek:gapi_fix_build_ie_msvs2015

2 years agoMerge pull request #21133 from alalek:dnn_test_ie_update_3.4
Alexander Alekhin [Fri, 26 Nov 2021 20:35:58 +0000 (20:35 +0000)]
Merge pull request #21133 from alalek:dnn_test_ie_update_3.4

2 years agogapi: fix build with MSVS2015 (with IE)
Alexander Alekhin [Fri, 26 Nov 2021 19:34:52 +0000 (19:34 +0000)]
gapi: fix build with MSVS2015 (with IE)

2 years agodnn(test): update InferenceEngine tests
Alexander Alekhin [Thu, 25 Nov 2021 19:56:27 +0000 (19:56 +0000)]
dnn(test): update InferenceEngine tests

2 years agoMerge pull request #21131 from cclauss:codespell
Alexander Alekhin [Fri, 26 Nov 2021 18:32:54 +0000 (18:32 +0000)]
Merge pull request #21131 from cclauss:codespell

2 years agoMerge pull request #21130 from cclauss:print-function
Alexander Alekhin [Fri, 26 Nov 2021 18:31:31 +0000 (18:31 +0000)]
Merge pull request #21130 from cclauss:print-function

2 years agoMerge pull request #21121 from cclauss:patch-2
Christian Clauss [Fri, 26 Nov 2021 18:18:48 +0000 (19:18 +0100)]
Merge pull request #21121 from cclauss:patch-2

* GitHub Action to lint Python code

* Move from automatic events to manual ones

* flake8: Do not look for undefined names

2 years agoMerge pull request #21103 from OrestChura:oc/fix_1D_Mat_RMat_View_issue
Orest Chura [Fri, 26 Nov 2021 16:42:12 +0000 (19:42 +0300)]
Merge pull request #21103 from OrestChura:oc/fix_1D_Mat_RMat_View_issue

[G-API] Fix issue of getting 1D Mat out of RMat::View

* Fix issue of getting 1D Mat out of RMat::View
 - added test
 - fixed for standalone too (removed Assert(dims.empty()))

* Fixed asVeiw() function for standalone

* Put more detailed comment

2 years agoMerge pull request #21083 from OrestChura:oc/fix_coverity_vino_issues
Orest Chura [Fri, 26 Nov 2021 16:40:36 +0000 (19:40 +0300)]
Merge pull request #21083 from OrestChura:oc/fix_coverity_vino_issues

[G-API] Fixed Coverity issues

* Fixed Coverity issues
 - VectorRef&OpaqueRef m_kind = CV_UNKNOWN
 - added same-type overload for saturate()
 - sanitized resize value in ByteMemoryInStream::operator>> (std::string& str)
 - handled throws from ~GStreamingExecutor()

* Catching exception by const ref

* Addressing Sergey's comments

* Applied enable_if semanitcs to saturate(x, round) too

* Removed uncaught_exception, made destructor noexcept back

* Split Fluid ConvertTo to multiple functions to avoid ifs; added CV_ALWAYS_INLINE

* Added FIXME to address throwings from stop()

* Fix standalone

* Addressing comments

* Guarded SIMD optimizations properly

* Removed excess parameter from simd_impl functions

2 years agoMerge pull request #21106 from mpashchenkov:mp/ocv-gapi-clean-samples
Maxim Pashchenkov [Fri, 26 Nov 2021 11:31:15 +0000 (14:31 +0300)]
Merge pull request #21106 from mpashchenkov:mp/ocv-gapi-clean-samples

G-API: Cleaning samples

* parseSSD + removed render details from gcpukernel

* self-rev

* Applying comment

* Added operators

* warnings

2 years agoFix typos discovered by codespell
Christian Clauss [Fri, 26 Nov 2021 11:29:56 +0000 (12:29 +0100)]
Fix typos discovered by codespell

2 years agoMerge pull request #21128 from cclauss:patch-3
Alexander Alekhin [Fri, 26 Nov 2021 11:11:58 +0000 (11:11 +0000)]
Merge pull request #21128 from cclauss:patch-3

2 years agoUse print() function in both Python 2 and Python 3
Christian Clauss [Fri, 26 Nov 2021 10:57:54 +0000 (11:57 +0100)]
Use print() function in both Python 2 and Python 3

2 years agoCMakeLists.txt: Fix typo discovered by codespell
Christian Clauss [Fri, 26 Nov 2021 10:07:14 +0000 (11:07 +0100)]
CMakeLists.txt: Fix typo discovered by codespell

https://pypi.org/project/codespell/

2 years agoMerge pull request #21123 from cclauss:patch-3
Alexander Alekhin [Thu, 25 Nov 2021 18:06:33 +0000 (18:06 +0000)]
Merge pull request #21123 from cclauss:patch-3

2 years agoUse ==/!= to compare constant literals (str, bytes, int, float, tuple)
Christian Clauss [Thu, 25 Nov 2021 11:44:21 +0000 (12:44 +0100)]
Use ==/!= to compare constant literals (str, bytes, int, float, tuple)

Avoid `SyntaxWarning` on Python >= 3.8
```
>>> "convolutional" == "convolutional"
True
>>> "convolutional" is "convolutional"
<stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
True
```
Related to #21121

2 years agoMerge pull request #21108 from ShuangLiu1992:patch-1
Alexander Alekhin [Wed, 24 Nov 2021 20:10:37 +0000 (20:10 +0000)]
Merge pull request #21108 from ShuangLiu1992:patch-1

2 years agoMerge pull request #21110 from alalek:update_libjpeg-turbo
Alexander Alekhin [Wed, 24 Nov 2021 20:08:27 +0000 (20:08 +0000)]
Merge pull request #21110 from alalek:update_libjpeg-turbo

2 years ago3rdparty: libjpeg-turbo 2.1.0 => 2.1.2
Alexander Alekhin [Wed, 24 Nov 2021 03:43:55 +0000 (03:43 +0000)]
3rdparty: libjpeg-turbo 2.1.0 => 2.1.2

https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/2.1.2

2 years agoMerge pull request #20978 from cudawarped:videocapture_read_raw_enchancement
cudawarped [Tue, 23 Nov 2021 21:18:55 +0000 (21:18 +0000)]
Merge pull request #20978 from cudawarped:videocapture_read_raw_enchancement

Add capacity to Videocapture to return the extraData from FFmpeg when required

* Update rawMode to append any extra data recieved during the initial negotiation of an RTSP stream or during the parsing of an MPEG4 file header.
For h264[5] RTSP streams this ensures the parameter sets if available are always returned on the first call to grab()/read() and has two purposes:
1) To ensure the parameter sets are available even if they are not transmitted in band.  This is common for axis ip camera's.
2) To allow callers of VideoCapture::grab()[read()] to write to split the raw stream over multiple files by appending the parameter sets to the begining of any new files.
For (1) there is no alternative, for (2) if the parameter sets were provided in band it would be possible to parse the raw bit stream and search for the parameter sets however that would be a lot of work when that information is already provided by FFMPEG.
For MPEG4 files this information is only suplied in the header and is required for decoding.

Two properties are also required to enable the raw encoded bitstream to be written to multiple files, these are;
1) an indicator as to whether the last frame was a key frame or not - each new file needs to start at a key frame to avoid storing unusable frame diffs,
2) the length in bytes of the paramater sets contained in the last frame - required to split the paramater sets from the frame without having to parse the stream.  Any call to VideoCapture::get(CAP_PROP_LF_PARAM_SET_LEN) returning a number greater than zero indicates the presense of a parameter set at the begining of the raw bitstream.

* Adjust test data to account for extraData

* Address warning.

* Change added property names and remove paramater set start code check.

* Output extra data on calls to retrieve instead of appending to the first packet.

* Reverted old test case and added new one to evaluate new functionality.

* Add missing definition.

* Remove flag from legacy api.
Add property to determine if returning extra data is supported.
Always allow extra data to be returned on calls to cap.retrieve()
Update test case.

* Update condition which indicates CAP_PROP_CODEC_EXTRADATA_INDEX is not supported in test case.

* Include compatibility for windows dll if not updated.
Enforce existing return status convention.

* Fix return error and missing test constraints.

2 years agoMerge pull request #20406 from MarkGHX:gsoc_2021_webnn
Hanxi Guo [Tue, 23 Nov 2021 21:15:31 +0000 (05:15 +0800)]
Merge pull request #20406 from MarkGHX:gsoc_2021_webnn

[GSoC] OpenCV.js: Accelerate OpenCV.js DNN via WebNN

* Add WebNN backend for OpenCV DNN Module

Update dnn.cpp

Update dnn.cpp

Update dnn.cpp

Update dnn.cpp

Add WebNN head files into OpenCV 3rd partiy files

Create webnn.hpp

update cmake

Complete README and add OpenCVDetectWebNN.cmake file

add webnn.cpp

Modify webnn.cpp

Can successfully compile the codes for creating a MLContext

Update webnn.cpp

Update README.md

Update README.md

Update README.md

Update README.md

Update cmake files and

update README.md

Update OpenCVDetectWebNN.cmake and README.md

Update OpenCVDetectWebNN.cmake

Fix OpenCVDetectWebNN.cmake and update README.md

Add source webnn_cpp.cpp and libary libwebnn_proc.so

Update dnn.cpp

Update dnn.cpp

Update dnn.cpp

Update dnn.cpp

update dnn.cpp

update op_webnn

update op_webnn

Update op_webnn.hpp

update op_webnn.cpp & hpp

Update op_webnn.hpp

Update op_webnn

update the skeleton

Update op_webnn.cpp

Update op_webnn

Update op_webnn.cpp

Update op_webnn.cpp

Update op_webnn.hpp

update op_webnn

update op_webnn

Solved the problems of released variables.

Fixed the bugs in op_webnn.cpp

Implement op_webnn

Implement Relu by WebNN API

Update dnn.cpp for better test

Update elementwise_layers.cpp

Implement ReLU6

Update elementwise_layers.cpp

Implement SoftMax using WebNN API

Implement Reshape by WebNN API

Implement PermuteLayer by WebNN API

Implement PoolingLayer using WebNN API

Update pooling_layer.cpp

Update pooling_layer.cpp

Update pooling_layer.cpp

Update pooling_layer.cpp

Update pooling_layer.cpp

Update pooling_layer.cpp

Implement poolingLayer by WebNN API and add more detailed logs

Update dnn.cpp

Update dnn.cpp

Remove redundant codes and add more logs for poolingLayer

Add more logs in the pooling layer implementation

Fix the indent issue and resolve the compiling issue

Fix the build problems

Fix the build issue

FIx the build issue

Update dnn.cpp

Update dnn.cpp

* Fix the build issue

* Implement BatchNorm Layer by WebNN API

* Update convolution_layer.cpp

This is a temporary file for Conv2d layer implementation

* Integrate some general functions into op_webnn.cpp&hpp

* Update const_layer.cpp

* Update convolution_layer.cpp

Still have some bugs that should be fixed.

* Update conv2d layer and fc layer

still have some problems to be fixed.

* update constLayer, conv layer, fc layer

There are still some bugs to be fixed.

* Fix the build issue

* Update concat_layer.cpp

Still have some bugs to be fixed.

* Update conv2d layer, fully connected layer and const layer

* Update convolution_layer.cpp

* Add OpenCV.js DNN module WebNN Backend (both using webnn-polyfill and electron)

* Delete bib19450.aux

* Add WebNN backend for OpenCV DNN Module

Update dnn.cpp

Update dnn.cpp

Update dnn.cpp

Update dnn.cpp

Add WebNN head files into OpenCV 3rd partiy files

Create webnn.hpp

update cmake

Complete README and add OpenCVDetectWebNN.cmake file

add webnn.cpp

Modify webnn.cpp

Can successfully compile the codes for creating a MLContext

Update webnn.cpp

Update README.md

Update README.md

Update README.md

Update README.md

Update cmake files and

update README.md

Update OpenCVDetectWebNN.cmake and README.md

Update OpenCVDetectWebNN.cmake

Fix OpenCVDetectWebNN.cmake and update README.md

Add source webnn_cpp.cpp and libary libwebnn_proc.so

Update dnn.cpp

Update dnn.cpp

Update dnn.cpp

Update dnn.cpp

update dnn.cpp

update op_webnn

update op_webnn

Update op_webnn.hpp

update op_webnn.cpp & hpp

Update op_webnn.hpp

Update op_webnn

update the skeleton

Update op_webnn.cpp

Update op_webnn

Update op_webnn.cpp

Update op_webnn.cpp

Update op_webnn.hpp

update op_webnn

update op_webnn

Solved the problems of released variables.

Fixed the bugs in op_webnn.cpp

Implement op_webnn

Implement Relu by WebNN API

Update dnn.cpp for better test

Update elementwise_layers.cpp

Implement ReLU6

Update elementwise_layers.cpp

Implement SoftMax using WebNN API

Implement Reshape by WebNN API

Implement PermuteLayer by WebNN API

Implement PoolingLayer using WebNN API

Update pooling_layer.cpp

Update pooling_layer.cpp

Update pooling_layer.cpp

Update pooling_layer.cpp

Update pooling_layer.cpp

Update pooling_layer.cpp

Implement poolingLayer by WebNN API and add more detailed logs

Update dnn.cpp

Update dnn.cpp

Remove redundant codes and add more logs for poolingLayer

Add more logs in the pooling layer implementation

Fix the indent issue and resolve the compiling issue

Fix the build problems

Fix the build issue

FIx the build issue

Update dnn.cpp

Update dnn.cpp

* Fix the build issue

* Implement BatchNorm Layer by WebNN API

* Update convolution_layer.cpp

This is a temporary file for Conv2d layer implementation

* Integrate some general functions into op_webnn.cpp&hpp

* Update const_layer.cpp

* Update convolution_layer.cpp

Still have some bugs that should be fixed.

* Update conv2d layer and fc layer

still have some problems to be fixed.

* update constLayer, conv layer, fc layer

There are still some bugs to be fixed.

* Update conv2d layer, fully connected layer and const layer

* Update convolution_layer.cpp

* Add OpenCV.js DNN module WebNN Backend (both using webnn-polyfill and electron)

* Update dnn.cpp

* Fix Error in dnn.cpp

* Resolve duplication in conditions in convolution_layer.cpp

* Fixed the issues in the comments

* Fix building issue

* Update tutorial

* Fixed comments

* Address the comments

* Update CMakeLists.txt

* Offer more accurate perf test on native

* Add better perf tests for both native and web

* Modify per tests for better results

* Use more latest version of Electron

* Support latest WebNN Clamp op

* Add definition of HAVE_WEBNN macro

* Support group convolution

* Implement Scale_layer using WebNN

* Add Softmax option for native classification example

* Fix comments

* Fix comments

2 years agoMerge pull request #21032 from alalek:js_tracker_mil
Alexander Alekhin [Tue, 23 Nov 2021 19:57:38 +0000 (19:57 +0000)]
Merge pull request #21032 from alalek:js_tracker_mil

2 years agoUpdate cap_android_camera.cpp
ShuangLiu1992 [Tue, 23 Nov 2021 15:03:18 +0000 (15:03 +0000)]
Update cap_android_camera.cpp

since u and v Pixel ptr have been swapped the compare condition should be updated too

2 years agoMerge pull request #21092 from alalek:core_logger_show_timestamp
Alexander Alekhin [Mon, 22 Nov 2021 22:44:31 +0000 (22:44 +0000)]
Merge pull request #21092 from alalek:core_logger_show_timestamp

2 years agoMerge pull request #21094 from Ryyyc:patch-2
Ruan [Mon, 22 Nov 2021 18:52:08 +0000 (02:52 +0800)]
Merge pull request #21094 from Ryyyc:patch-2

* Update how_to_use_OpenCV_parallel_for_new.markdown

Fix an incorrect jump link in the tutorial how_to_use_OpenCV_parallel_for_new.

* Update how_to_use_OpenCV_parallel_for_new.markdown

Update the URL of the tutorial code.

2 years agoMerge pull request #21022 from sivanov-work:async_mfp_demux
Sergey Ivanov [Mon, 22 Nov 2021 11:53:38 +0000 (14:53 +0300)]
Merge pull request #21022 from sivanov-work:async_mfp_demux

G-API: oneVPL Implement asynchronous MFP demux data provider

* Add dummy dmux

* Initial commit for draft versionn

* Demux for low res file works

* Add media source resolver to work over incorrect MIME

* Add MFP Demux logger

* stash changes

* Extend IDataProvider with CodecId, Add troubleshooting info

* Add IDapaProvider dispatcher

* Add ComPtrGuard wrappers

* Add new unit test scope for MFP demux & Add minor changes

* Enhance UTs

* Remove ATL header

* Remove ATL another one

* Fix build

* Add static for some methods

* Initial commit

* Add async demuxing

* Apply tdd idea

* Intro IDataProvider changes: +fetch_bitstream, -fetch_data

* Fix UTs

* Remove IDataProvider::CodecId & Fix EOF hang

* Remove sync demux

* Remove mfp async dependencies

* Remove VPL dependencies from IDataProvider declaration

* Apply comments

* Fix compilation

* Suppress unused warning

* Apply some comments

* Apply some comments

* Apply comments

2 years agocore(logger): dump timestamp information with message
Alexander Alekhin [Sat, 20 Nov 2021 15:34:23 +0000 (15:34 +0000)]
core(logger): dump timestamp information with message

2 years agoMerge remote-tracking branch 'upstream/3.4' into merge-3.4
Alexander Alekhin [Sat, 20 Nov 2021 04:42:58 +0000 (04:42 +0000)]
Merge remote-tracking branch 'upstream/3.4' into merge-3.4

2 years agoMerge pull request #21063 from vrabaud:3.4_h_clamping
Alexander Alekhin [Fri, 19 Nov 2021 20:28:25 +0000 (20:28 +0000)]
Merge pull request #21063 from vrabaud:3.4_h_clamping

2 years agoMerge pull request #20987 from zcx-xxx:master
zcx [Fri, 19 Nov 2021 15:57:07 +0000 (23:57 +0800)]
Merge pull request #20987 from zcx-xxx:master

* Update drawing.cpp

optimize FillEdgeCollection function

* Update drawing.cpp

optimize FillEdgeCollection,remove sort_flag

2 years agoFix H clamping for very small negative values.
Vincent Rabaud [Mon, 15 Nov 2021 12:09:02 +0000 (13:09 +0100)]
Fix H clamping for very small negative values.

In case of very small negative h (e.g. -1e-40), with the current implementation,
you will go through the first condition and end up with h = 6.f, and will miss
the second condition.

2 years agoMerge pull request #21067 from NickJackolson:nickjackolson/imread-warning
Alexander Alekhin [Thu, 18 Nov 2021 22:48:40 +0000 (22:48 +0000)]
Merge pull request #21067 from NickJackolson:nickjackolson/imread-warning

2 years agoadd !empty assertion in seamlessClone()
nickjackolson [Wed, 17 Nov 2021 20:56:55 +0000 (21:56 +0100)]
add !empty assertion in seamlessClone()

issue #20617 addresses lack of warnings on
seamlessClone() function when src is None.
This commit adds source check using CV_Assert
therefore debugging would be easier.

Signed-off-by: nickjackolson <metedurlu@gmail.com>
2 years agoAdd warning message to imread()
nickjackolson [Sun, 14 Nov 2021 19:43:50 +0000 (20:43 +0100)]
Add warning message to imread()

Add a warning message using CV_LOG__WARNING().
This way api behaviour is preserved. Outputs are
the same but user gets an extra warning in case
fopen() fails to access image file for some reason.
This would help new users and also debugging
complex apps which use imread()

Signed-off-by: nickjackolson <metedurlu@gmail.com>
2 years agoMerge pull request #21077 from alalek:js_test_pin_cli_table
Alexander Alekhin [Thu, 18 Nov 2021 18:34:44 +0000 (18:34 +0000)]
Merge pull request #21077 from alalek:js_test_pin_cli_table

2 years agoMerge pull request #21081 from alalek:issue_17261
Alexander Alekhin [Thu, 18 Nov 2021 18:22:59 +0000 (18:22 +0000)]
Merge pull request #21081 from alalek:issue_17261

2 years agocore: avoid using of 'check' identifier
Alexander Alekhin [Thu, 18 Nov 2021 16:02:59 +0000 (16:02 +0000)]
core: avoid using of 'check' identifier

2 years agojs: add TrackerMIL
Alexander Alekhin [Wed, 10 Nov 2021 02:25:17 +0000 (02:25 +0000)]
js: add TrackerMIL

2 years agojs(test): pin cli-table dependency
Alexander Alekhin [Thu, 18 Nov 2021 05:40:16 +0000 (05:40 +0000)]
js(test): pin cli-table dependency

2 years agoMerge pull request #21024 from anna-khakimova:ak/simd_mul
Alexander Alekhin [Wed, 17 Nov 2021 18:41:52 +0000 (18:41 +0000)]
Merge pull request #21024 from anna-khakimova:ak/simd_mul

2 years agoFluid: SIMD multiply kernel
Anna Khakimova [Tue, 9 Nov 2021 09:44:11 +0000 (12:44 +0300)]
Fluid: SIMD multiply kernel

2 years agoMerge pull request #21064 from alalek:doc_videoio_api_preference_3.4
Alexander Alekhin [Tue, 16 Nov 2021 20:05:59 +0000 (20:05 +0000)]
Merge pull request #21064 from alalek:doc_videoio_api_preference_3.4

2 years agoMerge pull request #20995 from mpashchenkov:mp/ocv-gapi-tdp-skip
Maxim Pashchenkov [Tue, 16 Nov 2021 18:27:42 +0000 (21:27 +0300)]
Merge pull request #20995 from mpashchenkov:mp/ocv-gapi-tdp-skip

G-API: Removing G-API test code that is a reflection of ts module

* gapi: don't hijack testing infrastructure

* Removed initDataPath functionality (ts module exists)

* Removed false for ocv_extra data from findDataFile

Co-authored-by: Alexander Alekhin <alexander.a.alekhin@gmail.com>
2 years agodoc(videoio): fix apiPreference note, replace DSHOW(deprecated)->MSMF
Alexander Alekhin [Tue, 16 Nov 2021 17:07:27 +0000 (17:07 +0000)]
doc(videoio): fix apiPreference note, replace DSHOW(deprecated)->MSMF

2 years agoMerge pull request #20925 from TolyaTalamanov:at/enable-2d-inputs-giebackend
Anatoliy Talamanov [Tue, 16 Nov 2021 12:52:42 +0000 (15:52 +0300)]
Merge pull request #20925 from TolyaTalamanov:at/enable-2d-inputs-giebackend

[G-API] Enable 2D inputs for GIEBackend

* Enable 2D inputs

* Fix typo

2 years agoMerge pull request #20914 from anna-khakimova:ak/simd_div
Anna Khakimova [Mon, 15 Nov 2021 17:16:25 +0000 (20:16 +0300)]
Merge pull request #20914 from anna-khakimova:ak/simd_div

GAPI Fluid: SIMD Div kernel.

* HAL implementation for Div kernel

* Removed dbg lines

* Applied comments.

* Reworked

* Final version

2 years agoMerge pull request #17889 from ZhengQiushi:my_3.4
Qiushi Zheng [Mon, 15 Nov 2021 17:15:39 +0000 (01:15 +0800)]
Merge pull request #17889 from ZhengQiushi:my_3.4

QR code (encoding process)

* add qrcode encoder

* qr encoder fixes

* qr encoder: fix api and realization

* fixed qr encoder, added eci and kanji modes

* trigger CI

* qr encoder constructor fixes

Co-authored-by: APrigarina <ann73617@gmail.com>
2 years agoMerge pull request #20918 from TolyaTalamanov:at/fix-empty-map-importNetwork
Anatoliy Talamanov [Mon, 15 Nov 2021 17:11:53 +0000 (20:11 +0300)]
Merge pull request #20918 from TolyaTalamanov:at/fix-empty-map-importNetwork

[G-API] Fix bugs in GIEBackend

* Remove inputs/outputs map from IEUnit

* Add test

* Add NV12 test

* Reorganize setBlob function

* Check that backend don't overwrite blob precision

* Stop setting config to global IE::Core

* Replace mutable to const_cast

* Update modules/gapi/test/infer/gapi_infer_ie_test.cpp

* Update modules/gapi/test/infer/gapi_infer_ie_test.cpp

* Make blob parameter as const ref

* Cosmetic fixes

* Fix failed test on inferROI

* Removed double ref for ii

* Disable tests

* Skip tests if device not available

* Use Sync prim under shared_ptr to avoid issue on MAC

* Apply WA for IE::Core

* Apply WA for MAC build

* Try to apply another WA

* Not release IE::Core for apple

* Put comment

* Support PreprocInfo for

* InferROI
* InferList
* InferList2

* Remove empty line

* Fix alignment

Co-authored-by: Maxim Pashchenkov <maxim.pashchenkov@intel.com>
2 years agoMerge remote-tracking branch 'upstream/3.4' into merge-3.4
Alexander Alekhin [Sat, 13 Nov 2021 15:11:30 +0000 (15:11 +0000)]
Merge remote-tracking branch 'upstream/3.4' into merge-3.4

2 years agoMerge pull request #21039 from SegaraRai:use-pragma-message
Alexander Alekhin [Fri, 12 Nov 2021 14:31:03 +0000 (14:31 +0000)]
Merge pull request #21039 from SegaraRai:use-pragma-message

2 years agoMerge pull request #20857 from alexgiving:atrutnev/move_API_samples
Trutnev Aleksei [Fri, 12 Nov 2021 14:17:21 +0000 (17:17 +0300)]
Merge pull request #20857 from alexgiving:atrutnev/move_API_samples

Move API sample code to tutorial_code location

2 years agoMerge pull request #21048 from ffontaine:4.x
Alexander Alekhin [Fri, 12 Nov 2021 12:28:28 +0000 (12:28 +0000)]
Merge pull request #21048 from ffontaine:4.x

2 years agomodules/videoio/src/cap_ffmpeg_impl.hpp: fix build with gcc 4.8
Fabrice Fontaine [Fri, 12 Nov 2021 08:50:17 +0000 (09:50 +0100)]
modules/videoio/src/cap_ffmpeg_impl.hpp: fix build with gcc 4.8

Fix the following build failure with gcc 4.8:

In file included from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg_impl.hpp:100:0,
                 from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg.cpp:50:
/home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg_hw.hpp: In constructor 'HWAccelIterator::HWAccelIterator(cv::VideoAccelerationType, bool, AVDictionary*)':
/home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg_hw.hpp:939:23: error: use of deleted function 'std::basic_istringstream<char>& std::basic_istringstream<char>::operator=(const std::basic_istringstream<char>&)'
             s_stream_ = std::istringstream(accel_list);
                       ^
In file included from /home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-none-linux-gnueabi/include/c++/4.8.3/complex:45:0,
                 from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/core/include/opencv2/core/cvstd.inl.hpp:47,
                 from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/core/include/opencv2/core.hpp:3306,
                 from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/include/opencv2/videoio.hpp:46,
                 from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/precomp.hpp:57,
                 from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg.cpp:42:
/home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-none-linux-gnueabi/include/c++/4.8.3/sstream:272:11: note: 'std::basic_istringstream<char>& std::basic_istringstream<char>::operator=(const std::basic_istringstream<char>&)' is implicitly deleted because the default definition would be ill-formed:
     class basic_istringstream : public basic_istream<_CharT, _Traits>
           ^
/home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-none-linux-gnueabi/include/c++/4.8.3/sstream:272:11: error: use of deleted function 'std::basic_istream<char>& std::basic_istream<char>::operator=(const std::basic_istream<char>&)'

Fixes:
 - http://autobuild.buildroot.org/results/60f8846b435dafda0ced412d59ffe15bdff0810d

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2 years agoMerge pull request #21025 from alalek:issue_21004
Alexander Alekhin [Thu, 11 Nov 2021 22:54:07 +0000 (01:54 +0300)]
Merge pull request #21025 from alalek:issue_21004

* dnn(ocl4dnn): fix LRN layer accuracy problems

- FP16 intermediate computation is not accurate and may provide NaN values

* dnn(test): update tolerance for FP16