본문 바로가기
혼자 공부하는 것들

kakao vision api 적용해보기 [python]

by applepick 2021. 1. 24.
반응형

인스타그램 프로그램을 만드는 도중 더욱 정확하게 판별하기위해 이미지인식을 적용해보고싶었습니다. 이 사용자가 어떠한 사진을 많이올리고 어떤 카테고리가 관심이 있는지 분석해보고싶었습니다. 저의 계정의 아이덴티티와 부합되는지 판단하고 소통해보고싶었습니다.

developers.kakao.com/docs/latest/ko/vision/dev-guide

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

이 위에 링크에 아주 잘 설명되어있습니다. 저는 python으로 개발해 python기준으로 설명드리겠습니다. 저는 멀티태그 기능을 사용했습니다. 

import sys
import argparse
import requests
from io import BytesIO

API_URL = 'https://dapi.kakao.com/v2/vision/multitag/generate'
MYAPP_KEY = '나의 키값'

def generate_tag(image_url):
    headers = {'Authorization': 'KakaoAK {}'.format(MYAPP_KEY)}

    try:
        data = { 'image_url' : image_url}
        resp = requests.post(API_URL, headers=headers, data=data)
        resp.raise_for_status()
        result = resp.json()['result']
        if len(result['label_kr']) > 0:
            if type(result['label_kr'][0]) != str:
                result['label_kr'] = map(lambda x: str(x.encode("utf-8")), result['label_kr'])
            print("이 이미지를 대표하는 태그는 \"{}\"입니다.".format(','.join(result['label_kr'])))
        else:
            print("이미지로부터 태그를 생성하지 못했습니다.")

    except Exception as e:
        print(str(e))
        sys.exit(0)

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='Classify Tags')
    parser.add_argument('image_url', type=str, nargs='?',
        default="http://t1.daumcdn.net/alvolo/_vision/openapi/r2/images/08.jpg",#이부분에 링크를 삽입하면된다.
        help='image url to classify')

    args = parser.parse_args()

    generate_tag(args.image_url)

사용방법은 이런식으로 사용하면됩니다. 결과값을  json형식으로 반환됩니다. 이거를 제가 만든 인스타그램프로그램에 적용시켰습니다.

이 이미지를 분석해 본 결과

이런식으로 출력되게 됩니다. 태그들을 배열에 넣고 그 태그들이 나올 때 마다 스택을 하나씩 증가하여 피드에 많이 띄워지는 태그들을 한 눈에 볼 수 있도록 하였습니다. 간단하게 어떻게 쓰이는지만 설명했습니다.  하루에 할당량은 1000개라고 하니 주의해서 사용하시면 될 것 같습니다. 끝!

반응형

댓글