Android
TensorFlow
イケメン
ブサメン

機械学習でイケメン(ブサメン)判定アプリを作ってみる。

イケメンが憎いです。

この世にイケメンが存在する限り、僕がモテることはありません。
なのでイケメンかどうかを判定するアプリをチュートリアルとして作ってみました。
TensorFlowとAndroidのチュートリアルとしていただければ幸いです。
動機と行動が完全にイッてますが、よろしくお願い致します。
(初学による間違い・ご指摘について、できましたらわかりやすくご指導頂ければ幸いです)

開発環境

  • MacBook Air (13-inch Mid 2012)
  • MacOS 10.12.6
  • TensorFlow 1.3
  • Android Studio 3.0 Beta 5
  • Android NDK

参考URL

マリオ判定
http://nilhcem.com/android/custom-tensorflow-classifier
そのソースコード
https://github.com/Nilhcem/tensorflow-classifier-android

TensorFlowでうなぎと寿司を判定するAndroidアプリを作ってみた
http://qiita.com/NoriakiOshita/items/4f20114ee7d3713b345f
上記のうなぎと寿司をイケメンとブサメンに変えただけですw

環境構築

TensorFlow

ここを見てインストール。WinやDockerの方は適宜読み替えてください。
https://www.tensorflow.org/install/install_mac#installing_with_virtualenv
virtualenvってやつが最初に載ってたのでそのまま導入。TensorFlow v1.2以降MacOSで動かす場合はGPUがサポートされないそうです。

Android

Android Studioをインストール・起動してSDKをダウンロードしておく
https://developer.android.com/studio/preview/
NDKを入れておく
https://developer.android.com/ndk/

学習用画像収集

下記を参考に画像収集します。
まずは分類したいものの画像を集めましょう!

保存します
~/tf_files/men/ikemen # イケメンの画像
~/tf_files/men/busamen # ブサメンの画像

画像検索して
イケメン300枚
ブサメン100枚(コラージュが多く間引きしたので枚数少ないです)
を用意しました。

参考ページをもとに学習します。

補足:著作権まわりについて。情報解析の為に他人の著作物を営利目的でコンピュータに入力することが日本では自由・合法(著作権法47条の7)とありました。

スマホ用にパッケージング

マリオ判定のソースコードを使ってビルドします。
https://github.com/Nilhcem/tensorflow-classifier-android

完成・備考

試しにどれくらいのものかは下記動画を参照ください。
IMAGE ALT TEXT HERE

バナー付けてデモ用カテゴリーでストアに並べてみました。
(2018/6/8 delete)

ソースコード
https://github.com/believe2200/ikemen

あとがき

自分を判定する勇気はありませんでした