이미지 삽입 작업 가이드

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밀리초