Commit Graph

707 Commits

Author SHA1 Message Date
Anatoliy Talamanov
dc31e20925
Merge pull request #19709 from TolyaTalamanov:at/async-inferlist-infer2
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
2021-03-18 23:33:19 +03:00
Anastasiya Pronina
0f4b27c300 Upstream fixes from release 2021-03-11 23:27:23 +03:00
Orest Chura
c1a57a10a4
Merge pull request #19542 from OrestChura:oc/BGSub_ptest
[G-API]: Performance tests for BackgroundSubtractor

* Perf.Tests for BackgroundSubtractor kernel

* Fix CI

* Addressing comments

* Addressing a comment

* Test cycle and validation changes

* Addressing  comment

* Added assert
2021-03-10 17:37:55 +00:00
Maxim Pashchenkov
12fa8d8444
Merge pull request #18240 from mpashchenkov:mp/ocv-gapi-input-cnn-reshape
[G-API]: Adding reshape for CNN input.

* Added CNN input IE reshape

* rbs

* Added unordered_set instead vector

* Alignment
2021-03-10 16:06:46 +00:00
Alexey Smirnov
ddd2447192
Merge pull request #19617 from smirnov-alexey:as/extend_kernel_package_api
G-API: Extend GKernelPackage and serialization API

* Extend GKernelPackage API

* Adding tests

* Extend serialization API

