RのWeb制作

Webサービス制作のための技術情報を。データ分析(Python、機械学習コンペ他)や自作野球ゲームMeisyoのこと中心。

Web制作 Python

[Python:Predict Gollira]2枚の画像でどちらがゴリラっぽいかを人間が予想する。

投稿日:

「あーこの人ゴリラっぽい。」と思うことはありませんか?
ゴリラっぽさってどこから来るんだろうかと悩んでいました。

前回、[Python] ディープラーニングのモデル「VGG16」を使って画像認識をし、判断した理由の可視化をする。を行っていた際もその疑問がつきませんでした。

1.

2.

どちらの画像の方がゴリラっぽいかを知りたくありませんか?

今回実装したのは、「ゴリラっぽさ(ゴリラであると予想される確率)をディープラーニングの画像認識システムで認識し、2枚の画像の予測値はどちらが高いのか?を人間が予想する。10組用意して正答率を出す。」です。
名前は「Predict Gollira」
Golliraのスペルミスを何度したかわからない。(これも合っているかどうかも!)

この技術の応用としては、
「人間の写真を撮って、どっちの方が犬・猫っぽいかを比べるアプリ」
「そもそもあなたは犬?猫?どっち系の人間?」

みたいな女子高校生向け・・・おっさんがやってたら怖いアプリになります。

使い方

  1. 下記のURLからzipファイルをダウンロードして解凍します。
  2. Predict Gollira

  3. app.pyの46行目にあるMySQLの接続設定をしてください。
  4.  データベースは「predict_gollira」になっていますが、別に他の名前でもOKです。

  5. MySQLに下記コードのテーブルを追加してください。
  6. CREATE TABLE image_pred (
    id INT NOT NULL,
    pred double,
    PRIMARY KEY(id)
    ) ENGINE = INNODB character set utf8mb4;
    
    CREATE TABLE list (
    no INT NOT NULL AUTO_INCREMENT,
    comp_array VARCHAR(2000),
    PRIMARY KEY(no)
    ) ENGINE = INNODB character set utf8mb4;
    
  7. ターミナルで下記コマンドを実施してください。遊べます。
  8. python app.py
    

※必要に応じてモジュールをインストールしてください。
※Pythonの環境構築はAnacondaでやれば5分もかからない。おすすめだ。

構成

ディープラーニングモデル:VGG16
Python:Keras+Flask+MySQL
HTML5とCSS、JavaScriptもちょっぴり使ってたりする。
※FlaskとMySQLdbはほぼ初見なので、「動けばいい」との考えで作っています。
※MySQLなしでも良い。ただ、画像の予測に時間がかかるので、予測値をMySQLに入れて1画像1回切りの計算にとどめている。あらかじめ全ての予測値を計算しておくのも良いかと思ったが、今回はコンペごとに分散させた。

遊び方

知人と同じ番号のコンペで正答率を競ったり、
毎日の日課として、自分のゴリラの判別精度を高めたり、
画像を追加(static/imgフォルダ)して、写真(例:人間)のゴリラっぽさを試したり・・・。

初見で頑張ったら6割でした。ランダムで選ぶよりマシだ。

んー0.4%低いですねー。(わかるのか・・・?)


影や日の光が強いと見えにくくなるから、これだ!と判定されにくくなる…。
これは機械学習の大きな問題~。って言っても人間もだけど。


これ右チンパンジーの親子だね。かわいいね。

まとめ

疑問だったゴリラっぽさを学ぶ環境ができました。
ただ、モデルによってゴリラっぽさの基準が違うようです。(今回はVGG16だが、他にもたくさんある。)
もしかしたら複数のモデルの平均を取ったほうが良いかもしれない。それとも多数決か。
なんにせよまだまだ発展は可能だ。発展させる人がいるかどうかは別だが。

ゴリラ画像を集めるときにはpixabayがすべての役割を担った。感謝します。

-Web制作, Python

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

(VPSでつくる) 総括・変更履歴

長らくお疲れ様でした。 最後までご覧いただき誠にありがとうございました。 今回は、VPSの良い点、悪い点、引っかかりやすいポイントなどなど。 総括を行いたいと思います。 この記事は、VPSで作るPyt …

[Meisyo]スタミナ減少による球速低下が酷過ぎる件について

最近SQLばっかり書いているRです。早く適正なSQLを書きたいものです…。 とはいえ、ネットで書かれているようなことは一通り理解してできるようになりました。やったぜ。 今回は、タイトルの通り・・・ ス …

[Meisyo] アップデート予定のお知らせ

名将と呼ばれた者達、今回のアップデートではバランス調整をメインに行います。 まずは謝辞として、Meisyo アンケート 2020/02にお答えいただき誠にありがとうございました。また、ゲーム内でバグな …

(VPSでつくる) PythonでMariaDB(MySQL)へ接続できるアプリを触ってみよう

連載第十一回目です。 Python3.6.8+FlaskでMariaDBに接続・データベースを編集するアプリを動作させる設定を行い、動作確認します。 この記事は、VPSで作るPythonでのWebアプ …

no image

急がば回れ「初めてのPHP5」の紹介

「今からプログラミング(PHP)はじめたいなあ」という方へ。 パソコンスクールで学ぶことやネットで独学するのも間違いなくいい方法です。 私はオライリージャパンから出ている「初めてのPHP5」をおすすめ …