Nach langer Zeit wollte ich die OpenVino-Demo auf osx ausführen, aber es funktionierte nicht. Ich dachte darüber nach, es in einem Vortrag zu verwenden, aber ich war in Schwierigkeiten, also schaffte ich es, ein Memorandum über die Angelegenheit zu machen.
macOS Catalina(10.15.4) OpenVino(2020.2.117) Python 3.7.5 cmake 3.17.1
Von hier, holen Sie sich dmg und installieren Sie es. Das Installationsverzeichnis ist / opt / intel. Führen Sie dann das Operation Check Tutorial aus (https://docs.openvinotoolkit.org/2020.2/_docs_install_guides_installing_openvino_macos.html#set-the-environment-variables). Alle anderen, die bisher Probleme hatten.
Eine vollständige Kopie der Python-Demo.
$ cp -r /opt/intel/openvino/deployment_tools/open_model_zoo/demos/python_demos .
Beginnen wir mit der Demo 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, in der eine andere verknüpfte Bibliothek nicht aus opencv von Intel gelesen werden kann. Mal sehen, was los ist.
$ 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)
Hey, ich habe viele Links, aber das Problem scheint zu sein, dass mir nicht gesagt wurde, was der Pfad ist. Lassen Sie uns die Einstellungen der Umgebungsvariablen überprüfen.
/opt/intel/openvino/opencv/setupvars.sh
export OpenCV_DIR=$INSTALLDIR/opencv/cmake
export LD_LIBRARY_PATH=$INSTALLDIR/opencv/lib:$LD_LIBRARY_PATH
Hmmm, was bedeutet es, dass Sie es nicht verwenden können, obwohl es eingestellt zu sein scheint? Als Ergebnis der Untersuchung scheint es, dass LD_LIBRARY_PATH nicht verwendet werden kann, es sei denn, das System ist nach El Capitan durcheinander, um die Sicherheit zu erhöhen. Am einfachsten ist es, alles, was relevant zu sein scheint, in / usr / local / lib zu speichern, aber ich möchte es nicht tun, da die Deinstallation mühsam sein kann. Es gibt eine Möglichkeit, aus dem Quellcode zu kompilieren, aber das möchte ich auch nicht, da das Kompilieren eines Programms der opencv-Klasse lange zu dauern scheint. Ich kann mir keinen guten Weg vorstellen, also setzen wir den Pfad als Erste Hilfe direkt in die Binärdatei.
$ 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
Es gibt andere, aber jetzt lasse ich es auf dieser Ebene. Wenn etwas erneut passiert, sollte es auf die gleiche Weise gelöst werden. Laden Sie nun das Modell herunter und führen Sie es erneut aus.
$ /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
Es soll chaotisch sein, aber es funktioniert vorerst. Und einige Demos funktionieren nicht (aber ich denke, es ist ein weiteres Problem).
Wenn Sie während der Installation die Demo security_barrier des Transitrituals ausgeführt haben, sollte sich in Ihrem Home-Verzeichnis ein Verzeichnis inference_engine_demos_build befinden. Dies entspricht / opt / intel / openvino / deploy_tools / open_model_zoo / demos /.
Wenn ich die README-Datei lese, sagen einige Python-Demos, dass native Python-Erweiterungsmodule erforderlich sind. Daher aktiviere ich Python-Module und mache sie.
$ cd ~/inference_engine_demos_build
$ rm CMakeCache.txt
$ cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=ON /opt/intel/openvino/deployment_tools/inference_engine/demos
...... weggelassen ...
$ make -j2
...... weggelassen ...
/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
...... weggelassen ...
Oh? !! Jesus, ich habe ein paar kleine Worte. In einem solchen Fall ist die Durchgangsleistung wichtig. Wenn es nicht funktioniert, denken Sie noch einmal darüber nach. Setzen wir in CMakeCache.txt die Nembutsu-Flagge auf das Ohr des Pferdes.
CMakeCache.txt
...... weggelassen ...
//Flags used by the CXX compiler during all build types.
CMAKE_CXX_FLAGS:STRING=-Wno-inconsistent-missing-override
...... weggelassen ...
Führen Sie nun erneut make aus. O.K.Done. Die Details sind mir egal. Die Binärdatei wird unter intel64 / Release erstellt. Die C ++ - Version der Demo funktioniert jetzt, sodass Sie so spielen können, wie sie ist.
Früher bewegte ich mich reibungslos, aber ich hatte große Probleme. OpenVino ist ein PC ohne die GPU von nvidia, und ich möchte so etwas wie eine Demo mit DNN schnell implementieren! Ich denke, es ist sehr praktisch, wenn Sie Schülern, die hauptsächlich Macbooks verwenden, den Ort zeigen möchten, an dem sie sich schnell bewegen, aber es gibt nicht viele Informationen über macOS ... ・. Ich frage mich, ob es nicht viele Leute gibt, die es benutzen. Ich habe bemerkt, als ich den Satz geschrieben habe, aber der Mac unterstützt keine eingebauten HD-Grafiken! Der besondere Verdienst ist ... Ich hoffe, Sie werden so schnell wie möglich antworten.
Da der Pfad aller Bibliotheken nicht übergeben wird, kann es in Zukunft zu demselben Problem kommen, das Sie jedoch mit der oben beschriebenen Methode durchbrechen können. Ich würde wirklich gerne Umgebungsvariablen verwenden können, bin mir aber über das aktuelle macOS nicht sicher. Eine großartige Person zum Unterrichten.
2020.5.19 Bestätigt mit macOS 10.15.4. C ++ - Programme funktionieren nur, wenn rpath festgelegt ist. Ändern Sie daher die Reihenfolge und Ausführung von Python. Fehlende Pfadeinstellungen hinzugefügt.
Recommended Posts