Après un long moment, j'ai voulu lancer la démo OpenVino sur osx, mais cela n'a pas fonctionné. Je pensais l'utiliser dans une conférence, mais j'étais en difficulté, alors j'ai réussi à faire un mémorandum sur le sujet.
macOS Catalina(10.15.4) OpenVino(2020.2.117) Python 3.7.5 cmake 3.17.1
D'ici, récupérez dmg et installez-le. Le répertoire d'installation est / opt / intel. Exécutez ensuite le didacticiel de vérification des opérations (https://docs.openvinotoolkit.org/2020.2/_docs_install_guides_installing_openvino_macos.html#set-the-environment-variables). Quiconque a eu des problèmes jusqu'à présent.
Une copie complète de la démo de python.
$ cp -r /opt/intel/openvino/deployment_tools/open_model_zoo/demos/python_demos .
Commençons la démo face_recoginition.
$ cd python_demos/face_recognition_demo/
$ python3 ./face_recognition_demo.py -h
Traceback (most recent call last):
File "./face_recognition_demo.py", line 24, in <module>
import cv2
ImportError: dlopen(/opt/intel/openvino_2020.2.117/python/python3/cv2.so, 2): Library not loaded: @rpath/libopencv_ml.4.3.dylib
Referenced from: /opt/intel/openvino_2020.2.117/python/python3/cv2.so
Reason: image not found
Atmosphère qu'une autre bibliothèque liée ne peut pas être lue à partir d'opencv made by Intel. Voyons ce qui se passe.
$ otool -L /opt/intel/openvino_2020.2.117/python/python3/cv2.so
/opt/intel/openvino_2020.2.117/python/python3/cv2.so:
@rpath/libopencv_ml.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_photo.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_dnn.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_highgui.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_objdetect.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_stitching.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_video.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_videoio.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_imgcodecs.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_calib3d.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_features2d.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_flann.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_imgproc.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
@rpath/libopencv_core.4.3.dylib (compatibility version 4.3.0, current version 4.3.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.4)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1)
Hé, j'ai beaucoup de liens, mais le problème semble être que l'on ne m'a pas dit quel est le chemin. Vérifions les paramètres de la variable d'environnement.
/opt/intel/openvino/opencv/setupvars.sh
export OpenCV_DIR=$INSTALLDIR/opencv/cmake
export LD_LIBRARY_PATH=$INSTALLDIR/opencv/lib:$LD_LIBRARY_PATH
Hmmm, qu'est-ce que cela signifie que vous ne pouvez pas l'utiliser même s'il semble être configuré? À la suite de l'enquête, il semble que LD_LIBRARY_PATH ne peut pas être utilisé à moins que le système ne soit perturbé après El Capitan pour améliorer la sécurité. La chose la plus simple à faire est de mettre tout ce qui semble pertinent dans / usr / local / lib, mais je ne veux pas le faire car la désinstallation peut être compliquée. Vous pouvez compiler à partir des sources, mais je ne veux pas non plus le faire car la compilation d'un programme de la classe opencv semble prendre beaucoup de temps. Je ne peux pas penser à un bon moyen, alors définissons le rpath directement dans le binaire comme premiers secours.
$ sudo install_name_tool -add_rpath '/opt/intel/openvino/opencv/lib' /opt/intel/openvino_2020.2.117/python/python3/cv2.so
Password:
$ sudo install_name_tool -add_rpath '/opt/intel/openvino/inference_engine/lib/intel64' /opt/intel/openvino_2020.2.117/python/python3/cv2.so
$ sudo install_name_tool -add_rpath '/opt/intel/openvino/deployment_tools/ngraph/lib' /opt/intel/openvino_2020.2.117/python/python3/cv2.so
$ sudo install_name_tool -add_rpath '/opt/intel/openvino/inference_engine/external/tbb/lib' /opt/intel/openvino/deployment_tools/inference_engine/lib/intel64/libinference_engine_legacy.dylib
$ sudo install_name_tool -add_rpath '/opt/intel/openvino/inference_engine/lib/intel64' /opt/intel/openvino/deployment_tools/inference_engine/lib/intel64/libMKLDNNPlugin.dylib
$ sudo install_name_tool -add_rpath '/opt/intel/openvino/inference_engine/lib/intel64' /opt/intel/openvino/python/python3.7/openvino/inference_engine/ie_api.so
$ sudo install_name_tool -add_rpath '/opt/intel/openvino/inference_engine/external/tbb/lib' /opt/intel/openvino/python/python3.7/openvino/inference_engine/ie_api.so
$ sudo install_name_tool -add_rpath '/opt/intel/openvino/deployment_tools/ngraph/lib' /opt/intel/openvino/deployment_tools/inference_engine/lib/intel64/libinference_engine.dylib
$ sudo install_name_tool -add_rpath '/opt/intel/openvino/deployment_tools/ngraph/lib' /opt/intel/openvino/deployment_tools/inference_engine/lib/intel64/libinference_engine_legacy.dylib
Il y en a d'autres, mais pour l'instant je vais le laisser à ce niveau. Si quelque chose se reproduit, il doit être résolu de la même manière. Téléchargez maintenant le modèle et exécutez-le à nouveau.
$ /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/downloader.py --name face-detection-retail-0004
$ /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/downloader.py --name landmarks-regression-retail-0009
$ /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/downloader.py --name face-reidentification-retail-0095
$ python3 face_recognition_demo.py \
-m_fd ./intel/face-detection-retail-0004/FP16/face-detection-retail-0004.xml \
-m_lm ./intel/landmarks-regression-retail-0009/FP16/landmarks-regression-retail-0009.xml \
-m_reid ./intel/face-reidentification-retail-0095/FP16/face-reidentification-retail-0095.xml \
--verbose -fg ./test
On dit que c'est désordonné, mais ça marche pour le moment. Et certaines démos ne fonctionnent pas (mais je pense que c'est un autre problème).
Si vous avez exécuté la démo security_barrier du rituel de transit pendant l'installation, vous devriez avoir un répertoire inference_engine_demos_build dans votre répertoire personnel. Cela équivaut à / opt / intel / openvino / deployment_tools / open_model_zoo / demos /.
Quand je lis le README, certaines démos Python disent que les modules d'extension Python natifs sont nécessaires, donc j'active les modules Python et je les fais.
$ cd ~/inference_engine_demos_build
$ rm CMakeCache.txt
$ cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=ON /opt/intel/openvino/deployment_tools/inference_engine/demos
...... Omis ...
$ make -j2
...... Omis ...
/opt/intel/openvino/deployment_tools/open_model_zoo/demos/multi_channel/common/input.cpp:292:11: error:
'getAvgReadTime' overrides a member function but is not marked 'override'
[-Werror,-Winconsistent-missing-override]
float getAvgReadTime() const {
^
/opt/intel/openvino/deployment_tools/open_model_zoo/demos/multi_channel/common/input.cpp:43:19: note: overridden
virtual function is here
virtual float getAvgReadTime() const = 0;
^
3 errors generated.
make[2]: *** [multi_channel/common/CMakeFiles/common.dir/input.cpp.o] Error 1
make[1]: *** [multi_channel/common/CMakeFiles/common.dir/all] Error 2
make: *** [all] Error 2
...... Omis ...
Oh? !! Jésus, j'ai quelques petits mots. Dans un tel cas, la puissance de passage est importante. Si cela ne fonctionne pas, pensez-y à nouveau. Définissons le drapeau Nembutsu sur l'oreille du cheval dans CMakeCache.txt.
CMakeCache.txt
...... Omis ...
//Flags used by the CXX compiler during all build types.
CMAKE_CXX_FLAGS:STRING=-Wno-inconsistent-missing-override
...... Omis ...
Maintenant, exécutez à nouveau make. Ok. Je me fiche des détails. Le binaire est construit sous intel64 / Release. La version C ++ de la démo fonctionne maintenant, vous pouvez donc jouer telle quelle.
J'avais l'habitude de bouger en douceur, mais j'avais beaucoup de mal. OpenVino est un PC qui n'a pas le GPU de nvidia, et je veux mettre en œuvre quelque chose comme une démo en utilisant DNN rapidement! Je pense que c'est assez pratique lorsque vous souhaitez laisser les étudiants qui utilisent principalement des macbooks découvrir l'endroit où ils se déplacent rapidement, mais il n'y a pas beaucoup d'informations sur macOS ... ・. Je me demande s'il n'y a pas beaucoup de gens qui l'utilisent. J'ai remarqué quand j'écrivais la phrase, mais mac ne prend pas en charge les graphiques HD intégrés! Le mérite spécial est ... J'espère que vous répondrez dans les plus brefs délais.
De plus, comme le rpath de toutes les bibliothèques ne passe pas, vous pouvez rencontrer le même problème à l'avenir, mais vous pouvez passer par la méthode ci-dessus. J'aimerais vraiment pouvoir utiliser des variables d'environnement, mais je ne suis pas sûr de macOS récent. Une personne formidable à enseigner.
2020.5.19 Confirmé avec macOS 10.15.4. Les programmes C ++ ne fonctionneront que si rpath est défini, changez donc l'ordre et l'exécution de python. Ajout des paramètres rpath manquants.
Recommended Posts