얼굴 인식 가이드

경계 상자로 얼굴이 강조 표시된 세 사람

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

사용해 보기

시작하기

타겟 플랫폼에 맞는 구현 가이드 중 하나를 따라 이 작업을 사용하세요. 이러한 플랫폼별 가이드에서는 권장 모델과 권장 구성 옵션이 포함된 코드 예시 등 이 작업의 기본 구현을 안내합니다.

태스크 세부정보

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

기능

  • 입력 이미지 처리 - 처리에는 이미지 회전, 크기 조절, 정규화, 색상 공간 변환이 포함됩니다.
  • 점수 기준 - 예측 점수를 기준으로 결과를 필터링합니다.
태스크 입력 태스크 출력
얼굴 감지기는 다음 데이터 유형 중 하나의 입력을 허용합니다.
  • 정지 이미지
  • 디코딩된 동영상 프레임
  • 라이브 동영상 피드
얼굴 감지기는 다음 결과를 출력합니다.
  • 이미지 프레임에서 감지된 얼굴의 경계 상자입니다.
  • 인식된 각 얼굴의 6개 얼굴 특징 좌표입니다.

구성 옵션

이 작업에는 다음과 같은 구성 옵션이 있습니다.

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

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

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

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 (근거리)

스마트폰 카메라나 웹캠에서 촬영한 셀카와 유사한 이미지에서 단일 또는 여러 얼굴을 감지하는 경량 모델입니다. 이 모델은 근거리의 전면 휴대전화 카메라 이미지에 최적화되어 있습니다. 모델 아키텍처는 맞춤 인코더가 있는 Single Shot Detector (SSD) 컨볼루셔널 네트워크 기법을 사용합니다. 자세한 내용은 Single Shot MultiBox Detector에 관한 연구 논문을 참고하세요.

모델 이름 입력 셰이프 양자화 유형 모델 카드 버전
BlazeFace (근거리) 128x128 float 16 info 최신

BlazeFace (전체 범위)

스마트폰 카메라나 웹캠의 이미지에서 단일 또는 여러 얼굴을 감지하기 위한 비교적 경량 모델입니다. 이 모델은 후면 휴대전화 카메라로 촬영한 이미지와 같은 전체 범위 이미지에 최적화되어 있습니다. 모델 아키텍처는 맞춤 인코더가 있는 CenterNet 컨볼루션 네트워크와 유사한 기법을 사용합니다.

모델 이름 입력 셰이프 양자화 유형 모델 카드 버전
BlazeFace (전체 범위) 128x128 float 16 info 최신

BlazeFace Sparse (전체 범위)

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

모델 이름 입력 셰이프 양자화 유형 모델 카드 버전
BlazeFace Sparse (전체 범위) 128x128 float 16 info 최신

작업 벤치마크

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

모델 이름 CPU 지연 시간 GPU 지연 시간
BlazeFace (근거리) 2.94ms 7.41ms