Solved Intel OpenVino on Linux
-
Hi,
while building an application based on Qt5 and Intel OpenVino I noticed that there's some kind of conflict when linking the two libraries together. The symptoms are that, when performing face detection with OpenVino, the coordinates of the boxes are offset and discretized.
A very simple way to experience that is by compiling and running the
interactive_face_detection_demo
of OpenVino:cd /opt/intel/computer_vision_sdk/inference_engine/samples/ ./build_samples.sh cd ~/inference_engine_samples_build/intel64/Release/ ./interactive_face_detection_demo -m /opt/intel/computer_vision_sdk/deployment_tools/intel_models/face-detection-adas-0001/FP32/face-detection-adas-0001.xml
and then simply adding and recompiling:
... #include <QApplication> ... int main(int argc, char *argv[]) { QApplication app(argc, argv); ...
in the
/opt/intel/computer_vision_sdk/inference_engine/samples/interactive_face_detection_demo/main.cpp
file.My only clue is about a possible conflict between the threading framework used by OpenVino (OpenMP) and the one used by Qt5 on Linux.
Has anyone experienced this? or has some lead how to solve this conflict?
-
This is a locale issue, specifically your default distro "LC_NUMERIC" setting. This causes a conflict with certain POSIX functions which can mess with data type conversion and maths functions. Try adding the following right after initializing your application:
setlocale(LC_NUMERIC,"C");
More info HERE
-
Hi and welcome to devnet,
Can you provide the link to the OpenVino version you are using ?
What version of Qt are you using ?
What Linux distribution are you running ?
What result are you expecting ?
What result are you getting ? -
Hi @SGaist
the issue happens with different version of openvino, including the last release 2018 R5 (also in 2018 R2):
OpenVino link : http://registrationcenter-download.intel.com/akdlm/irc_nas/15013/l_openvino_toolkit_p_2018.5.445.tgz
QT version : 5.9.5
Linux distribution : Ubuntu 18.04 (also in Ubuntu 16.04)
Kernel : 4.15.0-43-generic x86_64 (also in 4.4.0-139-generic x86_64)
Experienced behavior : face location returned by the openvino face detector is offset compared to the location returned by the openvino face detector binary not linking Qt5
Expected behavior : face location returned by the openvino face detector binary with and without Qt5 linking is the sameThanks!
-
Hi,
I can confirm this one with the R4 release of OpenVino, QT 5.7 under Ubuntu 16.04.
The location and the size of the detected faces are corrupted. This bug occurs either on CPU or NCS/MYRIAD target. -
I can confirm on:
OpenVino 2019 R1.0.1
Ubuntu 18.04
QT 5.9.5 -
This post is deleted! -
This is a locale issue, specifically your default distro "LC_NUMERIC" setting. This causes a conflict with certain POSIX functions which can mess with data type conversion and maths functions. Try adding the following right after initializing your application:
setlocale(LC_NUMERIC,"C");
More info HERE
-
@scooter1556 Thank you for your post! Had wrong classification results all the time, now everything is working fine. I stumbled upon this thread some weeks ago already. Luckily I checked for updates again today :)