SORACOM回線を使ったスマートフォンとAWSサービスを用いた画像認識サービスを構築する
はじめに
当コンテンツは、エッジデバイスとしてスマートフォン、クラウドサービスとしてAWSを利用し、エッジデバイスとクラウド間とのデータ連携とAWSサービスを利用した画像認識を体験し、IoT/画像認識システムの基礎的な技術の習得を目指す方向けのハンズオン(体験学習)コンテンツです。
また、スマートフォンとAWSサービスの接続にはSORACOMサービスを利用します。 WebAPIへの接続情報・認証情報をSORACOMプラットフォーム側のSIMグループとして管理させます。
SIMグループの情報はAPIを実行する際にSIM経由のメタデータサービスで取得し、SIMごとに異なるWebAPIにアクセスさせることが可能です。
WebAPIの認証キーをWebサイトに埋め込む必要はなく、SIM経由でしか認証キーを取得出来ない仕組みとすることで、高いセキュリティが実現出来ます。 また、使用するAPIをSIMごとに切り替えることが可能となりますので、開発用SIM・本番用SIMで異なる環境へのアクセスや、利用者の権限ごとに異なる情報を取得するなど、様々な応用が可能となります。
応用例
本ハンズオンで学んだ内容は「来訪者の自動受け付け機」といった事に利用が可能となっています。
全体のアーキテクチャ
今回のコンテンツ内で構築するIoTシステムの全体像です。
今回のアーキテクチャの3つの大きなポイント
ポイント1. SORACOMメタデータサービスを使ったAPI接続情報の管理
- WebサイトにAPIのアクセス情報を管理しない
- API認証情報をSORACOM側で管理
- API接続先をSIM単位で切り替えることが可能
- SORACOM SIM経由でしかアクセス出来ない制御が可能
- Webアプリケーションを解析されても認証キーは分からない
ポイント2. Amazon Rekognitionを使った人物認証
- AWSの画像分析サービス「Amazon Rekognition」を使って、デバイスのカメラで取得した画像に写っている人物が事前登録済みの人物かどうかの判定を行う
- AWSで学習済みのモデルを利用した画像AIサービスを使うことが出来る
- Rekognitionを利用するWebAPIの構築手法を学ぶことが出来る
ポイント3. AWS Cloud9を使ったAWSリソースの操作
- コードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE)サービスの「AWS Cloud9」を使って、各自のパソコンに開発環境の準備を行うことなく、コマンドラインからAWSリソースの各種操作を行うことが出来る
以上を通して、エッジ側で取得した画像データを使ったクラウド側の画像認識サービス活用のノウハウを学びます。
ハンズオンの前提条件
このハンズオンを行う上で必要な環境やスキルです。 下記条件を満たさない場合、うまくハンズオンが進められない場合がありますので、あらかじめご了承ください。
- SORACOM Air SIMを所有していること
- SORACOM Air SIMが使用出来るSIMフリースマートフォンを所有していること
- Admin権限で利用できるSORACOMアカウントを所有していること
- Admin権限で利用できるAWSアカウントを所有していること
- AWSコンソールヘのログインや一般的な操作が可能であること
- 基本的なLinuxコマンドライン操作ができること
- ローカルPCのWebブラウザとして「Chrome」が利用可能であること
本ハンズオンでかかるサービス費用
計: 約1,273円 (この内無料分があるため実際はこれよりも少なくなります。)
- AWS: 約386円
- AWS Cloud 9(約3時間): 約380円 ※
- Amazon Rekognition (約20枚の画像): 約3円 ※
- Amazon S3 (約20枚の画像分): 1円未満
- AWS Lambda: 1円未満 ※
- Amazon API Gateway: 1円未満 ※
- SORACOM: 887円
- SORACOM Air
- SORACOM 特定地域向け IoT SIM (plan-D データ通信のみ nanoSIM): 852円
- 基本料: 10円/日
- データ通信 (上下50MBづつ): 25円 ※
- SORACOM Air
料金は全て税別・送料別です。
スマートフォンやPCといった機器は除外しています。
※が付いているサービスは無料枠が存在します。各サービスの料金ページをご覧ください。
それぞれのサービスはオンラインで見積もりが可能です。AWS 料金計算ツール / SOARCOM 料金見積もりツール
ハンズオンの事前準備
- 以下の製品を手元に準備してください
- SIMフリースマートフォン
- SORACOM Air SIM
- スマートフォンにSIMを挿しこみセットアップを完了させてください
- SIMフリースマートフォンにSORACOM Air SIMを挿してください
- SORACOM様のサイトを参考にして、SIMのセットアップを行ってください SORACOM Air for セルラーの利用方法(個人・法人) ※ iOS端末の場合、既存のプロファイルがあれば削除し、SORACOMのプロファイルをインストールする必要があります。
- スマートフォンのWifiを切り、SIM経由でインターネット接続できることを確認してください
- 画像認識のベース画像となる自分が写っている画像ファイル1枚をハンズオンを行うPC内に準備してください
- PNG形式、JPG形式の画像ファイル
- 自分一人が写っている写真、かつ中央に自分が写っている写真
- サイズは15MB以内
- 顔が40x40ピクセル以上(正面を向いて顔が大きめに写っている写真を使ってください)
- 準備する画像については以下の設営を参照ください
- アップロードの作業に移る前に、下記注意事項をご確認ください。
- Rekognitionで利用できる画像の制限
Rekognitionに利用できる画像には制限がありますので、ご確認ください。
公式ドキュメントへのリンク - 画像に写っている顔の数
後述のAWS Rekognitionサービスのコレクションへの顔登録の性質から、画像に写っている顔は、登録したい人一人分の顔が写ったものを利用ください。
- Rekognitionで利用できる画像の制限
ハンズオンの進め方
ハンズオンは、環境構築からリソースの後片付けまで、内容によって6つのステップに分割しています。 当ポータルサイトから各ステップのコンテンツを新規タブで開いて、1つずつ進めてください。
またスマートフォン側で動かすVue.js(JavaScript)コードやLambdaのPythonコードのサンプルソースはGitHubのリポジトリで公開しています。
コンテンツ内でもご案内しますが、実装が必要なステップではこちらのサンプルソースをご活用ください。
コンテンツ内には実装に関わるヒントも掲載していますので、自力でコーディング出来る方は是非チャレンジしてみましょう。
ステップ1. 環境準備
今回のハンズオンでは、エッジデバイスであるスマートフォン(SORACOM SIM経由で通信が可能であること)と、クラウド環境の構築やその他必要な作業を行うためにChromeブラウザがインストールされているローカルPCが必要です。 ハンズオンを進めるにあたって必要な準備作業について説明します。
以下のコンテンツを開き、ステップ1を進めてください
ステップ1へ
ステップ2. 顔認識用のコレクションを作成する
ステップ2では、画像に写っている人物を特定するために必要なコレクションを作成します。
AWS Rekognitionサービスには、事前登録済みの情報(コレクション)を使って、画像内に誰が写っているのかを特定する機能があります。
まずは、画像のアップロード先として「Amazon S3(以下、S3)」にバケットを作成し、登録したい人物が1人で写っている画像をAWSコンソールからアップロードします。
AWSのCLI(コマンド・ライン・インターフェース)ツールを使って、「Amazon Rekognition(以下、Rekognition)」の「コレクション」を作成し、認識対象となる顔を登録します。
以下のコンテンツを開き、ステップ2を進めてください
ステップ2へ
ステップ3. 顔認識のWeb APIを作成する
ステップ3では、パラメータとして受け取った画像を分析し「事前登録済みの人物が写っているかを判定し、写っている場合は誰なのかを判定する」という機能を持ったWeb APIを作成し、デバイス側からAPIを呼び出す仕組みを構築します。
まずは、AWSのFaaSサービスである「AWS Lambda」で関数を作成し、フルマネージド型API管理サービスの「Amazon API Gateway」でREST APIを作成します。
以下のコンテンツを開き、ステップ3を進めてください
ステップ3へ
ステップ4. SORACOMメタデータサービスの設定を行う
ステップ4では、対象のSIMにメタデータサービスの設定を行い、デバイス側からメタデータサービスを利用する仕組みを構築します。
メタデータサービスの設定は、SORACOM管理コンソールから設定することが可能です。 まずは、SIMグループを作成しメタデータサービスの有効化を行い、対象のSIMに作成したSIMグループを割り当てます。
以下のコンテンツを開き、ステップ4を進めてください
ステップ4へ
ステップ5. スマートフォンから顔認識を行う
ステップ5では、SORACOM回線での接続が可能なスマートフォンを使い、スマートフォンのカメラで撮影した画像で顔認識を行ってみましょう。 SORACOM回線での接続が可能なパソコンからでも実施することが出来ます。
以下のコンテンツを開き、ステップ5を進めてください
ステップ5へ
ステップ6. ハンズオン終了後のあと片づけ
ご利用いただいたAWSの各種サービスには無料利用枠がございますが、無料利用枠を超えた場合は従量課金が発生します。
ハンズオンを行い、環境が不要となれば各種リソースを削除することを推奨します。
以下のコンテンツを開き、ステップ6を進めてください
ステップ6へ
さいごに
このように、AWS Rekognitionを使用することで簡単に短時間で画像認識システムを構築することが出来ます。また、SORACOMを利用することにより、閉域網を使って安全にデータのやりとりを行うことが可能となります。
今回のハンズオンはこれにて終了となります。