* Address review comments
2021-03-10 15:58:34 +00:00
Alexander Alekhin
16c3522f4e static analyzer issues 2021-03-03 09:18:40 +00:00
Anatoliy Talamanov
eb82ba36a3
Merge pull request #19322 from TolyaTalamanov:at/python-callbacks
[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
2021-03-01 15:52:11 +00:00
Anatoliy Talamanov
28c064f345
Merge pull request #19487 from TolyaTalamanov:at/support-nireq-option
[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
2021-02-26 12:53:30 +00:00
Orest Chura
21b2e33ebb
Merge pull request #19497 from OrestChura:oc/kmeans_ptest
[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
2021-02-25 21:58:52 +00:00
Andrey Golubev
b50c1ba9e6
Merge pull request #19496 from andrey-golubev:master
[G-API] Change memory measurement statistic in Fluid tests

* Change memory measurement statistic in Fluid tests

* Delete irrelevant comment
2021-02-17 15:23:29 +00:00
Anatoliy Talamanov
413c056504
Merge pull request #19533 from TolyaTalamanov:at/async-requests-hotfix
[G-API] Async infer request hotfix

* Fix hanging on empty roi list

* Prevent possible data race

* Clean up
2021-02-17 14:43:18 +03:00
Alexander Alekhin
928d5ae315
Merge pull request #19528 from smirnov-alexey:as/gapi_optional_fix 2021-02-15 23:00:11 +03:00
Dmitry Budnikov
0cdbdfdf9f
Merge pull request #19516 from dbudniko:dbudniko/gapi_render_frame_cpu
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
2021-02-15 19:57:22 +00:00
Smirnov Alexey
fdd5c26eb8 Fix optional move constructor 2021-02-15 00:20:08 +03:00
Anatoliy Talamanov
ba8d20e9ae
Merge pull request #19425 from TolyaTalamanov:at/async-infer
[G-API] Implement async infer

* Implement async infer

* Fix typo
2021-02-12 12:28:37 +00:00
Dmitry Budnikov
1162cef978
Merge pull request #19495 from dbudniko:gapi_media_frame_size
Add Media Frame size function and corresponding tests

* add media frame size and tests

* Address comments from Ruslan and Asya
2021-02-10 19:23:54 +00:00
Anatoliy Talamanov
c527b3cefd
Merge pull request #19319 from TolyaTalamanov:at/introduce-gopaque-garray-for-python
[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>
2021-02-09 13:55:16 +00:00
Anna Khakimova
7ab3a80d0a
Merge pull request #19233 from anna-khakimova:ak/simd_absdiffc
GAPI: SIMD optimization for AbsDiffC kernel

* SIMD optimization for AbsDiffC kernel

* Applied comments

* Applying comments and refactoring: Remove new univ intrinsics.

* Performance experiment

* Applied comments.Step2

* Applied comments. Step3
2021-02-08 13:02:35 +00:00
Anna Khakimova
fb3b297369
Merge pull request #18466 from anna-khakimova:ak/simd_addw_bitwise
GAPI: SIMD optimization for AddWeighted kernel.

* Add, sub, absdiff kernels optimization

* AddW kernel

* And, or kernels

* AddWeighted refactoring and SIMD opt for AbsDiffC kernel

* Remove simd opt of AbsDiffC kernel

* Refactoring

* Applied comments

* Refactoring.Step2

* Applied comments.Step2
2021-02-05 14:21:42 +00:00
Maxim Pashchenkov
e250bae356
Merge pull request #18943 from mpashchenkov:mp/onnx-padding
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
2021-01-29 14:53:42 +00:00
Maksim Shabunin
694fe3e7d2 core, gapi: supported build with oneTBB 2021 2021-01-29 02:38:05 +03:00
Orest Chura
e982ad2284
Merge pull request #19337 from OrestChura:oc/fLine_fCont_perftests
[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
2021-01-24 15:41:04 +00:00
Alexander Alekhin
7a790d0d35 Merge pull request #19355 from alalek:fixup_19050 2021-01-20 22:46:05 +00:00
Alexander Alekhin
1d5589296e gapi: fix build warning 2021-01-19 22:10:05 +00:00
Alexander Alekhin
49127b6a26 Merge pull request #19331 from alalek:gapi_lazy_initialization_kernel_intrinsics 2021-01-17 19:20:18 +00:00
Alexander Alekhin
255853a819 Merge pull request #19326 from alalek:gapi_async_service_lazy_initialization 2021-01-17 19:19:48 +00:00
Alexander Alekhin
10ef76905c gapi: avoid global static initializers
- use lazy on-demand initialization
2021-01-15 17:22:03 +00:00
Alexander Alekhin
e43375cc68 gapi(async): use lazy-initialization of async_service singleton 2021-01-15 04:47:54 +00:00
Alexander Alekhin
5202186681 Merge pull request #19050 from anton-potapov:fix_range_var_clang_warnings 2021-01-14 10:44:42 +00:00
Orest Chura
d34a34f328
Merge pull request #19215 from OrestChura:oc/bRect_perftests
[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
2021-01-12 21:33:05 +00:00
Maxim Pashchenkov
3eaeca58da
Merge pull request #18902 from mpashchenkov:mp/onnx-const-input
G-API: ONNX. Const input

* Added const input for ONNX backend

* Returned initMatrixRandu, added some comments, rebase
2021-01-12 21:31:15 +00:00
Your Name
646a023ff4 Fix building opencv using gcc 11.x #19244
Add missing `#include <thread>` in modules/gapi/test/test_precomp.hpp
2021-01-02 17:43:11 +00:00
Alexander Alekhin
701744c621 Merge pull request #19191 from OrestChura:oc/morphEx_perftest 2020-12-31 10:32:51 +00:00
Anatoliy Talamanov
244511e434
Merge pull request #19205 from TolyaTalamanov:at/remove-streamingbackend-export
[G-API] Fix streaming kernels in standalone

* Move streaming kernels from public header

* Add streaming backend to standalone
2020-12-24 16:46:10 +00:00
Maxim Pashchenkov
656b20a169
Merge pull request #19070 from mpashchenkov:mp/onnx-gframe
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
2020-12-24 13:55:33 +00:00
Alexander Alekhin
50bb344a9d Merge pull request #19206 from OrestChura:oc/fix_plugconfparams_n_align 2020-12-24 13:54:02 +00:00
OrestChura
e80f6624ed - Replace plugin config parameters with the working ones
- refactor for consistency
2020-12-23 17:06:45 +03:00
OrestChura
e2930c7898 Perf test for morphologyEx 2020-12-22 00:03:06 +03:00
Anastasiya Pronina
cdbea6f0a0 GFrame as internal node in GExecutor 2020-12-21 14:06:47 +03:00
Alexander Alekhin
3e9158acd6 Merge pull request #19128 from asmorkalov:as/gapi_phase_tolerance 2020-12-18 13:43:07 +00:00
Alexander Smorkalov
009860e98a arm64 fix: Replaced float value strong equal checks with check with tolerance. 2020-12-18 14:57:51 +03:00
Alexander Alekhin
7d7ab462d6 Merge pull request #19130 from dmatveev:dm/fix_docs_ocv451 2020-12-16 20:26:41 +00:00
Ruslan Garnov
e06a497c7c Added format.hpp include to core.hpp 2020-12-16 19:29:06 +03:00
Ruslan Garnov
f7cab121fe
Merge pull request #19112 from rgarnov:rg/generic_copy_kernel
Generic copy kernel

* Moved RMat wrapping of cv::Mats to StreamingInput

* Generalized GCopy kernel

* Generic GCopy kernel: applied review comments
2020-12-16 11:18:08 +00:00
Dmitry Matveev
b74804f61f G-API: Fix various Doxygen isses for the 4.5.1 release 2020-12-15 23:21:46 +03:00
Anatoliy Talamanov
50baf76cc2
Merge pull request #19107 from TolyaTalamanov:at/hotfix-gstreamingbackend
[G-API] GStreamingBackend hotfix

* GStreamingBackend hotfix

* Fix comments to review

* Add strides

* Removew while loop inside actor
2020-12-15 18:05:26 +00:00
Orest Chura
fcdd69fd97
Merge pull request #19103 from OrestChura:oc/cvtI420_perftests
[G-API]: Performance tests for color conversion kernels

* Performance tests for 5 new color conversion kernels:
 - BGR2RGB
 - BGR2I420
 - RGB2I420
 - I4202BGR
 - I4202RGB

* Addressing comment
2020-12-14 22:45:41 +00:00
Anna Khakimova
46e275dfe4
Merge pull request #18869 from anna-khakimova:ak/kalman
* GAPI: Kalman filter stateful kernel

* Applied comments

* Applied comments. Second iteration

* Add overload without control vector

* Remove structure constructor and dimension fields.

* Add sample as test

* Remove visualization from test-sample + correct doxygen comments

* Applied comments.
2020-12-14 08:56:37 +00:00
OrestChura
79b4dc14a3 Fix new streaming tests for CI 2020-12-11 20:26:39 +03:00
Anatoliy Talamanov
8ed0fc6f0c
Merge pull request #19009 from TolyaTalamanov:at/media-frame-copy
[G-API] GStreamingBackend

* Snapshot

* Implement StreamingBackend

* Refactoring

* Refactoring 2

* Clean up

* Add missing functionality to support MediaFrame as output

* Partially address review comments

* Fix build

* Implement reshape for gstreamingbackend and add a test on it

* Address more comments

* Add format.hpp to gapi.hpp

* Fix debug build

* Address review comments

Co-authored-by: Smirnov Alexey <alexey.smirnov@intel.com>
2020-12-11 16:29:34 +00:00
Anatoliy Talamanov
a55150b1bc
Merge pull request #19002 from TolyaTalamanov:at/infer_gframe
[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>
2020-12-09 14:00:56 +00:00
Orest Chura
f41327df0c
Merge pull request #18969 from OrestChura:oc/fix_notes_returns
[G-API] Multiple return/note fix

* Fix doxygen:
 - multiple return
 - multiple notes

* Addressing comments
 - divide description of split(merge)3/4
2020-12-08 15:44:33 +00:00
Anton Potapov
da5bfefc78 GAPI: fix Clang warning for dangling references in for loop variable 2020-12-08 14:18:46 +03:00
OrestChura
02488c5cbb Moved G-API output to the first place of arguments in comparison functions 2020-12-08 02:44:01 +03:00
Alexander Alekhin
d1b5a78171 build warnings
- GCC 4.8.5 / CentOS 7
2020-12-05 20:08:29 +00:00
Alexander Alekhin
ef0eed8d3c Merge pull request #18981 from anton-potapov:fix_gnet_package_compilation_std_17 2020-12-01 17:42:12 +00:00
Alexander Alekhin
3f686a6ab8 Merge pull request #18967 from anton-potapov:reuse_move_through_copy 2020-12-01 12:57:06 +00:00
Anton Potapov
eb6d8e6af2 TBB executor for GAPI: fix race consition in Async test
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
2020-12-01 11:12:36 +03:00
Anton Potapov
446f344818 GAPI: fix C++17 compilation errors in GNetPackage (fixes #17385)
- 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
2020-12-01 09:34:53 +03:00
Anna Khakimova
56568dae31
Merge pull request #18674 from anna-khakimova:ak/backgroundSubtractor
GAPI: New BackgroundSubtractor stateful kernel

* New BackgroundSubtractorMOG2 kernel

* Add BS parameters
2020-11-30 18:09:42 +00:00
Anton Potapov
74b6646737 GAPI: reuse copy_through_move_t in the gasync.cpp file 2020-11-30 16:26:54 +03:00
Orest Chura
986ad4ff06
Merge pull request #18857 from OrestChura:oc/kmeans
[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)
2020-11-30 13:18:43 +00:00
Anton Potapov
95ce8f45ea
Merge pull request #17851 from anton-potapov:sole_tbb_executor
* 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
2020-11-30 13:15:13 +00:00
Anatoliy Talamanov
7521f207b1
Merge pull request #18762 from TolyaTalamanov:at/support-garray
[G-API] Wrap GArray

* Wrap GArray for output

* Collect in/out info in graph

* Add imgproc tests

* Add cv::Point2f

* Update test_gapi_imgproc.py

* Fix comments to review
2020-11-27 17:39:46 +00:00
Alexander Alekhin
23be514886 Merge pull request #18935 from rgarnov:rg/remove_double_handle_new_stream_call 2020-11-27 14:05:01 +00:00
Alexander Alekhin
f90673ef4c Merge pull request #18938 from alalek:issue_18865 2020-11-27 08:55:49 +00:00
Alexander Alekhin
5c987e4c75
Merge pull request #18924 from alalek:4.x-xcode12
(4.x) build: Xcode 12 support

* build: xcode 12 support, cmake fixes

* ts: eliminate clang 11 warnigns

* 3rdparty: clang 11 warnings

* features2d: eliminate build warnings

* test: warnings

* gapi: warnings from 18928
2020-11-26 22:56:59 +00:00
Alexander Alekhin
7efc0011fd gapi(test): avoid anonymous namespace types as template parameters 2020-11-26 21:37:54 +00:00
Ruslan Garnov
ece14eae24 Removed redundant call of handleNewStream in streaming executor 2020-11-26 22:46:26 +03:00
Alexander Alekhin
7afd48658c gapi: eliminate std::rand() and RAND_MAX from tests 2020-11-26 10:20:02 +00:00
Maxim Pashchenkov
19d825aa16
Merge pull request #18904 from mpashchenkov:mp/ocv-gapi-skip-gm-tests
G-API: Adding skip for GraphMeta tests

* Added skip for GraphMeta tests

* Removed false
2020-11-24 17:51:02 +00:00
Maxim Pashchenkov
94e8a08d1d
Merge pull request #18819 from mpashchenkov:mp/ocv-gapi-skip-centos-tests
G-API: Adding a skip for failed streaming tests

* Skip tests

* Pathfinding

* Pathfinding part 2

* Pathfinding part 3

* Fix review comments
2020-11-17 22:57:57 +00:00
Orest Chura
2c6a2f0381
Merge pull request #18790 from OrestChura:oc/fitLine
[G-API]: fitLine() Standard Kernel Implementation

* fitLine API (Mat, 32S, 32F) (2D, 3D)

* Complete fitLine kernel & accuracy tests
 - initialization for vectors of cv::Point and Mats via vectors added
 - comparison functions for Vec<T, n> added:
   - straight average difference comparison
   - comparison by equasion for 2d line
 - stream overload for cv::DistanceTypes added

* Fix precommit warnings

* Fix docs

* Address comments
Try to fix warning

* Disable warning in tests
2020-11-17 15:59:59 +00:00
Dmitry Matveev
b866d0dc38
Merge pull request #18793 from dmatveev:dm/in_graph_metadata
G-API: Introduce runtime in-graph metadata

* G-API: In-graph metadata -- initial implementation

* G-API: Finish the in-graph metadata implementation for Streaming

* G-API: Fix standalone build & warnings for in-graph metadata

* G-API: In-graph meta -- fixed review comments

* G-API: Fix issues with desync causing failing tests
2020-11-17 14:04:19 +00:00
Maxim Pashchenkov
06477743ab
Merge pull request #18744 from mpashchenkov:mp/onnx-dynamic-input-tensor
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
2020-11-16 19:24:55 +00:00
Alexander Alekhin
e4a9ad1730 Merge pull request #18688 from rgarnov:rg/add_gmatdesc_s11n_nd_test 2020-11-16 19:18:38 +00:00
Alexander Alekhin
d0b6637c1d Merge pull request #18720 from rgarnov:rg/nd_rmat_view 2020-11-16 12:05:08 +00:00
Ruslan Garnov
58268b6eef Added ND GMatDesc serialization test 2020-11-16 13:03:18 +03:00
Alexander Alekhin
41e906d1a4 Merge pull request #18729 from rgarnov:rg/extend_parse_yolo 2020-11-13 15:18:55 +00:00
Ruslan Garnov
0e4b5b88dc Added support of 1x1x1xN input for parseYolo 2020-11-13 16:20:45 +03:00
Ruslan Garnov
724001aa0f Added multidimensional RMat::View steps 2020-11-12 13:15:02 +03:00
Alexander Alekhin
5564d73071 Merge pull request #18770 from mshabunin:fix-kw-1 2020-11-11 16:14:15 +00:00
Orest Chura
3fc1c73064
Merge pull request #18510 from OrestChura:oc/boundingRect
[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
2020-11-11 12:13:10 +00:00
Maksim Shabunin
1b0dca9c2c Fix issues found by static analysis 2020-11-11 13:59:01 +03:00
Orest Chura
5f1ca33c6f
Merge pull request #18652 from OrestChura:oc/morphologyEx
[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
2020-11-10 18:57:52 +00:00
Alexander Alekhin
e12adcdf08 Merge pull request #18742 from AsyaPronina:asyadev/fix_preprocessing_for_import_network 2020-11-06 16:39:03 +00:00
Anastasiya Pronina
ec5065eb53 Fixed Inputs/OutputsDataMap conversion 2020-11-06 15:43:56 +03:00
Ruslan Garnov
d9877efe1d Added rmat.cpp and media.cpp to files being built in standalone 2020-11-06 01:59:09 +03:00
Alexander Alekhin
07736c912f Merge pull request #18719 from dmatveev:dm/upstream_desync_fix 2020-11-05 11:20:08 +00:00
Dmitry Matveev
a110ede0a2
Merge pull request #18716 from dmatveev:dm/upstream_onnx
* 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>
2020-11-03 18:39:16 +00:00
Anatoliy Talamanov
2a3cdba724
Merge pull request #18701 from TolyaTalamanov:at/introduce-config-for-ie-params
Expand ie::Params to support config

* Add config to IE params

* Add test

* Remove comments from tests

* Rename to pluginConfig

* Add one more overloads for pluginConfig

* Add more tests
2020-11-03 17:47:05 +00:00
Dmitry Matveev
099ad1a259 G-API: Desync -- fix the queue saturation problem
Set queue size = 1 to Copy island right after the desync.
In this case, Copy won't read more data from a "last_written"
container than required, while feeding the desynchronized path.

Sometimes Copy don't get fused into an island and behaves
on its own -- in this case, it reads more data in advance
so the slow (desync) part actually processes some data in-sync
(more than actually required)
2020-11-03 14:26:32 +03:00
AsyaPronina
48ccbe39b4 Changed behaviour of cv::gapi::serialize, cv::gapi::deserialize for GCompileArgs
- cv::gapi::serialize bypasses compile arguments which have no S11N specialization with serialize/deserialize callbacks for underlying types
- cv::gapi::deserialize can accept arbitraty number of serialized compile args in a stream but will return only those which are requested by user via template parameter pack if they are presented in the stream. If some or all of them are not presented cv::gapi::deserialize will ignore and return only those which are presented
- cv::gapi::deserialize can accept only types which can be deserialized (have S11N<T> specialization with the user callbacks)
- Added cv::gapi::s11n::detail::has_S11N_spec<T> trait to separate compile arguments which have S11N<T> specialization with the user callbacks
2020-11-02 18:55:54 +03:00
Alexander Alekhin
691c3d1e3c Merge pull request #18673 from dmatveev:dm/upstream_desync 2020-10-29 18:55:24 +00:00
Dmitry Matveev
ca8bb8d053 G-API: Introduce streaming::desync and infer(ROI)
- desync() is a new (and for now, the only one) intrinsic
  which splits the graph execution into asynchronous parts
  when running in Streaming mode;
- desync() makes no effect when compiling in Traditional mode;
- Added tests on desync() working in various scenarios;
- Extended GStreamingExecutor to support desync(); also extended
  GStreamingCompiled() with a new version of pull() returning a
  vector of optional values;
- Fixed various issues with storing the type information & proper
  construction callbacks for GArray<> and GOpaque;

- Introduced a new infer(Roi,GMat) overload with a sample;

- Introduced an internal API for Islands to control fusion
  procedure (to fuse or not to fuse);
- Introduced handleStopStream() callback for island executables;
- Added GCompileArgs to metadata of the graph (required for other
  features).
2020-10-29 20:19:15 +03:00
Alexander Alekhin
209f6cdcc7 Merge pull request #18671 from rgarnov:rg/rmat_and_s11n_fixes 2020-10-28 10:38:56 +00:00
Anatoliy Talamanov
3d4563913d
Merge pull request #18600 from TolyaTalamanov:at/implement-render-using-stateful
[G-API] Implement render using stateful kernel

* Implement render using stateful kernel

* Move freetype to backends folder

* Fix freetype compilation

* Fix freetype smoke test

* Fix comments

* Refactoring
2020-10-26 19:55:43 +00:00
Anatoliy Talamanov
93c3775927
Merge pull request #18491 from TolyaTalamanov:at/wrap-inference
[G-API] Wrap cv::gapi::infer<Generic> into python

* Introduce generic infer

* Move Generic to infer.hpp

* Removew num_outs

* Fix windows warnings

* Fix comments to review

* Fix doxygen

* Add comment

* Fix comments to review

* Wrap inference to python

* Add default ctor to Params

* Add test

* Fix clang build

* Implement GInferInputs/GInferOutputs as Pimpl

* Add checkIEtarget to infer test

* Fix path

* Supress warning

* Use getAvailableDevices insted of checkIETarget

* Move PyParams to bindings_ie

* Add namespace

* Update CMakeLists.txt
2020-10-26 19:02:03 +00:00
Ruslan Garnov
afbf383ba3 Minor s11n and RMat improvements:
- Changed descr_of(RMat) to use canDescribeHelper to correctly handle planar case
 - Added export of createMat
 - Added setting of Storage::INPUT and Storage::OUTPUT in deserialization routine of GComputation
2020-10-26 15:48:27 +03:00
Alexander Alekhin
bd40952097 Merge pull request #18622 from TolyaTalamanov:at/fix-namespace 2020-10-22 17:43:23 +00:00
Dmitry Matveev
95ff928228 G-API: Introduced a Text Detection sample
This sample models the Text Detection demo from OMZ:
https://github.com/openvinotoolkit/open_model_zoo/tree/2020.4/demos/text_detection_demo

Also: renamed cv::gapi::size() to cv::gapi::streaming::size()
2020-10-21 17:25:56 +03:00
Anna Khakimova
510dc17c2e
Merge pull request #18338 from anna-khakimova:ak/opt_arithm_kernel
Univ Intrinsics implementation of Add, Sub, Absdiff kernels

* Add, sub, absdiff kernels optimization

* avoid unused conditions

* add conditions for tail processing
2020-10-21 10:52:03 +00:00
Alexey Smirnov
2669d8ce73
Merge pull request #18584 from smirnov-alexey:as/rmat_s11n
[G-API]: Introduce RMat serialization API

* Introduce RMat serialization API

* Fix RunArgs deserialization

* Address review comments

* Export operators for GRunArg serialization

* Fix warning and add handling for RMat in bind()

* Update CMakeLists.txt

* G-API: RMat S11N -- probably fix the Windows warning
2020-10-20 20:58:54 +00:00
Anatoliy Talamanov
49d5960a32 Fix namespace for OCVCallHelper 2020-10-19 14:19:17 +03:00
Dmitry Budnikov
dcfa23d5d2 KW fixes 2020-10-19 13:46:23 +03:00
Anatoliy Talamanov
8bf451a3e0
Merge pull request #18542 from TolyaTalamanov:at/import-network
[G-API] Support ImportNetwork for cv::gapi::infer

* wip

* Refactoring

* Fix comments to review

* Fix warning

Co-authored-by: Ruslan Garnov <ruslan.garnov@intel.com>
2020-10-15 13:59:02 +00:00
Anatoliy Talamanov
0d3e05f9b3
Merge pull request #18493 from TolyaTalamanov:at/wrap-streaming
[G-API Wrap streaming

* Wrap streaming

* Fix build

* Add comments

* Remove comment

* Fix comments to review

* Add test for python pull overload
2020-10-14 22:21:09 +00:00
Alexander Alekhin
06a09d5991 Merge pull request #18583 from weltonrodrigo:remap_inter_doc_4 2020-10-14 18:06:59 +00:00
Anna Khakimova
4c048a487e
Merge pull request #18516 from anna-khakimova:ak/bgr2rgb
GAPI: Addition new Color conversion kernels to CPU backend.

* Add BGR2RGB kernel to CPU backend

* Add BGR2I420 and RGB2I420 kernels to CPU backend

* Add I4202BGR and I4202RGB kernels to CPU backend
2020-10-14 16:51:35 +00:00
Welton Rodrigo Torres Nascimento
09a62012b2 Doc update. INTER_LINEAR_EXACT unsupported in remap 2020-10-14 11:09:12 -03:00
maxint
2dd2d60955 Fix warnings: "-Wrange-loop-construct" in gapi 2020-10-10 07:13:23 +00:00
Anatoliy Talamanov
76be3529f4
Merge pull request #18419 from TolyaTalamanov:at/generic-inference
[G-API] Introduce generic version for cv::gapi::infer

* Introduce generic infer

* Move Generic to infer.hpp

* Removew num_outs

* Fix windows warnings

* Fix comments to review

* Fix doxygen

* Add comment

* Fix comments to review

* standoalone ifdef in ginfer.cpp

* Fix test
2020-10-08 22:12:25 +00:00
Anastasiya(Asya) Pronina
af2f8c69f0
Merge pull request #18496 from AsyaPronina:comp_args_serialization
Serialization && deserialization for compile arguments

* Initial stub

* Add test on serialization of a custom type

* Namespaces rework

* Fix isSupported in test struct

* Fix clang lookup issue

* Initial implementation

* Drop the isSupported flag

* Initial implementation

* Removed internal header inclusion

* Switched to public API

* Implemented serialization

* Adding desirialize: WIP

* Fixed merge errors

* Implemented

* Final polishing

* Addressed review comments and added debug throw

* Added FluidROI test

* Polishing

* Polishing

* Polishing

* Polishing

* Polishing

* Updated CMakeLists.txt

* Fixed comments

* Addressed review comments

* Removed decay from deserialize_arg

* Addressed review comments

* Removed extra inclusion

* Fixed Win64 warning

* Update gcommon.hpp

* Update serialization.cpp

* Update gcommon.hpp

* gapi: drop GAPI_EXPORTS_W_SIMPLE from GCompileArg

Co-authored-by: Smirnov Alexey <alexey.smirnov@intel.com>
Co-authored-by: AsyaPronina <155jj@mail.ru>
2020-10-07 21:48:49 +00:00
Anatoliy Talamanov
537494f4dd
Merge pull request #18512 from TolyaTalamanov:at/fix-untyped-np-array-for-gapi-python
[G-API] Numpy array with int64 failed in cv.gin

* Fix bug with numpy array precision in G-API python

* Fix comments to review
2020-10-07 20:38:59 +00:00
Dmitry Matveev
050c960dfc G-API: Integrated cv::MediaFrame as I/O type + CPU backend 2020-10-05 20:21:15 +03:00
Ruslan Garnov
5224d016e9
Merge pull request #18339 from rgarnov:rg/rmat_integration
[GAPI] RMat integration into the framework

* RMat integration

* Added initialization of input mat in GArray initialization tests

* Fixed klocwork warnings in RMat tests, changed argument order in EXPECT_EQ
2020-10-04 18:57:41 +00:00
Alexey Smirnov
a3e7c2d8e3
Merge pull request #18452 from smirnov-alexey:as/export_serialization_api
[G-API] Export a part of serialization interface

* Initial stub

* Add test on serialization of a custom type

* Namespaces rework

* Fix isSupported in test struct

* Fix clang build and rework namespaces

* Remove redundant header
2020-10-01 18:11:23 +00:00
Orest Chura
40b8b58bc6
Merge pull request #18451 from OrestChura:oc/count_non_zero
[G-API]: countNonZero() Standard Kernel Implementation

* Add countNonZero() standard kernel
 - API and documentation provided
 - OCV backend supported
 - accuracy and performance tests provided
 - some refactoring of related documentation done

* Fix GOpaque functionality for OCL Backend
 - test for OCL Opaque usage providied

* countNonZero for GPU
 - OCL Backend implementation for countNonZero() added
 - tests provided

* Addressing comments
2020-09-30 16:07:35 +00:00
Dmitry Matveev
43d306fc2d
Merge pull request #18415 from dmatveev:dm/gframe_01_new_host_type
* G-API: Introduce cv::MediaFrame, a host type for cv::GFrame

* G-API: RMat -- address review comments
2020-09-29 19:19:54 +00:00
Anatoliy Talamanov
e998d89e88 Implement cv.gin and multiple output for python 2020-09-29 13:45:40 +03:00
Alexey Smirnov
8da1b9aafa
Merge pull request #18401 from smirnov-alexey:as/serialization_more_types
[G-API] Add support for more types serialization

* Support more types

* Add std::string support

* Fix GOpaque and gin interaction

* Fix tests on kind

* Make map serialization support templates and add tests on kind
2020-09-28 18:20:04 +00:00
Dmitry Matveev
4dbb8ac4b2
Merge pull request #18387 from dmatveev:dm/slides_upd_44
Update G-API slides to OpenCV 4.4

* G-API: Updated slides to v4.4 (+ sample)

* Slight formatting changes + Python API page

* Some more updates to slides:

- Added more info on 4.2 and 4.4 versions
- Added explanation on Operations and their functional wrappers
2020-09-26 20:59:26 +00:00
Alexander Alekhin
118218754b Merge pull request #18408 from rgarnov:rg/fix_standalone_windows_build 2020-09-25 15:28:51 +00:00
Alexander Alekhin
0dc28d3446 Merge pull request #18397 from mshabunin:fix-gapi-test 2020-09-24 22:36:53 +00:00
Ruslan Garnov
50657e2324 Added linkage of s11n required libs in standalone 2020-09-24 17:44:58 +03:00
Dmitry Matveev
e937d9b559
Merge pull request #18391 from dmatveev:dm/gframe_00_new_type
* G-API: Make GFrame a new (distinct) G-type, not an alias to GMat

- The underlying host type is still cv::Mat, a new cv::MediaFrame
  type is to be added as a separate PR

* Fix warnings and review comments

- Somewhow there was a switch() without a default: clause in Fluid
2020-09-23 18:25:14 +00:00
Maksim Shabunin
7186c46377 gapi: fix building wihout video module, fix infer test 2020-09-23 16:51:36 +03:00
AsyaPronina
3ea9022c5f Disabled failed test instantiations 2020-09-22 15:45:31 +03:00
Alexey Smirnov
f6aa9ac304
Merge pull request #18292 from smirnov-alexey:as/osd_serialization
[G-API]: Support render primitives serialization

* Add GOpaque and GArray serialization support

* Address review comments

* Remove holds() method

* Add serialization mechanism for render primitives

* Fix standalone mode

* Fix wchar_t error on win64

* Fix assert on windows

* Address review comments

* Fix GArray and GOpaque reset() method to store proper kind

* Reset wchar before deserializing it

* Fix wchar_t cross-platform issue

* Address review comments

* Fix wchar_t serialization and tests

* Remove FText serialization
2020-09-21 19:08:58 +00:00
Orest Chura
95fd61c9b4
Merge pull request #18261 from OrestChura:oc/fluid_convert_mask
[G-API]: Fluid: add mask, extend convertTo for CV_16S

* Add Fluid `mask` kernel + Acc. and Perf. tests
 - simple cycle implementation with restrictions on mask type and input/output type like in OCV/GPU kernels (mask - CV_8UC1 only, input/output - CV_8UC1, CV_16UC1, CV_16SC1)

* Added convertions from/to 16S

* `convertTo()` perf tests refactoring
 - add testing of `alpha` and `beta` parameters
 - fixed unreliable comparison
 - added instances to OCV, Fluid and GPU tests according to the changes

* Addressing comments
 - fixed multiple-channel mistake - prohibited multiple-channeling

* Reduced perf tests
2020-09-18 14:24:34 +00:00
Orest Chura
d1cdef596c
Merge pull request #18257 from OrestChura:oc/fluid_operator_bitwise_and_scalar
[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
2020-09-18 13:44:47 +00:00
Alexander Alekhin
7163781639
Merge pull request #18343 from TolyaTalamanov:at/support-return-tuple
[G-API] Support std::tuple for return type
2020-09-18 16:38:37 +03:00
Maxim Pashchenkov
a63cee2139
Merge pull request #18287 from mpashchenkov:mp/ocv-gapi-blue-branch
[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
2020-09-18 13:31:16 +00:00
Maxim Pashchenkov
830d8d6b75
Merge pull request #18196 from mpashchenkov:mp/garray-initialization
[G-API]: Add GArray initialization support

* Added GArray initialization (CONST_VALUE, GScalar analog) and test for this

* Whitespaces

* And one more space

* Trailing whitespace

* Test name changed. Build with magic commands.

* GArray works with rvalue initialization

* Code cleanup

* Ternary operator in the initialization list.
2020-09-18 13:06:23 +00:00
Anatoliy Talamanov
a07f064e50
Merge pull request #18332 from TolyaTalamanov:at/wrap-GIn-GOut
[G-API] Wrap GIn & GOut

* Wrap GIn & GOut into python

* Remove extra brackets

* Use reinterpret_cast
2020-09-17 19:00:03 +00:00
Ruslan Garnov
ea4b491a73
Merge pull request #18213 from rgarnov:rg/rmat_api
Basic RMat implementation

* Added basic RMat implementation

* Fix typos in basic RMat implementation

Co-authored-by: Anton Potapov <anton.potapov@intel.com>
2020-09-17 12:39:10 +00:00
Anatoliy Talamanov
986bc65e1f Change imports order for copytomask 2020-09-17 11:09:41 +03:00
Anatoliy Talamanov
5218443784 Support tuple for python bindings 2020-09-16 16:22:46 +03:00
Alexander Alekhin
3b00ee2afb Merge pull request #18320 from choffmann:master 2020-09-13 13:30:57 +00:00
Anatoliy Talamanov
a258404a58
Merge pull request #18309 from TolyaTalamanov:at/wrap-apply-overloads
[G-API] Wrap cv::gapi::mean kernel into python

* Wrap cv::gapi::mean kernel into python

* Fix test
2020-09-12 22:02:21 +00:00
Christoph Gringmuth
a3048239b3 Fix implicitly-deleted default constructor 2020-09-12 22:28:11 +02:00
Alexey Smirnov
a3e8c6e866
Merge pull request #18127 from smirnov-alexey:as/gapi_serialization
[G-API]: Add GOpaque and GArray serialization support

* Add GOpaque and GArray serialization support

* Address review comments

* Remove holds() method

* Address review comments

* Remove comments

* Align streaming with kind changes

* Fix kind in kernel

* Address review comments
2020-09-07 17:10:03 +00:00
Orest Chura
7a796b20ea
Merge pull request #18182 from OrestChura:oc/operators_to_cv
[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
2020-09-02 19:28:10 +00:00
Anastasiya(Asya) Pronina
1192cbe4ab
Merge pull request #17163 from AsyaPronina:gcompound_kernel_gmatp_coop
* Fixed cooperation of Compound kernel and GMatP type

* Added test for GCompound kernel + GMatP type cooperation
2020-08-25 13:51:43 +00:00
Orest Chura
e5e08ec523
Merge pull request #18148 from OrestChura:oc/fluid_core_perf
[G-API]: Fluid Core kernels performance tests

* Add performance tests for a list of Fluid Core kernels

* Update gapi_core_perf_tests_fluid.cpp

Addressing a comment
2020-08-24 11:46:32 +00:00
Anatoliy Talamanov
c708f506a4
Merge pull request #17493 from TolyaTalamanov:at/python-bindings-gapi
* Implement G-API python bindings

* Fix hdr_parser

* Drop initlization with brackets using regexp

* Handle bracket initilization another way

* Add test for core operations

* Declaration and definition of View constructor now in different files

* Refactor tests

* Remove combine decorator from tests

* Fix comment to review

* Fix test

* Fix comments to review

* Remove GCompilerArgs implementation from python

Co-authored-by: Pinaev <danil.pinaev@intel.com>
2020-07-29 16:18:52 +03:00
Orest Chura
a9f5c19239
Merge pull request #17871 from OrestChura:oc/typed_GArray_GMat
* Added overload for `GArray<GMat>` ProtoParam in `gtyped.hpp`

* Tests+compile_args
 - added tests for GArray<GMat> as an input and an output of GComputationT
 - added possibility to give the compile_args to GComputationT.apply()

* Fix win errors
2020-07-28 14:20:36 +03:00
Orest Chura
53bfdc318a
Merge pull request #17896 from OrestChura:oc/fix_kw_videotests
* - fix numeric overflow due to incorrect type casting
 - remove unnecessary default constructor

* Drop the cast
2020-07-28 13:25:56 +03:00
Dmitry Matveev
243ce78508 G-API: Try to fix infer2 problem with VS2017 2020-07-17 18:03:25 +03:00
Orest Chura
d17ab271e8
Merge pull request #17668 from OrestChura:oc/giebackend_migration_to_core
GAPI: Migration to IE Core API

* Migration to IE Core API
 - both versions are maintained
 - checked building with all the OpenVINO versions (2019.R1, R2, R3, 2020.4 (newest))

* commit to awake builders

* Addressing comments
 - migrated to Core API in 'gapi_ie_infer_test.cpp'
 - made Core a singleton object
 - dropped redundant steps

* Addressing comments
 - modified Mutex locking

* Update

* Addressing comments
 - remove getInitMutex()
 - reduce amount of #ifdef by abstracting into functions

* return to single IE::Core

* Divide functions readNet and loadNet to avoid warnings on GCC

* Fix deprecated code warnings

* Fix deprecated code warnings on CMake level

* Functions wrapped
 - All the functions depended on IE version wrapped into a cv::gapi::ie::wrap namesapace
 - All this contained to a new "giebackend/gieapi.hpp" header
 - The header shared with G-API infer tests to avoid code duplications

* Addressing comments
 - Renamed `gieapi.hpp` -> `giewrapper.hpp`, `cv::gapi::ie::wrap` -> `cv::gimpl::ie::wrap`
 - Created new `giewrapper.cpp` source file to avoid potential "multiple definition" problems
 - removed unnecessary step SetLayout() in tests

* Enabling two NN infer teest

* Two-NN infer test change for CI
 - deleted additional network
 - inference of two identical NN used instead

* Fix CI fileNotFound

* Disable MYRIAD test not to fail Custom CI runs
2020-07-16 18:33:35 +00:00
Alexander Alekhin
a216b8bf87 Merge pull request #17842 from anton-potapov:gapi_debug_log 2020-07-16 13:02:19 +00:00
Pinaev Danil
cb2e276bff
Merge pull request #17741 from aDanPin:dp/add_dinamic_graph_feature
[G-API] Allow building graphs with a dynamic number of inputs and outputs

* Add dinamic graph feature and tests

* Remove unnecessary file

* Review response

* Add implementation of operator += for GRunArgs
And test for that case

* Tests refactoring

* Add doxygen
Review response

* Fix docs

* A small documentation fix

* Review response

* Add tests for more entities

* Add typed tests

* Another typed tests

* Doc fix

* Documentation fix

* Build fix

* Commit for rebuild

* The last one
2020-07-15 18:37:08 +00:00
Anton Potapov
111cdd7a32 GAPI: fix warnings in own::Mat default generated constructors/assign op 2020-07-15 10:49:05 +03:00
Anton Potapov
89a17b4232 GAPI: GAPI_LOG_DEBUG facility 2020-07-15 01:31:25 +03:00
Dmitry Matveev
f0c411d8b5
Merge pull request #17502 from dmatveev:dm/infer2
* G-API: Introduce a new gapi::infer2 overload + gaze estimation sample

* G-API/infer2: Introduced static type checking for infer2

- Also added extra tests on the type check routine

* G-API/infer2: Addressed self-review comments in the sample app

- Also fix build on Linux;

* G-API/infer2: Remove incorrect SetLayout(HWC) + dead code

- Also fixed comments in the backend

* G-API/infer2: Continue with self-review

- Fix warnings/compile errors in gaze estimation
- Dropped the use of RTTI (VectorRef::holds()) from the giebackend
- Replaced it with a trait-based enums for GArray<T> and std::vector<T>
- The enums and traits are temporary and need to be unified with
  the S11N when it comes

* G-API/infer2: Final self-review items

- Refactored ROIList test to cover 70% for infer<> and infer2<>;
- Fixed the model data discovery routine to be compatible with new
  OpenVINO;
- Hopefully fixed the final issues (warnings) with the sample.

* G-API/infer2: address review problems

- Fixed typo in comments;
- Fixed public (Doxygen) comment on GArray<GMat> input case for infer2;
- Made model lookup more flexible to allow new & old OMZ dir layouts.

* G-API/infer2: Change the model paths again

* G-API/infer2: Change the lookup path for test data

* G-API/infer2: use randu instead of imread. CI war is over
2020-07-14 11:06:49 +03:00
Dmitry Budnikov
521aac9665
Merge pull request #17694 from dbudniko:dbudniko/serialization_args2
G-API args serialization

* args serialization

* GRunArgP draft

* UMat added

* bind added

* DmitryM's review addressed. Code clean up required.

* fix android build

* bind test added

* more comments addressed

* try to fix Mac build

* clean up

* header-based generic implementation (GRunArg)

* clang again

* one more attempt for clang

* more clean up

* More Dmitry's comments addressed.

* monostate removed

* Top level functions and some other comments addressed.

* fix warnings

* disable warning
2020-07-13 19:24:46 +00:00
Dmitry Matveev
a724dc99e8 G-API: Change the default FD model in the privacy-masking-camera 2020-07-09 14:09:59 +03:00
Dmitry Matveev
27f1ab5a70 Added a script to measure & report privacy masking camera performance in different configurations 2020-07-08 19:19:37 +03:00
Alexander Alekhin
f98c97f796 Merge pull request #17758 from tomoaki0705:fixGapiOpenclTestError 2020-07-06 19:57:54 +00:00
Tomoaki Teshima
46d3637609 avoid kernel compile error on Arm SBCs 2020-07-06 18:27:19 +09:00
Alexander Alekhin
ab4065fa1c Merge pull request #17696 from dbudniko:dbudniko/g_api_fix_min_max 2020-06-29 19:54:41 +00:00
Dmitry Budnikov
31bee49371 min max fix for standalone 2020-06-29 20:57:44 +03:00
Alexander Alekhin
48ef6df842 cmake(gapi): fix opencv_world build for winpack 2020-06-29 17:46:39 +00:00
Dmitry Budnikov
7566921364
Merge pull request #17020 from dbudniko:dbudniko/serialization_backend
G-API Serialization routines

* Serialization backend in tests, initial version

* S11N/00: A Great Rename

- "Serialization" is too long and too error-prone to type,
  so now it is renamed to "s11n" everywhere;
- Same applies to "SRLZ";
- Tests also renamed to start with 'S11N.*' (easier to run);
- Also updated copyright years in new files to 2020.

* S11N/01: Some basic interface segregation

- Moved some details (low-level functions) out of serialization.hpp;
- Introduced I::IStream and I::OStream interfaces;
- Implemented those via the existing [De]SerializationStream classes;
- Moved all operators to use interfaces instead of classes;
- Moved the htonl/ntohl handling out of operators (to the classes).

The implementation didn't change much, it is a subject to the further
refactoring

* S11N/02: Basic operator reorg, basic tests, vector support

- Reorganized operators on atomic types to follow >>/<< model
  (put them closer in the code for the respective types);
- Introduce more operators for basic (scalar) types;
- Drop all vector s11n overloads -- replace with a generic
  (template-based) one;
- Introduced a new test suite where low-level s11n functionality
  is tested (for the basic types).

* S11N/03: Operators reorganization

- Sorted the Opaque types enum by complexity;
- Reorganized the existing operators for basic types, also ordered by
  complexity;
- Organized operators in three groups (Basics, OpenCV, G-API);
- Added a generic serialization for variant<>;
- Reimplemented some of the existing operators (for OpenCV and G-API
  data structures);
- Introduced new operators for cv::gimpl data types. These operators
  (and so, the data structures) are not yet used in the graph
  dump/reconstruction routine, it will be done as a next step.

* S11N/04: The Great Clean-up

- Drop the duplicates of GModel data structures from the
  serialization, serialize the GModel data structures themselve
  instead (hand-written code replaced with operators).
- Also removed usuned code for printing, etc.

* S11N/05: Internal API Clean-up

- Minimize the serialization API to just Streams and Operators;
- Refactor and fix the graph serialization (deconstruction and
  reconstruction) routines, fix data addressing problems there;
- Move the serialization.[ch]pp files to the core G-API library

* S11N/06: Top-level API introduction

- !!!This is likely the most invasive commit in the series!!!
- Introduced a top-level API to serialize and deserialize a GComputation
- Extended the compiler to support both forms of a GComputation:
  an expession based and a deserialized one. This has led to changes in
  the cv::GComputation::Priv and in its dependent components (even the
  transformation tests);
- Had to extend the kernel API (GKernel) with extra information on
  operations (mainly `outMeta`) which was only available for expression
  based graphs. Now the `outMeta` can be taken from kernels too (and for
  the deserialized graphs it is the only way);
- Revisited the internal serialization API, had to expose previously
  hidden entities (like `GSerialized`);
- Extended the serialized graph info with new details (object counter,
  protocol). Added unordered_map generic serialization for that;
- Reworked the very first pipeline test to be "proper"; GREEN now, the rest
  is to be reworked in the next iteration.

* S11N/07: Tests reworked

- Moved the sample pipeline tests w/serialization to
  test the public API (`cv::gapi::serialize`, then
  followed by `cv::gapi::deserialize<>`). All GREEN.
- As a consequence, dropped the "Serialization" test
  backend as no longer necessary.

* S11N/08: Final touches

- Exposed the C++ native data types at Streams level;
- Switched the ByteMemoryIn/OutStreams to store data in `char`
  internally (2x less memory for sample pipelines);
- Fixed and refactored Mat dumping to the stream;
- Renamed S11N pipeline tests to their new meaning.

* linux build fix

* fix RcDesc and int uint warnings

* more Linux build fix

* white space and virtual android error fix (attempt)

* more warnings to be fixed

* android warnings fix attempt

* one more attempt for android build fix

* android warnings one more fix

* return back override

* avoid size_t

* static deserialize

* and how do you like this, elon? anonymous namespace  to fix android warning.

* static inline

* trying to fix standalone build

* mat dims fix

* fix mat r/w for standalone

Co-authored-by: Dmitry Matveev <dmitry.matveev@intel.com>
2020-06-26 19:41:29 +00:00
Anastasiya
eff259b047 Enable state initialization params via compile_args 2020-06-25 00:43:12 +03:00
Anatoliy Talamanov
a74ed58893 Add implementation in case plaidml isn't found 2020-06-22 00:46:41 +03:00
Pinaev Danil
57f5700e18
Merge pull request #16772 from aDanPin:dp/performance_render_tests
Added g-api render performance tests

* Add render performance tests for BGROCV

* Add render NV12 performance tests

* Review response

* Review response

* Review response

* Review response

* Review response

* Review response

* Just a small fix

* Final review response I hope)

* Review response

* Review response

* Review response

* Review response

* Review response

* Review response
2020-06-16 19:48:09 +00:00
Alexander Alekhin
434014b05e Merge pull request #17471 from asmorkalov:as/video_capability_check 2020-06-05 19:54:41 +00:00
AsyaPronina
b083c20eb2 Enable stateful kernels in G-API OCV Backend 2020-06-04 22:14:42 +03:00
Alexander Smorkalov
a17d1843fb Skip some GAPI tests if VideoCapture is not capable to playback video. 2020-06-04 09:59:09 +03:00
Anton Potapov
be9f3826d7 GAPI: fix uninitialized variables in Fluid 2020-05-25 11:59:28 +03:00
Michal W. Tarnowski
7f453ade73
Merge pull request #17361 from mwtarnowski:fix-documentation-gapi-imgproc-blur
* fix documentation for cv::gapi::blur

* remove dst parameter and move ksize parameter to its correct position
2020-05-24 22:48:44 +00:00
Alexander Alekhin
e96a58f091 Merge pull request #17191 from anton-potapov:gapi_variant_converting_ctor_assign_op_reworked 2020-05-21 12:59:31 +00:00
Anton Potapov
e02318d384 GAPI: utils - variant converting ctor and assignment op. reworked
- reworked variant::operator(T&&) and varaint::variant(T&&) to be more
concise and signature accurate with C++17 specification
- restricted cv::detail::OpaqueRef::OpaqueRef(T&&) to not substitute
copy/move ctors
- moved common additions to C++11 version of std <type_traits> to
separte header
2020-05-20 14:34:55 +03:00
Anton Potapov
7386d8523b G-API: "deownification" corrections
- moved "standalone" aliases of cv types to "opencv_includes.hpp" to
keep responsibility principle aplied
- introduced correct aliasing for "descr_of(Mat)" function for
standalone case
 - added missing include in `gapi/own/mat.hpp`
2020-05-12 14:28:32 +03:00
Smirnov Alexey
3e3d4ad797 Fix fluid resize operating with zero output size 2020-05-07 12:24:57 +03:00
Maxim Pashchenkov
51a42c0647
Merge pull request #17088 from mpashchenkov:mp/ocv-gapi-kernel-laplacian
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
2020-04-23 17:47:55 +00:00
Alexander Alekhin
189fc43765 Merge pull request #17082 from OrestChura:oc/buildPyramid 2020-04-23 12:07:27 +00:00
Alexander Alekhin
a1641f938e Merge pull request #17133 from alalek:build_fix_gapi_ie 2020-04-22 23:06:14 +00:00
Alexander Alekhin
351fb8c058 gapi: fix build, update IE handling, add OPENCV_GAPI_INF_ENGINE 2020-04-22 21:47:45 +00:00
Alexander Alekhin
511d0fe198 Merge pull request #17120 from ganesh-k13:bugfix/documentation/16987 2020-04-22 09:08:02 +00:00
Maxim Pashchenkov
94e36d8c8d
Merge pull request #16995 from mpashchenkov:mp/ocv-gapi-standalone-mat
G-API: Mat's "deownification"

* deowned Mat

* boner

* Removed canDescribe test for own::Mat

* Removed STANDALONE flag for apply() and operator()

* Removed: desc_tests for own::Mat, descr_of for own::Mat.

* Returned: tests, cv::gapi::own::descr_of; fixed alignment; Removed own::Mat's headers

* Removed unused header own/mat.hpp from gbackend.hpp
2020-04-21 20:22:01 +00:00
Ganesh Kathiresan
4ee6852a1e Formula Fixes for master branch
Foumula fix 6

Foumula fix 7
2020-04-21 19:31:52 +05:30
OrestChura
05d5c284f6 gapi: buildOpticalFlowPyramid() interface, CPUkernel and CPUtests implementation
- 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
2020-04-21 14:36:42 +03:00
Anton Potapov
dd2c7c5140 GAPI: utils - variant::get_if
adding one more missing function to local version of std::variant
2020-04-14 15:12:31 +03:00
Ruslan Garnov
ce772b346c Fixed standalone build, added cv::gapi::proto::ptr test 2020-04-09 17:19:11 +03:00
Dmitry Matveev
b1f42a6506 Implement asynchronous execution for islands 2020-04-08 20:48:23 +03:00
Dmitry Matveev
cb5921b375 Introduced a newStreamSignal() callback for Island Executables 2020-04-08 20:48:23 +03:00
Alexander Alekhin
016f9ab16e
Merge pull request #16788 from OrestChura:oc/optFlowPyrLK
G-API: gapi::calcOpticalFlowPyrLK() Implementation
2020-04-08 20:23:20 +03:00
OrestChura
d50c21e571 gapi: Full calcOpticalFlowPyrLK implementation (2 overloads) and tests
- 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
2020-04-08 18:11:55 +03:00
Anton Potapov
676d1dfd5b GAPI: Fix [-Wreturn-type] warning on standalone mac build
- added [[noreturn]] to standalone version of  GAPI_Assert
2020-04-08 17:13:33 +03:00
Alexander Alekhin
63320aba6c Merge pull request #16999 from rgarnov:exports_for_gisland_executable 2020-04-07 19:55:01 +00:00
Orest Chura
2fe9c87433
Merge pull request #16717 from OrestChura:oc/goodFeatures
- 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)
2020-04-07 15:53:24 +00:00
Alexander Alekhin
ab4dbff150 Merge pull request #15907 from rgarnov:rg/unique_ptr_for_priv_in_fluid 2020-04-07 14:51:14 +00:00
Dmitry Matveev
43df944eb4 Added GAPI_EXPORTS to GIslandExecutable since now it needs to be exported 2020-04-06 23:42:52 +03:00
Alexander Alekhin
5db3092a1f Merge pull request #16952 from anton-potapov:kw_fixes 2020-04-06 15:55:33 +00:00
Ruslan Garnov
be1615b1c3
Merge pull request #16964 from rgarnov:rg/opaque_for_streaming_exec
* Added GOpaque support to GStreamingExecutor

* Added inter-island GOpaque support to GExecutor
2020-04-06 15:53:54 +00:00
Maxim Pashchenkov
ca9fd66744
Merge pull request #16886 from mpashchenkov:mp/ocv-gapi-add-disable
G-API: DISABLED_ in tests instead #if 0

* Removed if 0, replaced with DISABLED_

* boner

* Added tests for fluid

* -1 instead 0.0

* Added GMatDesc's tests for own::Mat

* IMGPROC_FLUID CORE_FLUID

* Added use_only, disabled tests without kernels
2020-04-06 15:21:08 +00:00
Alexander Alekhin
bdc95d2c66 Merge pull request #16911 from anton-potapov:ap/variant_move_issue 2020-04-06 15:19:32 +00:00
Alexander Alekhin
a10385543b Merge pull request #16963 from rgarnov:rg/gframe 2020-04-06 14:35:52 +00:00
Dmitry Matveev
1b5730a799 Introduce a new abstraction layer over island input/output data
- Port GExecutor to this new interface
2020-04-06 12:24:19 +03:00
Ruslan Garnov
c8776e6ebd Added GFrame 2020-04-03 01:21:51 +03:00
Maxim Pashchenkov
277f0d270f
Merge pull request #16745 from Volskig:mp/ocv-gapi-standalone-size
G-API: Unification of own:: structures with cv:: (Size, Point, Rect)

* deowned Size Rect Point

* Deownded Size Rect Point

* With Scalar
2020-04-02 18:19:45 +00:00
Anton Potapov
3ffed0bf6e GAPI - KW fixes
- remove unreachable code in GIsland::producer()
2020-04-02 12:05:34 +03:00
Maxim Pashchenkov
557ac3dbaf
Merge pull request #16805 from Volskig:mp/ocv-gapi-standalone-scalar
G-API: Unification of own:: Scalar with cv:: Scalar

* cvdefs.hpp

* Small changes

* Deowned Scalar. Does't work

* Something

* Removed to_ocv for Scalar

* Clear code

* Deleted whitespaces

* Added include<..own/scalar.hpp in cvdefs.hpp.

* Long string split on two now

* Comment about scalar

* Comment about crutch

* Removed second varible in scalar_wrapper

* Changed wrapper for scalar, alignment

* Alignment

* Whitespaces

* Removed scalar_wrapper
2020-04-01 18:40:38 +00:00
Anton Potapov
faceb05775 G-API utils - make variant converting constructor and assignment
operator properly forward it's argument
2020-03-27 14:30:16 +03:00
Alexander Alekhin
99502e99cc gapi(simd): initialize accumulator values 2020-03-26 16:48:21 +00:00
Anatoliy Talamanov
c303aaa94d
Merge pull request #16841 from TolyaTalamanov:at/warp-perspective
G-API: Implement WarpPerspective

* Implement WarpPerspective kernel

* Fix comment to review
2020-03-25 11:23:32 +00:00
Anatoliy Talamanov
4d3d6230c5
Merge pull request #16803 from TolyaTalamanov:at/yuv-to-gray
* Implement NV12toGray

* Snapshot

* Implement NV12toGray as compound kernel

* Update gapi_imgproc_tests_inl.hpp

* Remove YUV2Gray from public API
2020-03-24 10:51:18 +00:00
Alexander Alekhin
978666c816 Merge pull request #16849 from anton-potapov:ap/variant__assignment_operator_compile_error 2020-03-23 22:04:48 +00:00
Dmitry Matveev
020be63df5 Try to enable G-API build on Android 2020-03-20 17:20:01 +03:00
Anton Potapov
31d624f9a8 G-API utils - fix compilation error in variant::operator= 2020-03-20 14:46:13 +03:00
Anatoliy Talamanov
8fe9674301
Merge pull request #16768 from TolyaTalamanov:at/add-warp-affine
G-API: Implement WarpAffine

* Add WarpAffine

* Ban BORDER_TRANSPARENT

* Fix doc
2020-03-19 12:12:09 +00:00
Anton Potapov
3af63fe052 GAPI - KW fixes
- avoid overflow in own::Mat::total() and according tests, part 2
2020-03-13 12:46:18 +03:00
Alexander Alekhin
a1230ad0a0 Merge pull request #16796 from anton-potapov:kw_fixes_own_mat_total_overflow 2020-03-12 13:05:52 +00:00
Anton Potapov
d3b68b059b GAPI - KW fixes
- avoid overflow in own::Mat::total() and according tests
2020-03-12 13:29:54 +03:00
Anton Potapov
3ba6b41961 GAPI - KW fixes
- replaced bitwise &= on bools, with explicit && to make KW happy
2020-03-11 18:16:56 +03:00
Anton Potapov
72fedbe096 GAPI - KW fixes
- replace "unsafe" memcpy with "safe" :) std::copy_n to make KW happy
2020-03-11 11:23:15 +03:00
Maxim Pashchenkov
3befdb4ae8
Merge pull request #16604 from Volskig:mp/ocv-gapi-zero-height-mat
G-API: Zero-height mat is cause of crash

* Added check for zero-height Mat case

* Refactoring, added validate_input_arg func

* No bool function now
2020-03-10 14:44:16 +03:00
Alexander Alekhin
23bc89d6fc Merge pull request #16577 from Volskig:mp/ocv-gapi-work 2020-03-05 10:58:51 +00:00
Maxim Pashchenkov
bce9837604 Added assert for create Mat with negative dims, added tets for this case 2020-03-05 11:52:10 +03:00
Maxim Pashchenkov
f3a50224f2 Rm imgproc from render.cpp 2020-03-05 11:41:36 +03:00
Anton Potapov
8ed89bae84 KW: G-API tests - fixes for uninitialized variables 2020-03-03 11:37:40 +03:00
Alexander Alekhin
db5f1c3554 Merge pull request #16688 from alalek:issue_16679 2020-02-27 20:55:49 +00:00
Alexander Alekhin
e93c51762b gapi(test): fix check 2020-02-27 19:43:06 +00:00
Rajkiran Natarajan
b17e9c614b Fix annoying compiler warning. 2020-02-26 22:59:02 -08:00
Alexander Alekhin
f2d3edec80 gapi(test): ban and get rid of countNonZero() checks 2020-02-26 14:19:19 +03:00
Dmitry Matveev
dae1fc8889
Merge pull request #16555 from dmatveev:dm/ocv_blog_sample
* G-API/Samples: Added a simple "privacy masking camera" sample

The main idea is to host this code for an opencv.org blog post only

* G-API/Samples: Modified privacy masking camera code to look better for the post

* G-API/Samples: fix Windows (MSVC) support in Privacy Masking Camera

* G-API/Samples: Addressed the majority of review comments in PMC

* G-API/Samples: Use TickMeter to measure time + more info in cmd options

* G-API/Samples: fix yet another Windows warning in PMC

* G-API/Samples: Fix wording in PMC cmd arg parameters

* Fix wording, again

* G-API/Samples: Fix PMC cmd-line arguments, again
2020-02-18 15:11:44 +03:00
Anatoliy Talamanov
a6ef9b4584
Merge pull request #16213 from TolyaTalamanov:at/lambdas-for-kernels
G-API: Using functors as kernel implementation

* Implement ability to create kernel impls from functors

* Clean up

* Replace make_ocv_functor to ocv_kernel

* Clean up

* Replace GCPUFunctor -> GOCVFunctor
* Move GOCVFunctor to cv::gapi::cpu namespace

* Implement override for rvalue and lvalue cases

* Fix comments to review

* Remove GAPI_EXPORT for template functions

* Fix indentation
2020-02-17 23:29:55 +03:00
Alexander Alekhin
7d998336d3 Merge pull request #16510 from andrey-golubev:unify_g_typed_kernel 2020-02-07 11:22:23 +00:00
Alexander Alekhin
d0d676929d Merge pull request #16519 from TolyaTalamanov:at/fix-render-text-slowdown 2020-02-06 13:38:22 +00:00
Talamanov, Anatoliy
4dffcbd9f0 Fix render opencv backend text slowdown 2020-02-06 15:12:38 +03:00
Andrey Golubev
5baa2c0706 Update documentation and clean up redundant code 2020-02-05 15:01:42 +02:00
Alexander Alekhin
c56e91dcc0 Merge pull request #16487 from asmorkalov:as/gapi_freetype 2020-02-04 11:40:15 +00:00
Andrey Golubev
e569e9dcbd Unify G_TYPED_KERNEL and G_TYPED_KERNEL_M 2020-02-04 02:16:51 +02:00
Alexander Smorkalov
a9a33d9a5f Fixed build with FREETYPE and without tests. 2020-02-03 16:41:31 +03:00
Alexey Smirnov
0d456f9111
Merge pull request #16118 from smirnov-alexey:as/gopaque
G-API: GOpaque implementation

* Stub initial copypasted solution

* Fix mov test and add a couple of others

* Fix warnings

* More code coverage and tests

* fix macos warning

* address review comments

* Address review comments and fix indentation

* Fix build on armv7
2020-01-30 21:08:11 +03:00
Alexander Alekhin
4b2363de5c gapi(test): update test tolerance for DIV operation on ARM 2020-01-24 17:07:24 +03:00
Alexander Alekhin
5265db82c7 Merge pull request #16409 from smirnov-alexey:as/gapi_fix_standalone_streaming 2020-01-24 08:47:57 +00:00
Smirnov Alexey
e5ed22bd5b Fix linkage in standalone mode 2020-01-22 17:51:16 +03:00
Ruslan Garnov
65ccafd494 Changed shared_ptr to unique_ptr for Priv storage in fluid::View 2020-01-21 18:03:03 +03:00
Ruslan Garnov
6c93e42d94 Changed sharev_ptr for Priv to unique_ptr for fluid::Buffer 2020-01-21 13:48:46 +03:00
Anatoliy Talamanov
55f2370f36 Merge pull request #16221 from TolyaTalamanov:at/fix-g_typed_kernel_m
G-API: Fix G_TYPED_KERNEL_M macro

* Fix G_TYPED_KERNEL_M macro

* Fixes

* Fix windows build
* Fix doxygen

* Added several macros

* Add overloads for G_TYPED_KERNEL
2020-01-13 14:54:10 +03:00
Brian Wignall
659ffaddb4 Fix spelling typos 2019-12-26 06:45:03 -05:00
Maksim Shabunin
b379969c63 Test: avoid duplicated test cases 2019-12-19 14:38:59 +03:00
Alexander Alekhin
fd4fac946a gapi(test): avoid using of unstable random floating-point input 2019-12-17 13:48:40 +03:00
Orest Chura
287874a444 Merge pull request #15942 from OrestChura:fb_tutorial
G-API: Tutorial: Face beautification algorithm implementation

* Introduce a tutorial on face beautification algorithm

- small typo issue in render_ocv.cpp

* Addressing comments rgarnov smirnov-alexey
2019-12-17 11:00:49 +03:00
Alexander Alekhin
c2b6c67431 Merge pull request #16141 from OrestChura:oc/fix-standalone-build 2019-12-12 18:34:12 +00:00
atalaman
4a4ff6749b Merge pull request #16080 from TolyaTalamanov:at/fix-mosaic-primitive
G-API: Mosaic handle corner cases

* Handle corner cases

* Fix mosaic algo

* Fix bug with empty rects
2019-12-12 19:10:14 +03:00
Dmitry Matveev
f270e8d040 Merge pull request #16066 from dmatveev:dm/gapi_slides
* G-API: Added G-API Overview slides & its source code

- Sample code snippets are moved to separate files;
- Introduced a separate benchmark to measure Fluid/OpenCV
  performance;
- Added notes on API changes (it is still a 4.0, not a 4.2 talk!)
- Added a "Metropolis" beamer download-n-build script.

* G-API: Addressed review issues on G-API overview slides
2019-12-12 18:48:38 +03:00
OrestChura
3cd8976493 Fix standalone-gapi 2019-12-12 18:22:16 +03:00
Alexander Alekhin
121bc50ca9 Merge pull request #16130 from alalek:fix_build_gapi_gcc_4.x 2019-12-11 14:17:03 +00:00
atalaman
0d19fa0720 Merge pull request #16062 from TolyaTalamanov:at/add-default-initlization-for-primitives
G-API: Add default initialization for primitives

* Add ctors for primitives

* Add description for constructors
2019-12-11 17:10:42 +03:00
Alexander Alekhin
b8ef2036b0 Merge pull request #16091 from dkurt:png_to_dot 2019-12-11 14:01:39 +00:00
Alexander Alekhin
8b9982a0a5 Merge pull request #16086 from alalek:gapi_test_bitwise_not_exclude_32f 2019-12-11 14:00:59 +00:00
Alexander Alekhin
6b6c2f6087 gapi: fix build with GCC 4.8 2019-12-11 13:31:50 +03:00
Dmitry Matveev
9a18330f3a Merge pull request #16081 from dmatveev:dm/ocv42_gapi_bugfixes
G-API: Fix various issues for 4.2 release

* G-API: Fix issues reported by Coverity

- Fixed: passing values by value instead of passing by reference

* G-API: Fix redundant std::move()'s in return statements

Fixes #15903

* G-API: Added a smarter handling of Stop messages in the pipeline

- This should fix the "expected 100, got 99 frames" problem
- Fixes #15882

* G-API: Pass enum instead of GKernelPackage in Streaming test parameters

- Likely fixes #15836

* G-API: Address review issues in new bugfix comments
2019-12-10 13:31:42 +03:00
Dmitry Matveev
c89780dfe0 Merge pull request #16039 from dmatveev:dm/gapi_tutorial_interactive_face_detection
* G-API-NG/Docs: Added a tutorial page on interactive face detection sample

- Introduced a "--ser" option to run the pipeline serially for
  benchmarking purposes
- Reorganized sample code to better fit the documentation;
- Fixed a couple of issues (mainly typos) in the public headers

* G-API-NG/Docs: Reflected meta-less compilation in new G-API tutorial

* G-API-NG/Docs: Addressed review comments on Face Analytics Pipeline example
2019-12-10 00:30:10 +03:00
Alexander Alekhin
65d606630d Merge pull request #16084 from alalek:issue_15784 2019-12-07 22:33:11 +00:00
Dmitry Kurtaev
ad56838040 Replace .png to .dot 2019-12-07 15:03:28 +03:00
Alexander Alekhin
c0503718cd gapi(test): exclude 32F from bitwise_not case 2019-12-06 18:12:45 +03:00
Alexander Alekhin
1ddcfc5c68 gapi: update CMakeLists.txt, fix TBB dependency handling 2019-12-06 16:36:42 +03:00
Dmitry Matveev
b2b6f52d14 Merge pull request #16050 from dmatveev:dm/ocv42_gapi_doc_fixup
* G-API: Addressed various documentation issues

- Fixed various typos and missing references;
- Added brief documentaion on G_TYPED_KERNEL and G_COMPOUND_KERNEL macros;
- Briefly described GComputationT<>;
- Briefly described G-API data objects (in a group section).

* G-API: Some clean-ups in doxygen, also a chapter on Render API

* G-API: Expose more graph compilation arguments in the documentation

* G-API: Address documentation review comments
2019-12-06 15:36:02 +03:00
Dmitry Matveev
ccf415c341 G-API: Added an arbitrary-argument version of cv::gapi::combine
- Now user doesn't need to do `combine(x, combine(y, combine(z, zz)))` but
  just `combine(x, y, z, zz)`
2019-12-06 10:47:50 +03:00
Alexander Alekhin
529a241a26 Merge pull request #15972 from TolyaTalamanov:at/ftext-primitive 2019-12-03 20:09:21 +00:00
Pinaev Danil
5e3a7ac8a7 Merge pull request #16031 from aDanPin:dm/streaming_auto_meta
G-API-NG/Streaming: don't require explicit metadata in compileStreaming()

* First probably working version
Hardcode gose to setSource() :)

* Pre final version of move metadata declaration from compileStreaming() to setSource().

* G-API-NG/Streaming: recovered the existing Streaming functionality

- The auto-meta test is disabling since it crashes.
- Restored .gitignore

* G-API-NG/Streaming: Made the meta-less compileStreaming() work

- Works fine even with OpenCV backend;
- Fluid doesn't support such kind of compilation so far - to be fixed

* G-API-NG/Streaming: Fix Fluid to support meta-less compilation

- Introduced a notion of metadata-sensitive passes and slightly
  refactored GCompiler and GFluidBackend to support that
- Fixed a TwoVideoSourcesFail test on streaming

* Add three smoke streaming tests to gapi_streaming_tests.
All three teste run pipeline with two different input sets
1) SmokeTest_Two_Const_Mats test run pipeline with two const Mats
2) SmokeTest_One_Video_One_Const_Scalar test run pipleline with Mat(video source) and const Scalar
3) SmokeTest_One_Video_One_Const_Vector test run pipeline with Mat(video source) and const Vector
 # Please enter the commit message for your changes. Lines starting

* style fix

* Some review stuff

* Some review stuff
2019-12-03 19:14:13 +03:00
Talamanov, Anatoliy
63b154396a Implement cv::gapi::wip::draw::FText 2019-12-03 13:13:06 +03:00
Pinaev Danil
53b6fb465c Merge pull request #15695 from aDanPin:dp/incorrect_use_of_muve_fix
Fix incorrect use of std::move() in g-api perf tests

* First version

* Fix perfomace tests

Replace

    c.apply(...);

with

    cc = c.compile(...);
    cc(...);

* Remove output meta arguments from .compile()

* Style fix

* Remove useless commented string

* Stick to common pattern : i.e. use gin() and gout() explicitly.

* Use cc(gin(...), gout(...)) in all cases.
2019-11-28 16:25:20 +03:00
atalaman
a7acb8805f Merge pull request #15869 from TolyaTalamanov:at/plaidml-backend
G-API: Implement PlaidML2 backend

* PlaidML backend init version

* Add test

* Support multiply inputs/outputs in PlaidML2 backend

* Fix comment to review

* Add HAVE_PLAIDML macros

* Move plaidml tests to separate file

* Fix comment to review

* Fix cmake warning

* Fix comments to review

* Fix typos

overload -> overflow

* Fix comments to review

* Clean up

* Remove spaces from cmake scripts
* Disable tests with bitwise operations

* Use plaidml::exec::Binder
2019-11-27 18:21:00 +03:00
Dmitry Matveev
fb5e7964b3 Merge pull request #15753 from dmatveev:dm/ng-5000-security_barrier-interactive_face
G-API: Introduced Security Barrier & Interactive Face Detection samples

* G-API-NG/Samples: Added samples & relevant changes

- Security barrier camera sample
- Age/Gender/Emotions recognition sample
- GIEBackend now loads CPU extension libraries
- A couple of API-level workarounds added to deal with cv::Mat/Blob conversions

* G-API-NG/Samples: removed HAVE_INF_ENGINE remnants
2019-11-27 17:54:17 +03:00
Brian Wignall
9276f1910b Fix some typos 2019-11-25 19:55:07 -05:00
Ruslan Garnov
1261559305 Fixed own::Mat::empty() for non md case 2019-11-18 16:38:33 +03:00
Orest Chura
af230ec133 Merge pull request #15888 from OrestChura:facebeautification_gapi_sample
Introducing the sample of Face Beautification algorithm implemented via Graph-API

* Introducing the sample of Face Beautification algorithm implemented via Graph-API
- 'gapi/samples/face_beautification.cpp' added
- FIXME added in 'gcpukernel.hpp'

* INF_ENGINE fix
- preprocessing clauses added not to run the sample without Inference Engine

* INF_ENGINE fix 2
- warnings removed

* Fixes
- checking IE version cut as there is no dependency
- some alignments fixed
- the comment about preprocessing commands fixed

* ie::backend() issue fix (according to dmatveev)
- as the sample needs the cv::gapi::ie::backend() to be defined regardless of having IE or not, there is its throw-error definition in `giebackend.cpp` now (by dmatveev)
- for the same reason, #includes in `giebackend.hpp` are fixed
- HAVE_INF_ENGINE check is removed from the sample
2019-11-18 15:13:05 +03:00
Alexander Alekhin
ac2dc29525 Merge pull request #15852 from akhakim:gauss_blur_kernel_5x5 2019-11-14 14:55:24 +00:00
Alexander Alekhin
d1c4e4b5a5 Merge pull request #15906 from anton-potapov:gapi_fluid_i420_support 2019-11-14 14:07:05 +00:00
Anna Khakimova
beb14c70da GAPI Fluid: SIMD optimization for sep filters 5x5 kernel size (gaussBlur) 2019-11-14 13:42:20 +03:00
Anton Potapov
b5426a8679 G-API (Fluid) core support for I420
- Extended NV12 support in Fluid Core engine to cover I420
2019-11-14 11:16:17 +03:00
Anna Khakimova
363976694e GAPI Fluid: The run_sepfilter() has logic error into handler for 5x5 and larger kernels 2019-11-12 14:47:42 +03:00
Maksim Shabunin
ad5874779c Install: added missing gapi headers 2019-11-07 14:03:46 +03:00
Alexander Alekhin
469addeca3 Merge pull request #15763 from akhakim:dynamic_set_kernel_window_size 2019-10-31 11:10:45 +00:00
Anna Khakimova
c394847c35 GAPI Fluid: Dynamic window size 2019-10-30 17:09:54 +03:00
atalaman
ea64bb58a5 Merge pull request #15751 from TolyaTalamanov:at/refactor-render-tests
* Refactor render tests

* Fix comment to review

* Move ocv render tests stuff to specific file

* Add OCV prefix for render tests

* Fix comments to review
2019-10-30 13:33:39 +03:00
Alexander Alekhin
cd6d79d106 gapi: fix opencv_world build 2019-10-28 18:53:14 +00:00
Dmitry Budnikov
8dfba51884 add empty implementation 2019-10-25 17:50:09 +03:00
Alexander Alekhin
87a692b89e Merge pull request #15736 from akhakim:fix_for_ADE-859_using_namespace_cv_G_TYPED_KERNEL_fail_c++ 2019-10-23 17:07:32 +00:00
Alexander Alekhin
09619c1c45 Merge pull request #15762 from rgarnov:return_exported_mkdatanode 2019-10-23 12:05:28 +00:00
Anna Khakimova
8bf5bed0a9 GAPI:Fix for using cv makes G_TYPED_KERNEL fail 2019-10-23 12:17:49 +03:00
Alexander Alekhin
5ffeebabad Merge pull request #15759 from alalek:issue_15758 2019-10-22 21:40:10 +00:00
Ruslan Garnov
e89c1103ff Returned GModel::mkDataNode() overload for external backends 2019-10-22 18:57:31 +03:00
Alexander Alekhin
fe4f27b99b gapi: fix build
- gcc 4.8.4 (ARMv7)
2019-10-22 16:31:40 +03:00
anton-potapov
471b40040a Merge pull request #15735 from anton-potapov:gapi_async_documentaion
* G-API: Doxygen documentatation for Async API

* G-API: Doxygen documentatation for Async API

 - renamed local variable (reading parameter async) async ->
asyncNumReq in object_detection DNN sample
to avoid Doxygen erroneous linking the sample to cv::gapi::wip::async
documentation
2019-10-21 22:33:18 +03:00
Dmitry Matveev
2477103707 Merge pull request #15216 from dmatveev:dm/ng-0010-g-api-streaming-api
* 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)
2019-10-18 19:29:58 +03:00
atalaman
2ff12c4981 Merge pull request #15699 from TolyaTalamanov:at/graph-ocv-render-backend-skeleton
G-API: Implement OpenCV render backend

* Implement render opencv backend

* Fix comment to review

* Add comment

* Add wrappers for kernels

* Fix comments to review

* Fix comment to review
2019-10-17 21:04:03 +03:00
Alexander Alekhin
cc9b199ecb Merge pull request #15704 from alalek:gapi_avoid_dynamic_initializers_in_optimized_code 2019-10-15 15:22:09 +00:00
Alexander Alekhin
a84969bdcd gapi: avoid dynamic initialization in dispatched files 2019-10-14 23:07:57 +00:00
Alexander Alekhin
823e767eed Merge pull request #15684 from OrestChura:id_helper_class_semicolon_issue 2019-10-14 09:46:41 +00:00
Alexander Alekhin
2f30c3fd4f Merge pull request #15681 from mshabunin:fix-gapi-ie-test 2019-10-11 13:12:45 +00:00
OrestChura
2f9351d995 Fix warning issue:
- unnecessary extra semicolon after member function definition removed
2019-10-10 18:48:27 +03:00
Maksim Shabunin
230e44b01d G-API: removed deprecated IE call from test 2019-10-10 12:58:59 +03:00
Alexander Alekhin
9efafc3e33 Merge pull request #15673 from TolyaTalamanov:at/fix-valgrind-issue 2019-10-09 22:48:24 +00:00