G-API: oneVPL - Performance: Add async decode pipeline & add cached pool
* Add async decode pipeline & intro cached pool
* Fix performacne test with checking OPENCV_EXTRA
* Add sip perf test with no VPL
* Fix misprint
* Remove empty line..
* Apply some comments
* Apply some comments
* Make perf test fail if no OPENCV_TEST_DATA_PATH declared
G-API: Disable Windows warnings with 4996 code
* Windows warnings 4503 and 4996 are disabled with dnn style
* Applying comments to review
* Reproducing
* Added check MSVC_VERSION for both warnings
G-API: Handle reshape for generic case in GExecutor
* Handle reshape for generic case for GExecutor
* Add initResources
* Add tests
* Refactor reshape method
[G-API] Extend compileStreaming to support different overloads
* Make different overloads
* Order python compileStreaming overloads
* Fix compileStreaming bug
* Replace
gin -> descr_of
* Set error message
* Fix review comments
* Use macros for pyopencv_to GMetaArgs
* Use GAPI_PROP_RW
* Not split Prims python stuff
[G-API] Support postprocessing for not argmaxed outputs
* Support postprocessing for not argmaxed outputs
* Fix typo
* Add assert
* Remove static cast
* CamelCast to snake_case
* Fix windows warning
* Add static_cast to uint8_t
* Add const to variables
MTCNN 1st pnet simplification to ensure single graph input
* 1st pnet simplification to ensure single graph input
* address comment from Dmitry M regarding unused variable
G-API: Wrap render functionality to python
* Wrap render Rect prim
* Add all primitives and tests
* Cover mosaic and image
* Handle error in pyopencv_to(Prim)
* Move Mosaic and Rect ctors wrappers to shadow file
* Use GAPI_PROP_RW
* Fix indent
G-API: Support vaargs for cv.compile_args
* Support cv.compile_args to work with variadic number of inputs
* Disable python2.x G-API
* Move compile_args to gapi pkg
1) Document GFrame/MediaFrame (and also other G-API types)
- Added doxygen comments for GMat, GScalar, GArray<T>, GOpaque classes;
- Documented GFrame and its host-side counterpart MediaFrame;
- Added some more notes to the data type classes.
2) Give @brief descriptions to most of the cv::gapi::* namespaces
3) Make some symbols private
- These structures are mainly internal and shouldn't be used directly
G-API: Documentation for Params (IE and ONNX).
* Applying comments
* Removed type of model from PramsDesc
* Added message for onnx ParamDesc
* Whitespaces
* Review
* Fix comments to review
* Fix comments
Co-authored-by: Anatoliy Talamanov <anatoliy.talamanov@intel.com>
G-API: Extend MediaFrame to be able to extract additional info besides access
* Extend MediaFrame to be able to extract additional info besides access
* Add default implementation for blobParams()
* Add comment on the default blobParams()
G-API: New python operations API
* Reimplement test using decorators
* Custom python operation API
* Remove wip status
* python: support Python code in bindings (through loader only)
* cleanup, skip tests for Python 2.x (not supported)
* python 2.x can't skip unittest modules
* Clean up
* Clean up
* Fix segfault python3.9
Co-authored-by: Alexander Alekhin <alexander.a.alekhin@gmail.com>
G-API MTCNN demo hotfix to align overall pipeline accuracy with the reference Python code output.
* MTCNN G-API demo aligned with Python from OMZ
* clean up
* more comments from Maxim are addressed.
* address comment from Dmitry
G-API MTCNN sample
* add face detection demo
* clean up
* enable back accumulate
* additional input
* meta args workaround
* additional arg
* add init
* roll back
* fix shadowing
* roll back
* clean up and PNet copy from debug branch which now works
* try nets operator
* more clean up
* more clean up
* add 6 layers pyramid experimental code
* final clean up and ready for PR
* original image resize
* Remove Pnet declarations. Generic infer is used now.
* scales and sizes calculation added
* fix assert, and add ceil to size calculation
* try doubles for scales
* Address comments from Dmitry.
* use half scale option
* fix half scale
* clean up debug outputs
* try to get input image width and height
* clean up
* trailing spaces and review from Maxim
* more comments from Maxim are addressed
* try to fix warnings
* try to fix warnings and address more comments from Dmitry
* crop fix and clean up
* more warnings fixes
* more warnings fixes
* more comments from Maxim are addressed
* even more consts
* copy_n for regressions
* address more comments from Dmitry
* more comments from Maxim
[G-API] Fix bug of GArray<GArray> passing through a graph
* Add test to check GArray<GArray> passing through a graph (assertion failed)
* G-API: Flatten GArray<T> to std::vector<T> when capturing VCtr
- Also: Fix formatting in garray.hpp
* Refactored test, added valuable check
* Initialize size_t
Co-authored-by: Dmitry Matveev <dmitry.matveev@intel.com>
G-API: ONNX. Adding INT64-32 conversion for output.
* Added int64 to 32 conversion
* Added warning
* Added type checks for all toCV
* Added type checks for tests
* Small fixes
* Const for fixture in test
* std::tuple if retutn value for toCV
* Mistake
* Changed toCV for tests
* Added Assert
* Fix for comments
* One conversion for ONNX and IE
* Clean up
* One more fix
* Added copyFromONNX
* Removed warning
* Apply review comments
G-API: IE. Adding support for INT32 type.
* Added support for int32
* Added sample for semantic-segmentation-adas-0001
* Alignment
* Alignment 2
* Rstrt build
* Removed test for sem seg
[G-API]: Performance tests for KalmanFilter
* Kalman perf.tests and some tests refactoring
* Input generation moved to a separate function; Slowest case sneario testing added
* Generating refactored
* Generating refactoring
* Addressing comments
G-API: Implement async version for InferList & Infer2
* Implement async version for InferList & Infer2
* Fix warning
* Fix bug with roi ordering
* Post input meta instead of empty
* Fix comments to review
[G-API] Introduce cv.gin/cv.descr_of for python
* Implement cv.gin/cv.descr_of
* Fix macos build
* Fix gcomputation tests
* Add test
* Add using to a void exceeded length for windows build
* Add using to a void exceeded length for windows build
* Fix comments to review
* Fix comments to review
* Update from latest master
* Avoid graph compilation to obtain in/out info
* Fix indentation
* Fix comments to review
* Avoid using default in switches
* Post output meta for giebackend
[G-API] Support multiple asynchronous requests
* Support nireq option
* Disable tests to check CI
* Fix bug with hanging
* WA to green CI
* Snapshot
* Simplify RequestPool
* Add default values to id
* Fix win warning
[G-API]: Performance tests for kmeans
* - Perf.Tests for kmeans(2D, 3D (Point2f/3f), ND (Mat))
- New file for common parts of acc. and perf. tests for core kernels added
- Some typos corrections
* Applying comments
Render Frame NV12 on CPU
* render frame on CPU
* doxygen fix
* address review from Alexey
* comment fixes
* Address comments from Ruslan
* remove NV12 specific
* mat clone and more renaming
* misprint fix
[G-API] Introduce GOpaque and GArray for python
* Introduce GOpaque and GArray for python
* Fix ctor
* Avoid code duplication by using macros
* gapi: move Python-specific files to misc/python
* Fix windows build
Co-authored-by: Alexander Alekhin <alexander.a.alekhin@gmail.com>
G-API: ONNX. Support for networks with three dimensional input.
* Padding without tests
* Removed padding
* Some small fixes
* Added wstring_convert
* Alignment fix, m b
* Small fixes
* Moved include from onnx.hpp
[G-API]: Performance tests for fitLine and findContours
* Perf.Test for findContours(H)
* Perf.Test for fitLine(2D.3D;Mat,vector<Point2i/2f/2d/3i/3f/3d>)
* Reducing the template specializations number
* Applying comments
[G-API]: Performance tests for boundingRect
* Update boundingRect() tests with the changes from fitLine() PR
* Add performance tests for boundingRect
* Applying comment about g_type_of_t
* Addressing comments
* Addressing comment: replace cmp_f by CompareF in perf.tests + add the default constructor for CompareF
* Fix typo
G-API: Support GFrame for ONNX infer
* Added GFrame for ONNX
* Cut test
* Removed IE from assert
* Review comments
* Added const/bbot rstrt
* View instead unique_ptr in func. sig.
* Added extractMat function, ONNXCompiled contains exMat - cv::Mat with non processed input data
* Added meta check for inferList2
[G-API] Support GFrame for infer
* GInfer(GFrame), currently broken
* Fixed (API only)
* Support GFrame in GIEBackend
* Fix comments to review
* Fix comments to review
* Fix doxygen
* Fix building with different IE versions
* Fix warning on MacOS
Co-authored-by: Dmitry Matveev <dmitry.matveev@intel.com>
Co-authored-by: Smirnov Alexey <alexey.smirnov@intel.com>
The test has race condition, which is addressed by the patch.
The race is next:
Master thread is calling execute (effectively blocked, waiting for
callback to be called)
"Async" thread picks up the callback
Call the callback
Then sets the variables in test
After call back is called, master thread is unblocked and may check
the variables (set in point 4 by the "async" thread) earlier then they
actually changed
Changes:
callback should be called as the last step (after flag variables are
set), as it effectively unblock the master thread
fixes#18974
- explicitly declared default constructor
- made initilizer_list constructor to accept the list by copy
-- as it is more canonical (and as copying the initializer_list does
not force copy of the list items)
-- current version anyway does not do what it is intended to
[G-API]: kmeans() Standard Kernel Implementation
* cv::gapi::kmeans kernel implementation
- 4 overloads:
- standard GMat - for any dimensionality
- GMat without bestLabels initialization
- GArray<Point2f> - for 2D
- GArray<Point3f> - for 3D
- Accuracy tests:
- for every input - 2 tests
1) without initializing. In this case, no comparison with cv::kmeans is done as kmeans uses random auto-initialization
2) with initialization
- in both cases, only 1 attempt is done as after first attempt kmeans initializes bestLabels randomly
* Addressing comments
- bestLabels is returned to its original place among parameters
- checkVector and isPointsVector functions are merged into one, shared between core.hpp & imgproc.hpp by placing it into gmat.hpp (and implementation - to gmat.cpp)
- typos corrected
* addressing comments
- unified names in tests
- const added
- typos
* Addressing comments
- fixed the doc note
- ddepth -> expectedDepth, `< 0 ` -> `== -1`
* Fix unsupported cases of input Mat
- supported: multiple channels, reversed width
- added test cases for those
- added notes in docs
- refactored checkVector to return dimentionality along with quantity
* Addressing comments
- makes chackVector smaller and (maybe) clearer
* Addressing comments
* Addressing comments
- cv::checkVector -> cv::gapi::detail
* Addressing comments
- Changed checkVector: returns bool, quantity & dimensionality as references
* Addressing comments
- Polishing checkVector
- FIXME added
* Addressing discussion
- checkVector: added overload, separate two different functionalities
- depth assert - out of the function
* Addressing comments
- quantity -> amount, dimensionality -> dim
- Fix typos
* Addressing comments
- fix docs
- use 2 variable's definitions instead of one (for all non-trivial variables)
* TBB executor for GAPI
- the sole executor
- unit tests for it
- no usage in the GAPI at the momnet
* TBB executor for GAPI
- introduced new overload of execute to explicitly accept tbb::arena
argument
- added more basic tests
- moved arena creation code into tests
-
* TBB executor for GAPI
- fixed compie errors & warnings
* TBB executor for GAPI
- split all-in-one execute() function into logicaly independant parts
* TBB executor for GAPI
- used util::variant in in the tile_node
* TBB executor for GAPI
- moved copy_through_move to separate header
- rearranged details staff in proper namespaces
- moved all implementation into detail namespace
* TBB executor for GAPI
- fixed build error with TBB 4.4.
- fixed build warnings
* TBB executor for GAPI
- aligned strings width
- fixed spaces in expressions
- fixed english grammar
- minor improvements
* TBB executor for GAPI
- added more comments
- minor improvements
* TBB executor for GAPI
- changed ITT_ prefix for macroses to GAPI_ITT
* TBB executor for GAPI
- no more "unused" warning for GAPI_DbgAssert
- changed local assert macro to man onto GAPI_DbgAssert
* TBB executor for GAPI
- file renamings
- changed local assert macro to man onto GAPI_DbgAsse
* TBB executor for GAPI
- test file renamed
- add more comments
* TBB executor for GAPI
- minor clenups and cosmetic changes
* TBB executor for GAPI
- minor clenups and cosmetic changes
* TBB executor for GAPI
- changed spaces and curly braces alignment
* TBB executor for GAPI
- minor cleanups
* TBB executor for GAPI
- minor cleanups
G-API: ONNX. Support tensor input for CNN with dynamic input
* Added support for dynamic input tensor, refactored one input/output tests
* Added multiple input/output fixture, test for mobilenet
* Removed whitespace
* Removed mistake in inferROI
* Small fixes
* One more fix
* Code cleanup
* Code cleanup X2
* bb rstrt
* Fix review comments
* One more fix review comments
* Mistake
[G-API]: findContours() and boundingRect() Standard Kernels Implementation
* Add findContours() standard kernel
- API and documentation provided:
- as OpenCV provides two overloads whether to calculate hierarchy or not, but they differ by only the output in sight of G-API, two different G-API functions and kernels implemented
- G-API Imgproc documentation divided into more parts according to imgproc module parts
- some typos connected with division into parts corrected
- `GArray<GArray<U>>` overload for `get_out` function provided to coonvert correctly into `vector<vector<U>>`
- OCV backend supported
- accuracy tests provided
* Add boundingRect() standard kernel
- API and documentation provided:
- GOpaque<Rect> used as an output
- as OpenCV provides two possibilities whether to take a gray-scale image or a set of 2D points (`Point2i` or `Point2f` supported), three different overloads of a single G-API function and three kernels implemented
- for a gray-scale image the overload via `GMat`
- for a set of `Point2i` - the one via GArray<`Point2i`>
- set of `Point2f` -> GArray<`Point2f`>
- OCV backend supported
- accuracy tests provided
- comparison function for Rects provided
- some typos in `gapi_tests_common` corrected
* Fix precommit windows warnings
* - Addressing comments:
- split tests
- Fix Windows warnings
* Static_cast for warnings
* - Remove randomness
- Fix unnecessary precision losses
* - Forgot reference for RNG
* addressing comments
* equalizeHist -> no group
* `const` addedin new functions
* Address suggestions:
- Hierarchical -> H
- added cv::GMatDesc::isVectorPoins()
- added support of giving a set of points to boundingRect()
* Addressing comments
- IoU comparison function added for Rects
- isPointsVector moved from a GMatDesc method to a separate function in imgproc.hpp
- enums instead of int
- typos corrected
* Addressing comments
- findContours: Point offset -> GOpaque<Point>
- removed "straight" comparison for Rects, IoU available only
- changed vectors initialization -> fix Debug test run
- Some typos
* added comment for later upgrades
* Fix not to corrupt docs by FIXME
* Addressing commens
- overload without offset added (as a temporary workaround)
- checkMetaForFindingContours -> validateFindingContoursMeta
- added ostream overload for enums used in tests
[G-API]: morphologyEx() Standard Kernel Implementation
* cv::gapi::morphologyEx() kernel
- implemented (without separate 3x3 version)
- tests added: check only different operations, not kernels/borders
* Address comments: add `const` where needed
* Replaced fundamental tyeps -> enums where needed
- added operator<< overload for cv::MorphTypes for tests output
* G-API: Introduce ONNX backend for Inference
- Basic operations are implemented (Infer, -ROI, -List, -List2);
- Implemented automatic preprocessing for ONNX models;
- Test suite is extended with `OPENCV_GAPI_ONNX_MODEL_PATH` env for test data
(test data is an ONNX Model Zoo repo snapshot);
- Fixed kernel lookup logic in core G-API:
- Lookup NN kernels not in the default package, but in the associated
backend's aux package. Now two NN backends can work in the same graph.
- Added Infer SSD demo and a combined ONNX/IE demo;
* G-API/ONNX: Fix some of CMake issues
Co-authored-by: Pashchenkov, Maxim <maxim.pashchenkov@intel.com>