2016/11/05

【アプリ紹介】よいしょカメラ - お世辞だって、いいじゃないか このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

今日は 2015/12/20 に公開した「よいしょカメラ」の紹介です。



こんなアプリ

独自開発した DeepRandom™ 技術により年齢推定できちゃう賢いカメラアプリです。じゃなくてジョークアプリです。



他にも、左右スワイプすることでおちんぎんヘソクリかわいさ総資産友達の数留年回数を推定することができます。

ともだち同士とかで使って頂けるとよいかと思われます。






最後の 2 枚は今年の GW にベトナムのホイアンを訪れた時の写真です。


開発の経緯

オーシャンズ 13 にて、最高の人工知能セキュリティ「グレコ」に守られたカジノをオーシャンたちが攻略して客にたんまり儲けさせる場面で客の映像に儲け額を AR で重ね合わせて描画してたのが着想のきっかけです。

8 年前なんですね。結構寝かせていたネタでしたが、開発開始からレビュー提出までの期間は 10 時間でした。このアプリもタイムアタック案件。

開発日誌によると、2015/12/13(Sun) 14:43 ころカフェで開発開始、自宅で夕食(鍋)を挟んで翌日 0:44 提出完了となっています。

ちょっとそこ、開発日誌とかつけてんのエモいとか言わないでください。

技術的な解説

カメラからリアルタイムに取得した映像に対して OpenCV の CIDetector.featuresInImage で顔認識をして、その位置に黄色い枠と DeepRandom™ エンジンにより算出された各種推定値を描画します。


無駄にスマホの横画面(Landscape)モードに対応ようとしたため、スマホの向き 4 通りすべてについて顔検出における上方向 (CIDetectorImageOrientation) を正しく指定しないと顔認識できなかったり、AVCaptureVideoPreviewLayer に表示される画像と実際にデータとして取得できる画像のサイズが合わなかったりして苦労しました。
結局時間がないので 4 通りそれぞれ場合分けしてパラメータを設定したりしていました。

case UIDeviceOrientationLandscapeLeft:
    // なんか逆だと思うんだがこっちじゃないと認識しない
    exifOrientation = PHOTOS_EXIF_0ROW_LEFT_0COL_BOTTOM;
    break;

こんなコードが残ってたりして、1 年前の心の葛藤を思い出さずにはいられません。

シャッターが押されたらその時の UIImage を iOS アルバムに出力します。一応ガイドライン的なものを尊守すべく、シャッターを押したらわざわざシャッター音を鳴らしています。えらい。

よくアプリ内で撮影した写真の一覧を見る画面が出たりしますが、そういうの面倒なのでアルバムアイコンを押したらアルバムアプリに飛ぶようにしました。ちょうど 2015/9/16 にリリースされた iOS9 から「前のアプリに戻る」ボタンが出るようになっていたのでこの仕様でOK。アルバムアプリに飛ぶには UIApplication.openURL で "photos-redirect:" を開けばよいです。簡単です。


DeepRandom™ エンジンの開発には、中でも特に苦労させられませんでした。Random だけに。人間が使ってほっこりするようなアプリにしたいというコンセプトもあったので、ちょっと若めに推定するようにできています。

以上、投げやりですが「よいしょカメラ」の紹介でした。