nareshmlx/opencv-pr huggingface dataset:
**File:** modules/js/test/test_objdetect.js
**Change Type:** modified
**Context:** PR #19284: Add QRCodeDetector to JavaScript Build

**Code Changes:**
```diff
@@ -159,3 +159,44 @@ QUnit.test('Cascade classification', function(assert) {
         locations.delete();
     }
 });
+QUnit.test('QR code detect and decode', function (assert) {
+    {
+        const detector = new cv.QRCodeDetector();
+        let mat = cv.Mat.ones(800, 600, cv.CV_8U);
+        assert.ok(mat);
+
```

Review comment:
You are right, this is not working in Node.js. In order to provide tests i have seen other JavaScript tests, where images are created from a hardcoded array. In this test case it would probably be a huge array to create an image containing a QR-code. Is there a way of loading images, which works both in the browser and in node.js? Otherwise i have to implement two different ways of loading the images.
**File:** modules/js/test/test_objdetect.js
**Change Type:** modified
**Context:** PR #19284: Add QRCodeDetector to JavaScript Build

**Code Changes:**
```diff
@@ -159,3 +159,44 @@ QUnit.test('Cascade classification', function(assert) {
         locations.delete();
     }
 });
+QUnit.test('QR code detect and decode', function (assert) {
+    {
+        const detector = new cv.QRCodeDetector();
+        let mat = cv.Mat.ones(800, 600, cv.CV_8U);
+        assert.ok(mat);
+
```

