Top Banner
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Hyunmin Kim AWSKRUG Gangnam Leader, Megazone Raspberry Pi 를 를를를 를를 를를를 를를를를 를를를 를를
43

Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

Apr 11, 2017

Download

Software

Hyun–Min Kim
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Hyunmin Kim

AWSKRUG Gangnam Leader, Megazone

Raspberry Pi 를 이용한 얼굴 표정과 감정인식 시스템 개발

Page 2: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

자기소개Hyunmin Kim (김현민)소속 : MEGAZONEAWS Solutions ArchitectAWSKRUG Gangnam Leader

iOS 개발자 , Node.js 로 개발 ,현재 AWS Solutions Architect 로 메가존에서일하는중 . AWSKRUG 에서 많은 활동을 하고 있습니다 .좋아하는 AWS 서비스 : EC2, S3, Route53, Lambda

Page 3: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

일본여행을 좋아합니다

Page 4: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

회사소개

Page 5: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

회사소개2012 한국최초 AWS 파트너로서비스개시

한국최초 & 최대 AWS Premier Consulting Partner

400+ 이상의고객에서서비스제공

20+ 글로벌 No.1 솔루션제공

한국유일의 AWS 공인한국어서포트센터운영 한국최초 AWS Enterprise Support 제공

24 / 7 / 365 서포트서비스제공

Page 6: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

이 프레젠테이션을 한 이유AWSKRUG Gangnam 소모임에서 라즈베리파이와 카메라를 이용한 재미있는 세션을 진행해주셨음 .

오회근 (harry Oh)YOGIYO  한국 배달어플리케이션 Backend DeveloperCloud BI Solution, Network Camera,Standalone DVR, Web based Surveillance System

Page 7: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

최대한 간단하게 만들기

오회근님의 라즈베리파이( 보조배터리와 테더링으로 휴대도 가능 !!)

개발중인 라즈파이와 카메라 모습

Page 8: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

개발 방법• 사진을 주기적으로 찍어서 S3 로 업로드• 성별 , 나이 , 스마일 통계를 구한다• AWS 에서 Serverless 로 구성• CLI 를 이용• 카메라는 싼거로• 시큐리티는 잠시 미뤄두자 ㅠㅠ

Page 9: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

아키텍쳐• AWS 서비스는 S3, Lambda,

StepFunctions, RDS 사용• 얼굴 분석으로

Amazon Rekognition,MS Face APIFace Plus Plus 이용

• Plot.ly 를 이용하여 차트 생성

Page 10: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

개발 환경• Python 2.7 (virutalenv)• pip• emulambda (lambda Simumator)• AWS CLI• statelint (StepFunctions JSON validator)• 라즈베리파이와 인터넷 연결

Page 11: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

S3 Bucket 생성• US-WEST-2 OREGON 리전에

jawsdaysfaces bucket 생성• Lifecycle 을 1 일로 설정• 모든 사용자들이 접근 가능하도록 설정주의 ! 실제로 서비스 할 경우에는

signed url 등을 이용

Page 12: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

라즈베리파이• 미리 준비해야 할 것들• WiFi 연결• USB WebCam 연결• fswebcam 설치 및 설정값• AWS CLI 설치 및 설정• 이미지를 S3 에 전송하고 확인

Page 13: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

IAM 설정• Lambda 실행 권한을 가진

jawsdaysfaces-role 을 추가• Jawsdaysfaces bucket 을 액세스할 수 있는 policy 추가• 해당 policy 를 jawsdaysfaces-role 에 추가• Rekognition, StepFunction policy 도 추가

AmazonRekognitionFullAccessAWSStepFunctionsFullAccess

Page 14: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

RDS 생성• RDS 를 생성• Security Group 에서 Inbound 를 모두 허용• RDS 를 외부에 공개하는건 위험 !

Lambda 가 RDS 에 접근하기 위해서는 같은 VPC 에 있어야 한다 , 하지만 이럴 경우 Lambda 가 외부망에 접근하기 위해서는 NAT Gateway 가 필요함

