ML Kit를 사용한 맞춤 모델

기본적으로 ML Kit의 API는 Google의 학습 모델을 사용합니다. 이러한 모델은 다양한 응용 분야에서 사용할 수 있도록 설계되었습니다. 그러나 일부 사용 사례에는 보다 타겟팅된 모델이 필요합니다. 그렇기 때문에 이제 일부 ML Kit API에서 기본 모델을 맞춤 TensorFlow Lite 모델로 바꿀 수 있습니다.

이미지 라벨 지정Object Detection & Tracking API는 모두 커스텀 이미지 분류 모델을 지원합니다. TensorFlow Hub에서 선택한 고품질의 선행 학습된 모델 또는 TensorFlow, AutoML Vision Edge, TensorFlow Lite Model Maker로 학습된 자체 커스텀 모델과 호환됩니다.

다른 도메인 또는 사용 사례를 위한 커스텀 솔루션이 필요하면 온디바이스 머신러닝 페이지에서 온디바이스 머신러닝을 위한 Google의 모든 솔루션 및 도구에 대한 안내를 확인하세요.

커스텀 모델과 함께 ML Kit를 사용할 때의 이점

ML Kit에서 커스텀 이미지 분류 모델을 사용할 때의 이점은 다음과 같습니다.

  • 사용하기 쉬운 상위 수준 API - 하위 수준 모델 입력/출력을 처리하거나 이미지 전/후 처리 또는 처리 파이프라인을 빌드할 필요가 없습니다.
  • 라벨 매핑을 직접 걱정하지 않아도 됩니다. ML Kit가 TFLite 모델 메타데이터에서 라벨을 추출하고 매핑을 자동으로 수행합니다.
  • TensorFlow Hub에 게시된 선행 학습된 모델부터 TensorFlow, AutoML Vision Edge, TensorFlow Lite Model Maker로 학습된 새로운 모델에 이르기까지 다양한 소스의 커스텀 모델을 지원합니다.
  • Firebase에서 호스팅되는 모델을 지원합니다. 요청 시 모델을 다운로드하여 APK 크기를 줄입니다. 앱을 다시 게시할 필요 없이 모델 업데이트를 푸시하고 Firebase 원격 구성을 사용하여 간단한 A/B 테스트를 수행할 수 있습니다.
  • Android Camera API와의 통합에 최적화되었습니다.

특히 객체 감지 및 추적의 경우 다음과 같습니다.

  • 먼저 객체를 찾고 관련 이미지 영역에서만 분류기를 실행하여 분류 정확도를 개선합니다.
  • 객체가 감지되고 분류되는 즉시 사용자에게 객체에 대한 피드백을 제공하여 실시간 대화형 환경을 제공합니다.

선행 학습된 이미지 분류 모델 사용

선행 학습된 TensorFlow Lite 모델이 일련의 기준을 충족하는 경우 사용할 수 있습니다. TensorFlow Hub를 통해 Google이나 다른 모델 제작자들이 이러한 기준을 충족하는 검증된 모델 세트를 제공합니다.

TensorFlow Hub에 게시된 모델 사용

TensorFlow Hub는 다양한 모델 제작자가 제공하는 선행 학습된 광범위한 이미지 분류 모델을 제공하며 Image Labeling API와 Object Detection and Tracking API와 함께 사용할 수 있습니다. 다음 단계를 따르세요.

  1. ML Kit 호환 모델 모음에서 모델을 선택합니다.
  2. 모델 세부정보 페이지에서 .tflite 모델 파일을 다운로드합니다. 가능한 경우 메타데이터가 있는 모델 형식을 선택합니다.
  3. 모델 파일을 프로젝트와 함께 번들로 묶고 Android 또는 iOS 애플리케이션에서 사용하는 방법은 Image Labeling API 또는 Object Detection and Tracking API 가이드를 참조하세요.

자체 이미지 분류 모델 학습

요구사항에 맞는 선행 학습된 이미지 분류 모델이 없는 경우 자체 TensorFlow Lite 모델을 학습시킬 수 있는 다양한 방법이 있으며, 그중 일부는 아래에 자세히 설명되어 있습니다.

자체 이미지 분류 모델을 학습시키는 옵션
AutoML Vision Edge
  • Google Cloud AI를 통해 제공됨
  • 최신 이미지 분류 모델 만들기
  • 실적과 크기를 간편하게 평가
