MediaPipe Image Embedder 태스크를 사용하면 이미지의 숫자 표현을 만들 수 있습니다. 이는 다양한 ML 기반 이미지 작업을 수행하는 데 유용합니다. 이 기능은 코사인 유사성과 같은 수학적 비교 기법을 사용하여 두 이미지의 유사성을 비교하는 데 자주 사용됩니다. 이 작업은 머신러닝 (ML) 모델을 정적 데이터 또는 연속 스트림으로 사용하여 이미지 데이터를 처리하고, 이미지 데이터의 숫자 표현을 부동 소수점 또는 정규화된 형식의 임베딩 벡터라고도 하는 고차원 특성 벡터 목록으로 출력합니다.
시작하기
대상 플랫폼에 관한 다음 구현 가이드 중 하나에 따라 이 작업을 시작합니다. 다음 플랫폼별 가이드에서는 권장 모델을 사용하여 이 작업의 기본 구현을 안내하고 권장 구성 옵션이 포함된 코드 예시를 제공합니다.
태스크 세부정보
이 섹션에서는 이 태스크의 기능, 입력, 출력, 구성 옵션을 설명합니다.
기능
- 입력 이미지 처리 - 처리에는 이미지 회전, 크기 조절, 정규화, 색상 공간 변환이 포함됩니다.
- 관심 영역 - 전체 이미지 대신 이미지의 특정 영역에 임베딩을 실행합니다.
- 임베딩 유사성 계산: 두 특성 벡터 간의 코사인 유사성을 계산하는 내장 유틸리티 함수
- 양자화 - 특징 벡터의 스칼라 양자화를 지원합니다.
태스크 입력 | 태스크 출력 |
---|---|
입력은 다음 데이터 유형 중 하나일 수 있습니다.
|
이미지 임베더는 다음으로 구성된 임베딩 목록을 출력합니다.
|
구성 옵션
이 태스크에는 다음과 같은 구성 옵션이 있습니다.
옵션 이름 | 설명 | 값 범위 | 기본값 |
---|---|---|---|
running_mode |
태스크의 실행 모드를 설정합니다. 모드는 세 가지입니다. IMAGE: 단일 이미지 입력의 모드입니다. 동영상: 동영상의 디코딩된 프레임 모드입니다. LIVE_STREAM: 카메라와 같은 입력 데이터의 라이브 스트림 모드입니다. 이 모드에서는 결과를 비동기식으로 수신할 리스너를 설정하려면 resultListener를 호출해야 합니다. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
l2_normalize |
반환된 특성 벡터를 L2 norm으로 정규화할지 여부입니다. 모델에 아직 네이티브 L2_NORMALIZATION TFLite 연산자가 포함되어 있지 않은 경우에만 이 옵션을 사용하세요. 대부분의 경우 이미 이 연산자가 포함되어 있으므로 이 옵션 없이 TFLite 추론을 통해 L2 정규화가 이루어집니다. | Boolean |
False |
quantize |
반환된 임베딩을 스칼라 정규화를 통해 바이트로 정규화해야 하는지 여부입니다. 임베딩은 단위 노름이라고 암시적으로 가정되므로 모든 측정기준의 값은 [-1.0, 1.0] 범위에 포함됩니다. 그렇지 않은 경우 l2_normalize 옵션을 사용하세요. | Boolean |
False |
result_callback |
이미지 삽입 도구가 라이브 스트림 모드일 때 삽입 결과를 비동기식으로 수신하도록 결과 리스너를 설정합니다. 실행 모드가 LIVE_STREAM 로 설정된 경우에만 사용할 수 있습니다. |
해당 사항 없음 | 설정되지 않음 |
모델
이미지 임베더를 사용하려면 이미지 임베딩 모델을 다운로드하여 프로젝트 디렉터리에 저장해야 합니다. 이 작업으로 개발을 시작할 때는 타겟 플랫폼에 권장되는 기본 모델부터 시작하세요. 사용 가능한 다른 모델은 일반적으로 성능, 정확성, 해상도, 리소스 요구사항 간에 절충점을 찾으며 경우에 따라 추가 기능을 포함합니다.
MobileNetV3 모델
이 모델 계열은 MobileNet V3 아키텍처를 사용하며 ImageNet 데이터를 사용하여 학습되었습니다. 이 모델은 정확도-지연 시간 절충점을 조정하기 위해 컨볼루션 레이어의 깊이 (기능 수)에 0.75 배수를 사용합니다. 또한 MobileNet V3는 네트워크를 리소스 사용량이 적은 사용 사례 또는 리소스 사용량이 많은 사용 사례에 맞게 조정할 수 있도록 소형과 대형의 두 가지 크기로 제공됩니다.
모델 이름 | 입력 셰이프 | 양자화 유형 | 버전 |
---|---|---|---|
MobileNet-V3 (소형) | 224 x 224 | None (float32) | 최신 |
MobileNet-V3 (대) | 224 x 224 | None (float32) | 최신 |
작업 벤치마크
다음은 위의 사전 학습된 모델을 기반으로 한 전체 파이프라인의 태스크 벤치마크입니다. 지연 시간 결과는 CPU / GPU를 사용하는 Pixel 6의 평균 지연 시간입니다.
모델 이름 | CPU 지연 시간 | GPU 지연 시간 |
---|---|---|
MobileNet-V3 (소형) | 3.94ms | 7.83ms |
MobileNet-V3 (대형) | 9.75ms | 9.08ms |