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

顔検出05 管理人のつぶやき

最近のスマホアプリにはカメラで人の顔を判別して
メガネをかけたり、顔に化粧をしたりするアプリが
たくさんあってスゴいなぁっと思っていましたが
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にも対応していないので
このエラーも含めてアプリを作るときは
自分で調べて対処するしかないですね。

タイトルとURLをコピーしました