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

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

Upload: hyunmin-kim

Post on 11-Apr-2017

403 views

Category:

Software


0 download

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