본문 바로가기
Visual Intelligence/Object Detection

[Object Detection] 안드로이드 TensorFlow Lite를 사용하여 커스텀 객체 탐지 모델 빌드 및 배포 (2)

by goatlab 2023. 6. 16.
728x90
반응형
SMALL

사전 학습된 TFLite 객체 탐지 모델

 

TensorFlow Hub에는 사용할 수 있는 몇 가지 객체 탐지 모델 있다. COCO 2017 데이터 세트에서 학습되고 TFLite에 최적화되고 모바일 CPU, GPU의 성능에 맞게 설계된 EfficientDet-Lite 객체 탐지 모델을 다운로드한다.

 

TFLite 작업 라이브러리를 사용하여 선행 학습된 TFLite 모델을 시작 앱에 통합한다. TFLite 작업 라이브러리를 사용하면 모바일에 최적화된 머신러닝 모델을 모바일 앱에 쉽게 통합할 수 있다. 객체 감지, 이미지 분류, 텍스트 분류를 비롯하여 널리 사용되는 머신러닝 사용 사례를 많이 지원합니다. 코드 몇 줄로 TFLite 모델을 로드하고 실행할 수 있다.

 

모델 추가

 

 

안드로이드 프로젝트에서 assets 폴더를 생성하고 tflite를 위치시킨다.

 

gradle (라이브러리 종속)

 

app/build.gradle 파일로 이동하여 다음 코드를 dependencies 구성에 추가한다.

 

implementation 'org.tensorflow:tensorflow-lite-task-vision:0.3.1'

 

API

 

  • 이미지 / 스트림 준비: TensorImage
  • 탐지 프로그램 객체 ObjectDetector를 만든다.
  • 위의 두 객체 연결 : detect(image)

 

객체를 탐지하고 실행하는 것은 MainActivity.kt 파일의 runObjectDetection(bitmap: Bitmap) 함수 내에서 가능하다.

 

/**
* TFLite Object Detection Function
*/
private fun runObjectDetection(bitmap: Bitmap) {
    //TODO: Add object detection code here
}

 

이미지 객체 만들기

 

이미지는 기기 내 카메라 또는 앱의 UI에서 선택한 미리 설정된 이미지를 사용한다. 입력 이미지는 Bitmap 형식으로 디코딩되고 runObjectDetection 메서드에 전달된다.

 

TFLite는 Bitmap에서 TensorImage를 생성하는 간단한 API를 제공한다. 아래의 코드를 runObjectDetection(bitmap:Bitmap) 상단에 추가한다.

 

// Step 1: create TFLite's TensorImage object
val image = TensorImage.fromBitmap(bitmap)

 

탐지 프로그램 인스턴스 만들기

 

TFLite 작업 라이브러리는 빌더 디자인 패턴을 따른다. 구성을 빌더에 전달한 다음, 여기에서 탐지기를 획득힌다. 객체 탐지기의 민감도를 조정하는 옵션을 비롯하여 몇 가지 옵션을 구성할 수 있다.

 

  • 최대 결과 (모델에서 탐지해야 하는 최대 객체 수)
  • 점수 임계값 (감지된 객체를 반환하는 객체 탐지기의 신뢰도)
  • 라벨 허용 목록 / 거부 목록 (사전 정의된 목록에서 객체 허용 / 거부)

 

TFLite 모델 파일 이름과 구성 옵션을 지정하여 객체 탐지기 인스턴스를 초기화한다.

 

// Step 2: Initialize the detector object
val options = ObjectDetector.ObjectDetectorOptions.builder()
    .setMaxResults(5)
    .setScoreThreshold(0.5f)
    .build()
val detector = ObjectDetector.createFromFileAndOptions(
    this, // the application context
    "model.tflite", // must be same as the filename in assets folder
    options
)

 

https://developers.google.cn/codelabs/tflite-object-detection-android?hl=ko#4 

 

TensorFlow Lite (Android)를 사용하여 커스텀 객체 감지 모델 빌드 및 배포  |  Google for Developers

이 Codelab에서는 이미지에서 객체를 감지할 수 있는 Android 앱을 빌드합니다. 먼저 TFLite Model Maker를 사용하여 커스텀 객체 감지 모델을 학습시킨 다음 TFLite 태스크 라이브러리를 사용하여 배포합

developers.google.cn

 

728x90
반응형
LIST