[G-API]: Add Fluid bitwise operations implementation for (GMat, GScalar)
* Added Fluid `bitwise` with `Scalar` + acc.tests
- simple loop implementation for Fluid used (no `hal`);
- `Scalar` is casted to `int` in the beginning
- tests just modified to work with `Scalar`
- expected output in operators' tests fixed (operators can't change Mat's depth)
- `float` `Scalar` `RNG` added, `RNG` reworked (`time` is used now), initialization of test fixtures reworked
- if input or output is `float` Scalar is initialized by `float`
- some problems with Fluid/OCV floating-point comparison difference stashed by `AbsSimilarPoints()` usage, FIXME added
- divide-by-zero is now fixed differently and everywhere
* - Added perf_tests for bitwise_Scalar operations
- due to errors of Fluid floating-point comparison operations, added support of different validation in Cmp perf_tests; added FIXME
- reworked integral initialization of Scalar
* Addressing comments
- NULL -> nullptr
- Scalar convertion moved to the function
- avoid -> avoiding
* Addressing comments
* CV_assert -> GAPI_assert
* Addressed DM comments
- refactored convertScalarForBitwise()
- removed unnecessary braces for switch
* Changed the operators tests
- switch via `enum` implemented
- infrastructure for that refactored
[G-API]: Add four kernels to parse NN outputs & provide information in Streaming scenarios
* Kernels from GL "blue" branch, acc and perf tests
* Code cleanup
* Output fix
* Comment fix
* Added new file for parsers, stylistic corrections
* Added end line
* Namespace fix
* Code cleanup
* nnparsers.hpp moved to gapi/infer/, nnparsers -> parsers
* Removed cv:: from parsers.hpp
[G-API]: Relocation of operators' overloads
* Relocates overloaded operators for `cv::GMat` and `cv::GScalar` to `cv::` namespace
- adds test to check usage of operators compilation
* Add tests for all the operators
* Address comments
G-API: Laplacian and bilateralFilter standard kernels
* Added Laplacian kernel and tests
* Added: Laplacian kernel, Bilateral kernel (CPU, GPU); Performance and accuracy tests for this kernels
* Changed tolerance for GPU test
* boner
* Some changes with alignment; Tests's parameters are the same as for OCV
* Cut tests
* Compressed tests
* Minor changes (rsrt bb)
* Returned types
- kernel added to a cv::gapi::video namespace
- tests to check a kernels (based on cv::video tests for cv::buildOpticalFlowPyramid())
- tests for a combined G-API-pipeline (buildOpticalFlowPyramid() -> calcOpticalFlowPyrLK())
- tests for internal purposes added
- custom function for comparison in tests implemented
- opencv_gapi module is linked with opencv_video module (optional dependency)
- kernels added to a new cv::gapi::video namespace and a brand new files created to provide gapi_video environment
- there are 2 different kernels as G-API should provide GMat AND GArray<GMat> implementation: cv::calcOptFlowPyrLK doesn't calculate pyramids if vector<Mat> is given so just the cast GMat -> GArray<GMat> wouldn't represent all the cv:: functionality
- tests to check both kernels (based on cv::video tests for cv::calcOpticalFlowPyrLK())
- tests for internal purposes added
- vectors<T> comparison in tests implemented
- new (and old too) common test structures refactored to avoid code copypasting
- "modules/gapi/test/common/gapi_video_tests_common.hpp" created to share some code snippets between perf and acc tests and avoid code copypasting
- cv::gapi::goodFeaturesToTrack() kernel is implemented
- tests (for exact check with cv::goodFeaturesToTrack() and for internal cases) are implemented
- a custom comparison function for vectors and a custom test fixture implemented
- some posiible issues as wrong/inexact sorting of two compared vectors are
not taken into account
- initializations of an input Mat using a picture from opencv_extra implemented (function from gapi_streaming_test used)
* G-API-NG/Streaming: Introduced a Streaming API
Now a GComputation can be compiled in a special "streaming" way
and then "played" on a video stream.
Currently only VideoCapture is supported as an input source.
* G-API-NG/Streaming: added threading & real streaming
* G-API-NG/Streaming: Added tests & docs on Copy kernel
- Added very simple pipeline tests, not all data types are covered yet
(in fact, only GMat is tested now);
- Started testing non-OCV backends in the streaming mode;
- Added required fixes to Fluid backend, likely it works OK now;
- Added required fixes to OCL backend, and now it is likely broken
- Also added a UMat-based (OCL) version of Copy kernel
* G-API-NG/Streaming: Added own concurrent queue class
- Used only if TBB is not available
* G-API-NG/Streaming: Fixing various issues
- Added missing header to CMakeLists.txt
- Fixed various CI issues and warnings
* G-API-NG/Streaming: Fixed a compile-time GScalar queue deadlock
- GStreamingExecutor blindly created island's input queues for
compile-time (value-initialized) GScalars which didn't have any
producers, making island actor threads wait there forever
* G-API-NG/Streaming: Dropped own version of Copy kernel
One was added into master already
* G-API-NG/Streaming: Addressed GArray<T> review comments
- Added tests on mov()
- Removed unnecessary changes in garray.hpp
* G-API-NG/Streaming: Added Doxygen comments to new public APIs
Also fixed some other comments in the code
* G-API-NG/Streaming: Removed debug info, added some comments & renamed vars
* G-API-NG/Streaming: Fixed own-vs-cv abstraction leak
- Now every island is triggered with own:: (instead of cv::)
data objects as inputs;
- Changes in Fluid backend required to support cv::Mat/Scalar were
reverted;
* G-API-NG/Streaming: use holds_alternative<> instead of index/index_of test
- Also fixed regression test comments
- Also added metadata check comments for GStreamingCompiled
* G-API-NG/Streaming: Made start()/stop() more robust
- Fixed various possible deadlocks
- Unified the shutdown code
- Added more tests covering different corner cases on start/stop
* G-API-NG/Streaming: Finally fixed Windows crashes
In fact the problem hasn't been Windows-only.
Island thread popped data from queues without preserving the Cmd
objects and without taking the ownership over data acquired so when
islands started to process the data, this data may be already freed.
Linux version worked only by occasion.
* G-API-NG/Streaming: Fixed (I hope so) Windows warnings
* G-API-NG/Streaming: fixed typos in internal comments
- Also added some more explanation on Streaming/OpenCL status
* G-API-NG/Streaming: Added more unit tests on streaming
- Various start()/stop()/setSource() call flow combinations
* G-API-NG/Streaming: Added tests on own concurrent bounded queue
* G-API-NG/Streaming: Added more tests on various data types, + more
- Vector/Scalar passed as input;
- Vector/Scalar passed in-between islands;
- Some more assertions;
- Also fixed a deadlock problem when inputs are mixed (1 constant, 1 stream)
* G-API-NG/Streaming: Added tests on output data types handling
- Vector
- Scalar
* G-API-NG/Streaming: Fixed test issues with IE + Windows warnings
* G-API-NG/Streaming: Decoupled G-API from videoio
- Now the core G-API doesn't use a cv::VideoCapture directly,
it comes in via an abstract interface;
- Polished a little bit the setSource()/start()/stop() semantics,
now setSource() is mandatory before ANY call to start().
* G-API-NG/Streaming: Fix STANDALONE build (errors brought by render)
> Size parameter is changed from int to cv::Size type to allow rectangle kernels
> Kernel creation code is adopted for different kernel sizes to not create only white images on the output
* G-API: fix GOCLExecutable issue with UMat lifetime
Add tests on initialized/uninitialized outputs for all
backends
* Use proper clean-up procedure for magazine
* Rename InitOut test and reduce tested sizes
* Enable output allocation test
G-API: clean up accuracy tests (#14945)
* Delete createOutputMatrices flag
Update the way compile args function is created
Fix instantiation suffix print function
* Update comment (NB)
* Make printable comparison functions
* Use defines instead of objects for compile args
* Remove custom printers, use operator<< overload
* Remove SAME_TYPE and use -1 instead
* Delete createOutputMatrices flag in new tests
* Fix GetParam() printed values
* Update Resize tests: use CompareF object
* Address code review feedback
* Add default cases for operator<< overloads
* change throw to GAPI_Assert
G-API: Add output allocation tests for backends (#15012)
* Add output tests for backends
* Fix large size test: output is in fact reallocated
* Use cv::Mat copies for reallocation tracking
* Separate LargeSizeWithCorrectSubmatrix test
* Rename backed output allocation tests
* Address code review feedback
Update test names
Add illustrative "expect (non-)empty" checks
Rename mat "copy" to mat reference
Add more pointer checks
* Add illustrative checks
G-API planar kernels (#14917)
* Added resizeP with tests
* NV12 planar filters
* fix warnings in ResizeP test
* fix out mat ocv warning
* sz_on - > sz rename
* cpu tests new signature
* try to fix resizeP test
* trailing spaces remove
* doxygen doc fixed
* doxygen minor fix
* more doxygen fixes
* Doxygen corrected and extended after review.
G-API: Parameterized render tests (#14892)
* Init commit
* Add mat size as test parameter
* Add test for text render
* Add test for rect render
* Add tests for line and circle
* Remove old render tests
* Init output mats
* Remove methods input arguments
* Add comment about data loss in BGR2NV12 conversion
* Add edge test cases
* Replace default color for out mats black -> white
G-API: Introduce new approach to write accuracy tests (#14757)
* G-API: Introduce new common accuracy test fixture
* Enable Range<> to Seq<> implicit conversion
* Fix shadowing parameters
* Update license headers
* Rename ALIGNED_TYPE to SAME_TYPE
* Move MkRange to tests
* Fix TODO(agolubev) in test instantiations
* Squash simple fixture declarations in one line
* Remove unused line
* Fix Windows issues with macro expansion
* Choose between 1 or 2 matrix initialization
* Redesign common class behavior
Use "views" for GetParam() provided by GTest
base class instead of doing segregation
(with copy!) of common and specific parameters:
request common or specific parameter directly
by index from GetParam()-returned parameters
* Refine user-level API and usage of new test model
* Fix -fpermissive errors
* Remove unnecessary init calls
* Replace GCompileArgs member variable with func ptr
* Rename initMatsRandN to make its behavior explicit
Rename initMatsRandN to initMatrixRandN to eliminate confusion:
initMatsRandN only initialized first matrix (similarly to
initMatrixRandU)
* Fix common of initNothing
* Update copyright dates in missed files
* Add check for specific parameters
* Fix coment stlye
G-API: Add parameters alpha and beta in tests on ConvertTo kernel (#14684)
* Add parameters alpha and beta in tests on ConvertTo kernel
* Change tolerance function
* Reduce number of test cases
G-API: Kernel package design (#13851)
* Remove cv::unite_policy from API
* Add check that all id in kernel package are unique
* Refactor checker id procedure
* Remove cv::gapi::GLookupOrder from API
* Implement cv::gapi::use_only
* Fix samples
* Fix docs
* Fix comments to review
* Remove unite_policy
* Fix GKernelPackage::backends()
* Fix comments to review
* Fix all_unique
* Fix comments to review
* Fix comments to review
* Remove out of date tests
* Add Sobel kernel which returns both dx and dy
* Splice dx and dy and extend add_border function
Also change some tests parameters
* Add borderValue parameter in test
* Introduces fluid kernel for sobelxy
Adds tests (basic and performance) on new backend
* Introduces BufHelper struct for some arithmetic
GAPI: Add normalize kernel in G-API (#13721)
* Add normalize kernel in G-API
In addition add several tests on new kernel
* Fix indentations and normalize test structure
* Move normalize kernel from imgproc to core
Set default parameter ddepth to -1
* Fix alignment
More fixes for G-API tests (#13251)
* scalar comparator and more fixes for tests
* add weighted aligned
* white space
* more white space
* Add weighted test accuracy check enabled
* custom OpenCL G-API kernel draft
* clean up and warnings fix
* more warnings
* white space
* new blank line at the EOF removed
* HAVE_OPENCL guard
* remove unnecessary ocl API call
* remove sum test workaround
* check if opencl activated
* fix std::str warning
* CPU fall back for symm7x7
* gpu test kernel draft
* adjust have opencl guard
* more guards
* one more attempt to adjust guards
* empty stub files and kernel source files creation in the test directory
* try to force auto generation
* one more attempt to force build
* remove symm7x7 custom from gapi module
* looks like that this version works properly on Win desktop
* clean up
* more clean up
* address some suggestions from Dmitry's review
* const kernel coefficients
* CV_Error in kernel + try to fix cpu fallback
* CV_Error_ instead CV_Error
* everything in one gapi_gpu_test.cpp
* fix warning
* remove kernel generation, add kernel string
* avoid generated code and ocl internal namespace
* fix misprint
* c_str