본문으로 바로가기

요즘 이미지를 가지고 노는데 푹 빠져 있습니다. 또 요즘은 진로에 대해서도 고민 중이랍니다. 뭔가 좀 더 아름다운 미래를 꿈꾸고 싶기도 하구요^^.뭐 아무튼 그런 와중에 최근 저는 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세, 놀람, 어린이..라고 맞추네요 ㅎㅎㅎ


댓글을 달아 주세요

  1. BlogIcon 북두협객 2018.06.07 08:59 신고

    얼굴인식을 프로그래밍 언어로 짜시다니 대단하십니다!

  2. BlogIcon 공수래공수거 2018.06.07 09:36 신고

    ㅎㅎ 저는 몇살로 인식할지 엄청 궁금합니다

    인자하신 인상이십니다^^

    • BlogIcon PinkWink 2018.06.08 02:50 신고

      그럴리가요~ 그냥... 늙어보이는 얼굴인데..
      나이를 너무 젊게 봐줘서 갑자기 얼굴을 노출시켰습니다. ㅎ^^

  3. BlogIcon 멜로요우 2018.06.07 14:17 신고

    오홀 ㅋ 이런것도 있는지 몰랐네요!! 재미로 보는것도 좋을거같아요 ㅋ

  4. BlogIcon 휴식같은 친구 2018.06.07 15:46 신고

    얼굴인식 프로그램도 만들수 있군요.
    못하는게 없을 듯 싶은 코딩세계네요

  5. BlogIcon 핑구야 날자 2018.06.08 06:48 신고

    얼굴 인식을 사용해 보시다니 정말 대단하세요 덕분에 흥미로운 글 잘 보고 갑니다

  6. BlogIcon 잉여토기 2018.06.08 20:16 신고

    얼굴인식 정확하게 잘 하네요.
    아이유 가수가 동안이었네요.

  7. BlogIcon 스티마 2018.06.09 23:24 신고

    와 네이버 API가 쌓아 놓은 데이터로 이렇게 좋은 결과를 만들어 주는 군요.

  8. BlogIcon kangdante 2018.06.10 07:58 신고

    재미있는 API입니다..
    꽃검색 프로그램과 비슷한 것 같기도 하면서
    더욱 정교한 앱인 것 같아요.. ^^

  9. BlogIcon Bliss :) 2018.06.10 10:30 신고

    우아~ 신기해요!! 동안 가족이셨군요! 미바뤼 얼굴에서 아빠 모습도 보이네요^^ 이미지로 테스트 하니 성취감이 더 와닿을 것 같다는 생각도 드네요. 해피 일욜 되세요~