AWSとラズパイで画像認識!クラウドの力を借りてみた

本サイトはアフィリエイト広告を利用しています。
AWS

ラズべリーパイとAWSで画像認識をしてみました。

AWS(アマゾンのクラウド)を使うことで、誰でも簡単に画像認識を始めれます。

設定方法から実際にカメラを使った画像認識まで紹介していきます。

 

スポンサーリンク

AWSとラズパイで画像認識!クラウドの力を借りてみた

ラズパイのカメラで撮った写真をAWSで画像認識してみました。

Pythonで「カメラ撮影」+「AWSでの画像認識」をまとめて実施させています。

 

AWSはしっかりと撮影した写真の「テニスボール(+人の手)」を画像認識できていました。

 

AWSの画像認識の結果ではテニスボールの信頼度は「99.999…%」でした。

AWSの設定方法からPythonのプログラム含めて紹介していきます。

 

実際のテストの様子も動画で紹介しています。

プログラム起動後に「カメラ撮影+画像認識」されている様子が分かります。

 

AWSに個人で登録する

最初は下記リンクに従ってAWS(アマゾンのクラウド)の登録を進めます。

個人でも自由に登録が可能です。

無料枠も十分にあるので、少しAWSに体験してみる程度ならば無料で試せます。

※今回の画像認識のテストでも無料枠内で実施出来ました。

 https://aws.amazon.com/jp/register-flow/

 

今回の記事以外でもラズベリーパイをAWS IoTに接続した記事も紹介しています。

ラズパイをIoTデバイスとして登録するのに参考になると思います。(リンク先はこちら)

AWSにラズパイを接続!GPIOの信号をクラウドに送信してみた

AWSにラズパイを接続!GPIOの信号をクラウドに送信してみた
AWSに入門したくなり、ラズベリーパイで始めてみました。 ラズパイとAWSを接続して、PythonでGPIOの信号をクラウドに送信しています。 無料枠の範囲内で実施出来ますので、AWSを始めてみたい人におすすめします。

 

S3のバケット作成

AWS S3(AWSのオンラインのストレージサービス)でバケットを作成します。

AWSで画像認識する上で、一旦はクラウド上に写真を保存する必要があるためです。

Amazon S3から「バケットを作成」があるので任意の名前を入力して作ります。

 

一応リージョンは「東京」にしています。

今回のテストレベルでは他はデフォルト設定で問題ありませんでした。

 

AWSのアクセスキーの作成

PythonのプログラムでAWSで画像認識するために、アクセスキーが必要になります。

AWSコンソール画面右上にある、各個人IDタブの「マイセキュリティ情報」から作成します。

「アクセスキー」の箇所で「新しいアクセスキーの作成」があります。

 

「アクセスキー ID」と「シークレットアクセスキー」を控えておきます。

 

ラズベリーパイとAWSで画像認識する

ラズベリーパイでAWSで画像認識できるように各種設定・カメラ接続をしていきます。

AWSのSDKのインストールやアクセスキーの管理なども実施していきます。

 

ラズパイのカメラを接続

ラズパイのカメラを接続しておきます。

 

基本的にラズパイのカメラコネクタに挿すだけで使用できます。

 

黒いコネクタ側を少し持ち上げてから銀色の端子が見える方を(Micro)HDMI側にして差し込めば完成です。

 

ケーブルを差し込んだら、黒いコネクタは押し込んでおきます。これで取り付け完了です。

 

ラズベリーパイのカメラの起動方法

ラズパイのカメラはデフォルトでは動作しませんので、設定を変更する必要があります。

但し変更といっても簡単です。「設定」⇒「Raspberry Piの設定」を選択します。

 

あとは「インターフェイス」のタブで「カメラ」を有効にしてOKをクリックします。

再起動後にはカメラが使えるはずです。

 

ラズベリーパイのカメラの基本的な使い方に関しては下記記事で紹介しています。

ラズパイでカメラの使い方!Pythonとコマンドの基本・応用例を紹介

ラズパイでカメラの使い方!Pythonとコマンドの基本・応用例を紹介
ラズベリーパイとカメラの使い方をまとめてみました。初心者の方でも簡単に撮影できますPythonとコマンドのどちらでも写真・動画撮影が対応できる旨を紹介して、最後には画像認識まで実施してみます。ラズパイでカメラの使い方!Pythonとコマンド...

 

