minorio のプログラミング・メモ



[][] OSX で OpenCV を試してみる 22:12

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


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

MacPorts で OpenCV をインストール(失敗)

$ port info opencv
opencv 1.0.0, graphics/opencv (Variants: universal)

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)

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 をソースからインストール

MacPorts で OpenCV を入れるのはあきらめて、『OS X ハッキング』の記事の通りに進めてみよう。

OpenCV を入れる前に、jpeg, libpng, tiff を MacPorts でインストールしておく。


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 =========================================
    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)。これでは実用にならないな〜。