얼굴 인식 가이드

MediaPipe 얼굴 인식기 작업을 사용하면 이미지 또는 동영상에서 얼굴을 감지할 수 있습니다. 이 작업을 사용하여 프레임 내에서 얼굴과 얼굴 특징을 찾을 수 있습니다. 이 작업은 단일 이미지 또는 연속 이미지 스트림으로 작동하는 머신러닝 (ML) 모델을 사용합니다. 작업은 왼쪽 눈, 오른쪽 눈, 코 끝, 입, 왼쪽 눈 이주, 오른쪽 눈 이주와 같은 얼굴의 핵심 포인트와 함께 얼굴 위치를 출력합니다.

사용해 보기

시작하기

이 작업의 사용을 시작하려면 대상 플랫폼별 구현 가이드 중 하나를 따르세요. 다음의 플랫폼별 가이드에서는 권장 모델, 권장 구성 옵션이 있는 코드 예를 포함하여 이 작업의 기본 구현을 설명합니다.

태스크 세부정보

이 섹션에서는 이 태스크의 기능, 입력, 출력 및 구성 옵션을 설명합니다.

기능

  • 입력 이미지 처리 - 처리에는 이미지 회전, 크기 조절, 정규화, 색 공간 변환이 포함됩니다.
  • 점수 임곗값 - 예측 점수를 기준으로 결과를 필터링합니다.
작업 입력 작업 출력
얼굴 인식기에서는 다음 데이터 유형 중 하나를 입력할 수 있습니다.
  • 정지 이미지
  • 디코딩된 동영상 프레임
  • 실시간 동영상 피드
얼굴 인식기가 다음과 같은 결과를 출력합니다.
  • 이미지 프레임에서 감지된 얼굴의 경계 상자
  • 인식된 각 얼굴에 대한 6개의 얼굴 랜드마크 좌표입니다.

구성 옵션

이 태스크에는 다음과 같은 구성 옵션이 있습니다.

옵션 이름 설명 값 범위 기본값
running_mode 작업의 실행 모드를 설정합니다. 모드는 세 가지가 있습니다.

IMAGE: 단일 이미지 입력 모드입니다.

VIDEO: 동영상의 디코딩된 프레임에 대한 모드입니다.

LIVE_STREAM: 카메라에서 전송하는 것과 같은 입력 데이터의 실시간 스트림 모드입니다. 이 모드에서는 resultListener를 호출하여 비동기식으로 결과를 수신하도록 리스너를 설정해야 합니다.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
min_detection_confidence 얼굴 인식이 성공한 것으로 간주되는 최소 신뢰도 점수입니다. Float [0,1] 0.5
min_suppression_threshold 얼굴 인식이 겹치는 것으로 간주되기 위한 최소 비최대 비표시 기준점입니다. Float [0,1] 0.3
result_callback 얼굴 인식기가 라이브 스트림 모드일 때 감지 결과를 비동기식으로 수신하도록 결과 리스너를 설정합니다. 달리기 모드가 LIVE_STREAM로 설정된 경우에만 사용할 수 있습니다. N/A Not set

모델

얼굴 인식 모델은 단거리 및 장거리 감지와 같은 의도된 사용 사례에 따라 달라질 수 있습니다. 또한 모델은 일반적으로 성능, 정확성, 해상도, 리소스 요구사항을 절충하고 경우에 따라 추가 기능을 포함합니다.

이 섹션에 나열된 모델은 모바일 GPU 추론에 최적화된 가볍고 정확한 얼굴 감지기인 BlazeFace의 변형입니다. BlazeFace 모델은 3D 얼굴의 주요 포인트 추정, 표정 분류, 얼굴 영역 분할과 같은 애플리케이션에 적합합니다. BlazeFace는 MobileNetV1/V2와 유사한 경량 특성 추출 네트워크를 사용합니다.

BlazeFace (단거리)

스마트폰 카메라 또는 웹캠의 셀카와 비슷한 이미지 내에서 한 개 또는 여러 개의 얼굴을 감지하는 경량 모델입니다. 이 모델은 단거리의 전면 휴대전화 카메라 이미지에 최적화되어 있습니다. 모델 아키텍처에서는 커스텀 인코더와 함께 SSD (Single Shot Detector) 컨볼루셔널 네트워크 기법을 사용합니다. 자세한 내용은 단일 샷 멀티박스 감지기에 관한 연구 자료를 참고하세요.

모델 이름 입력 형태 양자화 유형 모델 카드 버전
BlazeFace (단거리) 128x128 부동 소수점 16 정보 최신

BlazeFace (풀레인지)

스마트폰 카메라 또는 웹캠의 이미지 내에서 한 개 또는 여러 개의 얼굴을 감지하기 위한 비교적 가벼운 모델입니다. 이 모델은 후면 휴대전화 카메라 이미지로 찍은 이미지와 같은 전체 범위 이미지에 최적화되어 있습니다. 모델 아키텍처에서는 커스텀 인코더를 사용하는 CenterNet 컨볼루셔널 네트워크와 유사한 기법을 사용합니다.

모델 이름 입력 형태 양자화 유형 모델 카드 버전
BlazeFace (풀레인지) 128x128 부동 소수점 16 정보 제공 예정

BlazeFace Sparse (풀레인지)

일반 풀 범위 BlazeFace 모델의 가벼운 버전으로, 크기가 약 60% 더 작습니다. 이 모델은 후면 휴대전화 카메라 이미지로 찍은 이미지와 같은 전체 범위 이미지에 최적화되어 있습니다. 모델 아키텍처는 커스텀 인코더가 있는 CenterNet 컨볼루셔널 네트워크와 유사한 기법을 사용합니다.

모델 이름 입력 형태 양자화 유형 모델 카드 버전
BlazeFace Sparse (풀레인지) 128x128 부동 소수점 16 정보 제공 예정

작업 벤치마크

다음은 위의 선행 학습된 모델을 기반으로 전체 파이프라인에 대한 작업 벤치마크입니다. 지연 시간 결과는 CPU / GPU를 사용하는 Pixel 6의 평균 지연 시간입니다.

모델 이름 CPU 지연 시간 GPU 지연 시간
BlazeFace (단거리) 2.94밀리초 7.41밀리초