이미지에서 객체 인식을 수행합니다.
이 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=BOUNDARIES
및coordinate_type=RATIO
를 지정해야 합니다.
- 크기
- 클래스 텐서 (
kTfLiteFloat32
):- 크기가
[1 x num_results]
인 텐서로 각 값은 클래스의 정수 색인을 나타냅니다. - 라벨 맵이
TENSOR_VALUE_LABELS
관련 파일로 메타데이터에 연결된 경우 텐서 값을 라벨로 변환하는 데 사용됩니다.
- 크기가
- 점수 텐서 (
kTfLiteFloat32
):- 텐서 크기가
[1 x num_results]
이며 각 값은 감지된 객체의 점수를 나타냅니다.
- 텐서 크기가
- 감지 텐서 수 (
kTfLiteFloat32
):- 정수 num_results를 크기
[1]
의 텐서로 사용합니다.
- 정수 num_results를 크기
- 위치 텐서 (
이러한 모델의 예는 TensorFlow Hub에서 확인할 수 있습니다.
중첩된 클래스
클래스 | ObjectDetector.ObjectDetectorOptions | ObjectDetector 설정 옵션 |
공개 메서드
상속된 메서드
공개 메서드
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 이미지)
기본 이미지 처리 옵션을 사용하여, 즉 회전 적용 없이 제공된 단일 이미지에서 객체 감지를 수행합니다. ObjectDetector
가 ERROR(/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
를 통해 확인할 수 있습니다. ObjectDetector
가 ERROR(/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)
기본 이미지 처리 옵션을 사용하여, 즉 회전 적용 없이 제공된 동영상 프레임에서 객체 감지를 수행합니다. ObjectDetector
가 ERROR(/RunningMode.VIDEO)
로 생성된 경우에만 이 메서드를 사용합니다.
동영상 프레임의 타임스탬프 (밀리초)를 제공해야 합니다. 입력 타임스탬프는 단조 증가해야 합니다.
ObjectDetector
는 다음 색상 공간 유형을 지원합니다.
매개변수
이미지 | 처리할 MediaPipe MPImage 객체입니다. |
---|---|
timestampMs | 입력 타임스탬프 (밀리초)입니다. |
생성 값
내부 오류가 있는 경우 |