Azure Functions: FaceAPIとOpenCVで顔検出をしてみた。① -Python3と外部ライブラリの導入-

LINEで送る
Pocket

Michaelです。

こんにちは、Michaelです。
今回から、Azure FunctionsとCognitive Servicesを使って画像内の顔を検出する仕組みを作成していきます。
初回は、Azure FunctionsにPython3とOpenCVを導入してみます。

※この記事は以下のサイトを参考に作成しています。
・https://qiita.com/Akira-Isegawa/items/f3c8d14ee43049459264
・https://prmadi.com/running-python-code-on-azure-functions-app/

Python3の導入

Azure Functionsでは、Python 2.7.8がデフォルトで利用できるバージョンとなっています。
下記のスクリプトをテスト実行してPythonのバージョンを表示すると、「2.7.8」であることが確認できます。
まずこれを、Python 3.6.4にアップデートします。

※Azure Functionsの作成、及びPython関数の作成に関しては、Azure Functions:キューメッセージをトリガーとしたPython関数を作成してみる」を参照ください。

Azure Functionsのポータルを「プラットフォーム機能」→「高度なツール (Kudu)」をクリックし、「Kudu」を開きます。

Kudu画面上部のメニューから「Debub console」→「CMD」をクリックします。


ディレクトリ一覧とコマンドプロンプトが表示されるため、一覧から「site」→「tools」を選択、もしくはコンソールで「cd D:\home\site\tools」を実行して「D:\home\site\tools」のディレクトリに移動します。

下記コマンドで「D:\home\site\tools」のディレクトリにPython 3.6.4をインストールします。

インストールしたPython 3.6.4をAzure Functionsで実行できるようするには、python.exeを「D:\home\site\tools」直下まで移動する必要があります。
下記コマンドで、python.exeの格納されているディレクトリ以下をすべて、「D:\home\site\tools」の直下に移動させます。

以上を実行したら、Azure FunctionsのPython関数に戻り、最初のPythonスクリプトでPythonのバージョンを確認します。
関数の実行ログに「3.6.4」と表示され、バージョンが変更されていることが確認できました。

ライブラリのインストール

上記の手順でPythonをインストールすると、pipを使ってライブラリを管理できるようになります。
Pythonにライブラリを追加する場合には、「Kudu」のCMDコンソールで下記のコマンドを実行します。

OpenCVをインストールする場合は、ライブラリ名を「opencv_python」として実行します。

下記コマンドでインストールされているライブラリの一覧を表示すると「opencv-python」がインストールされていることが確認できます。


また、Python関数でOpenCVをインポートしてみると、インポートエラーは発生せず、ライブラリが読み込まれていることが確認できました。

まとめ

Azure Functionsでは、デプロイパッケージを使わず、Kudoで直接ライブラリを追加できるため、追加でライブラリが必要になった場合でもいちいちデプロイパッケージを作り直す必要がなく便利です。
次回は、Azure FunctionsからCognitive ServicesのFace APIを使い、画像の顔検出を試してみます。

LINEで送る
Pocket