PyLadies Tokyo  

2nd Anniversary で話す予定だった話

@maaya8585

Who am I ?

@maaya8585

クラウド系アーキテクト見習い

最近のお仕事は

Azure と AWS と Bluemixと

Node-RED ←

かんたん

画像解析アプリを

作ったよ

◆Today's theme

◆なぜ今発表か

◆なぜ今発表か

沖縄にいました。

空港から参加予定

Wifi難民 orz

言い訳は置いておいて

作ったアプリの話

アップロードした

写真の表示

写真の雰囲気の

解析結果表示

アップロードした

写真の表示

写真の雰囲気の

解析結果表示

アップロードした

写真の表示

感情がどれくらい

抽出されたかのグラフ

◆ 使ったもの

  • Tornado

    • Python Webフレームワーク

  • Chart.JS

    • グラフ表示Javascriptライブラリ

  • Pillow

    • Python お手軽画像処理ライブラリ

  • Microsoft Azure Emotion API

    • 画像から表情を解析してくれるAPI

◆ 使ったもの

  • Tornado

    • Python Webフレームワーク

  • Chart.JS

    • グラフ表示Javascriptライブラリ

  • Pillow

    • Python お手軽画像処理ライブラリ

  • Microsoft Azure Emotion API

    • 画像から表情を解析してくれるAPI

Pillow: 画像処理ライブラリ

◆Pillow is 何

  • リサイズ

  • 色相反転

  • 色相変換
  • モノクロ化
  • 複数画像の結合
  • ​文字の書き込み         etc...

Pillow: 画像処理ライブラリ

◆Pillow is 何

  • リサイズ

  • 色相反転

  • 色相変換
  • モノクロ化
  • 複数画像の結合
  • ​文字の書き込み         etc...

pip install pillow

Pillow: 画像処理ライブラリ

◆Pillow is 何

  • リサイズ

 

ファイルサイズが大きすぎる場合小さくリサイズする

Emotion API ファイルサイズ上限が4096 * 4096 のため

◆Pillow: 実際に書いたソース

from PIL import Image

def resize_img():
    """
    max_sizeより大きいファイルは画像のリサイズを行う。
    """
    target = Image.open(FILE_NAME)
    target_size = target.size
    print(target.size)

    # 画像の縦もしくは横の長さが上限値よりも大きい場合はリサイズを行う
    if (target_size[0]) > MAX_PX or (target_size[1] > MAX_PX):

        # Pillowを使った処理
        target.thumbnail((MAX_PX, MAX_PX), Image.ANTIALIAS)
        target.save(TEMPORARY_FILE_NAME, quality=100)
        remove_file()
        os.rename(TEMPORARY_FILE_NAME, FILE_NAME)

        print("resize, done!")
        print(target.size)

Emotion API

◆Emotion API is 何

Microsoft Azure で使える

PaaS 画像解析(顔判定/感情判定) サービス

◆Emotion API is 何

  • APIで写真を送るだけで顔認識・表情

  • 分析手法などはブラックボックス

  • 顔の認識精度はそこそこ

    • ​横向きの顔などは未対応

  • ​最大64人まで認識可能

  • 表情判定についてはたまに怪しい

    • 笑顔(happy)によく反応する

    • 負の感情はあまり得意ではない?

      • 種類が多すぎる説

◆demoの予定だった

うっかりAPI Keyを消してしまったりして

今動かない!!!

 

のでのちほど間に合ったらみせますwww

fin.

@maaya8585

PyladiesLT2nd

By maaya ishida

PyladiesLT2nd

  • 1,501