目次
この記事はアピリッツの技術ブログ「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インストール
- ライブラリをいろいろインストール
- yasm のインストール
- x264 のインストール
- fdk-aac のインストール
- ライブラリ設定
- ffmpeg1.2 のインストール
- opencv-2.4.6.1 のインストール
■ 環境
- 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
コーデック関連のライブラリでエラーがたくさんでる。。
とりあえず試してみる分には問題ないので
2.4.6.1でよしとしました。