最近のスマホアプリにはカメラで人の顔を判別して
メガネをかけたり、顔に化粧をしたりするアプリが
たくさんあってスゴいなぁっと思っていましたが
iOSアプリでは比較的簡単に顔検出アプリが作れるようです。
iOS5から顔検出機能が追加されていて
「CIDetector」というクラスを使うことで
顔検出ができるようになります。
「顔検出」や「CIDetector」をネットで検索すると
以下のサイトが良くヒットします。
iOS 5の顔検出機能とカメラを使ったiPhoneアプリを作る
大まかな機能の説明が書かれていますが
この説明を読んだだけでは顔検出アプリを一から作るのは
無理です。アプリ開発上級者向けの説明と思った方が良いです。
他にはAppleの開発者支援サイトにも顔検出するための
サンプルコード「SquareCam」が公開されています。
サンプルコードはここからダウンロードできます。
このサンプルコードはiOS5以降とXcode4.2以降で使える
顔検出のサンプルコードです。
顔検出を自分で一から作ろうと思ったら
とてつもない勉強量が必要になるので
開発者向けにこうして公開されているのはうれしいです。
このサンプルコードではカメラ機能を使うので
注意書きにiOSシミュレーターでは動かないと書かれています。
動作テストをするためには実機が必要になります。
試しにXcode5.0.2でiOSシミュレーターのiPhone Retina(3.5-inch)で
実行してみるとこんなエラーが表示されて実行できません。
iPhone4の実機で実行してみるとこんな感じの
画面が表示されます。
写真がボケてますが、パソコンのモニターに人物の画像を
表示してiPhoneで写してます。
起動したときは顔検出はオフになっているので
普通のカメラとして機能してます。
下のメニューにあるボタンで操作します。
それぞれの機能はこんな感じです。
「Front/Back」 メインカメラ/インカメラの切替
「Faces」 顔検出のON/OFF
「Snap!」 写真撮影
顔検出をオンにするとこんな感じで
顔に四角が表示されます。
顔検出は1人だけでなく、複数でも大丈夫です。
カメラを近づけて、顔を大きくすると
四角の表示もそれに合わせて大きくなります。
この状態で「Snap!」ボタンをタッチすると
こんな感じで写真を撮影できます。
モニターを撮影したのでモアレが出ちゃってますが
普通に人物を撮影するときはキレイに撮影できます。
このように一応問題なく動いたのですが
Xcodeの方でエラーが表示されてます。
このサンプルコードが2013年4月4日のものなので
その後にリリースされたXcode5で動かしているからでしょう。
iOS7にも対応していないので
このエラーも含めてアプリを作るときは
自分で調べて対処するしかないですね。