MediaPipe 얼굴 감지기 태스크를 사용하면 이미지 또는 동영상에서 얼굴을 감지할 수 있습니다. 이 작업을 사용하여 프레임 내에서 얼굴과 얼굴 특징을 찾을 수 있습니다. 이 태스크에서는 단일 이미지 또는 연속 이미지 스트림에서 작동하는 머신러닝 (ML) 모델을 사용합니다. 이 작업은 얼굴 위치와 함께 왼쪽 눈, 오른쪽 눈, 코 끝, 입, 왼쪽 눈 이주, 오른쪽 눈 이주 등의 얼굴 주요 지점을 출력합니다.
시작하기
대상 플랫폼에 관한 다음 구현 가이드 중 하나에 따라 이 작업을 시작합니다. 다음 플랫폼별 가이드에서는 권장 모델, 권장 구성 옵션이 포함된 코드 예시 등 이 작업의 기본 구현을 안내합니다.
태스크 세부정보
이 섹션에서는 이 태스크의 기능, 입력, 출력, 구성 옵션을 설명합니다.
기능
- 입력 이미지 처리 - 처리에는 이미지 회전, 크기 조절, 정규화, 색상 공간 변환이 포함됩니다.
- 점수 기준점: 예측 점수를 기준으로 결과를 필터링합니다.
태스크 입력 | 태스크 출력 |
---|---|
얼굴 감지기는 다음 데이터 유형 중 하나의 입력을 허용합니다.
|
얼굴 인식기는 다음과 같은 결과를 출력합니다.
|
구성 옵션
이 태스크에는 다음과 같은 구성 옵션이 있습니다.
옵션 이름 | 설명 | 값 범위 | 기본값 |
---|---|---|---|
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 (근거리)
스마트폰 카메라 또는 웹캠의 셀카와 같은 이미지 내에서 단일 또는 여러 얼굴을 감지하는 경량 모델입니다. 이 모델은 근거리에서 촬영한 휴대전화 전면 카메라 이미지에 최적화되어 있습니다. 모델 아키텍처는 맞춤 인코더와 함께 단일 샷 감지기 (SSD) 컨볼루션 네트워크 기법을 사용합니다. 자세한 내용은 단일 샷 멀티박스 감지기에 관한 연구 논문을 참고하세요.
모델 이름 | 입력 셰이프 | 양자화 유형 | 모델 카드 | 버전 |
---|---|---|---|---|
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.94ms | 7.41ms |