Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flandmark의 수행 결과를 사용하여 face image를 벡터로 표현하기 #41

Open
kyukyukyu opened this issue Oct 14, 2015 · 0 comments
Assignees

Comments

@kyukyukyu
Copy link
Owner

  • 오픈소스 라이브러리 Flandmark를 사용하면, 이미지에서 사람 얼굴에 해당하는 영역에서 눈, 코, 입의 위치를 찾아낼 수 있음. 그럭저럭 잘 도는 편. Flandmark에서 제공하는 모델을 사용하면 다음과 같은 점들을 얻어낼 수 있음:

Facial landmarks detected by Flandmark

  • 위의 점들을 가지고, 얼굴 이미지에서 왼쪽 눈, 오른쪽 눈, 코, 입에 해당하는 영역을 따낼 수 있고, 이들을 face components라고 함. 이들을 따내는 방법은 다음과 같음. 소스 코드
    • 왼쪽/오른쪽 눈 및 입: 왼쪽 끝점의 좌표를 (x1, y1), 오른쪽 끝점의 좌표를 (x2, y2), 따내려는 face component의 aspect ratio(가로 / 세로)를 a라고 했을 때, 왼쪽 끝점과 오른쪽 끝점의 중간점이 중간점이고 aspect ratio가 a인 직사각형에 해당하는 영역을 face component로 삼음. 즉, 중심점이 ((x1 + x2) / 2, (y1 + y2) / 2)이고, 가로 길이가 (x2 - x1)이고, 세로 길이가 (1 / a) * (x2 - x1)인 사각형에 해당하는 영역이 face component가 됨. 소스 코드
    • 코(nose): s1, s2, s7의 좌표를 활용. top-left 점의 좌표가 (s1.x, min(s1.y, s2.y))이고, bottom-right 점의 좌표가 (s2.x, s7.y)인 직사각형에 해당하는 영역을 코(nose)로 삼음. 소스 코드
  • 하나의 얼굴 이미지에서 face components를 따냈으면, 각 컴포넌트에 대하여 LBP histogram을 계산함. LBP histogram의 개념 및 구현에 대해서는 이 글을 참조. 하나의 face component 안에 있는 각 픽셀들에 대해 3x3 neighborhood LBP를 계산. 3x3 neighborhood LBP에 대해서는 2^8 = 256가지 패턴이 존재할 수 있는데, 각 패턴의 출현 횟수를 센 다음 face component의 픽셀 개수로 나누어 256차원 벡터로 표현. 소스 코드.

Local Binary Pattern

  • 하나의 얼굴 이미지에 대해서 네 개의 face components가 존재하기 때문에, 하나의 얼굴 이미지는 256 * 4 = 1024차원의 벡터로 표현됨.
  • 이번 미팅 전까지는 이 결과를 그냥 PCA 돌려서 64차원 벡터로 줄인 다음에 k-means를 돌려 봤는데, 지금은 spectral clustering 구현이 완료된 상태이니 이것과 결합하여 돌려 볼 것.

참조

Z. Cao, Q. Yin, X. Tang, and J. Sun. Face recognition with learning-based descriptor. In Proc. CVPR, 2010.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants