1. 31 5月, 2023 1 次提交
  2. 30 5月, 2023 1 次提交
    • D
      Merge pull request #23597 from dmatveev:dm/gapi_onnx_py_integration · fc5d412b
      Dmitry Matveev 提交于
      G-API: Integration branch for ONNX & Python-related changes #23597
      
      # Changes overview
      
      ## 1. Expose ONNX backend's Normalization and Mean-value parameters in Python
      
      * Since Python G-API bindings rely on `Generic` infer to express Inference, the `Generic` specialization of `onnx::Params` was extended with new methods to control normalization (`/255`) and mean-value; these methods were exposed in the Python bindings
      * Found some questionable parts in the existing API which I'd like to review/discuss (see comments)
      
      UPD:
      1. Thanks to @TolyaTalamanov normalization inconsistencies have been identified with `squeezenet1.0-9` ONNX model itself; tests using these model were updated to DISABLE normalization and NOT using mean/value.
      2. Questionable parts were removed and tests still pass.
      
      ### Details (taken from @TolyaTalamanov's comment):
      
      `squeezenet1.0.*onnx` - doesn't require scaling to [0,1] and mean/std because the weights of the first convolution already scaled. ONNX documentation is broken. So the correct approach to use this models is:
      
      1. ONNX: apply preprocessing from the documentation: https://github.com/onnx/models/blob/main/vision/classification/imagenet_preprocess.py#L8-L44 but without normalization step:
      ```
      # DON'T DO IT:
      # mean_vec = np.array([0.485, 0.456, 0.406])
      # stddev_vec = np.array([0.229, 0.224, 0.225])
      # norm_img_data = np.zeros(img_data.shape).astype('float32')
      # for i in range(img_data.shape[0]):
      #     norm_img_data[i,:,:] = (img_data[i,:,:]/255 - mean_vec[i]) / stddev_vec[i]
      #     # add batch channel
      #     norm_img_data = norm_img_data.reshape(1, 3, 224, 224).astype('float32')
      #     return norm_img_data
      
      # INSTEAD
      return img_data.reshape(1, 3, 224, 224)
      ```
      
      2. G-API: Convert image from BGR to RGB and then pass to `apply` as-is with configuring parameters:
      ```
      net = cv.gapi.onnx.params('squeezenet', model_filename)
      net.cfgNormalize('data_0', False)
      ```
      **Note**: Results might be difference because `G-API` doesn't apply central crop but just do resize to model resolution.
      
      ---
      
      `squeezenet1.1.*onnx` - requires scaling to [0,1] and mean/std - onnx documentation is correct.
      1. ONNX: apply preprocessing from the documentation: https://github.com/onnx/models/blob/main/vision/classification/imagenet_preprocess.py#L8-L44
      2. G-API: Convert image from BGR to RGB and then pass to `apply` as-is with configuring parameters:
      ```
      net = cv.gapi.onnx.params('squeezenet', model_filename)
      net.cfgNormalize('data_0', True) // default
      net.cfgMeanStd('data_0', [0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
      ```
      **Note**: Results might be difference because `G-API` doesn't apply central crop but just do resize to model resolution.
      
      ## 2. Expose Fluid & kernel package-related functionality in Python
      
      * `cv::gapi::combine()`
      * `cv::GKernelPackage::size()` (mainly for testing purposes)
      * `cv::gapi::imgproc::fluid::kernels()`
      
      Added a test for the above.
      
      ## 3. Fixed issues with Python stateful kernel handling
      
      Fixed error message when `outMeta()` of custom python operation fails.
      
      ## 4. Fixed various issues in Python tests
      
      1. `test_gapi_streaming.py` - fixed behavior of Desync test to avoid sporadic issues
      2. `test_gapi_infer_onnx.py` - fixed model lookup (it was still using the ONNX Zoo layout but was NOT using the proper env var we use to point to one).
      
      ### 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.
      - [x] The feature is well documented and sample code can be built with the project CMake
      fc5d412b
  3. 24 5月, 2023 1 次提交
  4. 23 4月, 2023 1 次提交
  5. 11 4月, 2023 2 次提交
  6. 10 4月, 2023 1 次提交
  7. 02 4月, 2023 1 次提交
  8. 24 3月, 2023 1 次提交
  9. 15 2月, 2023 1 次提交
    • A
      Merge pull request #23211 from TolyaTalamanov:at/pipeline-modeling-tool-perf-alignment · 6c235c8e
      Anatoliy Talamanov 提交于
      [G-API] Pipeline modeling tool: Refactor calculating performance statistics
      
      * Add warmup execution
      
      * Align perf metrics
      
      * Add busy wait mode for source
      
      * Small fix for late frames
      
      * pl_fn to src_fn
      
      * Change show statistics
      
      * Correct warm-up iteration
      
      * Properly calculate drop frames
      
      * Enable frame dropping for streaming mode
      
      * Enable frame dropping for streaming mode
      
      * Fix comments to review
      
      * Fix typos
      
      * Cosmetic
      6c235c8e
  10. 07 2月, 2023 1 次提交
  11. 02 2月, 2023 1 次提交
  12. 17 1月, 2023 1 次提交
  13. 20 12月, 2022 1 次提交
  14. 19 12月, 2022 1 次提交
    • A
      Merge pull request #22935 from alalek:gapi_error · 91998d64
      Alexander Alekhin 提交于
      G-API: replace GAPI_Assert() with 'false' and '0' to GAPI_Error()
      
      * gapi: GAPI_Error() macro
      
      * gapi: replace GAPI_Assert() with 'false' and '0' to GAPI_Error()
      
      * build: eliminate 'unreachable code' after CV_Error() (MSVC 2015)
      
      * build: eliminate 'unreachable code' warning for MSVS 2015/2017
      
      - observed in constructors stubs with throwing exception
      91998d64
  15. 10 12月, 2022 1 次提交
  16. 19 11月, 2022 1 次提交
  17. 18 11月, 2022 1 次提交
  18. 16 11月, 2022 1 次提交
    • A
      Copy mpashchenkov's changes · 4c74e6d8
      Alexey Smirnov 提交于
      Minor refactoring
      
      Partially address review comments
      
      Move DX-related stuff from the sample to a default source
      
      Simplify the default OneVPL config
      
      Address minor review comments
      
      Add class for the default VPL source
      
      WIP: Add initial stub for tests with description
      
      Removing default vpl source and minor refactoring
      
      Refactor default files
      
      Fix build and application crash
      
      Address review comments
      
      Add test on VPL + OCL interaction compared to CPU behavior
      
      Fix test
      4c74e6d8
  19. 08 11月, 2022 1 次提交
  20. 31 10月, 2022 1 次提交
  21. 28 10月, 2022 1 次提交
  22. 06 10月, 2022 1 次提交
  23. 05 10月, 2022 1 次提交
  24. 04 10月, 2022 3 次提交
  25. 03 10月, 2022 10 次提交
  26. 26 9月, 2022 1 次提交
  27. 16 9月, 2022 1 次提交
    • T
      Apply comments · ec92f3fe
      TolyaTalamanov 提交于
      * Rename intersectMapWith -> mergeMapWith
      * Remove macro
      * Add r-value ref
      ec92f3fe
  28. 15 9月, 2022 1 次提交