AI 모델 및 플랫폼

고급 얼굴 인식 위한 DeepFace

mm
Unite.AI를 Google의 선호 소스에 추가

얼굴 인식은 몇 년 동안 AI와 ML 분야에서 트렌드가 되고 있으며, 얼굴 인식의 광범위한 문화적 및 사회적 영향은 далеко 갈 것입니다. 그러나 인간의 시각 시스템과 기계 사이에 성능 격차가 존재하여 얼굴 인식의 적용을 제한합니다.

성능 격차를 극복하고 인간 수준의 정확도를 제공하기 위해 Meta는 DeepFace를 소개했습니다. DeepFace는 얼굴 인식 프레임워크입니다. DeepFace 모델은 대규모 얼굴 데이터셋에서 훈련되며, 이는 평가 벤치마크를 구성하는 데이터셋과 크게 다르며, 기존 프레임워크보다 최소한의 적응으로 성능을 개선할 수 있습니다. 또한, DeepFace 프레임워크는 다른 시스템이 생산하는 수천 개의 얼굴 외모 특징에 비해 컴팩트한 얼굴 표현을 생성합니다.

제안된 DeepFace 프레임워크는 딥 러닝을 사용하여 이미지, 비디오, 그래픽스 등 다양한 형태의 데이터가 포함된 대규모 데이터셋에서 훈련합니다. DeepFace 네트워크 아키텍처는 정렬이 완료되면 모든 얼굴 영역의 위치가 픽셀 수준에서 고정되어 있음을 가정합니다. 따라서 다른 프레임워크에서 수행하는 것과 같이 여러 개의 컨볼루션 레이어를 사용하지 않고 원시 픽셀 RGB 값을 사용할 수 있습니다.

现代 얼굴 인식 프레임워크의 전통적인 파이프라인은 네 단계로 구성됩니다: 탐지, 정렬, 표현, 분류. DeepFace 프레임워크는 명시적인 3D 얼굴 모델링을 사용하여 피스ewise 변환을 적용하고, 9층 깊은 신경 네트워크를 사용하여 얼굴 표현을 도출합니다. DeepFace 프레임워크는 다음과 같은 기여를 시도합니다

  1. 대규모 데이터셋을 사용하여 일반화할 수 있는 얼굴 표현을 생성할 수 있는 효과적인 DNN 또는 딥 뉴럴 네트워크 아키텍처를 개발합니다.
  2. 명시적인 3D 모델링을 사용하여 효과적인 얼굴 정렬 시스템을 개발합니다.

DeepFace 모델의 작동 이해

얼굴 정렬

얼굴 정렬은 눈을 기준으로 한 각도에 따라 사람의 이미지를 회전시키는 기술입니다. 얼굴 정렬은 얼굴 인식에 데이터를 사전 처리하기 위한 인기 있는 방법이며, 얼굴 정렬된 데이터셋은 입력을 정규화하여 인식 알고리즘의 정확도를 개선하는 데 도움이 됩니다. 그러나 제한되지 않은 방식으로 얼굴을 정렬하는 것은 비刚체 표현, 신체 姿勢, 더 많은 요인으로 인해 어려운 작업일 수 있습니다. 분석적인 3D 얼굴 모델 또는 외부 데이터셋에서 피드유셜 포인트를 검색하는 것과 같은 정교한 정렬 기술을 사용하여 개발자는 이러한 도전을 극복할 수 있습니다.

정렬은 제한되지 않은 얼굴 검증 및 인식에 가장 인기 있는 방법이지만, 현재 완벽한 해결책은 없습니다. 3D 모델도 사용되지만, 특히 제한되지 않은 환경에서 작업할 때 최근 몇 년 동안 인기가 크게 감소했습니다. 그러나 인간의 얼굴은 3D 객체이므로, 올바르게 사용되면 올바른 접근 방식이 될 수 있습니다. DeepFace 모델은 얼굴의 분석적인 3D 모델링을 생성하기 위해 피드유셜 포인트를 사용하는 시스템을 사용합니다. 이 3D 모델링은 затем 얼굴 영역을 3D 전면 모드로 왜곡하는 데 사용됩니다.

또한, 대부분의 정렬 관행과 마찬가지로 DeepFace 정렬도 피드유셜 포인트 탐지기를 사용하여 정렬 과정을 안내합니다. DeepFace 모델은 단순한 포인트 탐지기를 사용하지만, 출력을 tinh chỉnh하기 위해 여러 번 적용합니다. 각 반복에서 이미지 설명자에서 피드유셜 포인트를 추출하기 위해 교육된 서포트 벡터 회귀器 또는 SVR를 사용합니다. DeepFace의 이미지 설명자는 LBP 히스토그램을 기반으로 하지만, 다른 특징도 고려합니다.

2D 정렬

