AWS LambdaでOpenCVで画像処理する方法

投稿者: | 2019年1月1日

今回は、AWS Lambda上でOpenCVを利用して、画像のサイズを変更する方法について紹介します。

前提条件

開発環境

まず、前提条件として、開発環境はmacbookを利用しています。Python用のOpenCVをpipでインストールしただけでは、mac用のバイナリがインストールされてしまい、Lambda上ではうまく動作しません。

そのため、macにVirtualBoxでAmazon Linuxの仮想マシンを立て、その上で作業しました。

フォルダ構成

次にAWS Lambda用のフォルダ構成についてです。AWS Lambdaでは一つのフォルダ内に全ての必要なファイルをインストールする必要があります。今回は、OpenCVのような外部ライブラリと、自作のコードを分離するため、python_modulesというディレクトリを作成し、その中に外部ライブラリをインストールするようにしました。

実現した手順

1.pipを利用してOpenCVをインストールする方法

まず、python_modulesというディレクトリを作成し、次のコマンドでOpenCVをpython_modulesにインストールされるようにします。

2.関数の作成

次にlambda_function.pyというファイルを作成し、次のコードをコピペします。

ここでは、まず、S3に保存された画像ファイルをLambdaの一時ディレクトリにダウンロードし、メモリに読み込みます。(downloadImage関数)

次に、読み込んだイメージの縦と横の長さが元の画像の2分の1になるよう画像をリサイズします。(resize関数)

最後に作成した画像を一時ディレクトリに一旦保存し、S3にアップロードします。(save関数)

 

コメントを残す

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