2015年11月11日水曜日

OpenCV3.0.0のインストール

このエントリーをはてなブックマークに追加

昔、1.x時代に少し触ったことがあったのだけど、今は3.0にまでなってると知ったのでもう一回触ってみたくてインストールしてみた。

OpenCVのインストールに必要なパッケージのインストール


まずはソースをダウンロードして解凍するとこまでは省略。

こっからcmakeしていくわけだけど、画像や動画周りのライブラリがあからさまに足りなさそう。なので、OpenCVのドキュメントを見ながら潰していくことにした。
http://docs.opencv.org/3.0-last-rst/doc/tutorials/introduction/linux_install/linux_install.html?highlight=install

Ubuntuベースで書かれているので少し困る。僕が入れようとしているのはFedoraだ。apt-getではなくdnfなのだ。すでに心が折れそうなのだが読み解いて、足らない時は考える方向にした。

書かれているのは
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
といった感じ。すでにffmpegがないのが気がかりな点だったのだが、
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
とあるので、ライブラリかffmpegかが入っていればよさそうだ。

少し調べてみよう。

ちなみにRPM Fusionのリポジトリは追加済み。パッケージ調べてみてこれでいけるんじゃないかと踏んだ。
# dnf install ffmpeg-devel ffmpeg gtk2-devel pkgconfig python-devel numpy openjpeg-devel libpng-devel libtiff-devel jasper-devel tbb tbb-devel libdc1394-devel libdc1394
メタデータの期限切れの確認は、0:16:32 前の Wed Nov 11 03:30:28 2015 に実施しました。
Package pkgconfig-1:0.28-9.fc23.x86_64 is already installed, skipping.
依存性が解決されました。
========================================================================================================================
 パッケージ                アーキテクチャ
                                       バージョン                             リポジトリ                           容量
