Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Tomotsune Murata
PDF, PPTX
6,232 views
画像処理をAWS LambdaのPythonで!
JAWS-UG Meetup in AWS Cloud Roadshow 名古屋のLT資料です。
Engineering
◦
Read more
11
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 25
2
/ 25
3
/ 25
4
/ 25
5
/ 25
6
/ 25
7
/ 25
8
/ 25
9
/ 25
10
/ 25
11
/ 25
12
/ 25
13
/ 25
14
/ 25
15
/ 25
16
/ 25
17
/ 25
18
/ 25
19
/ 25
20
/ 25
21
/ 25
22
/ 25
23
/ 25
24
/ 25
25
/ 25
More Related Content
PDF
lambda-lgtm
by
Yoshiaki Yoshida
PDF
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
by
Takehiro Suemitsu
PPTX
はじめてのAWS Lambda
by
Masaki Misawa
PDF
AWS Lambda のご紹介 2015 JAWS沖縄
by
Toshiaki Enami
PDF
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
by
Masahiro NAKAYAMA
PDF
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
by
Takashi Makino
PPTX
node.jsでS3にバックアップを送り続けるコードを書いてみた話。Node s3maの紹介-jawsugさいたま
by
Yasuhiro Araki, Ph.D
PDF
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
by
Ryu Yamashita
lambda-lgtm
by
Yoshiaki Yoshida
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
by
Takehiro Suemitsu
はじめてのAWS Lambda
by
Masaki Misawa
AWS Lambda のご紹介 2015 JAWS沖縄
by
Toshiaki Enami
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
by
Masahiro NAKAYAMA
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
by
Takashi Makino
node.jsでS3にバックアップを送り続けるコードを書いてみた話。Node s3maの紹介-jawsugさいたま
by
Yasuhiro Araki, Ph.D
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
by
Ryu Yamashita
What's hot
PDF
Application Deployment on AWS
by
Eiji Shinohara
PDF
AWS Black Belt Techシリーズ AWS Lambda
by
Amazon Web Services Japan
PPTX
aws lambdaでpythonを実行するときのチューニング案を試してみた!
by
Shun Fukazawa
PDF
AWS Lambdaで作るクローラー/スクレイピング
by
Takuro Sasaki
PDF
Lambdaのscheduled eventで実現する運用視点のサーバレスパターン
by
Jin k
PDF
速習 AWS Lambda
by
Masayuki Uchida
PDF
Lambda × Mobileの可能性
by
yuki0211s
PDF
AWS SAMで始めるサーバーレスアプリケーション開発
by
真吾 吉田
PDF
20160526 AWSサービスアップデート
by
Genta Watanabe
PPTX
20160312 Jaws Days 2016 API Gateway+Lambda
by
Kazuki Ueki
PDF
俺のLambda
by
Motokatsu Matsui
PDF
Lambdaによるクラウド型言語の実装
by
Sugawara Genki
PPTX
AWS Batch Fargate対応は何をもたらすか
by
Shun Fukazawa
PDF
PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編
by
Yoshihiro Ohsuka
PDF
Serverless Architecture on AWS(20151023版)
by
Keisuke Nishitani
PDF
AWS Black Belt Tech シリーズ 2015 - AWS Data Pipeline
by
Amazon Web Services Japan
PDF
AWS re:Invent2019 Overview &New Releases Summary for Game
by
Amazon Web Services Japan
PDF
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
by
都元ダイスケ Miyamoto
PDF
AWS Search Services
by
Eiji Shinohara
PPTX
サーバーレスアプリケーションの作り方
by
Yoichi Toyota
Application Deployment on AWS
by
Eiji Shinohara
AWS Black Belt Techシリーズ AWS Lambda
by
Amazon Web Services Japan
aws lambdaでpythonを実行するときのチューニング案を試してみた!
by
Shun Fukazawa
AWS Lambdaで作るクローラー/スクレイピング
by
Takuro Sasaki
Lambdaのscheduled eventで実現する運用視点のサーバレスパターン
by
Jin k
速習 AWS Lambda
by
Masayuki Uchida
Lambda × Mobileの可能性
by
yuki0211s
AWS SAMで始めるサーバーレスアプリケーション開発
by
真吾 吉田
20160526 AWSサービスアップデート
by
Genta Watanabe
20160312 Jaws Days 2016 API Gateway+Lambda
by
Kazuki Ueki
俺のLambda
by
Motokatsu Matsui
Lambdaによるクラウド型言語の実装
by
Sugawara Genki
AWS Batch Fargate対応は何をもたらすか
by
Shun Fukazawa
PHPという概念が存在しない退屈な世界 - AWS LambdaでWebAPP編
by
Yoshihiro Ohsuka
Serverless Architecture on AWS(20151023版)
by
Keisuke Nishitani
AWS Black Belt Tech シリーズ 2015 - AWS Data Pipeline
by
Amazon Web Services Japan
AWS re:Invent2019 Overview &New Releases Summary for Game
by
Amazon Web Services Japan
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
by
都元ダイスケ Miyamoto
AWS Search Services
by
Eiji Shinohara
サーバーレスアプリケーションの作り方
by
Yoichi Toyota
Similar to 画像処理をAWS LambdaのPythonで!
PDF
20170823【GWゼミ #2】AWS Lambda上でOpenCVを使った画像処理
by
Mirai Higuchi
PDF
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
by
Amazon Web Services Japan
PDF
serverless framework + AWS Lambda with Python
by
masahitojp
PPTX
AWSで認証機能のついたサイトを手軽に構築する(Cognito+CloudFront+API Gateway)
by
RyosukeTakeuchi8
PDF
20170705 blackbelt AWS Lambda
by
Amazon Web Services Japan
PPTX
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
by
Koitabashi Yoshitaka
PPTX
Pythonによる画像処理について
by
Yasutomo Kawanishi
PDF
JAWS-UG Nagoya 20130406 物体認識システムを支えるAWS
by
陽平 山口
20170823【GWゼミ #2】AWS Lambda上でOpenCVを使った画像処理
by
Mirai Higuchi
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
by
Amazon Web Services Japan
serverless framework + AWS Lambda with Python
by
masahitojp
AWSで認証機能のついたサイトを手軽に構築する(Cognito+CloudFront+API Gateway)
by
RyosukeTakeuchi8
20170705 blackbelt AWS Lambda
by
Amazon Web Services Japan
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
by
Koitabashi Yoshitaka
Pythonによる画像処理について
by
Yasutomo Kawanishi
JAWS-UG Nagoya 20130406 物体認識システムを支えるAWS
by
陽平 山口
More from Tomotsune Murata
PDF
Photon Enterprise Cloud 事例
by
Tomotsune Murata
PDF
人気ゲームアプリ「クラッシュフィーバー」におけるAWS活用
by
Tomotsune Murata
PDF
クラッシュフィーバーのシステム構成
by
Tomotsune Murata
PDF
クラッシュフィーバー開発の裏側
by
Tomotsune Murata
PDF
Xcode7 / iOS 9 対応でハマったこと
by
Tomotsune Murata
PDF
コストみてますか?
by
Tomotsune Murata
PDF
すっかりマカーな私がWindowsに戻ってみた
by
Tomotsune Murata
PDF
MFi Controller〜それは忘れられたiOS7新機能〜
by
Tomotsune Murata
PDF
SQLiteを手軽に・セキュアに
by
Tomotsune Murata
PDF
cocos2dで手軽にアニメーション
by
Tomotsune Murata
PDF
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
by
Tomotsune Murata
Photon Enterprise Cloud 事例
by
Tomotsune Murata
人気ゲームアプリ「クラッシュフィーバー」におけるAWS活用
by
Tomotsune Murata
クラッシュフィーバーのシステム構成
by
Tomotsune Murata
クラッシュフィーバー開発の裏側
by
Tomotsune Murata
Xcode7 / iOS 9 対応でハマったこと
by
Tomotsune Murata
コストみてますか?
by
Tomotsune Murata
すっかりマカーな私がWindowsに戻ってみた
by
Tomotsune Murata
MFi Controller〜それは忘れられたiOS7新機能〜
by
Tomotsune Murata
SQLiteを手軽に・セキュアに
by
Tomotsune Murata
cocos2dで手軽にアニメーション
by
Tomotsune Murata
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
by
Tomotsune Murata
画像処理をAWS LambdaのPythonで!
1.
画像処理を AWS LambdaのPythonで! JAWS-UG Meetup
in AWS Cloud Roadshow 名古屋 ワンダープラネット株式会社 取締役 CTO 村田知常
2.
自己紹介 • 村田 知常(むらた
ともつね) tomotsune.murata • ワンダープラネット株式会社 取締役 CTO • 好きな言語 Swift • 好きなAWS Amazon S3
3.
ワンダープラネット株式会社 • 2012年9月3日
設立 • iOS/Android向けフルネイティブのソーシャルゲームを出してます • AWSには大変お世話になってます! 本日、ver.1.1.6を配信!本日、ver.1.1.6を配信!
4.
re:Invent2015で来ました \(^O^)/
5.
Lambda +
6.
• サーバーサイドのメイン言語 • MayaのPythonスクリプティング •
ちょっとしたコマンドラインツール +
7.
早速、試しました! (-_☆)キラーン
9.
• Pythonで実装 • RSSフィードを定期的に取得 →
新機能 スケジュール化 の検証 • RSSフィードの解析に「feedpaser」 → 外部ライブラリの利用 • CloudWatchのLogsに出力 → printで手抜き
10.
本当に試したかったのは これではなかった…
11.
S3に画像をアップしたら Pythonライブラリを使って 画像を加工したい ※ 外部サービスは使わず
12.
ブログアップ日に 間に合わなかった…
13.
画像処理ライブラリ 使おう とした Python Imaging Library
(PIL)のforkプロジェクト • ピクセル毎の操作 • マスキングと透明度の制御 • ぼかし、輪郭補正、スムージング、輪郭検出などの画像フィルタ • シャープ化、明るさ補正、コントラスト補正、色補正などの画像の調整 • 画像へのテキストの追加 • その他いろいろ
14.
Unable to import
module 'lambda_function': / var/task/PIL/_imaging.so: invalid ELF header 普通にMac上で実装したものを Lambdaで実行すると… Pillowインストール時に環境に合わせて 一部ライブラリをビルドしている Mac向けにビルドしたものは Linux上では動かないよ
15.
$ sudo yum
install python-devel $ sudo yum install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel $ sudo yum install gcc EC2(Amazon Linux AMI 2015.09)上で構築 必要なライブラリをインストール 作業ディレクトリに移動 $ vim setup.cfg [install] install-purelib=$base/lib64/python $ pip install Pillow -t . Pillowのドキュメントに 沿ってインストール ビルドに必要 (gcc無いのね…)
16.
<workdir> ├── PIL │ ├──
BdfFontFile.py │ : │ : ├── Pillow-3.0.0.egg-info │ ├── PKG-INFO │ : │ : ├── lambda_function.py ← このファイルを作成し実装 └── setup.cfg 完成するとこんな感じ Macで作ると Pillow-3.0.0.dist-info 準備完了 \(^O^)/ EC2(Amazon Linux AMI 2015.09)上で構築
17.
Lambda functionの実装 • inputフォルダにPNG画像をPut •
Lambdaを起動しサムネイルを作成 • サムネイルをoutputフォルダに出力
18.
Lambda functionの実装 オリジナル画像 80x80画像 Lambdaで 画像を加工
19.
from PIL import
Image import boto3 import os import re s3 = boto3.client('s3') def lambda_handler(event, context): bucket = event['Records'][0]['s3']['bucket']['name'] key = event['Records'][0]['s3']['object']['key'] print u'Bucket=' + bucket print u'key=' + key tmp = u'/tmp/' + os.path.basename(key) output = re.sub(r'^input/', u'output/', key) try: s3.download_file(Bucket=bucket, Key=key, Filename=tmp) img = Image.open(tmp, 'r') img.thumbnail((80, 80), Image.ANTIALIAS) img.save(tmp, 'PNG') s3.upload_file(Filename=tmp, Bucket=bucket, Key=output) return except Exception as e: print(e) raise e Lambda functionの実装
20.
from PIL import
Image import boto3 import os import re s3 = boto3.client('s3') def lambda_handler(event, context): bucket = event['Records'][0]['s3']['bucket']['name'] key = event['Records'][0]['s3']['object']['key'] print u'Bucket=' + bucket print u'key=' + key tmp = u'/tmp/' + os.path.basename(key) output = re.sub(r'^input/', u'output/', key) try: s3.download_file(Bucket=bucket, Key=key, Filename=tmp) img = Image.open(tmp, 'r') img.thumbnail((80, 80), Image.ANTIALIAS) img.save(tmp, 'PNG') s3.upload_file(Filename=tmp, Bucket=bucket, Key=output) return except Exception as e: print(e) raise e Lambda functionの実装 Bucketから ファイルを取得 /tmp/下に保存 Lambdaから /tmp/はアクセス可能 容量は500MB
21.
from PIL import
Image import boto3 import os import re s3 = boto3.client('s3') def lambda_handler(event, context): bucket = event['Records'][0]['s3']['bucket']['name'] key = event['Records'][0]['s3']['object']['key'] print u'Bucket=' + bucket print u'key=' + key tmp = u'/tmp/' + os.path.basename(key) output = re.sub(r'^input/', u'output/', key) try: s3.download_file(Bucket=bucket, Key=key, Filename=tmp) img = Image.open(tmp, 'r') img.thumbnail((80, 80), Image.ANTIALIAS) img.save(tmp, 'PNG') s3.upload_file(Filename=tmp, Bucket=bucket, Key=output) return except Exception as e: print(e) raise e Lambda functionの実装 80 x 80 サムネイルを作成
22.
from PIL import
Image import boto3 import os import re s3 = boto3.client('s3') def lambda_handler(event, context): bucket = event['Records'][0]['s3']['bucket']['name'] key = event['Records'][0]['s3']['object']['key'] print u'Bucket=' + bucket print u'key=' + key tmp = u'/tmp/' + os.path.basename(key) output = re.sub(r'^input/', u'output/', key) try: s3.download_file(Bucket=bucket, Key=key, Filename=tmp) img = Image.open(tmp, 'r') img.thumbnail((80, 80), Image.ANTIALIAS) img.save(tmp, 'PNG') s3.upload_file(Filename=tmp, Bucket=bucket, Key=output) return except Exception as e: print(e) raise e Lambda functionの実装 output/に ファイルをアップロード
23.
時間があったら デモ
24.
まとめ • Pillowを使えば色々と凝った画像処理が可能 • ビルドを必要とするライブラリを AWS
Lambdaで使うノウハウを習得 • AWS LambdaをPythonで実装できる! • これで開発・運用をサポートする ツール作成が る
25.
ご清聴ありがとうございました
Download