TensorImage

공개 클래스 TensorImage

TensorImage는 Image 객체의 래퍼 클래스입니다. TFLite.support 라이브러리에서 이미지 처리 유틸리티를 사용할 때 처음에는 변형 유형의 이미지 객체를 TensorImage로 변환하는 것이 일반적입니다.

현재 RGB 이미지만 지원되며 A 채널은 항상 무시됩니다.

데이터 저장에 대한 세부 정보: TensorImage 객체는 Bitmap 또는 TensorBuffer 의 2가지 잠재적인 소스를 가질 수 있습니다. TensorImage 는 상태를 유지하고 필요할 때만 하나를 다른 것으로 변환합니다. TensorImage 의 일반적인 사용 사례는 먼저 Bitmap 이미지를 로드한 다음 ImageProcessor 를 사용하여 처리하고 마지막으로 TensorBuffer 의 기본 ByteBuffer 를 가져와 TFLite 인터프리터에 공급하는 것입니다.

중요: 최상의 성능을 달성하기 위해 TensorImage 는 가능할 때마다 데이터 복사를 피합니다. 따라서 데이터를 소유하지 않습니다. 호출자는 load(Bitmap) 또는 load(TensorBuffer, ColorSpaceType) 에 전달된 데이터 객체를 수정해서는 안 됩니다.

중요: 모든 방법이 스레드로부터 안전한 것으로 입증된 것은 아닙니다.

공개 생성자

텐서 이미지 ()
TensorImage 객체를 초기화합니다.
TensorImage ( 데이터 유형 데이터 유형)
지정된 데이터 유형으로 TensorImage 객체를 초기화합니다.

공개 메서드

정적 텐서 이미지
createFrom ( TensorImage src, DataType 데이터 유형)
원하는 데이터 유형으로 주어진 TensorImage 의 전체 복사본을 만듭니다.
정적 텐서 이미지
fromBitmap (비트맵 비트맵)
Bitmap 을 사용하여 DataType.UINT8TensorImage 개체를 초기화합니다.
비트맵
비트맵 가져오기 ()
TensorImageBitmap 표현을 반환합니다.
바이트 버퍼
getBuffer ()
예상 데이터 유형으로 이 TensorImageByteBuffer 표현을 반환합니다.
색상 공간 유형
getColorSpaceType ()
TensorImage 의 색 공간 유형을 가져옵니다.
데이터 형식
getDataType ()
TensorImage 의 데이터 유형을 가져옵니다.
정수
높이 ()
이미지 높이를 가져옵니다.
영상
getMedia 이미지 ()
TensorImageImage 표현을 반환합니다.
텐서버퍼
getTensorBuffer ()
예상 데이터 유형으로 이 TensorImageTensorBuffer 표현을 반환합니다.
정수
너비 가져오기 ()
이미지 너비를 가져옵니다.
무효의
로드 (텐서버퍼 버퍼, ColorSpaceType colorSpaceType )
특정 ColorSpaceType 의 픽셀 값을 포함하는 TensorBuffer 를 로드합니다.
무효의
로드 (비트맵 비트맵)
Bitmap 이미지 객체를 이 TensorImage 에 로드합니다.
무효의
로드 (int[] 픽셀, int[] 모양)
내부 픽셀을 나타내는 이 TensorImage 에 RGB 픽셀로 int 배열을 로드합니다.
무효의
로드 (float[] 픽셀, int[] 모양)
내부 픽셀을 나타내는 이 TensorImage 에 부동 배열을 RGB 픽셀로 로드합니다.
무효의
로드 ( ByteBuffer 버퍼, ImageProperties imageProperties)
특정 ImageProperties 와 함께 픽셀 값을 포함하는 ByteBuffer 를 로드합니다.
무효의
로드 ( TensorBuffer 버퍼, ImageProperties imageProperties)
특정 ImageProperties 를 사용하여 픽셀 값을 포함하는 TensorBuffer 를 로드합니다.
무효의
로드 (이미지 이미지)
TensorImageImage 객체를 로드합니다.

상속된 메서드

공개 생성자

공개 TensorImage ()

TensorImage 객체를 초기화합니다.

참고: 이 TensorImage 의 데이터 유형은 DataType.UINT8 입니다. 다른 데이터 유형을 선호하는 경우 TensorImage(DataType) 를 사용하십시오.

공개 TensorImage ( 데이터 유형 데이터 유형)

지정된 데이터 유형으로 TensorImage 객체를 초기화합니다.

getTensorBuffer()getBuffer() 사용과 같이 이 TensorImage 에서 TensorBuffer 또는 ByteBuffer 를 가져올 때 데이터 값은 지정된 데이터 유형으로 변환됩니다.

참고: TensorImage 의 모양은 고정되어 있지 않습니다. 이 TensorImage 에 로드되는 이미지의 모양으로 조정할 수 있습니다.

