Amazon Rekognition
Amazon Rekognition Rekognition을 사용하면
애플리케이션에 이미지 및 비디오 분석을 쉽게 추가할 수 있습니다.
Amazon Rekognition API에 이미지나 비디오를 제공하면 서비스에서
객체, 사람, 텍스트, 장면 및 활동을 식별할 수 있습니다.
또한 부적절한 콘텐츠를 감지할 수도 있습니다.
Amazon Rekognition Rekognition은
매우 정확한 얼굴 분석, 얼굴 비교 및 얼굴 검색 기능도 제공합니다.
사용자 확인, 카탈로그 작성, 인원 계산 및 공공 안전을 포함하여
다양한 사용 사례에서 얼굴을 탐지, 분석, 비교할 수 있습니다.
Amazon Rekognition Rekognition은 Amazon의 컴퓨터 비전 과학자들이
매일 수십억 개의 이미지와 비디오를 매일 분석할 목적으로 개발하여
검증되고 확장성이 뛰어난 딥 러닝 기술을 기반으로 하고 있습니다.
이를 위해 머신 러닝 전문 지식이 필요하지 않습니다.
Amazon Rekognition Rekognition에는
Amazon S3 저장된 모든 이미지 또는 비디오 파일을
신속하게 분석할 수 있는 간편하고 사용하기 쉬운 API가 포함되어 있습니다.
Amazon Rekognition Rekognition은 항상 새로운 데이터에서 학습하고 있으며,
서비스에 새로운 레이블과 얼굴 비교 기능을 지속적으로 추가하고 있습니다.
자세한 내용은 아래 url을 참조하십시오.
https://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/what-is.html
Amazon Rekognition 란 무엇입니까? - Amazon Rekognition
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다. Amazon Rekognition 란 무엇입니까? Amazon Rekognition Rekognition을 사용하면 애플리케
docs.aws.amazon.com
이미지에서 레이블 감지
from datetime import datetime
from http import HTTPStatus
from os import access
from flask import request
from flask_jwt_extended import create_access_token, get_jwt, get_jwt_identity, jwt_required
from flask_restful import Resource
from mysql.connector.errors import Error
from config import Config
import boto3
class ObjectDetectionResource(Resource) :
def get(self) :
# 클라이언트로부터 s3에 저장되어있는 file name을 받아온다.
filename = request.args['filename']
# 위의 파일은 s3에 저장되어 있어야 한다.
# rekognition을 이용해서 object detection 한다.
client = boto3.client('rekognition', 'ap-northeast-2', aws_access_key_id = Config.ACCESS_KEY, aws_secret_access_key = Config.SECRET_ACCESS)
response = client.detect_labels(Image = {'S3Object' : {'Bucket' : Config.S3_BUCKET, 'Name' : filename}}, MaxLabels = 10)
for label in response['Labels']:
print ("Label: " + label['Name'])
print ("Confidence: " + str(label['Confidence']))
print ("Instances:")
for instance in label['Instances']:
print (" Bounding box")
print (" Top: " + str(instance['BoundingBox']['Top']))
print (" Left: " + str(instance['BoundingBox']['Left']))
print (" Width: " + str(instance['BoundingBox']['Width']))
print (" Height: " + str(instance['BoundingBox']['Height']))
print (" Confidence: " + str(instance['Confidence']))
print()
print ("Parents:")
for parent in label['Parents']:
print (" " + parent['Name'])
print ("----------")
print ()
return{'result' : 'success',
'Labels' : response['Labels']}, 200

위와 같은 이미지를 S3에 업로드 후 POSTMAN으로 Test시 출력 예시
{
"result": "success",
"Labels": [
{
"Name": "Person",
"Confidence": 95.0688247680664,
"Instances": [
{
"BoundingBox": {
"Width": 0.3874511122703552,
"Height": 0.4954732060432434,
"Left": 0.002048889873549342,
"Top": 0.13204264640808105
},
"Confidence": 95.0688247680664
}
],
"Parents": []
},
{
"Name": "Computer Keyboard",
"Confidence": 93.35923767089844,
"Instances": [
{
"BoundingBox": {
"Width": 0.32443979382514954,
"Height": 0.22741711139678955,
"Left": 0.2543860971927643,
"Top": 0.2586889863014221
},
"Confidence": 93.35923767089844
}
],
"Parents": [
{
"Name": "Computer"
},
{
"Name": "Electronics"
}
]
},
{
"Name": "Computer",
"Confidence": 93.35923767089844,
"Instances": [],
"Parents": [
{
"Name": "Electronics"
}
]
},
{
"Name": "Electronics",
"Confidence": 93.35923767089844,
"Instances": [],
"Parents": []
},
{
"Name": "Table",
"Confidence": 90.36174011230469,
"Instances": [],
"Parents": [
{
"Name": "Furniture"
}
]
},
{
"Name": "Furniture",
"Confidence": 90.36174011230469,
"Instances": [],
"Parents": []
},
{
"Name": "Desk",
"Confidence": 85.16712188720703,
"Instances": [],
"Parents": [
{
"Name": "Table"
},
{
"Name": "Furniture"
}
]
},
{
"Name": "Text",
"Confidence": 83.44525146484375,
"Instances": [],
"Parents": []
},
{
"Name": "Finger",
"Confidence": 74.90338897705078,
"Instances": [],
"Parents": []
},
{
"Name": "Diary",
"Confidence": 57.40088653564453,
"Instances": [],
"Parents": [
{
"Name": "Text"
}
]
}
]
}
'BackEnd' 카테고리의 다른 글
| API - NAVER NEW SEARCH Open API사용하기 (0) | 2022.06.30 |
|---|---|
| API - NAVER PAPAGO Open API 사용하기 (0) | 2022.06.30 |
| API - Python용 AWS Library 인 boto3 library를 이용해 S3 파일 업로드하기 (0) | 2022.06.24 |
| API - JWT를 이용해 LOGOUT 기능 만들기 (0) | 2022.06.21 |
| API - email 주소형식이 제대로 된 주소형식인지 확인하는 코드 (0) | 2022.06.20 |