Rekognitionを使ってAWS上で画像検索エンジンを構築する方法

Rekognitionを使ってAWS上で画像検索エンジンを構築する方法

AWSには様々な機能がありますが、その中でもRekognitionは画像認識技術を提供するサービスです。Rekognitionを使うことで、画像に対して様々な処理を行うことができます。本記事では、Rekognitionを使ってAWS上で画像検索エンジンを構築する方法について解説します。

準備

まずはじめに、AWSのアカウントを作成し、Rekognitionを有効化する必要があります。また、本記事ではPythonを使用しますので、Pythonのインストールも必要です。

画像のアップロード

画像をアップロードするために、AWS S3を使用します。S3に画像をアップロードすることで、Rekognitionが画像を認識することができます。以下のコードを使用して、画像をアップロードします。

import boto3

s3 = boto3.resource('s3')
bucket_name = 'your-bucket-name'
file_name = 'your-file-name.jpg'

s3.Bucket(bucket_name).upload_file(file_name, file_name)

画像の検索

画像の検索には、Rekognitionのsearch_faces_by_imageを使用します。以下のコードを使用して、画像の検索を行います。

import boto3

rekognition = boto3.client('rekognition')
bucket_name = 'your-bucket-name'
file_name = 'your-file-name.jpg'

response = rekognition.search_faces_by_image(
    CollectionId='your-collection-id',
    Image={
        'S3Object': {
            'Bucket': bucket_name,
            'Name': file_name
        }
    }
)

face_matches = response['FaceMatches']
if len(face_matches) > 0:
    print('Matched faces:')
    for match in face_matches:
        print('FaceId: ' + match['Face']['FaceId'])
        print('Similarity: ' + str(match['Similarity']))
else:
    print('No faces matched')

顔の登録

画像の検索を行うためには、事前に顔を登録する必要があります。顔の登録には、Rekognitionのindex_facesを使用します。以下のコードを使用して、顔の登録を行います。

import boto3

rekognition = boto3.client('rekognition')
bucket_name = 'your-bucket-name'
file_name = 'your-file-name.jpg'

response = rekognition.index_faces(
    CollectionId='your-collection-id',
    Image={
        'S3Object': {
            'Bucket': bucket_name,
            'Name': file_name
        }
    }
)

face_records = response['FaceRecords']
if len(face_records) > 0:
    print('Registered faces:')
    for record in face_records:
        print('FaceId: ' + record['Face']['FaceId'])
else:
    print('No faces registered')

まとめ

本記事では、Rekognitionを使ってAWS上で画像検索エンジンを構築する方法について解説しました。画像のアップロード、画像の検索、顔の登録について、それぞれのコードを紹介しました。Rekognitionを使うことで、簡単に画像検索エンジンを構築することができます。是非、お試しください。

お問い合わせ

本記事で紹介した技術を使って、新しい開発プロジェクトを進めたいという方は、サーバーレス開発低コストなAWS開発内製化にお気軽にお問い合わせください。