5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

face_counter: 画像に顔が何個含まれているか判定するコマンド

Posted at

face_counterという、指定した画像の中に何個人間の顔が含まれているかを数字で返してくれるコマンドを作成したのでそれのご案内

概要

face_counterは指定した画像の中に、人間の顔が何個含まれているかを数値で教えてくれるシンプルなコマンドラインツールです
内部でOpenCVを使用して、顔を判定しています
ですので、インストールする際には別途OpenCVのインストールも必須です(これが割と難関)

使用方法

READMEにあるように、OpenCVのインストールから行います
OSXの場合はhomebrewを使用して、以下のようにインストールします
ちなみに僕の環境だとOpenCV 2.4.12でした

$ brew tap homebrew/science
$ brew install opencv

そして、gem installでface_counter自身をインストールします

$ gem install face_counter

これで準備は完了です、あとはface_counterコマンドが実行できるようになっているので実行しましょう

$ face_counter /path/to/image

内部構成

スーパーシンプルに、OpenCVで顔の判定定義のファイルを用いて顔判定をしている箇所の個数を標準出力で表示しているだけです

image = OpenCV::IplImage::load input_filename
haar_xml_file = File.join(File.dirname(__FILE__), 'haarcascade_frontalface_alt.xml')
detector = OpenCV::CvHaarClassifierCascade::load haar_xml_file

p detector.detect_objects(image).count

ちなみに、homebrewでインストールしたOpenCV(2.4.12)で入る/usr/local/share/OpenCV/haarcascades/以下の定義ファイルは古いらしくて、これを持ってきて実行するとエラーになった

error: (-2) The node does not represent a user object (unknown type?) in function cvRead (OpenCV::CvStsError)

なのでこの記事を参考に、最新版のxmlをインターネットから取得してきて実行するとうまくいきました

おわりに

このface_counterを使うことで、僕の日課である自撮りがより精度が高くなると思っています
具体的には、自動で撮られた自撮りに対してこのface_counterを実行することで、確実に顔が写っているかどうかの判定ができるので、何も写っていない真っ暗な自撮り(?)をGoogle Photoなどにアップロードしなくて済むようになり、便利になります

参考リンク

http://qiita.com/araya/items/b599318236cd6feee7c0
http://shokai.org/blog/archives/8627

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?