얼마전.. 바로 직전 포스팅에서 네이버 API를 사용해서 얼굴 인식하는 이야기를 했었는데요. 그걸 데리고 놀다가 내친김에 그냥 카카오에서 제공하는 비슷한 API도 테스트를 해보았습니다. 뭐 그냥 등록하고, 사용하면 되니까요^^
카카오 개발자 사이트인데요. 정말 많은 개발자용 플랫폼을 제공하는 군요. 그러나 모바일에서만 접근 가능한 아이들이 많아서 다 테스트는 안되더군요. 전 음성을 테스트해보고 싶었는데 그건 모바일에서만 가능한 듯 했습니다. 전 그중에 비전이라는 아이로 들어갔습니다.~
비전에서는 얼굴 검출이나
상품 검출 기능을 제공하고 있었는데요.
개발자 가이드에 들어가보면 자세한 안내를 받을 수 있습니다. 일단 접근 URL과 헤더 정보를 알 수 있습니다. 네이버때와 같이 등록하고, 키를 받는 과정을 거치면 됩니다.
뭐~~ 심플한 던지기와 받기(^^)입니다.
얼굴 인식에서 받은 결과의 각 필드에 대한 설명도 꽤 상세히 잘 되어 있습니다.
삼품 검출도 ~ 이제.. 시작해보죠~
import requests url = "https://kapi.kakao.com/v1/vision/face/detect" MYAPP_KEY = '**************************************' headers = {'Authorization': 'KakaoAK {}'.format(MYAPP_KEY)} filename = './face_detection_test_MR.jpg' files = { 'file' : open(filename, 'rb')} response = requests.post(url, headers=headers, files=files) import matplotlib.pyplot as plt import matplotlib.image as mpimg import matplotlib.patches as patches %matplotlib inline result = response.json() faces = result['result']['faces'][0] facial_points = faces['facial_points'] fig_w, fig_h = result['result']['width'], result['result']['height'] img = mpimg.imread('face_detection_test_MR.jpg') fig,ax = plt.subplots(figsize=(10,10)) target_obj = ['right_eyebrow', 'left_eyebrow', 'jaw', 'right_eye', 'left_eye'] for each_obj in target_obj: for each in facial_points[each_obj]: rect_face = patches.Circle((each[0]*fig_w, each[1]*fig_h), linewidth=3, edgecolor='c') ax.add_patch(rect_face) ax.imshow(img) plt.show()
코드는 네이버 API 사용과 크게 다를게 없습니다. 단 그 결과에서 얼굴 박스는 네이버때도 했으니 넘어가고, 이번에는 네이버 얼굴 검출이 주지 낳는 facial_points라는 값을 화면에 뿌려 보았습니다.
ㅎㅎ 오늘도 출연하신 우리 아가 미바뤼의 돌 쯔음~ 사진입니다. 아.. 얼굴 형상에 대해 알려주네요.. 재미있습니다.
url = "https://kapi.kakao.com/v1/vision/product/detect" headers = {'Authorization': 'KakaoAK {}'.format(MYAPP_KEY)} filename = './face_detection_test_PW.jpg' files = { 'file' : open(filename, 'rb')} response = requests.post(url, headers=headers, files=files) result = response.json() fig_w, fig_h = result['result']['width'], result['result']['height'] img = mpimg.imread('./face_detection_test_PW.jpg') fig,ax = plt.subplots(figsize=(10,10)) for each in result['result']['objects']: x, y = each['x1']*fig_w, each['y1']*fig_h w, h = each['x2']*fig_w - x, each['y2']*fig_h - y rect = patches.Rectangle((x, y), w, h, lw=5, edgecolor='c', facecolor='none') ax.add_patch(rect) plt.text(x,y-10, each['class'], size=18, color='red') ax.imshow(img) plt.show()
이번에는 사물 인식에 도전합니다. 역시 네이버때 등장했던 제 사진.ㅠㅠ. 으로^^
우와.. 안경과 티셔츠를 맞추네요.. 신기합니다. 그런데.. 한가지.. 카카오 API의 정식 명칭이 상품검색입니다. 그래서인지.. 옷이나 신발 등과 같은 상품에 대해 잘 검색하고 나머지는 안하는 것 같습니다.^^
왜냐면.. 저 쉬운 책은 알려주지 않고, 원피스와 신발은 잘 찾아주거든요. ㅎㅎ 저기는 우리 아가 미바뤼는 뜬금 없는 곳에서 책을 보곤 한답니다.^^
그다음은.. 역시 우리 가족의 최애~ 플레이스인 괌입니다. 아웃리거 호텔이죠^^. 아무튼 여기서도, 모자, 원피스, 신발은 잘 찾아주네요^^ 네이버와 카카오의 얼굴아나 상품 등, 이미지 관련 API를 테스트해 볼 수 있었습니다. 다음은 구글 API로 도전해보면 좋겠네요^^
'Theory > DataScience' 카테고리의 다른 글
구글 지도 API 유료화에 대해 학습 방법... (34) | 2018.06.27 |
---|---|
[SKLearn] 다변수 입력을 가지는 회귀 문제에 대한, Scikit-learn 선형회귀와 kNN 회귀 문제 (20) | 2018.06.20 |
Naver 검색 API 사용하기 (18) | 2018.06.18 |
네이버 얼굴 인식 API 사용해보기 - 유명인 인식, 얼굴 인식 (26) | 2018.06.07 |
OpenCV를 활용해서 내가 쓴 손글씨를 CNN으로 학습된 모델을 이용해서 인식해보기 (26) | 2018.05.21 |
내가 작성한 python 코드에서 내 폰으로 문자 알림을 보내는 방법 - ifttt (30) | 2018.03.19 |
지도 그리는 모듈 Folium의 업그레이드에 대해 달라진 점들 (20) | 2017.11.30 |