AWS SDK for Python (Boto3)をインストール

今回はラズパイのPythonのプログラムからAWSの画像認識させます。

ラズパイに必要なSDK(Boto3)を下記コマンドでインストールします。

pip3 install boto3

 

設定管理ファイル(configparser)をインストール

configparserでAWSの設定ファイル(.ini)を作成します。

AWSで作成した「アクセスキー ID」と「シークレットアクセスキー」の流出防止します。

ラズパイに下記コマンドでインストールします

pip3 install configparser

 

iniファイルを作成する

PythonとconfigparserでAWSの設定ファイル(config.ini)を作成します。

 

下記順番でコンソールに入力していけば、config.iniファイルが作成されています。

(最後「…」と出る箇所はEnterを押してもらえれば大丈夫です。)

「アクセスキー ID」と「シークレットアクセスキー」は各個人のを入力してください。

python3
import configparser
config = configparser.ConfigParser()
config['AWS_KEY'] = {'awsaccesskeyid': 'アクセスキー ID','awssecretkey': 'シークレットアクセスキー'}
with open('config.ini', 'w') as configfile:config.write(configfile)

 

参考にさせていただいた記事

今回の設定・プログラム作成で参考にさせていただいたのが下記Qiita記事です。

 https://qiita.com/banquet_kuma/items/560787299b83fb924ff7

著者・運営者の方にはこの場を借りて深くお礼申し上げます。

 

Pythonでカメラ撮影+AWSの画像認識

「カメラ撮影」+「AWSの画像認識」をラズパイのPythonでプログラムします。

 

ラズパイにはデフォルトでPythonがインストールされており、誰でも簡単に使用できます。

初心者の方でも大丈夫です。下記記事で使い方を紹介しています。(リンク先はこちら)

ラズベリーパイでプログラミング入門!Pythonの簡単な始め方

ラズベリーパイでプログラミング入門!Pythonの簡単な始め方
プログラミングを始めたい方にラズベリーパイを使った簡単な入門方法を紹介します。プログラミング言語の中でも初心者にもやさしく、人気なPythonがラズパイならば簡単にスタートできます。ラズベリーパイでプログラミング入門!Pythonの簡単な始...

 

Pythonのプログラム

実際のプログラムが下記です。

プログラム起動後の2秒後にカメラ撮影して写真「test.jpg」を保存します。

その後AWSで画像認識して、認識結果表示した写真「test_rekognition.jpg」も保存します。

 

※AWSの設定ファイル(config.ini)は筆者は「/home/pi/cert/」に保存しています。

※Amazon S3のバケット名に関しては各自で入力した名前を指定してください。

※リージョンは(筆者は)東京「ap-northeast-1」にしています。

 

実際のテスト動画

冒頭でも紹介しましたが、実際のテストの様子も動画で紹介しています。

プログラム起動後に「カメラ撮影+画像認識」されている様子が分かります。

 

ラズパイでカメラ撮影した写真

プログラム起動の2秒後にカメラで解像度640x480の写真が取れています。

「test.jpg」という名前でプログラムと同じフォルダに保存されています。

 

AWSの画像認識した後の写真

AWSで画像認識して、認識した結果箇所の枠を追記した写真が下記となります。

テニスボール(と人の手)が認識された箇所が色枠で記載されています。

「test_rekognition.jpg」という名前でプログラムと同じフォルダに保存されています。

 

AWSからの画像認識の結果

AWSから画像認識の結果はPythonのシェル画面に出てきます。

今回のテニスボールの信頼度結果は「99.999…%」でした。

 

今回のテスト結果を下記に貼り付けておきます。

「テニスボール」と「人の手」の信頼度(Confidence)、認識した枠(領域)が表示されています。

 

まとめ

今回はラズパイとAWSの画像認識に関して紹介させていただきました。

記事をまとめますと下記になります。

ラズパイでAWSの画像認識が出来ました。
(今回の)画像認識のテストは無料枠内で実施出来ます。

 

AWSを始めてみるにもラズベリーパイ(raspberry pi)はちょうど良いデバイスかと思います。

カメラも簡単に接続できますので画像認識のテストも楽です。

是非皆さまも試してみて下さい。

コメント