機械学習

【TensorFlow2入門】ディープラーニングで仮面ライダー俳優を見分けるAIを作る(前編)

ここ最近、ディープラーニングを勉強しているのですが、やはり実際にやってみることが一番!ということでいろいろな方の記事を参考にして、顔認識させるAIを作っていこうと思います。

Pythonの環境構築という初歩の初歩からやっていきますので、初心者の方でも行えるのではないかと思います。

私の大好きな仮面ライダー俳優の顔を見分ける識別機を作成していこうと思います!

何番煎じかは分かりませんが、できるだけ詳しく解説していきますので、TensorFlow2を使ってみたい方は是非参考にしてみてください!

俳優識別AI作成までの全体像

前編は、Pythonの環境構築・ディープラーニング用の画像収集がメインになります。

  1. AnacondaでPythonの仮想環境を構築
  2. TensorFlowをインストール
  3. 画像収集
  4. 収集した画像の顔検出をして、訓練・テストデータに分類
  5. TensorFlowでモデルの構築(後編)
  6. 学習・テスト(後編)
  7. 識別するコードを作成→俳優の顔識別!(後編)

Anaconda環境の構築

Anacondaのインストール

今回はCPU+Windows10という環境で行っていきます。

TensorFlowを使うにはAnaconda環境がいい。ということでAnacondaのインストールから行っていきます。最新版は3.8ですが、ライブラリに対応しているか少し不安だったので3.7を使用することにします。

こちらのページからAnacondaパッケージをインストールします。

ページ下の方へ行き「archive」をクリック

画像に alt 属性が指定されていません。ファイル名: image-59-1024x482.png

2019年10月のWindows-x86 64.exeをダウンロードします。

画像に alt 属性が指定されていません。ファイル名: image-62-1024x122.png

「Anaconda3-2019.10-Windows-x86_64.exe」をダブルクリックして実行します。

画像に alt 属性が指定されていません。ファイル名: image-63.png

「Next」「agree」と進めていきます。

特に設定を変更するところはありません。デフォルトのままで大丈夫です。

画像に alt 属性が指定されていません。ファイル名: image-64.png
画像に alt 属性が指定されていません。ファイル名: image-65.png

以下のように✔を入れてInstallをクリックしてください。

インストールは時間がかかるのでコーヒーでも飲んでゆっくり待ちましょう

画像に alt 属性が指定されていません。ファイル名: image-66.png

これでインストールは完了です!!!

画像に alt 属性が指定されていません。ファイル名: image-67.png

検索欄に「anaconda」と入力しAnaconda Promptを開きましょう。

下記のコマンドを入力してPythonのバージョンを確認しましょう。

目的のバージョンが表示されていればOKです。

TensorFlow2のインストール

次にTensorFlow2用のPython仮想環境を作成します。下記のコマンドを入力してください。今回はtf2という仮想環境を作成します。

下記のコマンドを入力すると(base)から(tf2)に変わります。

このままTensorFlow2をインストールします。下記のコマンドを入力します。

途中Proceed ([y]/n)?と聞かれたらyと入力しましょう。これも少し時間がかかります。ゆっくり待ちましょう!

様々なパッケージを自動でインストールしてくれるので、ありがたいですね。

では、実際に動作確認をしてみましょう。以下のコマンドを入力してPythonのインタプリタ画面に移動しましょう。

しっかりTensorFlowがインストールできているのが確認できました!これで思う存分使えます!

今後の実装はこの環境で行っていきます!

ディレクトリ構造

全体のディレクトリ構造は以下のようになっています。各ディレクトリはあらかじめ作成しておいてください!

必要なライブラリのインストール

今後の画像収集等に必要なライブラリ等をまとめてインストールしておきます。

haarcascade_frontalface_default.xmlという顔識別用の分類器を使用しますので、カスケード分類器のダウンロードを参考にダウンロードしてください。

画像収集(BingAPI使用)

機械学習最初の難関、画像収集です。ここでかなり手こずりました。

分かりやすいように詳しく解説していきますね。

BingAPIサブスクリプションキーの取得

画像収集にはBingのAPIを使用しました。まず、APIの登録が必要です。以下の手順でキーを取得しましょう。

Microsoft Azureの登録サイトにアクセスします。

Bing Search API v7の「APIキーの取得」をクリック

1週間、もしくは1ヶ月無料で使用できますのでどちらかお好きな方を選んで利用してください。

*マイクロソフトのアカウントがない方はアカウント作成の必要があります

無事登録できれば以下のようなサブスクリプションキーが2つ取得できます。

どちらを使用しても構いません。後の画像収集のプログラムで必要になるのでコピーしておきましょう。

画像収集

マーカーを引いてある箇所を変更するだけで画像の収集が行えます。

しかし、countを100にしても100枚以上集まってしまうことがあります。原因はいまいちわかっていません…

分かる方がいたら教えてください。

仮面ライダービルド 犬飼君の写っている画像を大量に集められました!

顔を抽出して保存する

次に、OpenCVを使って顔部分のみを抽出します。

こちらも、マーカーの部分をご自身の設定に合わせて変更するだけで集めた画像の顔を抽出してくれます。

下のような感じで顔を抽出してくれます。

ですが、顔ではないところを切り抜いたり、他の人が混ざっていたりするのでここは手作業で取り除きます。

犬飼君のみ残るように他の画像を手動で削除しました。万丈と戦兎が意外と似てて手こずりました(笑)

これを他の方の写真でも行います。(骨の折れる作業でした....)

集めてて思いましたが、やっぱり仮面ライダー俳優は総じてイケメンですね!!!

コマンドプロンプトで数を数えたいディレクトリに移動し、以下のコマンドを入力することで画像の数を数えることができます。

  • ゼロワン:124
  • ビルド:158
  • ジオウ:159

画像を訓練データとテストデータに分類

画像データを訓練・テストデータに分類していきます

こんな感じできれいに分割される。

とりあえず今回はここまでにしたいと思います。後編では、ディープラーニングのモデルを構築していきます!

後編はこちら→【TensorFlow2入門】ディープラーニング(CNN)で仮面ライダー俳優を見分けるAIを作る(後編)

参考サイト

どのサイトもとても有益でした。ありがとうございます!

-機械学習

© 2020 まきろぐ Powered by AFFINGER5