夏休み画伯

Azure

Python

Docker

Jupyter

あなたの夏休みを画伯が現代アート風にまとめてくれます

shunsuke-tamura

推しアイデア

LINEBotを採用したこと。 LINEBotを採用することでフロントエンドの開発が必要なくなるため、2人とも今回のハッカソンで使いたかった技術の使用に労力を割くことができた。

作った背景

げきむずテーマに苦しめられたキムシュンは、作りたいアプリを考えるのはあきらめ、使いたい技術から探し始めた。 各自でテック系の記事をあさり、そそられる技術を探したところ、最近発表された"DALL-E"に関する記事を見つけた。それに使いたいと考えていたAzureを組み合わせた。

推し技術

ふんだんに使われたAzureのサービス。 この3日間コードを書く時間よりもAzurePortalやMicrosoftDocumentに向き合っている時間のほうが長かったかも、、、 Gitを使わずに3日間終わってしまうほどにAzureに向き合いました。

プロジェクト詳細

プロジェクト詳細

夏休みは一般的に長いものです(例外はありますが、、、)
長い夏休みには多くの経験をし、たくさん楽しい思い出ができます
そんな思い出を画伯が芸術的にまとめ上げます

構成

図2.jpg

  1. ユーザーからLINEBotに夏休みの思い出の写真を4枚送ってもらう
  2. AzureComputerVisionで各画像の説明文を生成(合計4文)
  3. 4つの文を以下の手順で1つにまとめる
  4. NLTKで品詞解析を行う
  5. word2vecで同じ品詞の単語を意味的に足し算
  6. RNNLMでダミー文を生成
  7. ダミー文をNLTKで品詞解析
  8. ダミー文の単語を品詞ごとに2の単語と置き換え
  9. 最終的に1つの文になる
  10. 生成された文をAzureBlobStorageに保存
  11. AzureContainerInstance内に構築されているDALL-Eが文から画像を生成
  12. 生成された画像をBlobに保存
  13. AzureFunctionsがユーザーに結果画像を送信

使用技術

  • Python
  • プログラミングはすべてこの言語
  • Azure
  • ComputerVision
  • 画像の説明文を生成
  • BlobStorage
  • 結果の保存先に指定することでトリガーとしても活用
  • Functions
  • 各ノード同士をつなぐ
  • ContainerInstance
  • Functionsで動かすのが不適切な大きな処理を行う(DALL-E)
  • LINEBot
  • 本プロジェクトのフロントエンドにあたる

実装状況

各主要機能(画像から文、文を1つに、文から画像生成)は動くものが完成した。
しかし、Azure上にデプロイするとこまではできなかった。
まだ、Wi-Fiが元気なうちにAzureFunctionsを使ったテキストはオウム返し、画像はComputerVisionのobject検出処理を加えて返すBotは実装できた。(今はもうない)

苦労した点

  • Azureが難しい
  • 実行時間が長い(インストール、学習、推論)
  • 機械学習ライブラリの依存関係がめんどすぎ
  • ライブラリのinstallが多すぎてWi-Fiの使用料3日で58.8GB

身についたスキル

  • いろんなAIの学習済みモデルの活用法
  • LINEBotのさわりの部分
  • Azureの一部のサービス
  • リファレンスを読む力

余裕があったら

余裕があったら実装しようと考えていた機能をいくつか紹介

  • Twitterでシェア
  • この画像度の画像からつくられたでしょうクイズ
  • 生成された画像を評価
  • "充実度"、"幸せ度"、"強さ"、"暑さ"みたいなのをAIで学習して、その画像のステータスを作れたら面白そう

shunsuke-tamura

@shuntamu