次のリビジョン | 前のリビジョン 次のリビジョン両方とも次のリビジョン |
opencv_dnn:環境構築:openvino [2019/06/09 22:47] – 作成 baba | opencv_dnn:環境構築:openvino [2019/06/11 09:22] – [Frameworkの作成] baba |
---|
| |
を参照してください。上記リンクに示されている通り、demoを動かすところまでを確認しましょう。 | を参照してください。上記リンクに示されている通り、demoを動かすところまでを確認しましょう。 |
| |
| ===== Frameworkの作成 ===== |
| うまく行っていません。 |
| <WRAP center round important 60%> |
| OpenVINOを含んだopencv2.frameworkを作成しようとしていますが。うまく行っていません。だれか助けて。 |
| </WRAP> |
| |
| * https://github.com/opencv/opencv/wiki/Intel%27s-Deep-Learning-Inference-Engine-backend のページに従い cmakeのコンパイルオプションを追加する。ただしosxの build_framework.py ではなく、 ios/build_framework.py に修正すべき記述がある。 |
| |
| <file> |
| def getCMakeArgs(self, arch, target): |
| |
| args = [ |
| "cmake", |
| "-GXcode", |
| "-DAPPLE_FRAMEWORK=ON", |
| "-DCMAKE_INSTALL_PREFIX=install", |
| "-DCMAKE_BUILD_TYPE=Release", |
| "-DOPENCV_INCLUDE_INSTALL_PATH=include", |
| "-DOPENCV_3P_LIB_INSTALL_PATH=lib/3rdparty", |
| "-DWITH_INF_ENGINE=ON", # 追加 |
| "-DENABLE_CXX11=ON" # 追加 |
| ] + ([ |
| "-DBUILD_SHARED_LIBS=ON", |
| "-DCMAKE_MACOSX_BUNDLE=ON", |
| "-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=NO", |
| ] if self.dynamic else []) + ([ |
| "-DOPENCV_ENABLE_NONFREE=ON" |
| ] if self.enablenonfree else []) |
| |
| if len(self.exclude) > 0: |
| args += ["-DBUILD_opencv_world=OFF"] if not self.dynamic else [] |
| args += ["-DBUILD_opencv_%s=OFF" % m for m in self.exclude] |
| |
| return args |
| </file> |
| |
| これでビルドは成功するが、実際にframeworkを読み込みませて、object_detectionやってみたところ、 |
| ndefined symbols for architecture x86_64: |
| "InferenceEngine::Builder::MVNLayer::setAcrossChannels(bool)", referenced from: |
| cv::dnn::MVNLayerImpl::initInfEngine(std::__1::vector<cv::Ptr<cv::dnn::dnn4_v20190122::BackendWrapper>, |
| なるエラーが100個以上でる。これはdnnモジュールでもvino側にあるライブラリなので、そっちを参照すればよい。 |
| |
| Xcodeの Link Binary with Library に inference_engineのlibを渡してみた。 |
| {{ :opencv_dnn:環境構築:スクリーンショット_2019-06-11_9.15.12.png?direct&300 |}} |
| |
| ビルドは上手くいくが、実行すると |
| dyld: Library not loaded: @rpath/libcpu_extension.dylib |
| |
| となる。これは dylib からの参照先に @rpath があるため、これで見つからずにロードできないとのこと。そもそも絶対パスで入っていれば |
| 間違いないのだけれど、intelからはバイナリでしか配布されていないので、困る。 |
| |
| install_name_tool を利用するとこの @rpath ごと変更できるとのことで、やってみたけど修正できなかった。 |
| |
| <file> |
| bugle-1831:test baba$ otool -L libinference_engine.dylib |
| libinference_engine.dylib: |
| @rpath/libinference_engine.dylib (compatibility version 0.0.0, current version 0.0.0) |
| @rpath/libtbb.dylib (compatibility version 0.0.0, current version 0.0.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.200.5) |
| bugle-1831:test baba$ install_name_tool -change @rpath/libinference_engine.dylib /opt/intel//openvino_2019.1.133/deployment_tools/inference_engine/lib/opt/intel//openvino_2019.1.133/deployment_tools/inference_engine libinference_engine.dylib |
| bugle-1831:test baba$ otool -L libinference_engine.dylib |
| libinference_engine.dylib: |
| @rpath/libinference_engine.dylib (compatibility version 0.0.0, current version 0.0.0) |
| @rpath/libtbb.dylib (compatibility version 0.0.0, current version 0.0.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.200.5) |
| </file> |
| |
| opencv側のMakefileをじっくり見るしかなし。。 |
| --- //[[baba@tmu.ac.jp|Tetsuaki Baba]] 2019/06/11 09:13// |