Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python@AWS LambdaとDjangoを使ってアスキーアート自動生成Webアプリを作ってみた

Python@AWS LambdaとDjangoを使ってアスキーアート自動生成Webアプリを作ってみた

アスキーアート自動生成Webアプリはこちら
http://asciiart.me/

Takahiro Yano

April 24, 2017
Tweet

More Decks by Takahiro Yano

Other Decks in Programming

Transcript

  1. お前誰よ • 矢野高宏 • プログラマー • 画像処理、画像認識 • 最近、自然言語処理 •

    DeepLearning • ゲーム制作@Unity3d • ウェブアプリ作成(勉強中) • Python歴2年くらい
  2. 一通り体験できて満足 • Django – Webホスティング – REST Framework – AngularJS連携

    • AWS Lambda • S3静的ホスティング • Javascript – AngularJS/Bootstrap/Masonry/Infinite Scroll
  3. アスキーアート(AA)って? • 文字で絵を描いていくアート • ルール – フォントはMS Pゴシックまたは モナーフォント –

    フォントサイズ16ポイント、高 さ18pixel – 文字幅は3ピクセル~16ピク セルまで様々 – 半角スペース連続で使えない – バックスラッシュ使えない
  4. これでAA1行のノード・エッジのグラフ構造ができる v あ v v あ あ … 全文字分 全文字

    とのリンク 1画素ずつ ずらして文字を配置。 (文字がエッジになる) 画像と比較(コスト) v v / あ A … 全文字分 詳しく書くと 全文字 とのリンク
  5. Matlab • だいぶんオワ(ry – 個人の感想です • まだまだ必要なことがある! – 海外アカデミックのデモコード 実行

    • ホームエディションで個人で も扱える – 本体15000円、ツールボ ックス5000円 安い! – 家で趣味で動かすのに どうぞ
  6. • DVDのバイリンガルキャプション • Netflix Subtitles Extender for Japanese • コメディがいい

    – 弾丸トーク(フレンズ、ビッグバンセオリー) 英語の勉強
  7. Lambda関数@Pythonの作成 • AmazonLinux@EC2上で作業 1. yumで各種ライブラリインストール(blas, lapackなど) 2. スワップファイル作る 3. virtualenv作る

    4. virtualenv内でpip、pythonライブラリインストール – numpy, pillow, scipyなど 5. lambda関数デプロイ用のフォルダ作成、site-package/dist- packageの中身をフォルダにコピー 6. lambda関数を .py で作成してフォルダにコピー 7. LambdaUploadでAWSにアップロードする • 参考: – https://medium.com/@maebert/machine-learning-on-aws-lambda- 5dc57127aee1
  8. LambdaUpload • コマンド一発でライブラリと自作スクリプトをZIPで固めて AWSにデプロイしてくれる – 使ってみたらとても便利だった • AWS Lambdaの関数アップロードをお手軽に -

    銀の弾丸 – http://takamints.hatenablog.jp/entry/2016/03/09/launcher-script- for-the-aws-lambda-function • (※発表後追記:AWS公式にも便利なデプロイツールがある そうです)
  9. ご清聴ありがとうございました • ちゃんとデプロイする(nginx) • AAがでかいのでもっと小さく、よいものを – GraphCut/DeepLearningを使う – InterestPointの考慮(眼の周りの検知など) •

    画像の線画化を高性能化 • LamdaでTensorflow(Keras)を動かす – aws lambda + serverless • ウェブアプリの勉強 – SNSシェア、ログイン機能、コメント、いいねラン キング、・・・