TIL/TIL

[ML] Face Recognition

JoJobum 2022. 7. 27. 11:17

보통 우리가 사람의 얼굴을 보고 누구인지 인식하는데 어려움을 겪을 일이 없다. 우리의 뇌가 너무나 자연스럽게 여러가지 절차를 거쳐서 다른 사람의 얼굴을 인식하고 머릿속에 있는 정보와 매치하여 누구라고 답을 내놓기 때문이다.

이러한 일을 컴퓨터가 할 수 있게 해주려면 위에 말한 우리의 뇌가 너무나 자연스럽게 진행한 절차들을 분리하여 순서대로 해결해 나가면서 답을 찾아나가야 할 것이다. 그 과정에 대해서 알아보고 정리고자 한다.

 

  1. 전체 이미지에서 사람의 얼굴을 찾는 것(Face Detection), Histogram of Oriented Gradients(HOG) 방식 사용
    1. 이미지를 흑백으로 바꿈 (얼굴 찾는데 색상 데이터는 필요 없기 때문)
    2. 주변 픽셀에 대한 gradient, 즉 주변 픽셀들에 비해 밝은지 어두운지에 대한 계산을 모든 픽셀에 수행
  2. 얼굴의 각도 등이 인식에 방해되기에 얼굴의 위치교정(Posing)과 투영(Projection) 해야함, face landmark estimation 알고리즘 사용
    1. 모든 얼굴에 존재하는 68개의 landmark(=특정 포인트)를 잡고, ML을 통해 어떤 얼굴에서도 68개의 landmark를 찾아내도록 하는 것 (=face landmark estimation)
    2. 이를 통해 눈과 입의 위치 알 수 있고, 눈과 입이 최대한 가운데로 오게 affine transformation(rotate, scale, shear) 하는 것
  3. 모든 얼굴을 일일이 비교하면 수행시간이 너무 길기에 몇가지 기본 측정값을 추출해둘 것(face encoding)
    1. 딥 컨볼루션 신경망(Deep Convolutional Neural Network)이 각 얼굴에 대해 기본 측정값을 생성하도록 훈련
      1. 아는 사람의 얼굴사진
      2. 동일한 아는 사람의 다른 사진
      3. 다른 사람의 사진
      4. 순서대로 load 하며 훈련
  4. 인코딩을 한 값과 가장 근접한 측정값을 갖고 있는 사람을 DB에서 찾아낸다.

 

 

참고 문서

기계 학습(Machine Learning, 머신 러닝)은 즐겁다! Part 4 | by Jongdae Lim | Medium

 

기계 학습(Machine Learning, 머신 러닝)은 즐겁다! Part 4

딥러닝(Deep Learning)을 사용한 최신 얼굴 인식(Face Recognition)

medium.com

 

반응형