OSX で OpenCV を試してみる

とりあえず、【コラム】OS X ハッキング! OpenCV+iSightで顔を認識? を参考に OpenCV を試してみることにする。

必要なライブラリーのインストール

OpenCV のインストールに必要なライブラリは、Fink ではなく MacPorts を使ってインストールする(MacPorts の使い方は、HowTo/UseMacPorts を参照)。

MacPortsOpenCV をインストール(失敗)

$ port info opencv
opencv 1.0.0, graphics/opencv (Variants: universal)
http://www.intel.com/technology/computing/opencv/

opencv is a library that is mainly aimed at real time computer vision. Some example areas would be Human-Computer Interaction (HCI), Object Identification, Segmentation and Recognition, Face Recognition, Gesture Recognition, Motion Tracking, Ego Motion, Motion Understanding, Structure From Motion (SFM), and Mobile Robotics.

Library Dependencies: gtk2, zlib, jpeg, libpng, tiff
Platforms: darwin
Maintainers: stante@gmail.com

ということなので、MacPorts からでも OpenCV をインストールできそう。その方が簡単そうなので、それでやってみる。

が、依存関係のリストの先頭にある gtk2 というライブラリーが重そう。インストールに結構時間がかかる。

$ port info gtk2
gtk2 2.12.9, x11/gtk2 (Variants: universal, darwin_6, darwin_7, quartz, x11)
http://www.gtk.org/

This is GTK+ version 2.x. GTK+, which stands for Gimp ToolKit, is a library for creating GUIs for the X Windows System.

Build Dependencies: gtk-doc, pkgconfig
Library Dependencies: cairo, fontconfig, freetype, glib2, jpeg, tiff, libiconv, libpng, atk, pango, gettext, render, zlib, xrender, xorg
Runtime Dependencies: shared-mime-info
Platforms: darwin
Maintainers: nox@macports.org openmaintainer@macports.org

普通に configure, make, make install で入れれば、この重いやつを入れずに済んだのかも・・?

と思いつつ見守っていると、gtk2 のインストール中にエラーが発生。XFree86 の Fetch に失敗。すでに X11 がインストールされているのが原因らしい。

--->  Fetching XFree86
Error: Target org.macports.fetch returned: 

                    You have an Apple X11SDK installation already.
                        MacPorts will not overwrite it.

                    If you wish to use Apple X11,
                        install it from your Mac OS X install disc.

                    If you really want to use XFree86 instead,
                        please move it aside first :

                            sudo mv /usr/X11R6 /usr/X11R6.apple
            
Error: The following dependencies failed to build: gtk2 cairo xrender XFree86 gtk-doc docbook-xml-4.1.2 xmlcatmgr docbook-xsl gnome-doc-utils docbook-xml docbook-xml-4.2 docbook-xml-4.3 docbook-xml-4.4 docbook-xml-4.5 iso-codes py25-hashlib python25 libxml2 libxslt py25-gobject py25-libxml2 py25-numeric rarian getopt intltool gnome-common jpeg pango Xft2 xorg-xproto xorg-util-macros shared-mime-info tiff xorg
Error: Status 1 encountered during processing.

OpenCV をソースからインストール

MacPortsOpenCV を入れるのはあきらめて、『OS X ハッキング』の記事の通りに進めてみよう。
OpenCV を入れる前に、jpeg, libpng, tiffMacPorts でインストールしておく。

※インストールについては、OpenCVメモも参考になる。


Fink ではなく MacPorts を使ってライブラリをインストールしたので、/sw ではなく /opt/local にインストールされている。というわけで、./configure コマンドでもオプションのパスを合わせる必要がある。

$ ./configure --with-python LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include

結果。

General configuration ================================================
    Compiler:                 g++
    CXXFLAGS:                 -Wall -fno-rtti -pipe -O3 -g -mcpu=G3 -mtune=G5 -fomit-frame-pointer 

    Install path:             /usr/local

HighGUI configuration ================================================

    Windowing system --------------
    Use Carbon / Mac OS X:    yes
    Use gtk+ 2.x:             no
    Use gthread:              no

    Image I/O ---------------------
    Use libjpeg:              yes
    Use zlib:                 yes
    Use libpng:               yes
    Use libtiff:              yes
    Use libjasper:            no
    Use libIlmImf:            no

    Video I/O ---------------------
    Use QuickTime / Mac OS X: yes
    Use xine:                 no
    Use ffmpeg:               no
    Use dc1394 & raw1394:     no
    Use v4l:                  no
    Use v4l2:                 no

Wrappers for other languages =========================================
    SWIG                      
    Python                    yes

Additional build settings ============================================
    Build demo apps           yes

make、make install でインストールを実行。

$ make
$ sudo make install

パスの追加とサンプルのビルド(?)。

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
$ cd samples/c
$ sh build_all.sh

これでインストール完了。(^_^

サンプルの動作テスト

やはり facedetect を試したい。

./facedetect --cascade='../../data/haarcascades/haarcascade_frontalface_default.xml'

一応成功したが、ディテクションに平均 700 ミリ秒くらいかかってしまう(Powerbook G4 1.67GHz)。これでは実用にならないな〜。