MediaPipe 얼굴 인식기 작업을 사용하면 이미지 또는 동영상에서 얼굴을 감지할 수 있습니다. 이 작업을 사용하여 프레임 내에서 얼굴과 얼굴 특징을 찾을 수 있습니다. 이 작업은 단일 이미지 또는 연속 이미지 스트림으로 작동하는 머신러닝 (ML) 모델을 사용합니다. 작업은 왼쪽 눈, 오른쪽 눈, 코 끝, 입, 왼쪽 눈 이주, 오른쪽 눈 이주와 같은 얼굴의 핵심 포인트와 함께 얼굴 위치를 출력합니다.
시작하기
이 작업의 사용을 시작하려면 대상 플랫폼별 구현 가이드 중 하나를 따르세요. 다음의 플랫폼별 가이드에서는 권장 모델, 권장 구성 옵션이 있는 코드 예를 포함하여 이 작업의 기본 구현을 설명합니다.
태스크 세부정보
이 섹션에서는 이 태스크의 기능, 입력, 출력 및 구성 옵션을 설명합니다.
기능
- 입력 이미지 처리 - 처리에는 이미지 회전, 크기 조절, 정규화, 색 공간 변환이 포함됩니다.
- 점수 임곗값 - 예측 점수를 기준으로 결과를 필터링합니다.
작업 입력 | 작업 출력 |
---|---|
얼굴 인식기에서는 다음 데이터 유형 중 하나를 입력할 수 있습니다.
|
얼굴 인식기가 다음과 같은 결과를 출력합니다.
|
구성 옵션
이 태스크에는 다음과 같은 구성 옵션이 있습니다.
옵션 이름 | 설명 | 값 범위 | 기본값 |
---|---|---|---|
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밀리초 |