dlibと呼ばれる画像処理ライブラリを使ってみた
皆さんこんにちは
お元気ですか。私は元気です。
日本ではあまり見られないdlibと呼ばれるライブラリの画像処理ライブラリを
使ってみたいと思います。
dlibについて
dlibとは
公式サイト:dlib C++ Library
Dlib is a modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real world problems. It is used in both industry and academia in a wide range of domains including robotics, embedded devices, mobile phones, and large high performance computing environments. Dlib's open source licensing allows you to use it in any application, free of charge.
Dlibは現実世界の問題を解決するための複雑なソフトウェアを作るためのC++の機械学習アルゴリズムやツールであり、
産業や学術の広いドメインに適用でき、オープンソースで、無料である。
実はコンピュータビジョン勉強会に参加するまではこのライブラリの存在を知らず、
そういえばあったなぁと今から使ってみる次第です。
因みにPythonのパッケージもありますが、Macでは動かなかったので諦めてC++にします。
Ubuntuだと動くらしいです。
Install方法
boostなどのその他ライブラリは入っている前提です。
git clone https://github.com/davisking/dlib cd dlib cd examples mkdir build cd build cmake .. cmake --build . --config Release
因みにXQuartzがないと、動作しません。そのため、ない人は以下のページからXQuartzを入れましょう。
https://www.xquartz.org/
インストール後に、シンボリックリンクを貼りましょう。
ln -s /opt/X11/include/X11 /usr/local/include/X11
そして最初のコマンドを実行するとpipを使ったインストールができます。
因みにこのライブラリ何ができるのか?
公式ホームページから引っ張ってきました。
Algorithms
API Wrappers
Bayesian Nets
Compression
Containers
Graph Tools
Image Processing
Linear Algebra
Machine Learning
Metaprogramming
Miscellaneous
Networking
Optimization
Parsing
実際にニューラルネットワーク、SVRなどの機械学習、画像処理、ベイジアンネットワークなど
計算、機械学習系のサポートが強力です。
SVMのCross Validationの例、ResNetの実行例などもあり、サンプルを見ると使い方はかなり見えるのではないでしょうか。
dlibの画像処理ライブラリ紹介
では、何ができるかを見てみましょう。
ソースコードの解説とかは次回以降にします。
顔の輪郭検出
顔の輪郭検出用のコードは、face_landmark_detection_exを使います。
wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
bzip2 -d shape_predictor_68_face_landmarks.dat.bz2
/face_landmark_detection_ex ./shape_predictor_68_face_landmarks.dat ../faces/2008_004176.jpg
顔検出
./face_detection_ex ../faces/2008_002470.jpg
Hog特徴量の計算
./fhog_ex ../faces/2008_002079.jpg
画像の表示
./image_ex ../faces/2008_002506.jpg