라즈베리파이와 서버리스 환경을 통하여 얼굴분석 서비스 구현하기 #1 (소개)

in aws •  7 years ago 

2018-04-13_17-36-53.png
https://www.slideshare.net/awskorea/raspberypi-serverless-ai-service

2017년 AWS Summit에서 한국 AWS 사용자그룹이 주축이된 Develop 섹션들 중에서 하나를 발표하게 되었다.
부족한 실력에도 운좋게 큰 행사에서 발표할 수 있었다.

발표 내용은 AWS 소모임을 하면서 프로젝트를 하나 진행했고 그 프로젝트를 좀 더 개선한 내용에 대해서 발표했다.

발표내용에 대해서 공동저자로 책을 써야함에도 아직 시작도 못했는데 먼저 블로그에 조금씩 정리하기로 했다.

이 프로젝트는 카메라를 이용해서 사람의 얼굴을 수집하고 성별, 나이, 감정등을 분석하여 데이터를 시각화한다.

최초의 설계는 온프레미스에서 사용하는 일반적인 설계이다.
2018-04-13_17-45-10.png

이 설계를 이번엔 AWS와 외부 서비스를 이용해서 재 구성했다.
2018-04-13_17-46-45.png

이 재구성한 설계대로 구현한 부분을​ AWS 강남 소모임에서 발표하였다.

2018-04-13_17-23-54.png
https://www.slideshare.net/HarryOh1/aws-71033837

그리고 세부적인 내용은 medium(https://goo.gl/vT7a8f) 에 가면 확인 할 수 있다.

다음은 위의 시스템에서 나온 결과이다.
2018-04-13_17-47-32.png

이렇게 한번 만들어진 프로젝트를 개선한 내용을 Summit에서 발표했고 새롭게 만들어진 설계는 다음과 같다.
2018-04-13_17-53-53.png

여기서 추가적인 사항은 이전엔 라즈베리파이에서는 일정 주기별로 무조건 사진을 찍어서 서버로 전송하고 있어서 불필요한 트래픽이 과하게 발생하고 얼굴을 분석하는 서비스 비용이 불필요하게 청구되는 구조였다.
이 부분을 해결하기 위해서 라즈베리파이에서 모션디텍션을 감지하고 영상중에 얼굴이 있는 지를 파악하여 이미지를 전송하는 구조로 변경하였다.
2018-04-13_17-57-52.png

그리고 행사날 데모를 위해서 Slack을 연동하여 데모에 참여한 사람의 분석결과를 실시간으로 Slack으로 알려서 바로 확인 할 수 있도록 만들었다.
IMG_20170419_144906.jpg

회사에서 점심시간에 축구 비디오 게임을 했는데 이때 사람들의 얼굴을 수집해서 시각화하고 해당 내용을 분석한 결과를 발표했다.
2018-04-13_18-09-08.png

이제부터 구현 방법에 대해서 차근차근 진행해보려고 한다.
아직 AWS나 라즈베리파이 같은 것에 익숙하지 않은 분들을 생각하면 꽤 길게 진행이 될 것 같으니 천천히 진행할 예정이다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

라즈베리에서는 얼굴정보만 추출하고 그 정보를 서버에 전송하는 역활만 수행한 건가요. 궁금해지네요.
라즈베리파이에서 데이터 분석을 보다 효율적으로 하기 위한 초벌 작업은 혹시 없는지 문득 궁금하네요.
영상처리에서 가장 힘든데 영상 원시 데이터를 추출하는 작업 같아요.
예전에 의료영상을 3D Rendering를 공부한 적이 있는데요.
단층사진을 추출하고 나서 그 영상에서 노이즈 제거가 가장 힘들더군요.

여기서는 실제로 서비스되는 서비스가 아니다보니 세부적인 부분은 다루지 않고 있습니다.
여기서 다룰 부분은 간단하게 라즈베리파이에서 opencv를 이용해서 모션디텍션과 페이스디텍션을 하고 검출시 해당 이지미를 S3로 업로드하는 것까지만 다룰 예정입니다.​

원리가 궁금해서요.
라즈베리파이에서 초벌작업으로 얼굴정보에 대한 판정까지 다 하고 나서 서버에 보내는지 판정을 서버에서 하는지가요.
클라이언트에서 추출한 영상 정보가 서버로 보낼때 불필요한 데이터 전송을 완전 차단할 수 있으니깐요.
초기 영상 데이터를 어떻게 추출하느냐에 따라서 처리 과정이 180도 바뀌기 때문에 라즈베리파이에서는 어느선까지 영상처리 작업을 수행하는지가 문득 궁금해서 질문 드려봤어요.

초기에 주기적으로 이미지을 보내서 필요없는 영상이 서버에 전송시키혔다고 하셧잖아요. 거기서 개선된것이 얼굴인식이 된 이미지를 보낸다고 하셨는데 여기서 전송된 데이터 중에 필요없는 이미지들이 발생할 수 있지 않을까 문득 드네요.

시각화에 필요한 정보 얼굴 데이터라고 판정된 얼굴 정보만 따로 잘라내서 서버에 보내는지가 궁금하네요.