まず OpenCV をインストール。
$ cd /usr/local/src $ wget https://github.com/opencv/opencv/archive/3.2.0.zip $ unzip 3.2.0.zip $ cd opencv-3.2.0/ $ cmake . $ make $ make install
次に php_facedetect をインストール。
$ cd /usr/local/src $ git clone https://github.com/infusion/PHP-Facedetect.git $ cd PHP-Facedetect $ phpize && ./configure && make && make install
php側で認識させるように ini を追加。
$ vim /etc/php.d/facedetect.ini extension=facedetect.so
確認。
$ php -m | grep facedetect facedetect
facedetect.cpp のコンパイル。
$ /usr/local/src/opencv/opencv-3.2.0/samples/cpp $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig $ g++ -ggdb `pkg-config --cflags --libs opencv` facedetect.cpp -o facedetect $ cp facedetect /usr/local/bin
実行。エラーが発生。
$ facedetect facedetect: error while loading shared libraries: libopencv_shape.so.3.2: cannot open shared object file: No such file or directory
LD_LIBRARY_PATH
を通すとエラーは消える。
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib $ facedetect WARNING: Could not load classifier cascade for nested objects ERROR: Could not load classifier cascade This program demonstrates the cascade recognizer.....
毎回 PATH を通すのは面倒なので、.bashrc に書いておく。
$ vim ~/.bashrc export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib