요즘 이미지를 가지고 노는데 푹 빠져 있습니다. 또 요즘은 진로에 대해서도 고민 중이랍니다. 뭔가 좀 더 아름다운 미래를 꿈꾸고 싶기도 하구요^^.뭐 아무튼 그런 와중에 최근 저는 OpenCV를 활용한 몇몇 학습을 진행했었는데요. 그 중에는 OpenCV를 이용한 얼굴인식도 있었고, CNN에서 학습된 모델을 활용한 필기 숫자 인식과 같은 것도 있었지요. 뭐 그리고 그 다음 단계를 넘어가려고 하다가~~~ 잠시 문득 생각나서 뒤져봤다니, 역시나 네이버가 얼굴 인식관련 서비스를 하고 있네요^^ 또 안해볼 수 없죠^^ 네이버는 CFR API라는 이름으로 서비스를 하고 있습니다. Clova Face Recognition API입니다. 네이버의 CFR API 가이드를 참조하시면 더더욱 안정적으로 서비스를 이요하실 수 있겠죠^^
아무튼.. 저기로 가서... 이용 신청을 해야합니다.^^ 무료 사용의 경우인지 (혹은 유료에서는 더 확장될 수 있는지는 모르겠습니다.) 아무튼 하루 1000건, 한 파일당 2M로 제한 되어 있습니다.
간단한 사용신청 양식을 입력하시구요... 흔히 말하는 인증키를 받게 됩니다.
뭐~~~ 끝났어용^^
출처 : 나의 아저씨... 정말 재미있게 봤습니다. 공학적 의도와 드라마의 화이팅을 기원하는 측면에서 저작권은 용서를 ...ㅠㅠ.
제가 요즘 너무나도 푹 빠져서 봤던 나의 아저씨에서 아이유님의 등장 장면을 테스트해보겠습니다.
import os import sys import requests client_id = "------------" client_secret = "----------" url = "https://openapi.naver.com/v1/vision/celebrity" # 유명인 얼굴인식 files = {'image': open('face_detection_test_IU.jpg', 'rb')} headers = {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret } response = requests.post(url, files=files, headers=headers) rescode = response.status_code if(rescode==200): print (response.text) else: print("Error Code:" + rescode)
이 코드는 네이버 가이드에서 제공하는 코드입니다. 위 코드로 사진파일을 열고... 결과가 잘 나타나면...
위와 같은 결과가 나타납니다. 허.. 아이유라고 맞추네요.. 56.15%의 신뢰도입니다.^^ 위의 url 부분을 바꾸면 얼굴 인식이 됩니다.
url = "https://openapi.naver.com/v1/vision/face" # 얼굴감지 files = {'image': open('face_detection_test_IU.jpg', 'rb')} headers = {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret } response = requests.post(url, files=files, headers=headers) rescode = response.status_code if(rescode==200): print (response.text) else: print("Error Code:" + rescode)
이렇게요~
이런 결과를 던져주네요. 잘 읽어보면, 얼굴이 하나 검출되었고, 여성이고, 등등의 정보가 엄청 많이 나오네요...
import matplotlib.pyplot as plt import matplotlib.image as mpimg import matplotlib.patches as patches import numpy as np import json detect_result = json.loads(response.text) detect_result
이렇게 json으로 받고... 또 몇몇 그림그리는데 필요한 아이들도 import하구요~
이렇게 이쁘게 받은 다음~~~
detect_summary = detect_result['faces'][0] x, y, w, h = detect_summary['roi'].values() gender, gen_confidence = detect_summary['gender'].values() emotion, emotion_confidence = detect_summary['emotion'].values() age, age_confidence = detect_summary['age'].values() fig,ax = plt.subplots(figsize=(10,10)) ax.imshow(img) rect_face = patches.Rectangle((x,y),w,h, linewidth=5, edgecolor='r', facecolor='none') ax.add_patch(rect_face) annotation = gender + ' : ' + str(gen_confidence) + \ '\n' + emotion + ' : ' + str(emotion_confidence) + \ '\n' + age + ' : ' + str(age_confidence) plt.figtext(0.15, 0.17 , annotation, wrap=True, fontsize=17, color='white') plt.show()
이렇게 살짝꿍 만져주면....
헉... 아이유님이 좀 동안이긴 하지만, 17~21세로 보고 있군요... 여성임을 맞췄고... 저 표정은 그냥 neutral 하다는 군요^^
히히. 저의 풋풋(^^)했던 젊은날 사진으로 도전~
ㅎㅎㅎ 잘 나오네요.. 저 때가 6년전이라, 30대 후반인데... 24~28세로 봐주다니.. 저거 때문에 얼굴을 노출했습니다.ㅠㅠ. 여기서 더~~~
엽기 발랄한 우리 딸~~~ 아기 미바뤼.. 도전해야죠...
ㅎㅎㅎㅎㅎ. 저때가 돌 근처일때인데요.. ㅎㅎㅎ 0~2세, 놀람, 어린이..라고 맞추네요 ㅎㅎㅎ
'Theory > DataScience' 카테고리의 다른 글
[SKLearn] 다변수 입력을 가지는 회귀 문제에 대한, Scikit-learn 선형회귀와 kNN 회귀 문제 (20) | 2018.06.20 |
---|---|
Naver 검색 API 사용하기 (18) | 2018.06.18 |
카카오 얼굴 및 상품 인식 API 사용해보기 (18) | 2018.06.11 |
OpenCV를 활용해서 내가 쓴 손글씨를 CNN으로 학습된 모델을 이용해서 인식해보기 (26) | 2018.05.21 |
내가 작성한 python 코드에서 내 폰으로 문자 알림을 보내는 방법 - ifttt (30) | 2018.03.19 |
지도 그리는 모듈 Folium의 업그레이드에 대해 달라진 점들 (20) | 2017.11.30 |
간편하게 사용하면서도 꽤 이쁜 기능도 많은 워드 클라우드 Word Cloud 모듈 (for Python) (51) | 2017.05.31 |