매개변수
데이터 형식 결과 TensorBuffer 의 예상 데이터 유형입니다. 유형은 TensorImage 의 수명 동안 항상 고정됩니다. 데이터 유형을 변환하려면 createFrom(TensorImage, DataType) 을 사용하여 복사본을 만들고 데이터 유형을 동시에 변환합니다.
던지다
IllegalArgumentException dataTypeDataType.UINT8DataType.FLOAT32 도 아닌 경우

공개 메서드

공개 정적 TensorImage createFrom ( TensorImage src, DataType 데이터 유형)

원하는 데이터 유형으로 주어진 TensorImage 의 전체 복사본을 만듭니다.

매개변수
src 복사할 TensorImage
데이터 형식 새로 생성된 TensorImage 의 예상 데이터 유형
보고
  • 데이터가 src 에서 복사되고 데이터 유형이 dataTypeTensorImage

public static TensorImage fromBitmap (비트맵 비트맵)

공개 비트맵 getBitmap ()

TensorImageBitmap 표현을 반환합니다.

저장된 데이터가 uint8이 아닌 경우 숫자 캐스팅 및 클램핑이 적용됩니다.

ALPHA_8 Bitmap에서 픽셀을 가져오는 안정적인 방법은 copyPixelsToBuffer 를 사용하는 것입니다. `setPixels()` 및 `getPixels`와 같은 비트맵 메서드는 작동하지 않습니다.

중요: 참고용일 뿐입니다. 수정하지 마십시오. 성능상의 이유로 여기에서 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.

보고
던지다
불법 상태 예외 TensorImage 가 데이터를 로드하지 않는 경우

공개 ByteBuffer getBuffer ()

예상 데이터 유형으로 이 TensorImageByteBuffer 표현을 반환합니다.

저장된 데이터가 TensorImage 의 데이터 유형과 다른 경우 숫자 캐스팅 및 클램핑이 적용됩니다.

중요: 참고용일 뿐입니다. 수정하지 마십시오. 성능상의 이유로 여기에서 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.

본질적으로 getTensorBuffer().getBuffer() 의 지름길입니다.

보고
  • 이미지 데이터를 보유하는 ByteBuffer 에 대한 참조
던지다
불법 상태 예외 TensorImage 가 데이터를 로드하지 않는 경우

공개 ColorSpaceType getColorSpaceType ()

TensorImage 의 색 공간 유형을 가져옵니다.

던지다
불법 상태 예외 TensorImage 가 데이터를 로드하지 않는 경우

공개 데이터 유형 getDataType ()

TensorImage 의 데이터 유형을 가져옵니다.

보고

공개 int getHeight ()

이미지 높이를 가져옵니다.

던지다
불법 상태 예외 TensorImage 가 데이터를 로드하지 않는 경우
IllegalArgumentException 기본 데이터가 손상된 경우

공개 이미지 getMediaImage ()

TensorImageImage 표현을 반환합니다.

이 방법은 TensorImageImage 에 의해 지원되는 경우에만 작동합니다. 즉, 먼저 load(Image) 를 통해 Image 를 로드해야 합니다.

중요: 참고용일 뿐입니다. 수정하지 마십시오. 성능상의 이유로 여기에서 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.

보고
던지다
불법 상태 예외 TensorImage 가 데이터를 로드하지 않는 경우

공개 TensorBuffer getTensorBuffer ()

예상 데이터 유형으로 이 TensorImageTensorBuffer 표현을 반환합니다.

저장된 데이터가 TensorImage 의 데이터 유형과 다른 경우 숫자 캐스팅 및 클램핑이 적용됩니다.

중요: 참고용일 뿐입니다. 수정하지 마십시오. 성능상의 이유로 여기에서 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.

보고
  • 이미지 데이터를 보유하는 TensorBuffer 에 대한 참조
던지다
불법 상태 예외 TensorImage 가 데이터를 로드하지 않는 경우

공개 정수 getWidth ()

이미지 너비를 가져옵니다.

던지다
불법 상태 예외 TensorImage 가 데이터를 로드하지 않는 경우
IllegalArgumentException 기본 데이터가 손상된 경우

공개 무효 로드 (텐서버퍼 버퍼, ColorSpaceType colorSpaceType )

특정 ColorSpaceType 의 픽셀 값을 포함하는 TensorBuffer 를 로드합니다.

ColorSpaceType.RGBColorSpaceType.GRAYSCALE 만 지원합니다. 다른 색 공간 유형에는 load(TensorBuffer, ImageProperties) 를 사용합니다.

참고: buffer 의 데이터 유형이 이 TensorImage 의 데이터 유형과 일치하지 않으면 getTensorBuffer()getBuffer() 를 호출할 때 숫자 캐스팅 및 클램핑이 적용됩니다.

