Skip to content

G-API: Introduce streaming::desync and infer(ROI)#18673

Merged
opencv-pushbot merged 1 commit intoopencv:masterfrom
dmatveev:dm/upstream_desync
Oct 29, 2020
Merged

G-API: Introduce streaming::desync and infer(ROI)#18673
opencv-pushbot merged 1 commit intoopencv:masterfrom
dmatveev:dm/upstream_desync

Conversation

@dmatveev
Copy link
Copy Markdown
Contributor

@dmatveev dmatveev commented Oct 27, 2020

This patch is mainly upstreaming of a long-live internal branch.
The functionality has been tested already in the "real world" scenarios.

  • 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).

Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

  • I agree to contribute to the project under Apache 2 License.
  • To the best of my knowledge, the proposed patch is not based on a code under GPL or other license that is incompatible with OpenCV
  • The PR is proposed to proper branch
  • There is reference to original bug report and related work
  • There is accuracy test, performance test and test data in opencv_extra repository, if applicable
    Patch to opencv_extra has the same branch name.
  • The feature is well documented and sample code can be built with the project CMake
force_builders=Custom,Custom Win,Custom Mac
build_gapi_standalone:Linux x64=ade-0.1.1f
build_gapi_standalone:Win64=ade-0.1.1f
build_gapi_standalone:Mac=ade-0.1.1f
build_gapi_standalone:Linux x64 Debug=ade-0.1.1f

Xbuild_image:Custom=centos:7
Xbuildworker:Custom=linux-1
build_gapi_standalone:Custom=ade-0.1.1f

build_image:Custom=ubuntu-openvino-2020.3.0:16.04
build_image:Custom Win=openvino-2020.3.0
build_image:Custom Mac=openvino-2020.3.0

test_modules:Custom=gapi
test_modules:Custom Win=gapi
test_modules:Custom Mac=gapi

buildworker:Custom=linux-1
# disabled due high memory usage: test_opencl:Custom=ON
test_opencl:Custom=OFF
test_bigdata:Custom=1
test_filter:Custom=*

@dmatveev dmatveev added this to the 4.5.1 milestone Oct 27, 2020
@dmatveev dmatveev self-assigned this Oct 27, 2020
@dmatveev dmatveev force-pushed the dm/upstream_desync branch 2 times, most recently from e8a57aa to 47d3275 Compare October 28, 2020 10:37
@dmatveev
Copy link
Copy Markdown
Contributor Author

@TolyaTalamanov @rgarnov builds are green.

Let's have a look on this one more time and get it merged then

- 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).
@dmatveev
Copy link
Copy Markdown
Contributor Author

@alalek @mshabunin review complete, required builds passed. Can you please merge it? We need to have this in our baseline before next Wed. Thanks!

auto ext = model_path.substr(sz - EXT_LEN);
std::transform(ext.begin(), ext.end(), ext.begin(), [](unsigned char c){
return static_cast<unsigned char>(std::tolower(c));
});
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so I know about cv::toLowerCase but let's address this in another MR (with a test on InferROI)

@alalek alalek assigned rgarnov and unassigned dmatveev Oct 29, 2020
@opencv-pushbot opencv-pushbot merged commit 691c3d1 into opencv:master Oct 29, 2020
@dmatveev
Copy link
Copy Markdown
Contributor Author

Fantastic! Thanks!

@alalek alalek mentioned this pull request Nov 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants