文系大学生によるプログラミング勉強記録です
主にPython(機械学習,データ分析),Web系中心、それと日常も2割程度で呟きます

「AIによる国政政党党首になれる確率の判定アプリ」の作成

今回は「AIによる国政政党党首になれる確率の判定アプリ」を作成してみたのでその紹介をしてみます。

f:id:Ryosuke0224:20181226182614p:plain

(精度がまだ60%程度なのでデプロイはしていません..)

 

判定基準はDeeplearningによる顔判別で、それ以外の難しい変数等はありません。

遊び方は簡単です。

試しに僕の写真で試してみましょう。

f:id:Ryosuke0224:20181226183827g:plain

アップした写真と似ている国政政党党首とその近侍率から割り出した「国政政党党首になれる確率」をAI が教えてくれます。

f:id:Ryosuke0224:20181226184304p:plain

 

作成にあたり使用したものは以下の通りです。

Python

google-images-download

Flicker

・Deeplearning

・Flask

・HTML

CSS

JavaScript

Photoshop

 

それでは大まかな流れを紹介します。

 ①google-images-download及びFlicker-APIから画像を入手する。

お勧めはgoogle-images-downloadですね。日本のデータの数が多くコードも簡単です。 

②不適切な画像を手作業で処理する。

自動で入手した画像を確認すると、異なる人物や背景が大きく写り込んだ画像が混ざっています。これらを一枚一枚丁寧に消去しなければその後の精度に関わる為非常に重要かつめんどくさい作業です...

③画像の母数を増やす。

Deeplearningの場合、判別するにあたり判断基準となる画像データの数は多くなければいけません。その為、画像を5度づつ回転・左右反転の処理をします。

③Deeplearningのモデルを構築する

今回は単純なアルゴリズムで作成しましたが、画像数がかなりの数だったので相当時間がかかりました。(その間に相棒https://kanitamago5503.hatenablog.comと男2人の悲しきX'masパーティーをしながら待っていました...)

③flaskでのWebアプリ化を行う。

PythonのWebフレームワークといえば「Django」と「Flask」が有名でどちらを使用すれば良いか迷いどころですが、 簡単なWebアプリではFlaskを断然お勧めします。ログイン機能を実装したり他の技術を使おうとする場合Djangoの方が理解しやすい場合もありますが、今回のようなケースでは基本的な構文とレンダリングの方法を理解すればすぐに実装することができるようになります。

④HTML CSSJavaScriptでのデザインの装飾

 

以上が簡単な流れになります。

①〜④の詳細はググれば詳細に説明している記事が多く掲載されているので困ることはないと思います。

今後、精度を上げる余裕があれば改良しデプロイするかもしれませんが、その際はURLを追記します。

 

次回はスクレイピング機械学習を用いた Webアプリに挑戦します!!