ObjectDetector

public 최종 클래스 ObjectDetector

이미지에서 객체 인식을 수행합니다.

이 API는 TFLite 모델 메타데이터가 포함된 TFLite 모델을 예상합니다.

이 API는 이미지 입력 텐서 1개와 출력 텐서 4개가 있는 모델을 지원합니다. 보다 구체적으로 요구사항은 다음과 같습니다.

  • 입력 이미지 텐서 (kTfLiteUInt8/kTfLiteFloat32)
    • 이미지 입력 크기는 [batch x height x width x channels]입니다.
    • 일괄 추론은 지원되지 않습니다 (batch는 1이어야 함).
    • RGB 입력만 지원됩니다 (channels는 3이어야 함).
    • 유형이 kTfLiteFloat32이면 입력 정규화를 위해 NormalizationOptions를 메타데이터에 연결해야 합니다.
  • 출력 텐서는 DetectionPostProcess 작업의 출력 4개여야 합니다.즉,
    • 위치 텐서 (kTfLiteFloat32):
      • 크기 [1 x num_results x 4]의 텐서로, 경계 상자를 [top, left, right, bottom] 형식으로 나타내는 내부 배열입니다.
      • BoundingBoxProperties를 메타데이터에 연결해야 하며 type=BOUNDARIEScoordinate_type=RATIO를 지정해야 합니다.
    • 클래스 텐서 (kTfLiteFloat32):
      • 크기가 [1 x num_results]인 텐서로 각 값은 클래스의 정수 색인을 나타냅니다.
      • 라벨 맵이 TENSOR_VALUE_LABELS 관련 파일로 메타데이터에 연결된 경우 텐서 값을 라벨로 변환하는 데 사용됩니다.
    • 점수 텐서 (kTfLiteFloat32):
      • 텐서 크기가 [1 x num_results]이며 각 값은 감지된 객체의 점수를 나타냅니다.
    • 감지 텐서 수 (kTfLiteFloat32):
      • 정수 num_results를 크기 [1]의 텐서로 사용합니다.

이러한 모델의 예는 TensorFlow Hub에서 확인할 수 있습니다.

중첩된 클래스

클래스 ObjectDetector.ObjectDetectorOptions ObjectDetector 설정 옵션 

공개 메서드

