1. HOME
  2. ブログ
  3. IT技術
  4. 【Amazon Rekognition前編】AWSで有名人認識アプリを開発してみた!
【Amazon Rekognition前編】AWSで有名人認識アプリを開発してみた!

【Amazon Rekognition前編】AWSで有名人認識アプリを開発してみた!

【前編】有名人認識アプリの開発に挑戦!

AWS は、いろいろな技術を利用することができ、まさに企業から注目されているサービスのひとつ。

というわけで今回は、Amazon Rekognition を使って、有名人画像認識アプリを開発していきたいと思います!

この開発では、主に以下の3つの技術を学ぶことができます。

  1. 画像認識
  2. 音声合成
  3. 機械翻訳

ちなみに、言語は Python です。

では早速、画像認識についてから、触れていきましょう!

前回の記事

画像認識ってなに?

まずは簡単に、「画像認識って何なの?」といった疑問を解消しておこうと思います。

「知ってる!」方は、読み飛ばしてくださいね!

まず画像認識とは、「画像データから物体を検出する技術」のことを指します。

その具体的な流れは、以下の通り。

  1. 画像データから対象物となる輪郭を洗い出す
  2. 背景から分離して特徴を抽出
  3. マッチングや変換を行う
  4. 目的となるオブジェクトや特徴を特定して認識

このような流れで、その対象物が何であるかを、分析するわけです。

画像認識は、スマホに搭載されている FaceID や空港での顔認証など、いろいろな場面で使われています。

では次に、Amazon Rekognition についても、簡単に触れていきましょう!

Amazon Rekognition とは?

Amazon Rekognition とは、画像や動画の分析を、機械学習を使って自動化できるサービスです。

具体的には、次のようなことができます。

  1. ラベルの特定
  2. テキスト検出
  3. 顔検出と分析
  4. 顔検索と検証
  5. 動線の検出

これだけ見ても、画期的なサービスであることがわかりますね!

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つが代表的なライブラリとして挙げられます。

  1. Tkinter
  2. Kivy
  3. wxPython
  4. PyQt

中でも Tkinter は、手軽に扱えるのが魅力なので、今回採用しています。

Tkinter を扱うことのメリット

Tkinter の一番のメリットは、「Windows・MacOS・Linux」といった、様々な OS に対応していること。

つまり、クロスプラットフォームな GUI ライブラリというわけです。

また、Python の標準ライブラリであることも、メリットとして挙がります。

OS が Linux ならば、Python が標準搭載のため、ソースコードを渡すだけで使えてしまうのも魅力ですね!

実装例:画面を作ってみよう!

まず、基本的な大枠部分を、Tkinter の Frame で作成してみましょう!

以下が、今回のアプリ大枠部分の実装イメージです。

実装例:画面を作ってみよう!

次に、アプリ大枠部分の実装例のコードも、見ていきましょう。

この大枠部分に、部品を組み合わせていくことで、デスクトップアプリケーションを作成していくことができます。

Amazon Rekognition後編へつづく!

有名人画像認識アプリを開発するシリーズの、Amazon Rekognition 前編は、ここで一旦完了です。

次回の後編では、このアプリ大枠部分に、実際に機能実装していきたいと思います。

コード量は増えていきますが、機能が形になっていくので、楽しめるはずです。

ぜひ次回も、いろんな知識を蓄えてみてくださいね!

では、次回もお楽しみに!

Amazon Rekognition後編はこちら!

こちらの記事もオススメ!


書いた人はこんな人

ライトコード社員ブログ
ライトコード社員ブログ
「好きなことを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡本社、東京オフィスの2拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もりは大歓迎!
また、WEBエンジニアとモバイルエンジニアも積極採用中です!

ご応募をお待ちしております!

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア