기본적으로 ML Kit의 API는 Google에서 학습한 머신러닝 모델을 사용합니다. 이러한 모델은 광범위한 애플리케이션을 지원하도록 설계되었습니다. 하지만 일부 사용 사례에서는 더 타겟팅된 모델이 필요합니다. 따라서 이제 일부 ML Kit API를 사용하면 기본 모델을 맞춤 LiteRT 모델로 대체할 수 있습니다.
이미지 라벨 지정 및 객체 감지 및 추적 API는 모두 맞춤 이미지 분류 모델을 지원합니다. TensorFlow Hub의 고품질 사전 학습 모델 또는 TensorFlow나 AutoML로 학습된 자체 맞춤 모델과 호환됩니다.
다른 도메인이나 사용 사례에 맞춤 솔루션이 필요한 경우 온디바이스 머신러닝 페이지에서 온디바이스 머신러닝을 위한 Google의 모든 솔루션과 도구에 관한 안내를 확인하세요.
맞춤 모델과 함께 ML Kit 사용의 이점
ML Kit으로 맞춤 이미지 분류 모델을 사용하면 다음과 같은 이점이 있습니다.
- 사용하기 쉬운 상위 수준 API - 하위 수준 모델 입력/출력을 처리하거나 이미지 사전/사후 처리 또는 처리 파이프라인을 빌드할 필요가 없습니다.
- 직접 라벨 매핑을 걱정할 필요가 없습니다. ML Kit에서 LiteRT 모델 메타데이터에서 라벨을 추출하고 매핑을 실행합니다.
- TensorFlow Hub에 게시된 선행 학습된 모델부터 TensorFlow 또는 AutoML로 학습된 새 모델까지 다양한 소스의 맞춤 모델을 지원합니다.
- Android의 카메라 API와의 통합에 최적화되어 있습니다.
특히 객체 감지 및 추적의 경우:
- 먼저 객체를 찾고 관련 이미지 영역에서만 분류기를 실행하여 분류 정확도를 개선합니다.
- 객체가 감지되고 분류될 때 사용자에게 즉각적인 피드백을 제공하여 실시간 양방향 환경을 제공합니다.
사전 학습된 이미지 분류 모델 사용
일련의 기준을 충족하는 경우 선행 학습된 LiteRT 모델을 사용할 수 있습니다. TensorFlow Hub를 통해 Google 또는 기타 모델 제작자가 이러한 기준을 충족하는 검증된 모델을 제공합니다.
TensorFlow Hub에 게시된 모델 사용
TensorFlow Hub에서는 다양한 모델 제작자가 제공하는 다양한 선행 학습된 이미지 분류 모델을 제공하며, 이러한 모델은 이미지 라벨 지정 및 객체 감지 및 추적 API와 함께 사용할 수 있습니다. 다음 단계를 따르세요.
- ML Kit 호환 모델 컬렉션에서 모델을 선택합니다.
- 모델 세부정보 페이지에서 .tflite 모델 파일을 다운로드합니다. 가능한 경우 메타데이터가 있는 모델 형식을 선택합니다.
- 이미지 라벨링 API 또는 객체 감지 및 추적 API 가이드에 따라 모델 파일을 프로젝트와 번들로 묶고 Android 또는 iOS 애플리케이션에서 사용하는 방법을 알아보세요.
자체 이미지 분류 모델 학습
선행 학습된 이미지 분류 모델이 필요에 맞지 않는 경우 자체 LiteRT 모델을 학습시키는 다양한 방법이 있으며, 그중 일부는 다음 섹션에 간략하게 설명되어 있습니다.
| 자체 이미지 분류 모델을 학습시키는 옵션 | |
|---|---|
| AutoML |
|
| TensorFlow 모델을 LiteRT로 변환 |
|
AutoML
AutoML을 사용하여 학습된 이미지 분류 모델은 이미지 라벨 지정 및 객체 감지 및 추적 API API의 커스텀 모델에서 지원됩니다. 이러한 API는 Cloud Storage로 호스팅되는 모델의 다운로드도 지원합니다.
Android 및 iOS 앱에서 AutoML로 학습된 모델을 사용하는 방법을 자세히 알아보려면 사용 사례에 따라 각 API의 맞춤 모델 가이드를 따르세요.
LiteRT 변환기를 사용하여 만든 모델
기존 TensorFlow 이미지 분류 모델이 있는 경우 LiteRT 변환기를 사용하여 변환할 수 있습니다. 생성된 모델이 다음 호환성 요구사항을 충족하는지 확인합니다.
Android 및 iOS 앱에서 LiteRT 모델을 사용하는 방법을 자세히 알아보려면 사용 사례에 따라 Image Labeling API 또는 Object Detection and Tracking API 가이드를 따르세요.
LiteRT 모델 호환성
다음 요구사항을 충족하는 사전 학습된 LiteRT 이미지 분류 모델을 사용할 수 있습니다.
텐서
- 모델에는 다음 제약 조건이 있는 입력 텐서가 하나만 있어야 합니다.
- 데이터는 RGB 픽셀 형식입니다.
- 데이터는 UINT8 또는 FLOAT32 유형입니다. 입력 텐서 유형이 FLOAT32인 경우 Metadata를 연결하여 NormalizationOptions를 지정해야 합니다.
- 텐서에는 BxHxWxC의 4개 차원이 있습니다. 여기서
- B는 배치 크기입니다. 1이어야 합니다 (큰 배치에서의 추론은 지원되지 않음).
- W와 H는 입력 너비와 높이입니다.
- C는 예상 채널 수입니다. 3이어야 합니다.
- 모델에는 N개의 클래스와 2개 또는 4개의 차원이 있는 출력 텐서가 하나 이상 있어야 합니다.
- (1xN)
- (1x1x1xN)
- 단일 헤드 모델만 완전히 지원됩니다. 멀티 헤드 모델은 예기치 않은 결과를 출력할 수 있습니다.
메타데이터
LiteRT 모델에 메타데이터 추가에 설명된 대로 LiteRT 파일에 메타데이터를 추가할 수 있습니다.
FLOAT32 입력 텐서가 있는 모델을 사용하려면 메타데이터에서 NormalizationOptions를 지정해야 합니다.
이 메타데이터를 출력 텐서 TensorMetadata에 연결하는 것이 좋습니다.
- 각 출력 클래스의 이름을 지정하는 라벨 맵 (유형이 TENSOR_AXIS_LABELS인 AssociatedFile로 지정해야 숫자 출력 클래스 색인만 반환될 수 있음)
- 결과가 너무 낮은 신뢰도로 간주되어 반환되지 않는 기본 점수 기준점입니다(ScoreThresholdingOptions이 있는 ProcessUnit).