第2回:猫猫ちゃん判定アプリ作成へ
〇開発環境
・windows10
・python3.6
・PyCharm Community Edition 2017.1.5
・Android Studio
・xampp

〇第1回から
猫の顔を認識するための分類機作成にチャレンジしたが失敗。。。
仕方がなく既存の猫の顔用の分類機(openCVに初期で準備されている)を利用することにした
次回以降、自作分類機作成にチャレンジしてみたいし、作成できれば学習させることができる(まさにAI!)
画像を受け取り、猫の顔を認識できれば「cat」、認識できなければ「not cat」と返すようにしてみた

以下ソース

〇せっかくなのでAndroidと連携
7月からandroidアプリの作成をやっていたので
①Androidで画像を選択
②pythonへ画像データを送信
③結果をJSONで返す
④Androidに結果を表示
の流れでやってみようと試みる。がどうやってPythonに画像データを送ればよいのか。。。
requestBodyに画像データを入れて送ってみた

python側でRequestBodyから読み込み画像ファイルに書き込んでその画像で判別すれば行けるのではとやってみるも以下のソースではだめだった。。。

ファイルへの書き込みは成功しているが画像として開けない。。。そもそもだが受け取るデータがこれだとstr型で受け取られる。それをbyteとして書き込んでいる。
受け取るときにbufferとして受け取り書き込んでみる

画像として開けるようになった。これでAndroidとPythonの連携ができるようになった!!

〇今回のアプリの精度
既存の分類機を使っている且新たに学習していかないので猫画像でも猫じゃないとでた画像は今のままではずっと猫じゃない画像として認識される。
今後余裕があれば学習できるように改善していきたい。
今の時点の精度は
①正面を向き、口を大きく開いていない猫画像は猫と判定
②犬やサル、トラ、チータ、猫っぽい人などは猫じゃないと判定
参考

③トラ模様のヤマネコなど一部特殊な猫に関しては猫じゃないと判断されることも。。。
参考

④片方の目しか映っていない、顔がつぶれているなどの状態だと猫じゃないと判断される。
参考

〇今後
今回は既存の分類機を使って終わりなので分類機を作成および学習させていくことに挑戦していきたい。どんどん学習し、どんどん精度が上がっていく。
そのようなアプリ作成を次は挑戦してみたい!!(今回もそんなアプリを目指したが時間の関係上次回こそ!!)