Amazon Rekognition으로 얼굴 인식
Amazon Rekognition이란?
Amazon Rekognition은 AWS의 AI 서비스 중 하나로 이미지 인식을 지원합니다.
또, AWS의 AI 서비스는 화상 인식·자연 언어 처리 등 다양한 영역을 커버한 것으로, 기계 학습의 깊은 스킬 없이 기계 학습을 어플리케이션에 포함할 수 있는, 데이터를 준비하는 것만으로 API로부터 기계 학습을 이용할 수 있다 , 같은 특징이 있습니다.
실행 환경
OS: Windows10
언어: Python3.7
사전 준비
AWS CLI(aws configure)에서 다음 자격 증명을 설정합니다.
AWS Access Key ID
AWS Secret Access Key
Default region name
Default output format
소스 코드 (face_detect.py)
import boto3
import sys
from PIL import Image,ImageDraw
# 引数のチェック
if len(sys.argv) != 2:
print('画像ファイルを引数に指定してください。')
exit()
# Rekognitionのクライアントを作成
client = boto3.client('rekognition')
# 画像ファイルを引数としてdetect_facesを実行
with open(sys.argv[1],'rb') as image:
response = client.detect_faces(Image={'Bytes':image.read()},Attributes=['ALL'])
# 顔が認識されない場合は処理終了
if len(response['FaceDetails'])==0:
print('顔は認識されませんでした。')
else:
# 入力された画像ファイルを元に、矩形セット用の画像ファイルを作成
img = Image.open(sys.argv[1])
imgWidth,imgHeight = img.size
draw = ImageDraw.Draw(img)
# 認識された顔の数分、矩形セット処理を行う
for faceDetail in response['FaceDetails']:
# BoundingBoxから顔の位置・サイズ情報を取得
box = faceDetail['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[1])
# 画像ファイルを表示
img.show()
간단한 해설
개략으로서는 이하와 같은 처리를 실시하고 있습니다.
① 프로그램 실행시의 인수로부터 Rekognition에 입력하는 화상 파일을 취득한다.
② 상기 ①의 이미지 파일을 인수로서 Rekognition의 detect_faces를 실행한다.
③Rekognition으로부터 반환되는 Json의 FaceDetails·BoundingBox로부터 인식된 얼굴의 위치·사이즈 정보를 취득한다.
④ 상기 ③에서 직사각형 첨부의 화상 파일을 작성하여 표시한다.
실행 결과
명령
python face_detect.py ichiro1.jpg
입력 이미지 (ichiro1.jpg)
출력 이미지 (detected_ichiro1.jpg)
이치로 선수는 물론, 관객석 사람들도 인식하고 있습니다.
요약
Rekognition에 국한되지는 않지만 AWS의 AI 서비스는 API에서 기계 학습을 손쉽게 이용할 수 있는 편리한 서비스입니다.
또, 이번은 구형 밖에 시험하지 않았습니다만, Rekognition으로부터 반환되는 Json에는 성별·연령 등 다양한 것이 있기 때문에, 그 밖에도 여러가지 것을 시도할 수 있다고 생각합니다.
Reference
이 문제에 관하여(Amazon Rekognition으로 얼굴 인식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/i_12121226/items/50bb4f048d121c893268
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 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_detect.py)
import boto3
import sys
from PIL import Image,ImageDraw
# 引数のチェック
if len(sys.argv) != 2:
print('画像ファイルを引数に指定してください。')
exit()
# Rekognitionのクライアントを作成
client = boto3.client('rekognition')
# 画像ファイルを引数としてdetect_facesを実行
with open(sys.argv[1],'rb') as image:
response = client.detect_faces(Image={'Bytes':image.read()},Attributes=['ALL'])
# 顔が認識されない場合は処理終了
if len(response['FaceDetails'])==0:
print('顔は認識されませんでした。')
else:
# 入力された画像ファイルを元に、矩形セット用の画像ファイルを作成
img = Image.open(sys.argv[1])
imgWidth,imgHeight = img.size
draw = ImageDraw.Draw(img)
# 認識された顔の数分、矩形セット処理を行う
for faceDetail in response['FaceDetails']:
# BoundingBoxから顔の位置・サイズ情報を取得
box = faceDetail['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[1])
# 画像ファイルを表示
img.show()
간단한 해설
개략으로서는 이하와 같은 처리를 실시하고 있습니다.
① 프로그램 실행시의 인수로부터 Rekognition에 입력하는 화상 파일을 취득한다.
② 상기 ①의 이미지 파일을 인수로서 Rekognition의 detect_faces를 실행한다.
③Rekognition으로부터 반환되는 Json의 FaceDetails·BoundingBox로부터 인식된 얼굴의 위치·사이즈 정보를 취득한다.
④ 상기 ③에서 직사각형 첨부의 화상 파일을 작성하여 표시한다.
실행 결과
명령
python face_detect.py ichiro1.jpg
입력 이미지 (ichiro1.jpg)
출력 이미지 (detected_ichiro1.jpg)
이치로 선수는 물론, 관객석 사람들도 인식하고 있습니다.
요약
Rekognition에 국한되지는 않지만 AWS의 AI 서비스는 API에서 기계 학습을 손쉽게 이용할 수 있는 편리한 서비스입니다.
또, 이번은 구형 밖에 시험하지 않았습니다만, Rekognition으로부터 반환되는 Json에는 성별·연령 등 다양한 것이 있기 때문에, 그 밖에도 여러가지 것을 시도할 수 있다고 생각합니다.
Reference
이 문제에 관하여(Amazon Rekognition으로 얼굴 인식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/i_12121226/items/50bb4f048d121c893268
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import boto3
import sys
from PIL import Image,ImageDraw
# 引数のチェック
if len(sys.argv) != 2:
print('画像ファイルを引数に指定してください。')
exit()
# Rekognitionのクライアントを作成
client = boto3.client('rekognition')
# 画像ファイルを引数としてdetect_facesを実行
with open(sys.argv[1],'rb') as image:
response = client.detect_faces(Image={'Bytes':image.read()},Attributes=['ALL'])
# 顔が認識されない場合は処理終了
if len(response['FaceDetails'])==0:
print('顔は認識されませんでした。')
else:
# 入力された画像ファイルを元に、矩形セット用の画像ファイルを作成
img = Image.open(sys.argv[1])
imgWidth,imgHeight = img.size
draw = ImageDraw.Draw(img)
# 認識された顔の数分、矩形セット処理を行う
for faceDetail in response['FaceDetails']:
# BoundingBoxから顔の位置・サイズ情報を取得
box = faceDetail['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[1])
# 画像ファイルを表示
img.show()
간단한 해설
개략으로서는 이하와 같은 처리를 실시하고 있습니다.
① 프로그램 실행시의 인수로부터 Rekognition에 입력하는 화상 파일을 취득한다.
② 상기 ①의 이미지 파일을 인수로서 Rekognition의 detect_faces를 실행한다.
③Rekognition으로부터 반환되는 Json의 FaceDetails·BoundingBox로부터 인식된 얼굴의 위치·사이즈 정보를 취득한다.
④ 상기 ③에서 직사각형 첨부의 화상 파일을 작성하여 표시한다.
실행 결과
명령
python face_detect.py ichiro1.jpg
입력 이미지 (ichiro1.jpg)
출력 이미지 (detected_ichiro1.jpg)
이치로 선수는 물론, 관객석 사람들도 인식하고 있습니다.
요약
Rekognition에 국한되지는 않지만 AWS의 AI 서비스는 API에서 기계 학습을 손쉽게 이용할 수 있는 편리한 서비스입니다.
또, 이번은 구형 밖에 시험하지 않았습니다만, Rekognition으로부터 반환되는 Json에는 성별·연령 등 다양한 것이 있기 때문에, 그 밖에도 여러가지 것을 시도할 수 있다고 생각합니다.
Reference
이 문제에 관하여(Amazon Rekognition으로 얼굴 인식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/i_12121226/items/50bb4f048d121c893268
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
명령
python face_detect.py ichiro1.jpg
입력 이미지 (ichiro1.jpg)
출력 이미지 (detected_ichiro1.jpg)
이치로 선수는 물론, 관객석 사람들도 인식하고 있습니다.
요약
Rekognition에 국한되지는 않지만 AWS의 AI 서비스는 API에서 기계 학습을 손쉽게 이용할 수 있는 편리한 서비스입니다.
또, 이번은 구형 밖에 시험하지 않았습니다만, Rekognition으로부터 반환되는 Json에는 성별·연령 등 다양한 것이 있기 때문에, 그 밖에도 여러가지 것을 시도할 수 있다고 생각합니다.
Reference
이 문제에 관하여(Amazon Rekognition으로 얼굴 인식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/i_12121226/items/50bb4f048d121c893268
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Amazon Rekognition으로 얼굴 인식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/i_12121226/items/50bb4f048d121c893268텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)