HOME > CNN画像分類(初級)-1(MNIST) > 画像分類(初級)(AKB)

04.05 画像分類(初級)(AKB)

今回は先陣を切ってNNCを実践している方のサイトと例題をご紹介いたします。ご紹介したいのは、

cedroさんの「SONY Neural Network Console で指原莉乃をディープラーニング
http://cedro3.com/ai/akb48-dl/


このサイトでは同じ顔に見えてしまうAKB48メンバーの中から指原莉乃さんを分類してみるという例題です。
まさに「数式なしでNNC」。

皆さんもちょっとやってみません!?
4.画像分類(初級)-1(MNIST) で出てきた「01_logistic_regression.sdcproj」 をコピーして実施しますので、今までの復習としては、持ってこいの例題です。



① 写真を集める
全く同じじゃあ結果が同じなので、GGEはAKB48柏木由紀(ゆきりん)さんでやってみます。
それからcedroさんのサイトでは、本当に丁寧に手順を紹介されているので、詳しいことは実際にサイトを見ながら注意深くやることをお勧めします。
今回は、前回例との相違点と結果を重点的に、ゆきりんを探せとしてご紹介します。


この例題の面白いところは実際のカラー画像から「ゆきりん」を判別するところです。
サイトでも紹介されているように、まずはAKB48のメンバーの写真をしこたま集めます。以前やったように多ければ多いほど精度は上がります。

いやいや!
これが結構面倒なんですねぇ。
一応サイトで紹介されておりますopencvというオープンソースを用いて写真から顔の部分だけを抜き出すPythonプログラムを作成してダウンロードデータから顔切り出ししたのですが、抜き出し成功率が非常に良くないので、手作業で抜き出すことにしました。幸い windows10には「Snipping Tool」なる便利なツールが既に用意されています。 皆さんご存知でしたか?
今まで「PrintScreen」というキーを押し「ペイント」等の描画ソフトに張り付けると画面のハードコピーが取れましたが、「Snipping Tool」は好きな部分だけコピーを取りファイル名を指定して保存できます。よっていちいち画像をダウンロードして顔の部分をトリミングしなくても、直接「Snipping Tool」で切り取り集めることができます。 次に同じサイズにする方法はcedroさんのサイトで紹介されているアプリを使用して32x32にし、ゆきりんと、そうではないメンバーの顔写真に分けてフォルダーに格納します。

ホームページを作っている方は、さらっと書いているので意外と簡単だとか思うかもしれませんが、下準備やアプリの検索、データ収集までいれると結構、忍耐と努力! なんですよ。 でも、

努力は必ず報われる!




② プロジェクトを作成する。
次に プロジェクトは「01_logistic_regression.sdcproj」をコピーして作るのですけれども、注意しないといけないのはDATASETが「カラー写真」であるという点と32x32サイズであるという点です。サイトの中にも紹介されていますがDatasetには下記のように設定します。

 Output Color Ch:    1:モノクロ  3:RGB(カラー)
 Output Width:         32
 Output Height:        32

 Source Dir:        入力ファイルが格納されているフォルダー
 Output Dir:       出力結果を格納するフォルダー 
 Output files1:    トレーニング用CSVファイル名
 Output files2:    テスト用CSVファイル名





【疑問と問題点】
やはり今までも自分で作っていない分、よくわからない部分が露呈してしまいました。
データセットは上のように設定するのですが、実は入力データとなるフォルダー「Source」内は例題はcedroさんは指原さんで行ったため内部に「S0」「S1」というフォルダーとして分けて入れ、GGEは柏木さんで行ったので「K0」「K1」と名前を変えて入れました。でも! 「Create Dataset」の中にはフォルダー名の設定だけなのに、
どうやってゆきりんフォルダーを判断したのか?

実際akb_train.csvの内容をみると”y:label”はゆきりんは”1”、そうでない画像は”0”となっています。 不思議??



まだまだほんと初心者だなぁ!と猛省いたしました。



③ 結果
分類実行してみると、 いやいや! 驚き!

「EVALUTION」画面の結果を見てください。
この32x32の画像を実寸で表示しても、人間でも顔を判別するのは、なかなか難しいのですが、”y’”は

なっ! なっ! なっ! なんと!

99.9935%で「ゆきりん」だと判断している!





Confusion Matrix」も観てみましょう。

いやいや、またまた驚き!

モデル精度が”97.6%”




モノクロの手書き数字だと、あまり凄いなぁという実感がありませんけど、解像度が低いカラー写真だと驚きます。

いやいや! 本当に識別できるよう勉強したんだ という実感があります。
なにせ例題がAKBですからねぇ!


何といっても、 このサイトさんから学んだことは大きいです!


びっくりと楽しみは長続きする最大の要素ですよね。


このサイトさんに感謝!



【参考文献】
リックテレコム 足立悠著
ソニー開発のNeural Network Console入門

オライリー・ジャパン 斎藤 康毅著
ゼロから作るDeep Learning ――Pythonで学ぶディープラーニングの理論と実装

HOME > CNN画像分類(初級)-1(MNIST) > 画像分類(初級)(AKB)