ホーム > カテゴリ > Python・人工知能・Django >

顔検出、顔識別(顔認識)に挑戦してみる

Python/TensorFlowの使い方(目次)

AI(人工知能)を使用して画像から顔を検出して、その顔を認識する。

結論から言うと、

お主は誰だ。
AI(人工知能)が「あなたの顔はどんな芸能人、有名人に似てるか」を判定する顔診断アプリ

をアウトプットしました。

今回は、顔でしたが「自動車を検出して、車種を特定」など他のケースにも置き変えることが可能です。

以降は私の奮闘記です。どなたかのご参考になると幸いです。

1. データ収集

318人の芸能人、有名人の写真を3181枚、Googleの画像検索から収集。

日数2日
データ構成約10枚 / 人

収集する際にはWindowsアプリを作成して、コピペとボタン1つでファイルが作成されるようにした。(日数にはラベリング作業も含まれる)

<著作権に関する引用>
日本の著作権法では、「情報解析を行うために著作物を複製すること」が、営利・非営利問わず認められているのだ。世界にもまれな規定だ。

※引用元:「日本は機械学習パラダイス」その理由は著作権法にあり

2. Object Detection API

このデータでカップラーメンと同様にObject Detection APIを試してみる。

顔検出の精度は抜群。でも顔認識は使い物にならない。

3. MNISTで試す

MNIST Converterを作成して、データセットを28x28にする。精度は0.01で全くダメ。そもそも318種類というクラス数が多すぎる。

MNIST Converter付属のgrowth.exeで1枚の画像を10倍、30倍、50倍に「水増し」しても効果なし。

この時点で気づいた。1人10枚の写真じゃ、データ数が少なすぎる。

4. 新規にデータ収集

手動で収集は疲れたので「Bing画像検索API」で自動で画像を収集する。

15人で4319枚を収集した。

日数1時間以内
データ構成約287枚 / 人

で、収集した画像から顔を切り取るのは2で作成したモデルを使用した。

その後、それらの顔画像をMNIST Converterで28x28のデータセットにしました。CNNで試すと精度は0.63。クラス数を減らすと0.75ぐらいある。

なるほろ、なんとか実用レベルになりました。

5. 最終的に

「画像から顔を検出するAI」(SSD)で顔を切り出して、その顔を「顔を判別するAI」(CNN)で判定する事としました。AIは2種類です。

スマホで学習済みモデルを動作させるにはTensorFlow MobileのデモアプリのインストールTensorFlow MobileのHello Worldをご覧ください。





関連記事



公開日:2018年08月25日 最終更新日:2018年08月26日
記事NO:02719


この記事を書いた人

💻 ITスキル・経験
サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。

画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ
プチモンテ代表、アーティスト名:プチモンテ
🎵 音楽制作
BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~

オリジナル曲を始めました✨

YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte

【男性ボーカル】DA・KA・RA | 新たな明日が風と共に訪れる

【男性、女性ボーカル】時空を超越する先に | 時空と風の交響曲

【女性、男性ボーカル】絆 | 穏やかな心に奏でる旋律