정적 ObjectDetector
createFromBuffer(컨텍스트 컨텍스트, ByteBuffer modelBuffer)
모델 버퍼와 기본 ObjectDetector.ObjectDetectorOptions로부터 ObjectDetector 인스턴스를 생성합니다.
정적 ObjectDetector
createFromFile(컨텍스트 컨텍스트, String modelPath)
모델 파일과 기본 ObjectDetector.ObjectDetectorOptions에서 ObjectDetector 인스턴스를 생성합니다.
정적 ObjectDetector
createFromFile(컨텍스트 컨텍스트, 파일 modelFile)
모델 파일과 기본 ObjectDetector.ObjectDetectorOptions에서 ObjectDetector 인스턴스를 생성합니다.
정적 ObjectDetector
createFromOptions(컨텍스트 컨텍스트, ObjectDetector.ObjectDetectorOptionsDetectorOptions)
ObjectDetector.ObjectDetectorOptions에서 ObjectDetector 인스턴스를 만듭니다.
ObjectDetectorResult
detect(MPImage 이미지)
기본 이미지 처리 옵션을 사용하여 제공된 단일 이미지에서 객체 감지를 수행합니다. 즉,
ObjectDetectorResult
detect(MPImage 이미지, ImageProcessingOptions imageProcessingOptions)
제공된 단일 이미지에서 객체 인식을 수행합니다.
void
detectAsync(MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)
실시간 이미지 데이터를 전송하여 객체 인식을 수행합니다. 결과는 ObjectDetector.ObjectDetectorOptions에서 제공하는 OutputHandler.ResultListener를 통해 확인할 수 있습니다.
void
detectAsync(MPImage 이미지, 긴 timestampMs)
실시간 이미지 데이터를 전송하여 기본 이미지 처리 옵션(예:
ObjectDetectorResult
detectForVideo(MPImage 이미지, ImageProcessingOptions imageProcessingOptions, long timestampMs)
제공된 동영상 프레임에서 객체 인식을 실행합니다.
ObjectDetectorResult
detectForVideo(MPImage 이미지, 긴 timestampMs)
기본 이미지 처리 옵션을 사용하여 제공된 동영상 프레임에서 객체 감지를 수행합니다. 즉,

상속된 메서드

공개 메서드

public static ObjectDetector createFromBuffer (Context context, ByteBuffer modelBuffer)

모델 버퍼와 기본 ObjectDetector.ObjectDetectorOptions로부터 ObjectDetector 인스턴스를 생성합니다.

매개변수
context Android ERROR(/Context)
modelBuffer 감지 모델의 직접 ByteBuffer 또는 ERROR(/MappedByteBuffer)입니다.
생성 값
ObjectDetector 생성 중 오류가 발생하는 경우

public static ObjectDetector createFromFile (Context context, String modelPath)

모델 파일과 기본 ObjectDetector.ObjectDetectorOptions에서 ObjectDetector 인스턴스를 생성합니다.

매개변수
context Android ERROR(/Context)
modelPath 애셋에 메타데이터가 있는 감지 모델의 경로
생성 값
ObjectDetector 생성 중 오류가 발생하는 경우

public static ObjectDetector createFromFile (Context context, File modelFile)

모델 파일과 기본 ObjectDetector.ObjectDetectorOptions에서 ObjectDetector 인스턴스를 생성합니다.

매개변수
context Android ERROR(/Context)
modelFile 감지 모델 File 인스턴스
생성 값
IOException tflite 모델 파일을 열 때 I/O 오류가 발생하는지 여부
ObjectDetector 생성 중 오류가 발생하는 경우

public static ObjectDetector createFromOptions (Context context, ObjectDetector.ObjectDetectorOptionsDetectorOptions)

ObjectDetector.ObjectDetectorOptions에서 ObjectDetector 인스턴스를 만듭니다.

매개변수
context Android ERROR(/Context)
detectorOptions ObjectDetector.ObjectDetectorOptions 인스턴스
생성 값
ObjectDetector 생성 중 오류가 발생하는 경우

공개 ObjectDetectorResult detect (MPImage 이미지)

기본 이미지 처리 옵션을 사용하여, 즉 회전 적용 없이 제공된 단일 이미지에서 객체 감지를 수행합니다. ObjectDetectorERROR(/RunningMode.IMAGE)로 생성된 경우에만 이 메서드를 사용합니다.

ObjectDetector는 다음 색상 공간 유형을 지원합니다.

매개변수
이미지 처리할 MediaPipe MPImage 객체입니다.
생성 값
내부 오류가 있는 경우

공개 ObjectDetectorResult detect (MPImage 이미지, ImageProcessingOptions imageProcessingOptions)

제공된 단일 이미지에서 객체 인식을 수행합니다. ERROR(/RunningMode.IMAGE)를 사용하여 ObjectDetector를 만들 때만 이 메서드를 사용합니다.

ObjectDetector는 다음 색상 공간 유형을 지원합니다.

매개변수
이미지 처리할 MediaPipe MPImage 객체입니다.
imageProcessingOptions 추론을 실행하기 전에 입력 이미지를 처리하는 방법을 지정하는 ImageProcessingOptions입니다. 관심 지역은 이 작업에서 지원되지 않습니다. ImageProcessingOptions.regionOfInterest()를 지정하면 이 메서드에서 IllegalArgumentException이 발생합니다.
생성 값
IllegalArgumentException ImageProcessingOptions가 관심 지역을 지정하는 경우입니다.
내부 오류가 있는 경우

public void detectAsync (MPImage 이미지, ImageProcessingOptions imageProcessingOptions, long timestampMs)

실시간 이미지 데이터를 전송하여 객체 인식을 수행합니다. 결과는 ObjectDetector.ObjectDetectorOptions에서 제공하는 OutputHandler.ResultListener를 통해 확인할 수 있습니다. ObjectDetectorERROR(/RunningMode.LIVE_STREAM)로 생성된 경우에만 이 메서드를 사용합니다.

입력 이미지가 객체 감지기로 전송되는 시점을 나타내는 타임스탬프 (밀리초)를 제공해야 합니다. 입력 타임스탬프는 단조 증가해야 합니다.

ObjectDetector는 다음 색상 공간 유형을 지원합니다.

매개변수
이미지 처리할 MediaPipe MPImage 객체입니다.
imageProcessingOptions 추론을 실행하기 전에 입력 이미지를 처리하는 방법을 지정하는 ImageProcessingOptions입니다. 관심 지역은 이 작업에서 지원되지 않습니다. ImageProcessingOptions.regionOfInterest()를 지정하면 이 메서드에서 IllegalArgumentException이 발생합니다.
timestampMs 입력 타임스탬프 (밀리초)입니다.
생성 값
IllegalArgumentException ImageProcessingOptions가 관심 지역을 지정하는 경우입니다.
내부 오류가 있는 경우

public void detectAsync (MPImage 이미지, long timestampMs)

실시간 이미지 데이터를 전송하여 기본 이미지 처리 옵션을 사용하여(예: 회전을 적용하지 않고) 객체 감지를 수행합니다. 결과는 ObjectDetector.ObjectDetectorOptions에서 제공하는 OutputHandler.ResultListener를 통해 확인할 수 있습니다. ERROR(/RunningMode.LIVE_STREAM)를 사용하여 ObjectDetector를 만들 때만 이 메서드를 사용합니다.

입력 이미지가 객체 감지기로 전송되는 시점을 나타내는 타임스탬프 (밀리초)를 제공해야 합니다. 입력 타임스탬프는 단조 증가해야 합니다.

ObjectDetector는 다음 색상 공간 유형을 지원합니다.

매개변수
이미지 처리할 MediaPipe MPImage 객체입니다.
timestampMs 입력 타임스탬프 (밀리초)입니다.
생성 값
내부 오류가 있는 경우

public ObjectDetectorResult detectForVideo (MPImage 이미지, ImageProcessingOptions imageProcessingOptions, long timestampMs)

제공된 동영상 프레임에서 객체 인식을 실행합니다. ERROR(/RunningMode.VIDEO)를 사용하여 ObjectDetector를 만들 때만 이 메서드를 사용합니다.

동영상 프레임의 타임스탬프 (밀리초)를 제공해야 합니다. 입력 타임스탬프는 단조 증가해야 합니다.

ObjectDetector는 다음 색상 공간 유형을 지원합니다.

매개변수
이미지 처리할 MediaPipe MPImage 객체입니다.
imageProcessingOptions 추론을 실행하기 전에 입력 이미지를 처리하는 방법을 지정하는 ImageProcessingOptions입니다. 관심 지역은 이 작업에서 지원되지 않습니다. ImageProcessingOptions.regionOfInterest()를 지정하면 이 메서드에서 IllegalArgumentException이 발생합니다.
timestampMs 입력 타임스탬프 (밀리초)입니다.
생성 값
IllegalArgumentException ImageProcessingOptions가 관심 지역을 지정하는 경우입니다.
내부 오류가 있는 경우

공개 ObjectDetectorResult detectForVideo (MPImage 이미지, 긴 timestampMs)

기본 이미지 처리 옵션을 사용하여, 즉 회전 적용 없이 제공된 동영상 프레임에서 객체 감지를 수행합니다. ObjectDetectorERROR(/RunningMode.VIDEO)로 생성된 경우에만 이 메서드를 사용합니다.

동영상 프레임의 타임스탬프 (밀리초)를 제공해야 합니다. 입력 타임스탬프는 단조 증가해야 합니다.

ObjectDetector는 다음 색상 공간 유형을 지원합니다.

매개변수
이미지 처리할 MediaPipe MPImage 객체입니다.
timestampMs 입력 타임스탬프 (밀리초)입니다.
생성 값
내부 오류가 있는 경우