========================================================================================================================
インストール中:
 SDL                       x86_64      1.2.15-20.fc23                         updates                             213 k
 atk-devel                 x86_64      2.18.0-1.fc23                          fedora                              185 k
 atlas                     x86_64      3.10.2-6.fc23                          fedora                              5.7 M
 cairo-devel               x86_64      1.14.2-2.fc23                          fedora                              354 k
 expat-devel               x86_64      2.1.0-12.fc23                          fedora                               61 k
 ffmpeg                    x86_64      2.8.1-1.fc23                           rpmfusion-free-updates-testing      1.3 M
 ffmpeg-devel              x86_64      2.8.1-1.fc23                           rpmfusion-free-updates-testing      679 k
 ffmpeg-libs               x86_64      2.8.1-1.fc23                           rpmfusion-free-updates-testing      5.5 M
 fontconfig-devel          x86_64      2.11.94-4.fc23                         fedora                              137 k
 freetype-devel            x86_64      2.6.0-3.fc23                           fedora                              378 k
 fribidi                   x86_64      0.19.6-5.fc23                          fedora                               69 k
 gdk-pixbuf2-devel         x86_64      2.32.1-1.fc23                          fedora                              217 k
 gl-manpages               noarch      1.1-10.20140424.fc23                   fedora                              1.0 M
 glib2-devel               x86_64      2.46.1-2.fc23                          fedora                              436 k
 graphite2-devel           x86_64      1.2.4-5.fc23                           fedora                               41 k
 gtk2-devel                x86_64      2.24.28-2.fc23                         fedora                              2.9 M
 harfbuzz-devel            x86_64      1.0.6-1.fc23                           updates                             122 k
 jasper-devel              x86_64      1.900.1-31.fc23                        fedora                              379 k
 lame-libs                 x86_64      3.99.5-5.fc23                          rpmfusion-free-updates-testing      345 k
 libX11-devel              x86_64      1.6.3-2.fc23                           fedora                              984 k
 libXau-devel              x86_64      1.0.8-5.fc23                           fedora                               19 k
 libXcomposite-devel       x86_64      0.4.4-7.fc23                           fedora                               21 k
 libXcursor-devel          x86_64      1.1.14-4.fc23                          fedora                               27 k
 libXdamage-devel          x86_64      1.1.4-7.fc23                           fedora                               14 k
 libXext-devel             x86_64      1.3.3-3.fc23                           fedora                               79 k
 libXfixes-devel           x86_64      5.0.1-5.fc23                           fedora                               17 k
 libXft-devel              x86_64      2.3.2-3.fc23                           fedora                               24 k
 libXi-devel               x86_64      1.7.4-3.fc23                           fedora                              109 k
 libXinerama-devel         x86_64      1.1.3-5.fc23                           fedora                               18 k
 libXrandr-devel           x86_64      1.5.0-2.fc23                           fedora                               25 k
 libXrender-devel          x86_64      0.9.9-2.fc23                           fedora                               21 k
 libXxf86vm-devel          x86_64      1.1.4-2.fc23                           fedora                               23 k
 libass                    x86_64      0.12.1-2.fc23                          fedora                               85 k
 libavdevice               x86_64      2.8.1-1.fc23                           rpmfusion-free-updates-testing       76 k
 libdc1394                 x86_64      2.2.2-4.fc23                           fedora                              123 k
 libdc1394-devel           x86_64      2.2.2-4.fc23                           fedora                               57 k
 libdrm-devel              x86_64      2.4.65-1.fc23                          fedora                              111 k
 libgfortran               x86_64      5.1.1-4.fc23                           fedora                              285 k
 libicu-devel              x86_64      54.1-5.fc23                            fedora                              741 k
 libjpeg-turbo-devel       x86_64      1.4.1-2.fc23                           fedora                              104 k
 libpng-devel              x86_64      2:1.6.17-2.fc23                        fedora                              310 k
 libquadmath               x86_64      5.1.1-4.fc23                           fedora                              173 k
 libraw1394-devel          x86_64      2.1.0-6.fc23                           fedora                               44 k
 libtiff-devel             x86_64      4.0.4-1.fc23                           fedora                              487 k
 libva                     x86_64      1.6.1-1.fc23                           fedora                               83 k
 libxcb-devel              x86_64      1.11.1-1.fc23                          updates                             1.1 M
 libxshmfence-devel        x86_64      1.2-2.fc23                             fedora                              9.6 k
 mesa-libEGL-devel         x86_64      11.0.3-1.20151012.fc23                 fedora                               42 k
 mesa-libGL-devel          x86_64      11.0.3-1.20151012.fc23                 fedora                              163 k
 numpy                     x86_64      1:1.9.2-2.fc23                         fedora                              3.0 M
 openal-soft               x86_64      1.16.0-7.fc23                          fedora                              290 k
 opencv-core               x86_64      2.4.11-5.fc23                          fedora                              1.8 M
 openjpeg                  x86_64      1.5.1-15.fc23                          fedora                              189 k
 openjpeg-devel            x86_64      1.5.1-15.fc23                          fedora                              376 k
 openjpeg-libs             x86_64      1.5.1-15.fc23                          fedora                               89 k
 pango-devel               x86_64      1.38.1-1.fc23                          fedora                              324 k
 pixman-devel              x86_64      0.33.4-1.fc23                          updates                              18 k
 python-devel              x86_64      2.7.10-8.fc23                          fedora                              397 k
 python-macros             noarch      2.7.10-8.fc23                          fedora                               61 k
 python-nose               noarch      1.3.7-4.fc23                           fedora                              280 k
 schroedinger              x86_64      1.0.11-9.fc23                          fedora                              317 k
 tbb                       x86_64      4.3-3.20141204.fc23                    fedora                              140 k
 tbb-devel                 x86_64      4.3-3.20141204.fc23                    fedora                              259 k
 x264-libs                 x86_64      0.148-1.20151020gita0cd7d3.fc23        rpmfusion-free-updates-testing      590 k
 x265-libs                 x86_64      1.8-1.fc23                             rpmfusion-free-updates-testing      528 k
 xorg-x11-proto-devel      noarch      7.7-16.fc23                            fedora                              287 k
 xvidcore                  x86_64      1.3.4-2.fc23                           rpmfusion-free-updates-testing      266 k
 zlib-devel                x86_64      1.2.8-9.fc23                           fedora                               55 k

