その他
    ホーム 技術発信 DoRuby ruby-opencvのインストール

    ruby-opencvのインストール

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    RubyでOpenCVを使ってみたくて
    gemのruby-opencvを入れてみました。

    OpenCVは画像処理や画像解析ができるオープンソースのライブラリです。

    http://opencv.org/http://opencv.jp/

    画像の顔認識や、
    動画中の特定条件に合致したコマのみキャプチャするとか
    そういうことができます。
    機械学習機能があるので、
    学習させれば、好みの顔が写ってる画像だけ拾って来る
    みたいなこともできるようです。(難しいようですが)

    RubyはOpenCV公式の対象言語ではないとのことですが、
    問題なく使えるとのこと。
    gemもあって、わりとメジャーなようだったので
    インストールしてみました。

    https://github.com/ruby-opencv/ruby-opencvhttp://www.rubydoc.info/gems/ruby-opencv/frames

    なかなか依存関係のバージョンが合わず一苦労だったので
    以下手順メモ。・環境・OpenCVインストール

    1. ライブラリをいろいろインストール
    2. yasm のインストール
    3. x264 のインストール
    4. fdk-aac のインストール
    5. ライブラリ設定
    6. ffmpeg1.2 のインストール
    7. opencv-2.4.6.1 のインストール

    ・ruby-opencvインストール

    ■ 環境

    • CentOS6.7
    • Ruby 2.1.7(rbenv)
    • Rails 4.1.6(rbenv)

    ■ OpenCVインストール

    1. ライブラリをいろいろインストール

    # yum --setopt=group_package_types=optional groupinstall Base
    # yum groupinstall "Development Tools"
    # yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
    
    # vi /etc/yum.repos.d/rpmforge.repo
    ※enabled=0にする
    
    # yum -y install gtk2-devel
    # yum install expat-devel
    # yum install libarchive libarchive-devel
    # yum install libcurl3 ※ない
    # yum install qt qt-devel
    
    # yum install gtk*
    # yum install cmake28
    
    # yum install autoconf automake make gcc gcc-c++ pkgconfig wget libtool zlib-devel
    # yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    ※enabled=0にする
    

    2. yasm のインストール(x264 のビルドに必要)

    # cd /usr/local/src
    # wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
    # tar zvxf yasm-1.3.0.tar.gz 
    # cd yasm-1.3.0
    # ./configure
    # make
    # make install
    

    3. x264 のインストール(ffmpeg のビルドに必要)

    # cd /usr/local/src
    # git clone git://git.videolan.org/x264
    # cd x264
    # ./configure --enable-shared
    # make
    # make install
    

    4. fdk-aac のインストール

    # cd /usr/local/src
    # git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
    # cd fdk-aac
    # autoreconf -fiv
    # ./configure
    # make
    # make install
    

    5. ライブラリ設定

    # export LD_LIBRARY_PATH=/usr/local/lib/
    # export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
    # echo /usr/local/lib > /etc/ld.so.conf.d/custom-libs.conf
    # ldconfig
    

    6. ffmpeg1.2 のインストール

    # cd /usr/local/src
    # git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
    # cd ffmpeg
    # git checkout -b release1.2 origin/release/1.2
    # ./configure --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libx264 --enable-shared
    # make
    # make install
    
    # yum --enablerepo=rpmforge install ffmpeg-devel
    

    バージョン確認

    # ffmpeg -version
    

    7. opencv-2.4.6.1 のインストール

    # cd /usr/local/src
    # wget ftp://ftp.jp.netbsd.org/pub/pkgsrc/distfiles/opencv-2.4.6.1.tar.gz
    # tar vxzf opencv-2.4.6.1.tar.gz
    # cd opencv-2.4.6.1
    # cmake28 .
    # make
    # make install
    # ldconfig
    

    バージョン確認

    # cat /usr/local/share/OpenCV/OpenCVConfig-version.cmake
    

    ■ ruby-opencvインストール

    $ vi Gemfile
    
    以下を追記
    --------------------
    gem 'ruby-opencv'
    --------------------
    
    $ bundle update
    

    インストール完了です。

    以下は失敗例

    ・opencv-2.4.11入れた時のエラー

    /usr/local/src/opencv-2.4.11/modules/highgui/src/ffmpeg_codecs.hpp:104: error: ‘CODEC_ID_H264’ was not declared in this scope
    

    コーデック関連のライブラリでエラーがたくさんでる。。

    http://code.opencv.org/issues/3986OpenCV3.0RC1で解決されたらしいですが、ruby-opencvはOpenCV3.*に対応してないのでバージョンは上げられず。

    https://github.com/Itseez/opencv/issues/4940OpenCV2.4.9、2.4.10でも同様のエラーがでるぽいです。OpenCV2.4.8も別のエラーがでて結局だめでした。

    とりあえず試してみる分には問題ないので
    2.4.6.1でよしとしました。