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