AWS

AWS의 rekognition API 포스트맨 이용하여 사진 labeling하기

HooSL 2022. 1. 14. 15:51
from flask import request
from flask_restful import Resource
import boto3
from config import Config#엑세스키,시크릿키,버킷이름이 들어있는 py파일

class LableResource(Resource):
    def get(self):
        
        img_url = request.args.get('img_url')
        img_url_list = img_url.split('/')
        photo = img_url_list[-1] #url중 사진 이름만 가져오기 위한 작업

        bucket=Config.S3_BUCKET

        client=boto3.client('rekognition', 'us-east-1',#S3활성화 지역
                        aws_access_key_id = Config.ACCESS_KEY,
                        aws_secret_access_key = Config.SECRET_ACCESS)#boto3 로부터 클라이언트를 받음
        
        response = client.detect_labels(Image={'S3Object':{'Bucket':bucket,'Name':photo}},
        MaxLabels=10)

        print(response['Labels'])

        result = []
        for label in response['Labels']:
            label_dict = {}
            label_dict['Name'] = label['Name']
            label_dict['Confidence'] = label['Confidence']
            result.append(label_dict)

        return{'result':result}

위 클래스를 API 경로 리소스를 해줍니다.

api.add_resource(LableResource, '/api/v1/labling')

import와 환경변수 세팅은 생략하겠습니다.

 

해당앱을 포스트맨에서 실행해보면

테스트 사진