딥러닝을 이용하여 실시간으로 촬영되는 영상 속 인물 객체들의 표정을 분석하여 감정을 분류하는 프로젝트를 진행하고자 한다.
먼저, 영상보다는 이미지로부터 감정을 분석하는 오픈소스를 활용하여 기본적인 로직을 이해하고자 한다.
기본적으로 오픈소스에서 제공되는 데이터셋으로 학습을 하고, 직접 구현시에는 다양한 데이터셋을 활용할 예정이다.
※ 먼저, 아나콘다, 텐서플로우를 설치해야 한다. 아래 url참고.
기본 용어들은 다음과 같이 이해하면 될듯 함...
Anaconda - 비쥬얼스튜디오, 이클립스와 같은 통합 개발 환경툴이라 생각하면 됨
Python - C#, VB Java, Javascript등과 같은 프로그래밍 언어
Tensorflow - 딥러닝, 신경망 등의 처리를 모아 놓은 API 정도
Spyder - Anaconda에서의 프로그래밍 언어 편집기
아나콘다는 python의 특성화된 패키지라고 정의할 수 있으며 python을 기반으로 머신러닝, 데이터 사이언스를 위해 가장 많이 사용되는 패키지들을 묶어서 배포하고 있으며 conda라는 의존성 패키지는 다양한 패키지를 제공하고 있어 python기반 개발시 많이 사용하고 있는 플랫폼이다.
프로젝트를 위한 자료조사 사이트는 다음과 같다.
1. 이미지 감정 인식
https://github.com/sunsmiling/facial-emotion-detector
데이터셋은 Kaggle에서 제공한 데이터를 사용하여 [얼굴인식]과 [표정분류]로 구분된 두 단계를 거치는 얼굴표정 자동 인식 시스템을 구축함.
사용된 파이썬 패키지 및 모듈은 다음과 같다.
|
Opencv-python라이브러리를 사용하여 OpenCV에서 제공하고 있는 cascade기반으로 미리 학습된 정면 얼굴 데이터를 다운받아 정면 얼굴을 식별함. cascade: https://m.blog.naver.com/PostView.nhn?blogId=samsjang&logNo=220699662173&proxyReferer=https%3A%2F%2Fwww.google.com%2F
얼굴 식별 후, 표정을 구분할 수 있도록 얼굴의 구성요소를 찾아야 하는데 dlib라이브러리의 68개의 점이 학습된 모델 파일을 다운받아 사용함(shape_predictor_68_face_landmarks.dat)
얼굴 식별(OpenCV cascade) → 얼굴의 구성요소(dlib library) → 표정 구분
2. 영상 실시간 감정 인식
https://jusonn.github.io/blog/2018/02/16/real-time-emotion-detection/
실시간으로 영상을 입력받으면 각 프레임마다 이미지를 모델에 넘기고 아웃풋을 받아 감정을 분류함
데이터모델: keras로 학습된 모델
표정데이터: kaggle
cv2와 imutils는 이미지를 처리하는 라이브러리로 영상을 뽑아내거나 영상에 파란 박스를 쳐주는 것들을 할 수 있음
3. OpenCV Python강의
https://www.youtube.com/watch?v=0KCTvoMXHPE&list=PLwfJJiO20qkDue05S5MNhgYNnClMVlagN
4. OpenCV - 동영상 파일에서 얼굴 인식 파이썬 예제 코드
https://blog.naver.com/chandong83/220829044388
영상→얼굴 인식
OpenCV는 Open Source Computer Vision Library의 약자로 오픈소스 컴퓨터 비전 및 머신러닝 라이브러리이다.
얼굴을 인식하고, 물체를 식별하고 이미지를 결합하는 등의 작업이 가능하다.
opencv를 파이썬에서 설치하기 위해서는 아래 명령어로 실행한다.
pip install opencv-python |
실제 모듈을 불러올 때는 cv2를 입력한다. 패키지명이 opencv지만 cv2로 불러온다.
import cv2 |
...추가예정
Reference
'인공지능' 카테고리의 다른 글
Opencv Python - 2. 이미지 다루기 (0) | 2019.09.02 |
---|---|
Opencv Python - 1. 예제(웹캠 영상 띄우기) (0) | 2019.09.02 |
인공지능,머신러닝,딥러닝,빅데이터 개념 및 공부 방향 (0) | 2019.07.18 |