Amazon Rekognition에 의한 동일 인물 검출
개요
Amazon Rekognition의 compare_faces라는 API를 사용하여 동일한 사람을 검색합니다. compare_faces에 두 개의 이미지를 입력합니다만, 첫 번째가 검출하고 싶은 인물의 비친 이미지, 두 번째가 검출 대상의 이미지가 됩니다.
실행 환경
OS: Windows10
언어: Python3.7
사전 준비
AWS CLI(aws configure)에서 다음 자격 증명을 설정합니다.
AWS Access Key ID
AWS Secret Access Key
Default region name
Default output format
소스 코드 (face_compare.py)
face_compare.pyimport boto3
import sys
from PIL import Image,ImageDraw
# 引数のチェック
if len(sys.argv) != 3:
print('2つの画像ファイルを引数に指定してください。')
exit()
# Rekognitionのクライアントを作成
client = boto3.client('rekognition')
# 画像ファイル2つを引数としてcompare_facesを実行
with open(sys.argv[1],'rb') as source:
with open(sys.argv[2],'rb') as target:
response = client.compare_faces(SourceImage={'Bytes':source.read()},TargetImage={'Bytes':target.read()})
# 同一人物が検出されない場合は処理終了
if len(response['FaceMatches'])==0:
print('同一人物は検出されませんでした。')
else:
# 2つ目の画像ファイルを元に、矩形セット用の画像ファイルを作成
img = Image.open(sys.argv[2])
imgWidth,imgHeight = img.size
draw = ImageDraw.Draw(img)
# 検出された顔の数分、矩形セット処理を行う
for faceMatch in response['FaceMatches']:
# BoundingBoxから顔の位置・サイズ情報を取得
box = faceMatch['Face']['BoundingBox']
left = imgWidth * box['Left']
top = imgHeight * box['Top']
width = imgWidth * box['Width']
height = imgHeight * box['Height']
# 矩形の位置・サイズ情報をセット
points = (
(left,top),
(left + width,top + height)
)
# 顔を矩形で囲む
draw.rectangle(points,outline='lime')
# 画像ファイルを保存
img.save('detected_' + sys.argv[2])
# 画像ファイルを表示
img.show()
간단한 해설
개략으로서는 이하와 같은 처리를 실시하고 있습니다.
① 프로그램 실행시의 인수로부터 Rekognition에 입력하는 2개의 화상 파일을 취득한다.
② 상기 ①의 이미지 파일을 인수로서 Rekognition의 compare_faces를 실행한다.
③Rekognition으로부터 반환되는 Json의 FaceMatches·BoundingBox로부터 인식된 얼굴의 위치·사이즈 정보를 취득한다.
④ 상기 ③에서 직사각형 첨부의 화상 파일을 작성하여 표시한다.
실행 결과
명령
python face_compare.py ichiro1.jpg ichiro2.jpg
입력 이미지 1 (ichiro1.jpg)
입력 이미지 2 (ichiro2.jpg)
출력 이미지 (detected_ichiro2.jpg)
이치로 선수를 검출해 주었습니다.
요약
지난번의 detect_faces와 마찬가지로 API를 사용하여 쉽게 이미지 인식을 할 수 있습니다. compare_faces를 사용하면 대량의 이미지에서 찾고 싶은 사람이 비추는 것을 쉽게 추출 할 수 있다고 생각합니다. AWS 사이트에 따르면 일본에서는 신문사나 사진 서비스 회사 등에서 사용되고 있는 것 같습니다.
Reference
이 문제에 관하여(Amazon Rekognition에 의한 동일 인물 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/i_12121226/items/549485d4e4ba78d1c7d9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
OS: Windows10
언어: Python3.7
사전 준비
AWS CLI(aws configure)에서 다음 자격 증명을 설정합니다.
AWS Access Key ID
AWS Secret Access Key
Default region name
Default output format
소스 코드 (face_compare.py)
face_compare.pyimport boto3
import sys
from PIL import Image,ImageDraw
# 引数のチェック
if len(sys.argv) != 3:
print('2つの画像ファイルを引数に指定してください。')
exit()
# Rekognitionのクライアントを作成
client = boto3.client('rekognition')
# 画像ファイル2つを引数としてcompare_facesを実行
with open(sys.argv[1],'rb') as source:
with open(sys.argv[2],'rb') as target:
response = client.compare_faces(SourceImage={'Bytes':source.read()},TargetImage={'Bytes':target.read()})
# 同一人物が検出されない場合は処理終了
if len(response['FaceMatches'])==0:
print('同一人物は検出されませんでした。')
else:
# 2つ目の画像ファイルを元に、矩形セット用の画像ファイルを作成
img = Image.open(sys.argv[2])
imgWidth,imgHeight = img.size
draw = ImageDraw.Draw(img)
# 検出された顔の数分、矩形セット処理を行う
for faceMatch in response['FaceMatches']:
# BoundingBoxから顔の位置・サイズ情報を取得
box = faceMatch['Face']['BoundingBox']
left = imgWidth * box['Left']
top = imgHeight * box['Top']
width = imgWidth * box['Width']
height = imgHeight * box['Height']
# 矩形の位置・サイズ情報をセット
points = (
(left,top),
(left + width,top + height)
)
# 顔を矩形で囲む
draw.rectangle(points,outline='lime')
# 画像ファイルを保存
img.save('detected_' + sys.argv[2])
# 画像ファイルを表示
img.show()
간단한 해설
개략으로서는 이하와 같은 처리를 실시하고 있습니다.
① 프로그램 실행시의 인수로부터 Rekognition에 입력하는 2개의 화상 파일을 취득한다.
② 상기 ①의 이미지 파일을 인수로서 Rekognition의 compare_faces를 실행한다.
③Rekognition으로부터 반환되는 Json의 FaceMatches·BoundingBox로부터 인식된 얼굴의 위치·사이즈 정보를 취득한다.
④ 상기 ③에서 직사각형 첨부의 화상 파일을 작성하여 표시한다.
실행 결과
명령
python face_compare.py ichiro1.jpg ichiro2.jpg
입력 이미지 1 (ichiro1.jpg)
입력 이미지 2 (ichiro2.jpg)
출력 이미지 (detected_ichiro2.jpg)
이치로 선수를 검출해 주었습니다.
요약
지난번의 detect_faces와 마찬가지로 API를 사용하여 쉽게 이미지 인식을 할 수 있습니다. compare_faces를 사용하면 대량의 이미지에서 찾고 싶은 사람이 비추는 것을 쉽게 추출 할 수 있다고 생각합니다. AWS 사이트에 따르면 일본에서는 신문사나 사진 서비스 회사 등에서 사용되고 있는 것 같습니다.
Reference
이 문제에 관하여(Amazon Rekognition에 의한 동일 인물 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/i_12121226/items/549485d4e4ba78d1c7d9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
face_compare.py
import boto3
import sys
from PIL import Image,ImageDraw
# 引数のチェック
if len(sys.argv) != 3:
print('2つの画像ファイルを引数に指定してください。')
exit()
# Rekognitionのクライアントを作成
client = boto3.client('rekognition')
# 画像ファイル2つを引数としてcompare_facesを実行
with open(sys.argv[1],'rb') as source:
with open(sys.argv[2],'rb') as target:
response = client.compare_faces(SourceImage={'Bytes':source.read()},TargetImage={'Bytes':target.read()})
# 同一人物が検出されない場合は処理終了
if len(response['FaceMatches'])==0:
print('同一人物は検出されませんでした。')
else:
# 2つ目の画像ファイルを元に、矩形セット用の画像ファイルを作成
img = Image.open(sys.argv[2])
imgWidth,imgHeight = img.size
draw = ImageDraw.Draw(img)
# 検出された顔の数分、矩形セット処理を行う
for faceMatch in response['FaceMatches']:
# BoundingBoxから顔の位置・サイズ情報を取得
box = faceMatch['Face']['BoundingBox']
left = imgWidth * box['Left']
top = imgHeight * box['Top']
width = imgWidth * box['Width']
height = imgHeight * box['Height']
# 矩形の位置・サイズ情報をセット
points = (
(left,top),
(left + width,top + height)
)
# 顔を矩形で囲む
draw.rectangle(points,outline='lime')
# 画像ファイルを保存
img.save('detected_' + sys.argv[2])
# 画像ファイルを表示
img.show()
간단한 해설
개략으로서는 이하와 같은 처리를 실시하고 있습니다.
① 프로그램 실행시의 인수로부터 Rekognition에 입력하는 2개의 화상 파일을 취득한다.
② 상기 ①의 이미지 파일을 인수로서 Rekognition의 compare_faces를 실행한다.
③Rekognition으로부터 반환되는 Json의 FaceMatches·BoundingBox로부터 인식된 얼굴의 위치·사이즈 정보를 취득한다.
④ 상기 ③에서 직사각형 첨부의 화상 파일을 작성하여 표시한다.
실행 결과
명령
python face_compare.py ichiro1.jpg ichiro2.jpg
입력 이미지 1 (ichiro1.jpg)
입력 이미지 2 (ichiro2.jpg)
출력 이미지 (detected_ichiro2.jpg)
이치로 선수를 검출해 주었습니다.
요약
지난번의 detect_faces와 마찬가지로 API를 사용하여 쉽게 이미지 인식을 할 수 있습니다. compare_faces를 사용하면 대량의 이미지에서 찾고 싶은 사람이 비추는 것을 쉽게 추출 할 수 있다고 생각합니다. AWS 사이트에 따르면 일본에서는 신문사나 사진 서비스 회사 등에서 사용되고 있는 것 같습니다.
Reference
이 문제에 관하여(Amazon Rekognition에 의한 동일 인물 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/i_12121226/items/549485d4e4ba78d1c7d9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
명령
python face_compare.py ichiro1.jpg ichiro2.jpg
입력 이미지 1 (ichiro1.jpg)
입력 이미지 2 (ichiro2.jpg)
출력 이미지 (detected_ichiro2.jpg)
이치로 선수를 검출해 주었습니다.
요약
지난번의 detect_faces와 마찬가지로 API를 사용하여 쉽게 이미지 인식을 할 수 있습니다. compare_faces를 사용하면 대량의 이미지에서 찾고 싶은 사람이 비추는 것을 쉽게 추출 할 수 있다고 생각합니다. AWS 사이트에 따르면 일본에서는 신문사나 사진 서비스 회사 등에서 사용되고 있는 것 같습니다.
Reference
이 문제에 관하여(Amazon Rekognition에 의한 동일 인물 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/i_12121226/items/549485d4e4ba78d1c7d9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Amazon Rekognition에 의한 동일 인물 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/i_12121226/items/549485d4e4ba78d1c7d9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)