DeepFace 모델은 감지된 6개의 피드유셜 포인트를 사용하여 정렬 과정을 시작합니다. 이 포인트는 눈, 입, 코의 위치를 기준으로 이미지의 중심에 있습니다. 이 포인트는 이미지의 회전, 크기 조정, 이동을 위해 사용되며, 변형된 이미지를 사용하여 여러 번 반복합니다. 집계된 변환은 2D 정렬된 영역을 생성합니다. 정렬 방법은 LFW-a에서 사용된 방법과 매우 유사하며, 모델의 정확도를 높이기 위해 여러 해 동안 사용되었습니다.

3D 정렬

DeepFace 프레임워크는 평면 외 회전된 얼굴을 정렬하기 위해 일반적인 3D 형상 모델을 사용하며, 2D 정렬된 영역을 3D 형상에 등록할 수 있는 3D 카메라를 사용합니다. 결과적으로, 모델은 3D 정렬된 영역의 버전을 생성하며, 2D 정렬된 영역에서 67개의 추가 피드유셜 포인트를 localize하여 두 번째 서포트 벡터 회귀器 또는 SVR를 사용하여 이를 달성합니다.

모델은 3D 형상에 67개의 앵커 포인트를 수동으로 배치하며, 3D 참조와 해당 피드유셜 포인트 사이의 완전한 대응을 달성할 수 있습니다. 다음 단계에서는 알려진 공분산 행렬이 특정 손실을 최소화하는 일반화된 최소 자승 솔루션을 사용하여 3D-2D 어파인 카메라를 추가합니다.

전면화

비刚체 변형과 전면 투영이 모델링되지 않기 때문에, 적합된 3D-2D 카메라는 근사값으로만 사용됩니다. 중요한 정체성 관련 요소를 왜곡에 대한 최종 변형으로 줄이기 위해, DeepFace 모델은 각 참조 피드유셜 포인트의 x-y 성분에 해당 잔차를 추가합니다. 이러한 완화는 정체성의 중요한 요소를 손실하지 않고 2D 이미지를 왜곡하는 데 사용됩니다.

마지막으로, 모델은 67개의 피드유셜 포인트에서 파생된 Delaunay 삼각분할에 의해 지시되는 피스ewise 어파인 변환을 사용하여 전면화를 달성합니다.

  1. 6개의 피드유셜 포인트가 있는 감지된 얼굴.
  2. 유도된 2D 정렬된 영역.
  3. 2D 정렬된 영역의 67개의 피드유셜 포인트.
  4. 참조 3D 형상이 2D 정렬된 영역 이미지로 변환됨.
  5. 3D-2D 카메라에 대한 삼각형의 가시성.
  6. 3D 모델에 의해 유도된 67개의 피드유셜 포인트.
  7. 최종 영역의 3D 정렬된 버전.
  8. 3D 모델에 의해 생성된 새로운 뷰.

표현

훈련 데이터의 양이 증가함에 따라, 학습 기반 방법은 특정 작업을 위한 특징을 발견하고 최적화할 수 있기 때문에 공학적으로 설계된 특징보다 더 효율적이고 정확한 것으로 입증되었습니다.

DNN 아키텍처 및 훈련

DeepFace DNN은 얼굴 이미지의 정체성을 분류하는 다중 클래스 얼굴 인식 작업에서 훈련됩니다.

위의 그림은 DeepFace 모델의 전체 아키텍처를 나타냅니다. 모델에는 3채널 RGB 이미지를 입력으로 받는 32개의 필터(11x11x3)가 있는 컨볼루션 레이어(C1)가 있으며, 이는 32개의 특징 맵을 생성합니다. 이러한 특징 맵은 최대 풀링 레이어(M2)로 전달되며, 이는 각 채널에 대해 3×3 공간 이웃에서 최대값을 취하고, 스트라이드는 2입니다. 다음으로 16개의 필터(9x9x16)로 구성된 또 다른 컨볼루션 레이어(C3)가 있습니다. 이러한 레이어의 주요 목적은 텍스처와 같은 저수준 특징을 추출하는 것입니다. 맥스 풀링 레이어를 사용하는 장점은 컨볼루션 레이어의 출력이 로컬 변환에 대해 더 강건해진다는 것입니다. 정렬된 얼굴 이미지에 적용될 때, 네트워크는 작은 규모의 등록 오류에 대해 더 강건해집니다.

여러 단계의 풀링은 네트워크를 더 강건하게 만들지만, 정교한 얼굴 구조와 마이크로 텍스처의 정확한 위치에 대한 정보를 잃어버리게 할 수 있습니다. 이러한 정보를 잃어버리지 않도록 하기 위해, DeepFace 모델은 첫 번째 컨볼루션 레이어에서만 맥스 풀링 레이어를 사용합니다. 이러한 레이어는 모델에 의해 전처리 단계로 해석됩니다.虽然它们가 대부분의 계산을 수행하지만, 그 자체로 제한된 매개변수를 가지고 있으며, 입력을 로컬 특징의 집합으로 확장합니다.