• 개발용으로만 사용해야함• 생성이 완료되고 endpoint 를 가져옴

Page 15: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

TABLE 생성

Page 16: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

Amazon Rekognition

• SDK 지원• IAM Policy 로 설정• 처음 12 개월 동안 매월 5,000개의 이미지를 분석하고 매월 최대 1,000 개의 얼굴 메타데이터를 저장 무료• EU (Ireland)

US East (N. Virginia)US West (Oregon)

Page 17: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

MICROSOFT FACE API

• Microsoft face api 페이지 에서 API Key 를 생성• 생성된 API Key 는 별도 보관• 30,000/ 월 무료

Page 18: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

FACE Plus Plus

• Face Plus Plus console 페이지에서 API Key 를 생성• 생성된 API Key 는 별도 보관• 무료는 제한된사용량 /응답보장안함

Page 19: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

Step Functions

Page 20: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

Step Functions JSON

Page 21: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

미리 제공되는 템플릿을 참고

Page 22: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

Statelint

Page 23: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

얼굴 이미지가 아닌 경우 동작

Page 24: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

얼굴 이미지일 경우 동작

Page 25: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

Detect Labels ( 사진 분석 )

• Amazon Rekognition 에 detect_labels API 로 요청

• Label 의 이름이 Human, People, Person 이면서 Confidence 값이 95 이상일 경우 얼굴 사진으로 판별

Page 26: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

JAWS-UG LOGO 로 테스트

Page 27: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

얼굴 사진으로 테스트

Page 28: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

isFacePhoto

• isFaces 의 값에 따라서 분기를 처리해준다• 얼굴 사진이 아닐 경우 ,

NoFacesPhoto 로 ,

• 얼굴 사진일 경우 API 를 병렬 처리 하도록

Page 29: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

얼굴분석 API 를 병렬로 처리Amazon Rekognition, MS Face API, Face Plus Plus 의 얼굴 분석 API 를 호출해서 , 여러 시스템에서 나온 결과값을 받아온다

Page 30: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

각 회사의 API 마다 결과값에 차이가 있다

Page 31: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

Face Data Process

• 여러 Face API 에서 모은 결과에서 원하는 통계를 내기 위한 데이터로 가공한다

Page 32: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

Update Database

• 가공한 데이터를 RDS 에 넣어준다

Page 33: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

Database 에 결과값이 쌓이는지 확인

Page 34: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

원하는 통계 쿼리를 작성분당 나이와 Smile 평균

나이대별 통계

성별 통계

Page 35: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

하지만 , 결과가 이렇게 표시된다

Page 36: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

Plot.ly 를 통해서 데이터를 보기 좋게 차트화 시킨다

Page 37: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

이런 차트가 만들어집니다

Page 38: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

나이대별 통계 차트

Page 39: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

성별 차트

Page 40: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

성별 차트

누구 ?

Page 41: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

성별 차트최근 인기 한국 드라마 여주인공

Page 42: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

결론- 강남 소모임이 활성화되고 , 서로 모여서 라즈베리파이와 카메라를 이용해서 개발하니 재미있다 !!

- Amazon Rekognition, MS Face API, Face Plus Plus 와 같은 이미지 분석 API를 통해서 큰 비용을 들이지 않고서도 쉽게 이미지 분석이 가능- API 마다 데이터의 특성이 다르기 때문에 본인에게 필요한 정보에 맞춰서 바꿔나갈 수 있음- StepFunctions 를 통해서 Lambda 의 동작과 로그를 보면서 개발할 수 있었음- 개선할 사항이 많다 ㅠㅠ ( 보안 , 다중 얼굴 처리 )이 부분은 소모임에서 모여서 아이디어 추가 및 계속 개선해 나갈 예정

Page 43: Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

감사합니다!발표자료:

http://bit.ly/hyunmin-jawsdays2017