- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to use the content in Inference Engine sample code directory to implement a callback function for my inference plugin. the intent is to generate async inference requests and capture the results when available. here is the code I am using:
async_infer_request->SetCompletionCallback(
[&] {
tmr.reset();
async_infer_request->StartAsync();
std::cout << " Frame: "<< *infer_req_cnt << " Inference Completed" << std::endl;
});
when above code runs, the StartAsync() call never gets executed. I tried to step into the DLDT code but there does not seem to be any indication that the call is going through at any time. Was wondering if there is a more intuitive way to accomplish this? Or something is wrong with this implementation. By the way, above is a simplified version of similar function implemented in Inference Engine sample codes.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Farshad,
In the Integrate Inference Engine doc I see the following:
infer_request->StartAsync(); infer_request.Wait(IInferRequest::WaitMode::RESULT_READY);
Perhaps you forgot the Wait statement ?
Thanks,
Shubha
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Interestingly the IDZ admin does not forward replies to proper target thread! was wondering if Shubha was ignoring me :)
Thanks
Farshad.
From: Akhbari, Farshad
Sent: Thursday, May 16, 2019 12:59 PM
To: IDZ Admin <idz.admin@intel.com>
Subject: RE: New comment for Computer Vision Forum topic: Async Inferrence Using Callbacks
Hi Shubha,
I have been told the Wait statement blocks the callback and is contradictory to the purpose of callback. In fact, I have been told use of Wait after callback puts the infer engine to INFER_NOT_STARTED state forever. According to DLDT people, if callback is used, it should not be blocked by wait.
Anything else may strike you weird?
Thanks
Farshad.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Farshad,
Have you done SetCompletionCallback() ?
https://docs.openvinotoolkit.org/latest/classInferenceEngine_1_1InferRequest.html
Can you kindly study the sample inference_engine\samples\perfcheck\main.cpp ?
I think it accomplishes what you want to accomplish.
Thanks,
Shubha
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Shubha,
SetCompletionCallback is the Callback function I am trying to troubleshoot. it is the first line of code in original post. I am not sure how this is different than the one in perfcheck sample. In the perfcheck sample, the Callback is called for an array of requests and mine is only for one as they come along.
thanks,
Farshad.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Farshad,
Please encapsulate your code into a main.cpp and send it to me via intel email. Please make it a simple sample-like main.cpp (not too complicated) which demonstrates the problem.
It could very well be a bug.
Thanks,
Shubha
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page