TensorFlow Lite Model Maker
  • 모델을 재학습 (전이 학습)하면 처음부터 모델을 학습시키는 것보다 시간이 덜 걸리고 데이터도 적게 필요합니다.
TensorFlow 모델을 TensorFlow Lite로 변환
  • TensorFlow로 모델을 학습시킨 다음 TensorFlow Lite로 변환

AutoML Vision Edge

AutoML Vision Edge를 사용하여 학습된 이미지 분류 모델은 Image LabelingObject Detection and Tracking API API의 커스텀 모델에서 지원됩니다. 이러한 API는 Firebase 모델 배포를 통해 호스팅되는 모델의 다운로드도 지원합니다.

Android 및 iOS 앱에서 AutoML Vision Edge로 학습된 모델을 사용하는 방법에 대한 자세한 내용은 사용 사례에 따라 각 API의 커스텀 모델 가이드를 따르세요.

TensorFlow Lite Model Maker

TFLite Model Maker 라이브러리는 기기 내 ML 애플리케이션에 이 모델을 배포할 때 TensorFlow 신경망 모델을 특정 입력 데이터로 조정하고 변환하는 프로세스를 간소화합니다. TensorFlow Lite Model Maker를 사용한 이미지 분류를 위한 Colab을 따를 수 있습니다.

Android 및 iOS 앱에서 Model Maker로 학습된 모델을 사용하는 방법을 자세히 알아보려면 사용 사례에 따라 Image Labeling API 또는 Object Detection and Tracking API 가이드를 참조하세요.

TensorFlow Lite 변환기를 사용하여 만든 모델

기존 TensorFlow 이미지 분류 모델이 있는 경우 TensorFlow Lite 변환기를 사용하여 변환할 수 있습니다. 생성된 모델이 아래의 호환성 요구사항을 충족하는지 확인하세요.

Android 및 iOS 앱에서 TensorFlow Lite 모델을 사용하는 방법을 자세히 알아보려면 사용 사례에 따라 Image Labeling API 또는 Object Detection and Tracking API 가이드를 따르세요.

TensorFlow Lite 모델 호환성

다음 요구사항을 충족하는 경우 선행 학습된 TensorFlow Lite 이미지 분류 모델을 사용할 수 있습니다.

텐서

  • 모델에는 다음과 같은 제약조건이 있는 입력 텐서 하나만 있어야 합니다.
    • 데이터는 RGB 픽셀 형식입니다.
    • 데이터가 UINT8 또는 FLOAT32 유형입니다. 입력 텐서 유형이 FLOAT32인 경우, Metadata를 연결하여 NormalizationOptions를 지정해야 합니다.
    • 텐서에는 BxHxWxC, 즉 다음과 같은 4개의 차원이 있습니다.
      • B는 배치 크기입니다. 1이어야 합니다 (더 큰 배치에 대한 추론은 지원되지 않음).
      • W와 H는 입력 너비와 높이입니다.
      • C는 예상 채널 수입니다. 3이어야 합니다.
  • 모델에는 클래스 N과 2차원 또는 4차원이 있는 출력 텐서가 하나 이상 있어야 합니다.
    • (1xN)
    • (1x1x1xN)
  • 현재는 단일 헤드 모델만 완전히 지원됩니다. 멀티 헤드 모델은 예기치 않은 결과를 출력할 수 있습니다.

메타데이터

TensorFlow Lite 모델에 메타데이터 추가에 설명된 대로 TensorFlow Lite 파일에 메타데이터를 추가할 수 있습니다.

FLOAT32 입력 텐서가 있는 모델을 사용하려면 메타데이터에서 NormalizationOptions를 지정해야 합니다.

또한 이 메타데이터를 출력 텐서 TensorMetadata에 연결하는 것이 좋습니다.

  • 각 출력 클래스의 이름을 TENSOR_AXIS_LABELS 유형의 AssociatedFile로 지정하는 라벨 맵입니다. 그러지 않으면 숫자 출력 클래스 색인만 반환될 수 있습니다.
  • 이 값보다 낮으면 신뢰도가 너무 낮아 결과를 ScoreThresholdingOptions가 포함된 ProcessUnit로 간주할 수 있는 기본 점수 기준점입니다.