【Amazon Rekognition前編】AWSで有名人認識アプリを開発してみた!
2021.08.31
目次
【前編】有名人認識アプリの開発に挑戦!
AWS は、いろいろな技術を利用することができ、まさに企業から注目されているサービスのひとつ。
というわけで今回は、Amazon Rekognition を使って、有名人画像認識アプリを開発していきたいと思います!
この開発では、主に以下の3つの技術を学ぶことができます。
- 画像認識
- 音声合成
- 機械翻訳
ちなみに、言語は Python です。
では早速、画像認識についてから、触れていきましょう!
前回の記事
こちらの記事もオススメ!
画像認識ってなに?
まずは簡単に、「画像認識って何なの?」といった疑問を解消しておこうと思います。
「知ってる!」方は、読み飛ばしてくださいね!
まず画像認識とは、「画像データから物体を検出する技術」のことを指します。
その具体的な流れは、以下の通り。
- 画像データから対象物となる輪郭を洗い出す
- 背景から分離して特徴を抽出
- マッチングや変換を行う
- 目的となるオブジェクトや特徴を特定して認識
このような流れで、その対象物が何であるかを、分析するわけです。
画像認識は、スマホに搭載されている FaceID や空港での顔認証など、いろいろな場面で使われています。
では次に、Amazon Rekognition についても、簡単に触れていきましょう!
Amazon Rekognition とは?
Amazon Rekognition とは、画像や動画の分析を、機械学習を使って自動化できるサービスです。
具体的には、次のようなことができます。
- ラベルの特定
- テキスト検出
- 顔検出と分析
- 顔検索と検証
- 動線の検出
これだけ見ても、画期的なサービスであることがわかりますね!
Amazon Rekognitionを使ってみよう!
では実際に、Amazon Rekognition に触れていきましょう!
まずは、以下の Amazon Rekognition の公式ページから、使用を開始するボタンを押下してください。
【Amazon Rekognition:公式ページ】
https://aws.amazon.com/jp/rekognition/
試しに、有名人認識の機能に触れてみたいと思います!
Amazon Rekognition のコンソール中にある、有名人の認識を選択してください。
次に、好きな有名人の画像を、Upload してみましょう。
すると、人にもよりますが、Confidence(信頼性)の確率とともに、名前が返ってきたと思います。
さらには、その人物の詳細についても、AWS ページで確認することもできます。
いとも簡単に、有名人の顔認識ができてしまいましたね!
Pythonで「Amazon Rekognition」に触れる
さて、ここからいよいよ Python も使って、本格的に Amazon Rekognition に触れていきます。
ちなみに、Python で AWS のサービスを使うには、 Boto3 を使う必要があります。
ライブラリのインポート
では、まずライブラリをインポートするコードを書いていきましょう!
また boto3 を使うには、Session を立ち上げて Rekognition のクライアントを作成するといった処理も必要です。
ですが、先ほど aws config で設定した情報を認証してくれるので、省略ができます。
この機能のおかげで、コード上では個人情報が書く必要がなくなり、セキュリティ性も高くなるわけですね!
画像認識を行う
では、画像認識を行うためのコードも書いています!
上の画像を、まずは保存してください。
次に、以下のコードを書いていきます。
今回は、Rekognition の API である「DetectLabels」を使い、画像の物体検出をしていきたいと思います。
【DetectLabels:公式ドキュメント】
https://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/API_DetectLabels.html
ちなみに画像は、「JPEG」「PNG」である必要があるので、注意してください。
出力結果が、JSON から整形したもので、ちょっと見づらいかもしれません…。
ただ画像から、なにを検出したかは、認識できたと思います!
有名人認識アプリの開発!
では、この記事のメイン部分である、有名人認識アプリの開発を行っていきましょう!
まず、アプリということで、GUI である画面部分を作成していかなければいけません。
Tkinterを使って画面を作成してみよう!
「Tkinter」は、Python のモジュールのひとつです。
このモジュールは、デスクトップ向けアプリを作成するときに用いられます。
具体的には、ボタンやエディタなどの部品 (Widgit) を使って、GUI アプリを実装することが可能です。
ちょっと寄り道をすると、Python でデスクトップアプリを作成するには、以下の4つが代表的なライブラリとして挙げられます。
- Tkinter
- Kivy
- wxPython
- PyQt
中でも Tkinter は、手軽に扱えるのが魅力なので、今回採用しています。
Tkinter を扱うことのメリット
Tkinter の一番のメリットは、「Windows・MacOS・Linux」といった、様々な OS に対応していること。
つまり、クロスプラットフォームな GUI ライブラリというわけです。
また、Python の標準ライブラリであることも、メリットとして挙がります。
OS が Linux ならば、Python が標準搭載のため、ソースコードを渡すだけで使えてしまうのも魅力ですね!
実装例:画面を作ってみよう!
まず、基本的な大枠部分を、Tkinter の Frame で作成してみましょう!
以下が、今回のアプリ大枠部分の実装イメージです。
次に、アプリ大枠部分の実装例のコードも、見ていきましょう。
この大枠部分に、部品を組み合わせていくことで、デスクトップアプリケーションを作成していくことができます。
Amazon Rekognition後編へつづく!
有名人画像認識アプリを開発するシリーズの、Amazon Rekognition 前編は、ここで一旦完了です。
次回の後編では、このアプリ大枠部分に、実際に機能実装していきたいと思います。
コード量は増えていきますが、機能が形になっていくので、楽しめるはずです。
ぜひ次回も、いろんな知識を蓄えてみてくださいね!
では、次回もお楽しみに!
Amazon Rekognition後編はこちら!
記事を書いた人
システム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
こちらの記事もオススメ!
書いた人はこんな人
- 「好きなことを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡本社、東京オフィスの2拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。
システム開発依頼・お見積もりは大歓迎!
また、WEBエンジニアとモバイルエンジニアも積極採用中です!
ご応募をお待ちしております!
- IT技術2021.09.08【Unity】オブジェクトプーリングの実装方法を解説!~弾の作成チュートリアル~
- ITエンタメ2021.09.07量子コンピュータの歴史~考案から実用化までの道のり~
- エンジニアになろう!2021.09.06【最終回】Djangoで日記アプリを作ろう~総復習編~
- エンジニアになろう!2021.09.03【第8回】Djangoで日記アプリを作ろう~認証機能実装編~