バックグラウンド:
Digits フレームワーク内またはその外部で Caffe を使用できるように、 CaffeとDigitsの両方を使用したいと考えています。
ただし、特定のプロジェクトでは、Caffe が OpenCV 3 を使用し、Digits がデフォルトでインストールする OpenCV 2.4 を使用する必要はありません。このプロジェクトは Digits の外部で Caffe を使用しており、Digits フレームワークは一切使用していません。
Digits をインストールすると、私の OpenCV 3 インストールが OpenCV 2.4 で「上書き」され、元の Caffe インストール内で問題が発生しているようです。
わかりやすくするために、私が行った手順のリストを以下に示します。
Ubuntu 14.04 の新規インストールから:
- Ubuntu インストール ガイドに従ってインストールされた Caffe 依存関係 (OpenCV を除く)
- ソースから OpenCV 3 をインストール
/usr/local
- テスト済み OpenCV インストール
- OpenCV 3固有のコードを含むデモは正常に機能しました
- コンパイル済み Caffe、
Makefile.config
OpenCV 3 を使用するように設定 - テスト済みの Caffe インストール
- すべてのテストに合格し、デモは問題なく動作しました
- インストールガイドに従ってインストールされた数字
- Caffe と OpenCV 2.4 は、インストーラー スクリプトによってデフォルトでインストールされました。
- OpenCV 2.4 によって破壊された OpenCV 3 (?)
- Digits Getting Started ガイドの手順を実行した
- すべての手順が成功しました
- OpenCV の競合が疑われるため、Caffe デモをコンパイルしようとしました
- OpenCV 3.0 と 2.4 の競合に関連するエラーが発生しました -- 詳細は以下をご覧ください。
コンパイル コマンド:
g++ classification.cpp -o classification -I/home/josh/software/caffe/include/ -L/home/josh/software/caffe/build/lib/ -lcaffe -I/usr/local/cuda/include -L/ usr/local/cuda/lib64 -lcuda -lcudart -lcublas -lcurand -I/home/josh/software/cudnn/include/ -L/home/josh/software/cudnn/lib64/ -lcudnn -L/usr/lib/ x86_64-linux-gnu/ -lglog -L/usr/local/lib -lboost_system -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -DUSE_OPENCV
エラーメッセージ:
/usr/bin/ld: 警告: /home/josh/software/caffe/build/lib//libcaffe.so で必要な libopencv_core.so.3.0 は、libopencv_core.so.2.4 /usr/bin/ld と競合する可能性があります: /tmp/ccHaWcOl.o: シンボル '_ZN2cv6String10deallocateEv' への未定義の参照 //usr/local/lib/libopencv_core.so.3.0: シンボルの追加エラー: DSO がコマンド ラインから見つかりません collect2: エラー: ld が 1 つの終了ステータスを返しました
質問:
- Caffe/Digits のインストールを中断せずに OpenCV バージョンの競合を解決するにはどうすればよいですか?
- OpenCV を削除して、Caffe と Digits を再インストールする必要がありますか?
- その場合、Caffe (OpenCV 3 を使用) と Digits を並行して動作させながら、OpenCV のバージョンの競合を防ぐために、別の方法で何をする必要がありますか?