2017年5月14日日曜日

Dlib 19.04 を ubuntu 16.04 上でビルドした。(built Dlib 19.04 on ubuntu 16.04.)

はじめに

両方リリースされて時間が経過しており、今頃感があるが、備忘録としてまとめておく

実は、14.04の開発マシンの更新を様子見していたが、16.04に更新を試みたところ、なぜかパーティション情報が消えてしまし、開発データすべてを失ってしまった。

折れた心を立ち直らせ、新規に開発環境を構築するついでにHDDからSSDに変更した。ubuntu16.04をクリーンインストールし、再度開発環境を構築した。

Dlib関連は、なくなったHDD内にいくつかのメモを書いてあったが、バックアップや備忘録もなかったので、なくなく手探りで再構築している。

Dlibに関しては、2016アドベントカレンダー向けに作成した記事
OpenCVで顔向き推定を行う
で触れている。

ソースの取得とビルド

http://dlib.net/のページに移動

左メニュー下 ダウンロードボタンを押す
dlib-19.4.tar.bz2をダウンロード 9.0M

ホームに展開後、ディレクトリーに移動し、
cmake ..
cmake --build . --config Release
を実行する。

サンプルプログラムのコンパイルと実行

exsamplesのフォルダーに移動し、定番の顔検出 face_detection_ex.cpp を試してみる

コンパイルの仕方は、本家のページに、
g++ -std=c++11 -O3 -I.. ../dlib/all/source.cpp -lpthread -lX11 example_program_name.cpp

と書かれているが、実行すると
../dlib/all/../gui_widgets/nativefont.h:27:22: fatal error: X11/Xlib.h: そのようなファイルやディレクトリはありません
とエラーとなる。

対処
ubuntu16.4には、x11の開発環境がないため、
sudo apt-get install libx11-dev
を実行し、再度コンパイルを試してみると今度はうまくビルドできた。

exsamples/facesにサンプル画像が格納されているので、
./a.out faces/2009_004587.jpg を実行すると、

processing image faces/2009_004587.jpg

exception thrown!
Unable to load image in file faces/2009_004587.jpg.

が表示される。

googleで調べてみると、
-DDLIB_JPEG_SUPPORT と -ljpegのオプションが必要とのこと

最終的には、
g++ -std=c++11 -O3 -I.. ../dlib/all/source.cpp -lpthread -lX11 -ljpeg face_detection_ex.cpp -DDLIB_JPEG_SUPPORT
を行うことでaoutが作成され
./a.out faces/2009_004587.jpg を実行すると画面に検出結果が表示される。

以上

0 件のコメント:

コメントを投稿