Review comment:
Until we have good images (testdata) support in JS tests infrastructure, lets check the "bindings" existence only (without any attempt to perform accuracy checks). Please use Mat.zeros(...) as input in tests for now. And check that there are no exceptions raised. Minimal smoke test. For accuracy demo it would be nice to add tutorial page ([examples](https://docs.opencv.org/3.4/dc/d73/tutorial_js_table_of_contents_objdetect.html)).
**File:** modules/js/test/test_objdetect.js
**Change Type:** modified
**Context:** PR #19284: Add QRCodeDetector to JavaScript Build

**Code Changes:**
```diff
@@ -159,3 +159,44 @@ QUnit.test('Cascade classification', function(assert) {
         locations.delete();
     }
 });
+QUnit.test('QR code detect and decode', function (assert) {
+    {
+        const detector = new cv.QRCodeDetector();
+        let mat = cv.Mat.ones(800, 600, cv.CV_8U);
+        assert.ok(mat);
+
```

Review comment:
I have now added tests that do not require any test images. Therefore I have removed the copying of the test images again. I will start writing a tutorial page. Should the tutorial include the QR code recognition algorithm? As far as I could understand `QrCodeDetector::detect` uses the algorithm described in this [article](https://www.atlantis-press.com/proceedings/emeit-12/3264).
**File:** doc/js_tutorials/js_setup/js_setup/js_setup.markdown
**Change Type:** modified
**Context:** PR #19284: Add QRCodeDetector to JavaScript Build

**Code Changes:**
```diff
@@ -138,6 +138,7 @@ Building OpenCV.js from Source
     python ./platforms/js/build_js.py build_js --cmake_option="-DOPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules"
     @endcode
 
+
 Running OpenCV.js Tests
 ---------------------------------------
 
@@ -303,6 +304,12 @@ The example uses latest version of emscripten. If the build fails you should try
 docker run --rm -v $(pwd):/src -u $(id -u):$(id -g) emscripten/emsdk:2.0.10 emcmake python3 ./platforms/js/build_js.py build_js
```

Review comment:
Please drop `OPENCV_TEST_DATA_PATH` changes from the patch
**File:** 3rdparty/carotene/src/resize.cpp
**Change Type:** modified
**Context:** PR #19525: Reduce if statement as it has the same expression on both sides of '&&'
**Review Line:** 761

**Code Changes:**
```diff
@@ -758,7 +758,7 @@ inline void resizeAreaRounding(const Size2D &ssize, const Size2D &dsize,
     }
     else if (channels == 3)
     {
-        if ((wr == 2.0f) && (wr == 2.0f))
+        if ((wr == 2.0f) && (hr == 2.0f))
         {
 #ifndef __ANDROID__
             size_t roiw16 = dsize.width >= 15 ? (dsize.width - 15) * 3 : 0;
```

Review comment:
According to `isResizeAreaSupported` that is called before hand to check HAL kernel applicability the condition should be `if ((wr == 2.0f) && (hr == 2.0f))`.
**File:** modules/dnn/src/dnn.cpp
**Change Type:** modified
**Context:** PR #19222: cuda4dnn: fix version check diagnostic
**Review Line:** 245

**Code Changes:**
```diff
+        if (haveCUDA())
         {
             backends.push_back(std::make_pair(DNN_BACKEND_CUDA, DNN_TARGET_CUDA));
-            if (cuda4dnn::doesDeviceSupportFP16())
-                backends.push_back(std::make_pair(DNN_BACKEND_CUDA, DNN_TARGET_CUDA_FP16));
+            backends.push_back(std::make_pair(DNN_BACKEND_CUDA, DNN_TARGET_CUDA_FP16));
         }
 #endif
     }
@@ -2363,6 +2362,9 @@ struct Net::Impl : public detail::NetImplBase
         CV_Assert(preferableBackend == DNN_BACKEND_CUDA);
```

Review comment:
This might be a breaking change. The issue is that `BackendRegistry` is a singleton object but the available targets for CUDA depend on the current device that has been selected. If the user initially used a device without FP16 support and then switches to a device with FP16 support, FP16 target won't be returned with `getAvailableTargets` since the registry is initialized when the device without FP16 support was present. So now it always returns both targets and there is a fallback to FP32 in `initCUDABackend` if FP16 isn't supported.
**File:** modules/stitching/include/opencv2/stitching.hpp
**Change Type:** modified
**Context:** PR #19619: get and set cameras on stitcher

**Code Changes:**
```diff
@@ -259,6 +259,20 @@ class CV_EXPORTS_W Stitcher
      */
     CV_WRAP Status estimateTransform(InputArrayOfArrays images, InputArrayOfArrays masks = noArray());
 
+    /** @brief These function restors camera rotation and camera intrinsics of each camera
+     *  that can be got with @ref Stitcher::cameras call
+
+    @param images Input images.
+    @param cameras Estimated rotation of cameras for each of the input images.
+    @param component Indices (0-based) of images constituting the final panorama (optional).
```

Review comment:
Please restore `detail` namespace.
**File:** modules/stitching/include/opencv2/stitching.hpp
**Change Type:** modified
**Context:** PR #19619: get and set cameras on stitcher

**Code Changes:**
```diff
@@ -259,6 +259,20 @@ class CV_EXPORTS_W Stitcher
      */
     CV_WRAP Status estimateTransform(InputArrayOfArrays images, InputArrayOfArrays masks = noArray());
 
+    /** @brief These function restors camera rotation and camera intrinsics of each camera
+     *  that can be got with @ref Stitcher::cameras call
+
+    @param images Input images.
+    @param cameras Estimated rotation of cameras for each of the input images.
+    @param component Indices (0-based) of images constituting the final panorama (optional).
```

Review comment:
please restore original method signature and remove `CV_WRAP` prefix. It cannot be handled by bindings generator automatically.
**File:** modules/stitching/src/stitcher.cpp
**Change Type:** modified
**Context:** PR #19619: get and set cameras on stitcher

**Code Changes:**
```diff
@@ -118,7 +118,6 @@ Stitcher::Status Stitcher::estimateTransform(InputArrayOfArrays images, InputArr
 }
 
 
-
 Stitcher::Status Stitcher::composePanorama(OutputArray pano)
 {
     CV_INSTRUMENT_REGION();
@@ -541,6 +540,103 @@ Stitcher::Status Stitcher::estimateCameraParams()
     return OK;
```

Review comment:
Probably the following code is excessive, as the same result could be achieved by reusing an initialized (through estimateTransform) stitcher's composePanorama with updated images (i.e. different from those passed to estimateTransform). In other words, it would be sufficient to provide only a setter to the homographies (cameras array).
**File:** modules/stitching/include/opencv2/stitching.hpp
**Change Type:** modified
**Context:** PR #19619: get and set cameras on stitcher

**Code Changes:**
```diff
@@ -259,6 +259,20 @@ class CV_EXPORTS_W Stitcher
      */
     CV_WRAP Status estimateTransform(InputArrayOfArrays images, InputArrayOfArrays masks = noArray());
 
+    /** @brief These function restors camera rotation and camera intrinsics of each camera
+     *  that can be got with @ref Stitcher::cameras call
+
+    @param images Input images.
+    @param cameras Estimated rotation of cameras for each of the input images.
+    @param component Indices (0-based) of images constituting the final panorama (optional).
```

Review comment:
I propose to replace the note with reference to `cameras()` method.
**File:** modules/stitching/test/test_stitcher.cpp
**Change Type:** added
**Context:** PR #19619: get and set cameras on stitcher

**Code Changes:**
```diff
@@ -0,0 +1,28 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+
+#include "test_precomp.hpp"
+
+namespace opencv_test { namespace {
+
+TEST(ImageStitcher, setTransform)
```

Review comment:
Need to remove indentation from namespaces
**File:** modules/stitching/include/opencv2/stitching.hpp
**Change Type:** modified
**Context:** PR #19619: get and set cameras on stitcher

**Code Changes:**
```diff
@@ -259,6 +259,20 @@ class CV_EXPORTS_W Stitcher
      */
     CV_WRAP Status estimateTransform(InputArrayOfArrays images, InputArrayOfArrays masks = noArray());
 
+    /** @brief These function restors camera rotation and camera intrinsics of each camera
+     *  that can be got with @ref Stitcher::cameras call
+
+    @param images Input images.
+    @param cameras Estimated rotation of cameras for each of the input images.
+    @param component Indices (0-based) of images constituting the final panorama (optional).
```

Review comment:
Overloads should go after the main function. http://pullrequest.opencv.org/buildbot/export/pr/19619/docs/d2/d8d/classcv_1_1Stitcher.html#a1bbb3bb8cc7763a0177a05b21c97f794 > It differs from the above function only in what argument(s) it accepts.
**File:** samples/dnn/virtual_try_on.py
**Change Type:** modified
**Context:** PR #19675: Removed unused variables found by pylint

**Code Changes:**
```diff
@@ -112,7 +112,7 @@ def _resample_vertical(self, out, img, ksize, bounds, kk):
             out[yy] = np.round(np.sum(img[ymin : ymin + ymax, 0:out.shape[1]] * k[:, np.newaxis], axis=0))
 
     def imaging_resample(self, img, xsize, ysize):
-        height, width, *args = img.shape
+        height, width = img.shape[0:2]
         bounds_horiz, kk_horiz, ksize_horiz = self._precompute_coeffs(width, xsize)
         bounds_vert, kk_vert, ksize_vert    = self._precompute_coeffs(height, ysize)
 
@@ -232,7 +232,6 @@ def _compute_L_inverse(self, X, Y):
```

Review comment:
`img.shape[0:2]`?
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
Is it possible to make a graph non-const [here](https://github.com/opencv/opencv/pull/18240/files#diff-c3ec2ae59c90eaf62d3547ff931a31a3R443) to avoid adding `mutable`?
**File:** modules/gapi/test/infer/gapi_infer_ie_test.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -233,6 +233,115 @@ TEST(TestAgeGenderIE, InferBasicImage)
     normAssert(cv::gapi::ie::util::to_ocv(ie_gender), gapi_gender, "Test gender output");
 }
 
+struct InferWithReshape: public ::testing::Test {
+    cv::gapi::ie::detail::ParamDesc params;
+    cv::Mat m_in_mat;
+    std::vector<cv::Rect> m_roi_list;
+    std::vector<size_t> reshape_dims;
+    std::vector<cv::Mat> m_out_ie_ages;
```

Review comment:
I don't think it's good to have additional feature tested in the existed test. Would be better to make a new one. Try to make a new test fixture with things inherited from ROIList
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
What if a network has multiple inputs?
**File:** modules/gapi/include/opencv2/gapi/infer/ie.hpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -8,6 +8,7 @@
 #define OPENCV_GAPI_INFER_IE_HPP
 
 #include <unordered_map>
+#include <unordered_set>
 #include <string>
 #include <array>
 #include <tuple> // tuple, tuple_size
@@ -68,6 +69,9 @@ namespace detail {
         bool is_generic;
```

Review comment:
Why is this deleted? Seems like no fields were removed
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
`with layers' names`
**File:** modules/gapi/include/opencv2/gapi/infer/ie.hpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -8,6 +8,7 @@
 #define OPENCV_GAPI_INFER_IE_HPP
 
 #include <unordered_map>
+#include <unordered_set>
 #include <string>
 #include <array>
 #include <tuple> // tuple, tuple_size
@@ -68,6 +69,9 @@ namespace detail {
         bool is_generic;
```

Review comment:
here too: `names` -> `layers`
**File:** modules/gapi/include/opencv2/gapi/infer/ie.hpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -8,6 +8,7 @@
 #define OPENCV_GAPI_INFER_IE_HPP
 
 #include <unordered_map>
+#include <unordered_set>
 #include <string>
 #include <array>
 #include <tuple> // tuple, tuple_size
@@ -68,6 +69,9 @@ namespace detail {
         bool is_generic;
```

Review comment:
Not sure this comment is necessary
**File:** modules/gapi/include/opencv2/gapi/infer/ie.hpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.
**Review Line:** 187

**Code Changes:**
```diff
+    }
+
+    Params<Net>& cfgInputReshape(const std::unordered_set<std::string>& layer_names) {
+        desc.layer_names_to_reshape = layer_names;
+        return *this;
+    }
+
     // BEGIN(G-API's network parametrization API)
     GBackend      backend()    const { return cv::gapi::ie::backend();  }
     std::string   tag()        const { return Net::tag(); }
@@ -165,13 +203,13 @@ class Params<cv::gapi::Generic> {
```

Review comment:
Really I'd add an overload with `const std::string, const std::vector<size_t>`.
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
Where did it go?
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
So how it works for your purpose? Why we're not looking at the input _data_ dimensions? Isn't this the case?
**File:** modules/gapi/include/opencv2/gapi/infer/ie.hpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -8,6 +8,7 @@
 #define OPENCV_GAPI_INFER_IE_HPP
 
 #include <unordered_map>
+#include <unordered_set>
 #include <string>
 #include <array>
 #include <tuple> // tuple, tuple_size
@@ -68,6 +69,9 @@ namespace detail {
         bool is_generic;
```

Review comment:
y not just `= `?
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
you don't need `{`/`}` as you don't declare local variables here
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
Can you please explain what happens here in this function?
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
Generally, `const_cast` is not good. It breaks the above contracts where we declare our inputs as `const`.
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
Not sure if this logic is all correct. Hypothetically, one kind of reshape shouldn't exclude the other one - and so for an N-input network the user could specify particular shapes for layers `X` and `Y` and keep it dynamic (based on input) for `Z`. Also, is `{W,H}` the right shape? Does it work well with `SetResizeAlgorithm()` / `SetBlob` thing we also use?
**File:** modules/gapi/include/opencv2/gapi/infer/ie.hpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -8,6 +8,7 @@
 #define OPENCV_GAPI_INFER_IE_HPP
 
 #include <unordered_map>
+#include <unordered_set>
 #include <string>
 #include <array>
 #include <tuple> // tuple, tuple_size
@@ -68,6 +69,9 @@ namespace detail {
         bool is_generic;
```

Review comment:
Quote is necessary ?
**File:** modules/gapi/include/opencv2/gapi/infer/ie.hpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -8,6 +8,7 @@
 #define OPENCV_GAPI_INFER_IE_HPP
 
 #include <unordered_map>
+#include <unordered_set>
 #include <string>
 #include <array>
 #include <tuple> // tuple, tuple_size
@@ -68,6 +69,9 @@ namespace detail {
         bool is_generic;
```

Review comment:
For me the names is confusing
**File:** modules/gapi/include/opencv2/gapi/infer/ie.hpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.
**Review Line:** 187

**Code Changes:**
```diff
+    }
+
+    Params<Net>& cfgInputReshape(const std::unordered_set<std::string>& layer_names) {
+        desc.layer_names_to_reshape = layer_names;
+        return *this;
+    }
+
     // BEGIN(G-API's network parametrization API)
     GBackend      backend()    const { return cv::gapi::ie::backend();  }
     std::string   tag()        const { return Net::tag(); }
@@ -165,13 +203,13 @@ class Params<cv::gapi::Generic> {
```

Review comment:
Consider to add `rvalue` implementation, because it will be used in most of cases
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
BTW we have `ade::util::find`
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
Consider to put `error` message. `GAPI_Assert(it != reshape_names.end() && "Message")`
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
Are u sure that this function is really necessary ? After `std::find` you have already have `iterator` which can be dereferenced to obtain `string`.
**File:** modules/gapi/src/backends/ie/giebackend.cpp
**Change Type:** modified
**Context:** PR #18240: [G-API]: Adding reshape for CNN input.

**Code Changes:**
```diff
@@ -45,6 +45,7 @@
 #include "backends/ie/giebackend/giewrapper.hpp"
 
 #include "api/gbackend_priv.hpp" // FIXME: Make it part of Backend SDK!
+#include "logger.hpp"
 
 #if INF_ENGINE_RELEASE < 2021010000
 #include "ie_compound_blob.h"
@@ -224,6 +225,9 @@ struct IEUnit {
             // but ExecutableNetwork returns ConstInputsDataMap/ConstOutputsDataMap
```

Review comment:
What does it mean ?