トランザクションの要約
========================================================================================================================
インストール  68 Packages

総ダウンロード容量: 34 M
インストール済み容量: 139 M

OpenCVのインストール

OpenCVのconfigureをccmakeで行う。インストール先は/usr/local/opencvとして、python, javaにも対応しておく。あとexampleも入れておきたい。
# cd /usr/local/src/opencv-3.0.0/
# mkdir build
# cd build/
# ccmake ..

PackageKit-Qt5-develも必要だったのと、python3-develpython3-numpyplibv4l-develpmesa-libGL-develmesa-libGLU-develも追加しておいた。

またJAVA用にantも探しているぽかったのでインストールしておいた。

# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/ant/binaries/apache-ant-1.9.6-bin.tar.gz
# tar -xvzf apache-ant-1.9.6-bin.tar.gz
# ln -s /usr/local/src/apache-ant-1.9.6 /usr/local/ant
antへのパスも通しておく。
ANT_HOME=/usr/local/ant
PATH=$PATH:$ANT_HOME/bin

今回ccmakeで選んだオプションをキャプチャーしたので貼っておく。




ここからmakeしていく。
# make -j7
バリバリにwarningが出てるが、一旦、気にしない。気長に待つ。

エラーが出てこけた。

大域スコープ:
cc1plus: 警告: 認識できないコマンドラインオプション ‘-Wno-unnamed-type-template-args’ です
[ 47%] Linking CXX executable ../../bin/cpp-example-autofocus
../../lib/libopencv_world.so.3.0.0: `DefaultViewPort::staticMetaObject' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvWinProperties' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `CvWindow::staticMetaObject' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `CvTrackbar::staticMetaObject' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvPushButton' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for GuiReceiver' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvCheckBox' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvTrackbar' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for DefaultViewPort' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvWindow' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `CvButtonbar::staticMetaObject' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvRadioButton' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvButtonbar' に対する定義されていない参照です
collect2: エラー: ld はステータス 1 で終了しました
samples/cpp/CMakeFiles/example_autofocus.dir/build.make:97: recipe for target 'bin/cpp-example-autofocus' failed
make[2]: *** [bin/cpp-example-autofocus] Error 1
CMakeFiles/Makefile2:3671: recipe for target 'samples/cpp/CMakeFiles/example_autofocus.dir/all' failed
make[1]: *** [samples/cpp/CMakeFiles/example_autofocus.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

opencv_worldが悪さをしているみたいなので、一旦OFFにした。各種モジュールを1つのライブラリにするだけみたいなので、特に問題ないかなと。

あと、POLICYIDがどうのこうのと言われるので、CMakeList.txtに追記した。
if(POLICY CMP0045)
  cmake_policy(SET CMP0049 OLD)
endif()

if(POLICY CMP0059)
  cmake_policy(SET CMP0059 OLD)
endif()
再トライしたところ、うまくmake終了。make installもうまくいった。

ただ、ここまでだとsampleがインストールされないので、動作確認するまでにsampleもインストールしておく。
# cd /usr/local/src/opencv-3.0.0/build/samples
# make
この後、もうCMakeList.txtができるので、もう1度ccmake

# pwd
/usr/local/src/opencv-3.0.0/build/samples
# ccmake .
# make

これで/usr/local/src/opencv-3.0.0/samplesにサンプルがインストールされた。

実際に試してみる。

# /usr/local/src/opencv-3.0.0/samples/cpp/cpp-example-facedetect --cascade="/usr/local/opencv/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.3 /usr/local/src/opencv-3.0.0/samples/data/lena.jpg 


出来た!!!
でもソースをコンパイルしたディレクトリ配下なので少し気持ち悪い。/usr/local/opencvの下にどうしたらインストールできるんやろう。

0 件のコメント:

コメントを投稿