매개변수
완충기 로드할 TensorBuffer 입니다. 그 모양은 RGB 이미지의 경우 (h, w, 3) 또는 (1, h, w, 3)이어야 하고 GRAYSCALE 이미지의 경우 (h, w) 또는 (1, h, w)여야 합니다.
색상 공간 유형
던지다
IllegalArgumentException 버퍼의 모양이 색 공간 유형과 일치하지 않거나 색 공간 유형이 지원되지 않는 경우

공개 무효 로드 (비트맵 비트맵)

Bitmap 이미지 객체를 이 TensorImage 에 로드합니다.

참고: TensorImageDataType.UINT8 이외의 데이터 유형이 있는 경우 getTensorBuffer()getBuffer() 를 호출할 때 숫자 캐스팅 및 클램핑이 적용됩니다. 여기서 BitmapTensorBuffer 로 변환됩니다.

중요: 비트맵을 로드할 때 더 이상 호출자 측에서 비트맵을 수정하지 마십시오. TensorImage 객체는 비트맵에 의존합니다. 비트맵도 수정될 것입니다. 이 방법에서는 단순히 해당 참조를 보유함으로써 해당 비트맵에 대해 제로 복사 접근 방식을 수행합니다. 필요한 경우 bitmap.copy(bitmap.getConfig(), true) 를 사용하여 복사본을 만듭니다.

참고: 최상의 성능을 얻으려면 메모리 재할당을 방지하기 위해 동일한 모양으로 이미지를 로드하십시오.

매개변수
비트맵
던지다
IllegalArgumentException bitmap 이 ARGB_8888에 없는 경우

공용 무효 로드 (int[] 픽셀, int[] 모양)

내부 픽셀을 나타내는 이 TensorImage 에 RGB 픽셀로 int 배열을 로드합니다.

참고: getTensorBuffer()getBuffer() 를 호출할 때 값을 이 TensorImage 의 데이터 유형으로 변환하기 위해 숫자 캐스팅 및 클램핑이 적용됩니다.

매개변수
픽셀 이미지를 나타내는 RGB 픽셀
모양 이미지의 모양은 (h, w, 3) 형식 또는 (1, h, w, 3) 형식이어야 합니다.
던지다
IllegalArgumentException 모양이 (h, w, 3)도 아니고 (1, h, w, 3)도 아닌 경우

공개 무효 로드 (float[] 픽셀, int[] 모양)

내부 픽셀을 나타내는 이 TensorImage 에 부동 배열을 RGB 픽셀로 로드합니다.

참고: TensorImageDataType.FLOAT32 이외의 데이터 유형이 있는 경우 getTensorBuffer()getBuffer() 를 호출할 때 숫자 캐스팅 및 클램핑이 적용됩니다.

매개변수
픽셀 이미지를 나타내는 RGB 픽셀
모양 이미지의 모양은 (h, w, 3) 형식 또는 (1, h, w, 3) 형식이어야 합니다.
던지다
IllegalArgumentException 모양이 (h, w, 3)도 아니고 (1, h, w, 3)도 아닌 경우

공개 무효 로드 ( ByteBuffer 버퍼, ImageProperties imageProperties)

특정 ImageProperties 와 함께 픽셀 값을 포함하는 ByteBuffer 를 로드합니다.

참고: buffer 의 데이터 유형이 이 TensorImage 의 데이터 유형과 일치하지 않으면 getTensorBuffer()getBuffer() 를 호출할 때 숫자 캐스팅 및 클램핑이 적용됩니다.

매개변수
완충기
이미지 속성
던지다
IllegalArgumentException 버퍼 크기가 ImageProperties 에서 이미지 높이, 너비 및 색 공간 유형으로 표시된 이미지 크기보다 작은 경우

공개 무효 로드 ( TensorBuffer 버퍼, ImageProperties imageProperties)

특정 ImageProperties 를 사용하여 픽셀 값을 포함하는 TensorBuffer 를 로드합니다.

TensorBuffer 의 모양은 이미지 높이와 너비를 결정하는 데 사용되지 않습니다. ImageProperties 를 통해 이미지 속성을 설정합니다.

참고: buffer 의 데이터 유형이 이 TensorImage 의 데이터 유형과 일치하지 않으면 getTensorBuffer()getBuffer() 를 호출할 때 숫자 캐스팅 및 클램핑이 적용됩니다.

매개변수
완충기
이미지 속성
던지다
IllegalArgumentException 버퍼 크기가 ImageProperties 에서 이미지 높이, 너비 및 색 공간 유형으로 표시된 이미지 크기보다 작은 경우

공개 무효 하중 (이미지 이미지)

TensorImageImage 객체를 로드합니다.

이 방법의 주요 용도는 Image 객체를 https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview 에 대한 모델 입력으로 로드하는 것입니다. Image 에서 지원하는 TensorImageImageProcessor 에서 지원되지 않습니다.

* imageImageFormat 이 YUV_420_888이 아닌 경우 @throws IllegalArgumentException

매개변수
영상