RのWeb制作

Webサービス制作のための技術情報を。

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

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

[PHP]まとめ読みをPSRで改良する(2)

PHPのコーディング規則、PSRを学ぶをまとめました。 しかし、実際に作るとなるとまだまだです! やらなきゃ実際の所なんてわからんです。難しく見えてもね! 現行ページ(テストサーバー上) この記事の( …

独学はまず本より始めよ

Web制作やCakePHP(特にクラス関係)を始め新しいモノを独学している時に気づきました。 まず本より始めよ、と。 なぜでしょうか? 「Webだけで十分じゃーん」という方も居ると思います。 Webは …

cakePHP in XAMPPの高速化(仮)

そこの貴方! 何故かローカルだけcakePHPがとても遅く困っている貴方! 1つアドバイスがある! アドレスを「localhost/~」から 「127.0.0.1/~」に変えてみな! 私はそれで解決し …

[Meisyo]ver0.04へのアップデート

Meisyoがバージョン0.04になりました。 バージョンNo.の基準はありません。(1.00(正式リリース)が遠い) 下記機能が0.04で追加されました。 目的としては、「ユーザがゲームを長く楽しめ …

no image

PHPのコーディング規則、PSRを学ぶ(5)

PHPのコーディング規則、PSRを学ぶ(4)の続きです。 この記事では、PHPのコーディング規則PSRの規則をまとめます。 1.規則概要 文字コードはUTF-8(BOM無し) 改行コードはLF PHP …