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 객체를 초기화합니다. | |
공개 메서드
정적 텐서 이미지 | |
정적 텐서 이미지 | fromBitmap (비트맵 비트맵) |
비트맵 | 비트맵 가져오기 () 이 TensorImage 의 Bitmap 표현을 반환합니다. |
바이트 버퍼 | getBuffer () 예상 데이터 유형으로 이 TensorImage 의 ByteBuffer 표현을 반환합니다. |
색상 공간 유형 | getColorSpaceType () 이 TensorImage 의 색 공간 유형을 가져옵니다. |
데이터 형식 | getDataType () 이 TensorImage 의 데이터 유형을 가져옵니다. |
정수 | 높이 () 이미지 높이를 가져옵니다. |
영상 | getMedia 이미지 () 이 TensorImage 의 Image 표현을 반환합니다. |
텐서버퍼 | getTensorBuffer () 예상 데이터 유형으로 이 TensorImage 의 TensorBuffer 표현을 반환합니다. |
정수 | 너비 가져오기 () 이미지 너비를 가져옵니다. |
무효의 | |
무효의 | 로드 (비트맵 비트맵) Bitmap 이미지 객체를 이 TensorImage 에 로드합니다. |
무효의 | 로드 (int[] 픽셀, int[] 모양) 내부 픽셀을 나타내는 이 TensorImage 에 RGB 픽셀로 int 배열을 로드합니다. |
무효의 | 로드 (float[] 픽셀, int[] 모양) 내부 픽셀을 나타내는 이 TensorImage 에 부동 배열을 RGB 픽셀로 로드합니다. |
무효의 | 로드 ( ByteBuffer 버퍼, ImageProperties imageProperties) 특정 ImageProperties 와 함께 픽셀 값을 포함하는 ByteBuffer 를 로드합니다. |
무효의 | 로드 ( TensorBuffer 버퍼, ImageProperties imageProperties) 특정 ImageProperties 를 사용하여 픽셀 값을 포함하는 TensorBuffer 를 로드합니다. |
무효의 | 로드 (이미지 이미지) 이 TensorImage 에 Image 객체를 로드합니다. |
상속된 메서드
공개 생성자
공개 TensorImage ()
TensorImage
객체를 초기화합니다.
참고: 이 TensorImage
의 데이터 유형은 DataType.UINT8
입니다. 다른 데이터 유형을 선호하는 경우 TensorImage(DataType)
를 사용하십시오.
공개 TensorImage ( 데이터 유형 데이터 유형)
지정된 데이터 유형으로 TensorImage
객체를 초기화합니다.
getTensorBuffer()
및 getBuffer()
사용과 같이 이 TensorImage
에서 TensorBuffer
또는 ByteBuffer
를 가져올 때 데이터 값은 지정된 데이터 유형으로 변환됩니다.
참고: TensorImage
의 모양은 고정되어 있지 않습니다. 이 TensorImage
에 로드되는 이미지의 모양으로 조정할 수 있습니다.
매개변수
데이터 형식 | 결과 TensorBuffer 의 예상 데이터 유형입니다. 유형은 TensorImage 의 수명 동안 항상 고정됩니다. 데이터 유형을 변환하려면 createFrom(TensorImage, DataType) 을 사용하여 복사본을 만들고 데이터 유형을 동시에 변환합니다. |
---|
던지다
IllegalArgumentException | dataType 이 DataType.UINT8 도 DataType.FLOAT32 도 아닌 경우 |
---|
공개 메서드
공개 정적 TensorImage createFrom ( TensorImage src, DataType 데이터 유형)
원하는 데이터 유형으로 주어진 TensorImage
의 전체 복사본을 만듭니다.
매개변수
src | 복사할 TensorImage |
---|---|
데이터 형식 | 새로 생성된 TensorImage 의 예상 데이터 유형 |
보고
- 데이터가
src
에서 복사되고 데이터 유형이dataType
인TensorImage
public static TensorImage fromBitmap (비트맵 비트맵)
공개 비트맵 getBitmap ()
이 TensorImage
의 Bitmap
표현을 반환합니다.
저장된 데이터가 uint8이 아닌 경우 숫자 캐스팅 및 클램핑이 적용됩니다.
ALPHA_8
Bitmap에서 픽셀을 가져오는 안정적인 방법은 copyPixelsToBuffer
를 사용하는 것입니다. `setPixels()` 및 `getPixels`와 같은 비트맵 메서드는 작동하지 않습니다.
중요: 참고용일 뿐입니다. 수정하지 마십시오. 성능상의 이유로 여기에서 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.
보고
- 이
TensorBuffer
의ColorSpaceType
에 따라ARGB_8888
구성("A" 채널은 항상 불투명함) 또는ALPHA_8
의Bitmap
에 대한 참조입니다.
던지다
불법 상태 예외 | TensorImage 가 데이터를 로드하지 않는 경우 |
---|
공개 ByteBuffer getBuffer ()
예상 데이터 유형으로 이 TensorImage
의 ByteBuffer
표현을 반환합니다.
저장된 데이터가 TensorImage
의 데이터 유형과 다른 경우 숫자 캐스팅 및 클램핑이 적용됩니다.
중요: 참고용일 뿐입니다. 수정하지 마십시오. 성능상의 이유로 여기에서 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.
본질적으로 getTensorBuffer().getBuffer()
의 지름길입니다.
보고
- 이미지 데이터를 보유하는
ByteBuffer
에 대한 참조
던지다
불법 상태 예외 | TensorImage 가 데이터를 로드하지 않는 경우 |
---|
공개 ColorSpaceType getColorSpaceType ()
이 TensorImage
의 색 공간 유형을 가져옵니다.
던지다
불법 상태 예외 | TensorImage 가 데이터를 로드하지 않는 경우 |
---|
공개 데이터 유형 getDataType ()
이 TensorImage
의 데이터 유형을 가져옵니다.
보고
- 데이터 유형. 현재
DataType.UINT8
및DataType.FLOAT32
만 지원됩니다.
공개 int getHeight ()
이미지 높이를 가져옵니다.
던지다
불법 상태 예외 | TensorImage 가 데이터를 로드하지 않는 경우 |
---|---|
IllegalArgumentException | 기본 데이터가 손상된 경우 |
공개 이미지 getMediaImage ()
이 TensorImage
의 Image
표현을 반환합니다.
이 방법은 TensorImage
가 Image
에 의해 지원되는 경우에만 작동합니다. 즉, 먼저 load(Image)
를 통해 Image
를 로드해야 합니다.
중요: 참고용일 뿐입니다. 수정하지 마십시오. 성능상의 이유로 여기에서 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.
보고
- 이
TensorBuffer
의ColorSpaceType
에 따라ARGB_8888
구성("A" 채널은 항상 불투명함) 또는ALPHA_8
의Bitmap
에 대한 참조입니다.
던지다
불법 상태 예외 | TensorImage 가 데이터를 로드하지 않는 경우 |
---|
공개 TensorBuffer getTensorBuffer ()
예상 데이터 유형으로 이 TensorImage
의 TensorBuffer
표현을 반환합니다.
저장된 데이터가 TensorImage
의 데이터 유형과 다른 경우 숫자 캐스팅 및 클램핑이 적용됩니다.
중요: 참고용일 뿐입니다. 수정하지 마십시오. 성능상의 이유로 여기에서 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.
보고
- 이미지 데이터를 보유하는
TensorBuffer
에 대한 참조
던지다
불법 상태 예외 | TensorImage 가 데이터를 로드하지 않는 경우 |
---|
공개 정수 getWidth ()
이미지 너비를 가져옵니다.
던지다
불법 상태 예외 | TensorImage 가 데이터를 로드하지 않는 경우 |
---|---|
IllegalArgumentException | 기본 데이터가 손상된 경우 |
공개 무효 로드 (텐서버퍼 버퍼, ColorSpaceType colorSpaceType )
특정 ColorSpaceType
의 픽셀 값을 포함하는 TensorBuffer
를 로드합니다.
ColorSpaceType.RGB
및 ColorSpaceType.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
에 로드합니다.
참고: TensorImage
에 DataType.UINT8
이외의 데이터 유형이 있는 경우 getTensorBuffer()
및 getBuffer()
를 호출할 때 숫자 캐스팅 및 클램핑이 적용됩니다. 여기서 Bitmap
은 TensorBuffer
로 변환됩니다.
중요: 비트맵을 로드할 때 더 이상 호출자 측에서 비트맵을 수정하지 마십시오. 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 픽셀로 로드합니다.
참고: 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 에서 이미지 높이, 너비 및 색 공간 유형으로 표시된 이미지 크기보다 작은 경우 |
---|
공개 무효 하중 (이미지 이미지)
이 TensorImage
에 Image
객체를 로드합니다.
이 방법의 주요 용도는 Image
객체를 https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview 에 대한 모델 입력으로 로드하는 것입니다. Image
에서 지원하는 TensorImage
는 ImageProcessor
에서 지원되지 않습니다.
* image
의 ImageFormat
이 YUV_420_888이 아닌 경우 @throws IllegalArgumentException
매개변수
영상 |
---|