다음 레이어(L4, L5, L6)는 지역적으로 연결되어 있으며, 컨볼루션 레이어와 마찬가지로 각 특징 맵의 위치에서 고유한 필터 세트를 적용합니다. 정렬된 이미지의 다른 영역에는 다른 로컬 통계가 있으므로, 공간 정역성 가정이 성립하지 않을 수 있습니다. 예를 들어, 눈썹과 눈 사이의 영역은 코와 입 사이의 영역보다 더 높은 식별 능력을 가질 수 있습니다. 충성도 레이어를 사용하면 훈련에 대한 매개변수의 수가 영향을 받지만, 특징 추출 중에 계산 부담은 영향을 받지 않습니다.

DeepFace 모델은 처음에 세 개의 레이어만 사용합니다. 이는 대규모 잘 레이블링된 훈련 데이터를 가지고 있기 때문입니다. 충성도 레이어를 사용하는 것은 각 출력 유닛이 큰 입력 데이터 패치에 영향을 받을 수 있기 때문에 더 이상 정당화될 수 있습니다.

마지막으로, 최상위 레이어는 완전히 연결되어 있으며, 각 출력 유닛은 모든 입력에 연결됩니다. 두 레이어는 얼굴 이미지의 다른 부분에서 捕获된 특징 사이의 상관관계를 캡처할 수 있습니다. 첫 번째 완전히 연결된 레이어(F7)의 출력은 네트워크에서 원시 얼굴 표현 특징 벡터로 사용됩니다. 모델은 마지막 완전히 연결된 레이어(F8)의 출력을 K-방향 소프트맥스에 공급하여 클래스 레이블에 대한 분포를 생성합니다.

데이터셋

DeepFace 모델은 주로 Social Face Classification 또는 SFC 데이터셋을 사용하며, 또한 LFW 데이터셋과 YTF 데이터셋을 사용합니다.

SFC 데이터셋

SFC 데이터셋은 페이스북의 사진 컬렉션에서 학습되며, 각 사람당 800~1200개의 얼굴이 있는 4,030명의 사람에 대한 440만 개의 레이블이 지정된 이미지로 구성됩니다. SFC 데이터셋의 가장 최근 5%의 얼굴 이미지는 각 정체성을 테스트하는 데 사용됩니다.

LFW 데이터셋

LFW 데이터셋은 5,000명 이상의 유명인에 대한 13,323개의 사진으로 구성되며, 10개의 분할로 6,000개의 얼굴 쌍으로 나뉩니다.

YTF 데이터셋

YTF 데이터셋은 LFW 데이터셋의 유명인 중 1,595명의 3,425개의 비디오로 구성됩니다.

결과

전면화 없이 2D 정렬만 사용할 때 모델은 약 94.3%의 정확도 점수를 달성합니다. 모델이 얼굴 감지의 중심 코어를 사용할 때, 모델은 정렬을 사용하지 않으며, 이 경우 모델은 87.9%의 정확도 점수를 반환합니다. 왜냐하면 일부 얼굴 영역이 중심 코어 외부에 있을 수 있기 때문입니다. 모델은 무감독 학습 설정을 따르며, 정규화된 특징의 내적을 비교하여 얼굴 표현의 식별 능력을 평가합니다. 이는 모델의 평균 정확도를 95.92%로 높입니다.

위의 모델은 DeepFace 모델의 성능을 다른 최첨단 얼굴 인식 모델과 비교합니다.

위의 그림은 데이터셋上的 ROC 곡선을 나타냅니다.

결론

이상적인 얼굴 분류기는 인간과 같은 정확도로 얼굴을 인식할 수 있으며, 이미지 품질, 姿勢, 표현, 조명에 관계없이 높은 정확도를 반환할 수 있습니다. 또한, 이상적인 얼굴 인식 프레임워크는 수정 없이 다양한 응용 프로그램에 적용될 수 있습니다. DeepFace는 현재 가장 발전된 얼굴 인식 프레임워크 중 하나이지만, 완벽하지는 않으며, 특정 상황에서 정확한 결과를 반환하지 못할 수 있습니다. 그러나 DeepFace 프레임워크는 강력한 측정 학습 기술을 사용하여 성능 격차를 메우며, 시간이 지남에 따라 더 효율적으로 개선될 것입니다.

전문직으로서의 엔지니어, 마음으로서의 작가입니다. Kunal은 AI와 ML에 대한 깊은 사랑과 이해를 가진 기술 작가로, 이러한 분야의 복잡한 개념을 흥미롭고 정보적인 문서를 통해 단순화하는데 헌신하고 있습니다.