TensorImage

공개 클래스 TensorImage

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

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

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

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

중요: 모든 방법이 스레드로부터 안전한 것으로 입증되지는 않았습니다.

공공 생성자

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

공개 방법

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

상속된 메서드

공공 생성자

공개 TensorImage ()

TensorImage 객체를 초기화합니다.

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

공개 TensorImage ( DataType dataType)

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

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

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

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

공개 방법

공개 정적 TensorImage createFrom ( TensorImage src, DataType dataType)

원하는 데이터 유형으로 지정된 TensorImage 의 전체 복사본을 만듭니다.

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

공개 정적 TensorImage fromBitmap (비트맵 비트맵)

공개 비트맵 getBitmap ()

TensorImageBitmap 표현을 반환합니다.

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

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

중요: 이는 단지 참고용일 뿐입니다. 수정하지 마십시오. 성능 문제로 인해 여기에 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.

보고
던지기
IllegalStateException TensorImage 데이터를 로드하지 않는 경우

공개 ByteBuffer getBuffer ()

예상되는 데이터 유형을 사용하여 이 TensorImageByteBuffer 표현을 반환합니다.

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

중요: 이는 단지 참고용일 뿐입니다. 수정하지 마십시오. 성능 문제로 인해 여기에 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.

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

보고
  • 이미지 데이터를 보유하는 ByteBuffer 에 대한 참조
던지기
IllegalStateException TensorImage 데이터를 로드하지 않는 경우

공개 ColorSpaceType getColorSpaceType ()

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

던지기
IllegalStateException TensorImage 데이터를 로드하지 않는 경우

공개 데이터 유형 getDataType ()

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

보고

공개 int getHeight ()

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

던지기
IllegalStateException TensorImage 데이터를 로드하지 않는 경우
IllegalArgumentException 기본 데이터가 손상된 경우

공개 이미지 getMediaImage ()

TensorImageImage 표현을 반환합니다.

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

중요: 이는 단지 참고용일 뿐입니다. 수정하지 마십시오. 성능 문제로 인해 여기에 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.

보고
던지기
IllegalStateException TensorImage 데이터를 로드하지 않는 경우

공개 TensorBuffer getTensorBuffer ()

예상되는 데이터 유형을 사용하여 이 TensorImageTensorBuffer 표현을 반환합니다.

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

중요: 이는 단지 참고용일 뿐입니다. 수정하지 마십시오. 성능 문제로 인해 여기에 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.

보고
  • 이미지 데이터를 보유하는 TensorBuffer 에 대한 참조
던지기
IllegalStateException TensorImage 데이터를 로드하지 않는 경우

공개 int getWidth ()

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

던지기
IllegalStateException TensorImage 데이터를 로드하지 않는 경우
IllegalArgumentException 기본 데이터가 손상된 경우

공개 무효 로드 ( TensorBuffer 버퍼, 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 버퍼의 모양이 색 공간 유형과 일치하지 않거나, 색 공간 유형이 지원되지 않는 경우

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

TensorImageBitmap 이미지 객체를 로드합니다.

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

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

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

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

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

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

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

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

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

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

참고: TensorImage DataType.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 가 지원하는 TensorImage ImageProcessor 에서 지원되지 않습니다.

* imageImageFormat YUV_420_888이 아닌 경우 @throws IllegalArgumentException

매개변수
영상