raspberry pi를 이용한 얼굴 표정과 감정인식 시스템 개발
TRANSCRIPT
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Hyunmin Kim
AWSKRUG Gangnam Leader, Megazone
Raspberry Pi 를 이용한 얼굴 표정과 감정인식 시스템 개발
자기소개Hyunmin Kim (김현민)소속 : MEGAZONEAWS Solutions ArchitectAWSKRUG Gangnam Leader
iOS 개발자 , Node.js 로 개발 ,현재 AWS Solutions Architect 로 메가존에서일하는중 . AWSKRUG 에서 많은 활동을 하고 있습니다 .좋아하는 AWS 서비스 : EC2, S3, Route53, Lambda
일본여행을 좋아합니다
회사소개
회사소개2012 한국최초 AWS 파트너로서비스개시
한국최초 & 최대 AWS Premier Consulting Partner
400+ 이상의고객에서서비스제공
20+ 글로벌 No.1 솔루션제공
한국유일의 AWS 공인한국어서포트센터운영 한국최초 AWS Enterprise Support 제공
24 / 7 / 365 서포트서비스제공
이 프레젠테이션을 한 이유AWSKRUG Gangnam 소모임에서 라즈베리파이와 카메라를 이용한 재미있는 세션을 진행해주셨음 .
오회근 (harry Oh)YOGIYO 한국 배달어플리케이션 Backend DeveloperCloud BI Solution, Network Camera,Standalone DVR, Web based Surveillance System
최대한 간단하게 만들기
오회근님의 라즈베리파이( 보조배터리와 테더링으로 휴대도 가능 !!)
개발중인 라즈파이와 카메라 모습
개발 방법• 사진을 주기적으로 찍어서 S3 로 업로드• 성별 , 나이 , 스마일 통계를 구한다• AWS 에서 Serverless 로 구성• CLI 를 이용• 카메라는 싼거로• 시큐리티는 잠시 미뤄두자 ㅠㅠ
아키텍쳐• AWS 서비스는 S3, Lambda,
StepFunctions, RDS 사용• 얼굴 분석으로
Amazon Rekognition,MS Face APIFace Plus Plus 이용
• Plot.ly 를 이용하여 차트 생성
개발 환경• Python 2.7 (virutalenv)• pip• emulambda (lambda Simumator)• AWS CLI• statelint (StepFunctions JSON validator)• 라즈베리파이와 인터넷 연결
S3 Bucket 생성• US-WEST-2 OREGON 리전에
jawsdaysfaces bucket 생성• Lifecycle 을 1 일로 설정• 모든 사용자들이 접근 가능하도록 설정주의 ! 실제로 서비스 할 경우에는
signed url 등을 이용
라즈베리파이• 미리 준비해야 할 것들• WiFi 연결• USB WebCam 연결• fswebcam 설치 및 설정값• AWS CLI 설치 및 설정• 이미지를 S3 에 전송하고 확인
IAM 설정• Lambda 실행 권한을 가진
jawsdaysfaces-role 을 추가• Jawsdaysfaces bucket 을 액세스할 수 있는 policy 추가• 해당 policy 를 jawsdaysfaces-role 에 추가• Rekognition, StepFunction policy 도 추가
AmazonRekognitionFullAccessAWSStepFunctionsFullAccess
RDS 생성• RDS 를 생성• Security Group 에서 Inbound 를 모두 허용• RDS 를 외부에 공개하는건 위험 !
Lambda 가 RDS 에 접근하기 위해서는 같은 VPC 에 있어야 한다 , 하지만 이럴 경우 Lambda 가 외부망에 접근하기 위해서는 NAT Gateway 가 필요함
• 개발용으로만 사용해야함• 생성이 완료되고 endpoint 를 가져옴
TABLE 생성
Amazon Rekognition
• SDK 지원• IAM Policy 로 설정• 처음 12 개월 동안 매월 5,000개의 이미지를 분석하고 매월 최대 1,000 개의 얼굴 메타데이터를 저장 무료• EU (Ireland)
US East (N. Virginia)US West (Oregon)
MICROSOFT FACE API
• Microsoft face api 페이지 에서 API Key 를 생성• 생성된 API Key 는 별도 보관• 30,000/ 월 무료
FACE Plus Plus
• Face Plus Plus console 페이지에서 API Key 를 생성• 생성된 API Key 는 별도 보관• 무료는 제한된사용량 /응답보장안함
Step Functions
Step Functions JSON
미리 제공되는 템플릿을 참고
Statelint
얼굴 이미지가 아닌 경우 동작
얼굴 이미지일 경우 동작
Detect Labels ( 사진 분석 )
• Amazon Rekognition 에 detect_labels API 로 요청
• Label 의 이름이 Human, People, Person 이면서 Confidence 값이 95 이상일 경우 얼굴 사진으로 판별
JAWS-UG LOGO 로 테스트
얼굴 사진으로 테스트
isFacePhoto
• isFaces 의 값에 따라서 분기를 처리해준다• 얼굴 사진이 아닐 경우 ,
NoFacesPhoto 로 ,
• 얼굴 사진일 경우 API 를 병렬 처리 하도록
얼굴분석 API 를 병렬로 처리Amazon Rekognition, MS Face API, Face Plus Plus 의 얼굴 분석 API 를 호출해서 , 여러 시스템에서 나온 결과값을 받아온다
각 회사의 API 마다 결과값에 차이가 있다
Face Data Process
• 여러 Face API 에서 모은 결과에서 원하는 통계를 내기 위한 데이터로 가공한다
Update Database
• 가공한 데이터를 RDS 에 넣어준다
Database 에 결과값이 쌓이는지 확인
원하는 통계 쿼리를 작성분당 나이와 Smile 평균
나이대별 통계
성별 통계
하지만 , 결과가 이렇게 표시된다
Plot.ly 를 통해서 데이터를 보기 좋게 차트화 시킨다
이런 차트가 만들어집니다
나이대별 통계 차트
성별 차트
성별 차트
누구 ?
성별 차트최근 인기 한국 드라마 여주인공
결론- 강남 소모임이 활성화되고 , 서로 모여서 라즈베리파이와 카메라를 이용해서 개발하니 재미있다 !!
- Amazon Rekognition, MS Face API, Face Plus Plus 와 같은 이미지 분석 API를 통해서 큰 비용을 들이지 않고서도 쉽게 이미지 분석이 가능- API 마다 데이터의 특성이 다르기 때문에 본인에게 필요한 정보에 맞춰서 바꿔나갈 수 있음- StepFunctions 를 통해서 Lambda 의 동작과 로그를 보면서 개발할 수 있었음- 개선할 사항이 많다 ㅠㅠ ( 보안 , 다중 얼굴 처리 )이 부분은 소모임에서 모여서 아이디어 추가 및 계속 개선해 나갈 예정
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
감사합니다!발표자료:
http://bit.ly/hyunmin-jawsdays2017