2015/11/26 (木)

【AI】OpenBRで顔認識やってみた

こんにちは。そうまです。

人工知能の勉強中に画像認識について調べてたところ、「OpenBR」というライブラリを見つけました。
OpenBR___Home
公式サイトのドキュメントには
OpenBRは、新しい様式を調査する既存のアルゴリズムを改善し、商用システムとのインターフェース、認識性能を測定し、自動化された生体認証システムを導入するためのフレームワークです。
とあります(Google翻訳)。Apache2 licenseなので、出典を明記すれば商用利用もOKなのがいいですね!
気になるので、さっそく試してみました。

DocumentのInstallにしたがって、インストールしていきます。
今回は、VirtualBoxでUbuntu 14.04の仮想マシンを使いました。
OpenBRは、OpenCVを使っています。せっかくなので、OpenCVもPythonで使えるように、python-devとpython-numpyを先に入れときます。
$ sudo apt-get install python-dev python-numpy
その後はインストールガイドにしたがって、粛々と進めます。ソースからのビルドになるので、少し時間がかかります。
インストールが終わったら、チュートリアルをやってみます。
Quick Startに載っている以下のコマンドを実行すると、ウェブカメラに映る顔の周りにフレームが表示されます!
$ br -gui -algorithm “Cvt(Gray)+Cascade(FrontalFace)+Draw(lineThickness=3)+Show(false)” -enroll 0.webcam
さて、正常にインストールできていることが確認できたので、1対Nの顔認識のチュートリアルをやってみます。
データセットが必要なので、LFWのデータセットをダウンロードして使いました。

ダウンロードして、解凍したら、以下のコマンドでデータセットを元にしたギャラリーファイルを作成します。
$ br -algorithm FaceRecognition -enrollAll -enroll ./lfw/ ‘lfw.gal’
ギャラリーファイルができたら、ギャラリーファイル、認識対象となる画像ファイルと結果を出力するファイルを指定して、認識を行います。
$ br -algorithm FaceRecognition -compare lfw.gal Andre_Agassi_0007.jpg match_scores.csv
認識対象としたのは、このファイルです。
agassi
テニス界のレジェンド、アンドレ・アガシですね!

結果ファイルを開くと、、、
Ubuntu14_04-OpenBR__Running_
A列に画像ファイル名、B列にそのファイルと認識対象の画像との類似度が出力されています。
一番上のAndre_Agassi_0007.jpgは同一ファイルなので、意味は無いですが他のアガシの画像が上位に来ているので、ちゃんと認識されていますね!

ちなみに、アガシ本人を差し置いて15番目に似ていると判定された、Amy Brennemanの画像はこれです。
amy
似てるっちゃ、似てますね。アガシがロン毛になったらこんな感じになるのかもしれません。

以上です!また次回をお楽しみに!

投稿者: