네이버 얼굴인식 API를 이용해 얼굴인식하기
머신러닝, 딥러닝

네이버 얼굴인식 API를 이용해 얼굴인식하기

반응형

네이버 개발자 센터(https://developers.naver.com/main/) 는 네이버에서 제작한 다양한 API서비스를 제공한다. 그 중 네이버 Clova에는 얼굴인식을 구현하는 API를 제공하고있다.


이번에 시도해볼 것은 네이버 API를 이용해 사진속 얼굴을 인식해 표시하는 예제를 제작해보는 것이다.



우선 개발자센터에 들어가 네이버 Clova에 얼굴인식 API를 신청해 클라이언트 ID등을 발급받아야 한다. 이 과정은 인터넷에 자세히 나와있으므로 여기선 다루지 않는다. (별로 어렵지도 않다.)


Python 개발환경에 아래 코드를 입력한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import cv2
import requests
import json
client_id = "*****"
client_secret = "*****"
url = "https://openapi.naver.com/v1/vision/face"
files = {'image'open('your image file''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)
json_data = json.loads(response.text)
x, y, w, h = json_data['faces'][0]['roi'].values()
img = cv2.imread('your image file', cv2.IMREAD_COLOR)
img = cv2.rectangle(img, (x, y), (x+w, y+h), (255,0,0), 3)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cs


네이버에서 제공하는 예제코드를 약간 변형했다. 우선 opencv가 기본적으로 설치되어있어야 하며 requests 패키지도 없다면 설치해주자. (pip 명령어로 간단하게 설치가능하다.)


*****로 표시된 클라이언트 아이디와 비밀번호는 본인의 것을 입력하고 얼굴이 들어난 사진 파일을 your image file에 입력하면된다. 원래 예제 코드는 사각형의 좌표를 json 형식으로 넘겨주는 식이었는데 이를 opencv에서 받아 사진 위에 사각형을 그리게한 간단한 코드이다.


본문 처음에 등장한 톰크루즈 사진과 같이 표시되면 성공이다.



반응형
    # 테스트용