iPhoneアプリで顔検出するサンプルコード

最近のスマホアプリにはカメラで人の顔を判別して
メガネをかけたり、顔に化粧をしたりするアプリが
たくさんあってスゴいなぁっと思っていましたが
iOSアプリでは比較的簡単に顔検出アプリが作れるようです。

iOS5から顔検出機能が追加されていて
「CIDetector」というクラスを使うことで
顔検出ができるようになります。

「顔検出」や「CIDetector」をネットで検索すると
以下のサイトが良くヒットします。

iOS 5の顔検出機能とカメラを使ったiPhoneアプリを作る

大まかな機能の説明が書かれていますが
この説明を読んだだけでは顔検出アプリを一から作るのは
無理です。アプリ開発上級者向けの説明と思った方が良いです。

他にはAppleの開発者支援サイトにも顔検出するための
サンプルコード「SquareCam」が公開されています。
サンプルコードはここからダウンロードできます。

顔検出01

SquareCam

このサンプルコードはiOS5以降とXcode4.2以降で使える
顔検出のサンプルコードです。

顔検出を自分で一から作ろうと思ったら
とてつもない勉強量が必要になるので
開発者向けにこうして公開されているのはうれしいです。

このサンプルコードではカメラ機能を使うので
注意書きにiOSシミュレーターでは動かないと書かれています。
動作テストをするためには実機が必要になります。

試しにXcode5.0.2でiOSシミュレーターのiPhone Retina(3.5-inch)で
実行してみるとこんなエラーが表示されて実行できません。

顔検出02

iPhone4の実機で実行してみるとこんな感じの
画面が表示されます。

顔検出03

写真がボケてますが、パソコンのモニターに人物の画像を
表示してiPhoneで写してます。

起動したときは顔検出はオフになっているので
普通のカメラとして機能してます。

下のメニューにあるボタンで操作します。
それぞれの機能はこんな感じです。

「Front/Back」 メインカメラ/インカメラの切替
「Faces」 顔検出のON/OFF
「Snap!」 写真撮影

顔検出をオンにするとこんな感じで
顔に四角が表示されます。
顔検出は1人だけでなく、複数でも大丈夫です。

顔検出04

カメラを近づけて、顔を大きくすると
四角の表示もそれに合わせて大きくなります。

顔検出05

この状態で「Snap!」ボタンをタッチすると
こんな感じで写真を撮影できます。

顔検出06

モニターを撮影したのでモアレが出ちゃってますが
普通に人物を撮影するときはキレイに撮影できます。

このように一応問題なく動いたのですが
Xcodeの方でエラーが表示されてます。

顔検出07

このサンプルコードが2013年4月4日のものなので
その後にリリースされたXcode5で動かしているからでしょう。

iOS7にも対応していないので
このエラーも含めてアプリを作るときは
自分で調べて対処するしかないですね。

コメントは受け付けていません。

このページの先頭へ