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 객체를 초기화합니다. |
|
공개 메서드
정적 TensorImage | |
정적 TensorImage |
fromBitmap(비트맵 비트맵)
|
비트맵 |
getBitmap()
이
TensorImage 의 Bitmap 표현을 반환합니다. |
ByteBuffer |
getBuffer()
예상된 데이터 유형과 함께 이
TensorImage 의 ByteBuffer 표현을 반환합니다. |
ColorSpaceType |
getColorSpaceType()을 실행합니다.
이
TensorImage 의 색상 공간 유형을 가져옵니다. |
DataType |
getDataType()
이
TensorImage 의 데이터 유형을 가져옵니다. |
int |
getHeight()
이미지 높이를 가져옵니다.
|
이미지 |
getMediaImage()
이
TensorImage 의 Image 표현을 반환합니다. |
TensorBuffer |
getTensorBuffer()
필요한 데이터 유형과 함께 이
TensorImage 의 TensorBuffer 표현을 반환합니다. |
int |
getWidth()
이미지 너비를 가져옵니다.
|
void |
load(TensorBuffer 버퍼, ColorSpaceType colorSpaceType)
특정
ColorSpaceType 로 픽셀 값이 포함된 TensorBuffer 를 로드합니다. |
void |
load(비트맵 비트맵)
이
TensorImage 에 Bitmap 이미지 객체를 로드합니다. |
void |
load(int[] pixel, int[] shape)
int 배열을 이
TensorImage 에 RGB 픽셀로 로드하여 내부 픽셀을 나타냅니다. |
void |
load(float[] 픽셀, int[] 도형)
이
TensorImage 에 부동 소수점 배열을 RGB 픽셀로 로드하여 내부 픽셀을 나타냅니다. |
void |
load(ByteBuffer buffer, ImageProperties imageProperties)
특정
ImageProperties 로 픽셀 값이 포함된 ByteBuffer 를 로드합니다. |
void |
load(TensorBuffer 버퍼, ImageProperties imageProperties)
특정
ImageProperties 로 픽셀 값이 포함된 TensorBuffer 를 로드합니다. |
void |
load(이미지 이미지)
이
TensorImage 에 Image 객체를 로드합니다. |
상속된 메서드
공개 생성자
public TensorImage ()
TensorImage
객체를 초기화합니다.
참고: 이 TensorImage
의 데이터 유형은 DataType.UINT8
입니다. 다른 데이터 유형을 선호하면 TensorImage(DataType)
를 사용합니다.
public TensorImage (DataType dataType)
지정된 데이터 유형으로 TensorImage
객체를 초기화합니다.
이 TensorImage
에서 TensorBuffer
또는 ByteBuffer
를 가져올 때(예: getTensorBuffer()
및 getBuffer()
사용) 데이터 값은 지정된 데이터 유형으로 변환됩니다.
참고: TensorImage
의 모양은 고정되어 있지 않습니다. 이 TensorImage
에 로드되는 이미지의 모양에 맞게 조정할 수 있습니다.
매개변수
dataType | 결과 TensorBuffer 의 예상 데이터 유형입니다. 유형은 TensorImage 의 전체 기간 동안 항상 고정됩니다. 데이터 유형을 변환하려면 createFrom(TensorImage, DataType) 를 사용하여 복사본을 만들고 데이터 유형을 동시에 변환합니다. |
---|
생성 값
IllegalArgumentException | dataType 가 DataType.UINT8 도 DataType.FLOAT32 도 아닌 경우
|
---|
공개 메서드
public static TensorImage createFrom (TensorImage src, DataType dataType)
원하는 데이터 유형을 사용하여 지정된 TensorImage
의 깊은 사본을 만듭니다.
매개변수
src | 복사할 TensorImage |
---|---|
dataType | 새로 만든 TensorImage 의 예상 데이터 유형 |
반환 값
- 데이터가
src
에서 복사되고 데이터 유형이dataType
인TensorImage
public static TensorImage fromBitmap (비트맵 비트맵)
public Bitmap getBitmap ()
이 TensorImage
의 Bitmap
표현을 반환합니다.
저장된 데이터가 uint8이 아닌 경우 숫자 변환 및 고정이 적용됩니다.
ALPHA_8
비트맵에서 픽셀을 가져오는 안정적인 방법은 copyPixelsToBuffer
를 사용하는 것입니다. `setPixels()` 및 `getPixels` 와 같은 비트맵 메서드가 작동하지 않습니다.
중요: 참조일 뿐입니다. 수정하지 마세요. 성능상의 이유로 여기에 사본을 만들지는 않지만 수정이 필요하면 사본을 만드세요.
반환 값
- 이
TensorBuffer
의ColorSpaceType
에 따라ARGB_8888
구성 ('A' 채널은 항상 불투명함) 또는ALPHA_8
의Bitmap
참조
생성 값
IllegalStateException | TensorImage 가 데이터를 로드하지 않는 경우
|
---|
공개 ByteBuffer getBuffer ()
예상된 데이터 유형과 함께 이 TensorImage
의 ByteBuffer
표현을 반환합니다.
저장된 데이터가 TensorImage
의 데이터 유형과 다른 경우 숫자 변환 및 고정이 적용됩니다.
중요: 참조일 뿐입니다. 수정하지 마세요. 성능상의 이유로 여기에 사본을 만들지는 않지만 수정이 필요하면 사본을 만드세요.
기본적으로 getTensorBuffer().getBuffer()
의 지름길입니다.
반환 값
- 이미지 데이터를 보유하는
ByteBuffer
에 대한 참조
생성 값
IllegalStateException | TensorImage 가 데이터를 로드하지 않는 경우
|
---|
공개 ColorSpaceType getColorSpaceType ()
이 TensorImage
의 색상 공간 유형을 가져옵니다.
생성 값
IllegalStateException | TensorImage 가 데이터를 로드하지 않는 경우
|
---|
공개 DataType getDataType ()
이 TensorImage
의 데이터 유형을 가져옵니다.
반환 값
- 데이터 유형을 의미합니다 현재는
DataType.UINT8
및DataType.FLOAT32
만 지원됩니다.
public int getHeight ()
이미지 높이를 가져옵니다.
생성 값
IllegalStateException | TensorImage 가 데이터를 로드하지 않는 경우 |
---|---|
IllegalArgumentException | 기본 데이터가 손상된 경우 |
공개 이미지 getMediaImage ()
이 TensorImage
의 Image
표현을 반환합니다.
이 메서드는 TensorImage
가 Image
에서 지원되는 경우에만 작동합니다. 즉, 먼저 load(Image)
를 통해 Image
를 로드해야 합니다.
중요: 참조일 뿐입니다. 수정하지 마세요. 성능상의 이유로 여기에 사본을 만들지는 않지만 수정이 필요하면 사본을 만드세요.
반환 값
- 이
TensorBuffer
의ColorSpaceType
에 따라ARGB_8888
구성 ('A' 채널은 항상 불투명함) 또는ALPHA_8
의Bitmap
참조
생성 값
IllegalStateException | TensorImage 가 데이터를 로드하지 않는 경우
|
---|
public TensorBuffer getTensorBuffer ()
필요한 데이터 유형과 함께 이 TensorImage
의 TensorBuffer
표현을 반환합니다.
저장된 데이터가 TensorImage
의 데이터 유형과 다른 경우 숫자 변환 및 고정이 적용됩니다.
중요: 참조일 뿐입니다. 수정하지 마세요. 성능상의 이유로 여기에 사본을 만들지는 않지만 수정이 필요하면 사본을 만드세요.
반환 값
- 이미지 데이터를 보유하는
TensorBuffer
에 대한 참조
생성 값
IllegalStateException | TensorImage 가 데이터를 로드하지 않는 경우
|
---|
public int getWidth ()
이미지 너비를 가져옵니다.
생성 값
IllegalStateException | TensorImage 가 데이터를 로드하지 않는 경우 |
---|---|
IllegalArgumentException | 기본 데이터가 손상된 경우 |
public void 로드 (TensorBuffer 버퍼, ColorSpaceType colorSpaceType)
특정 ColorSpaceType
로 픽셀 값이 포함된 TensorBuffer
를 로드합니다.
ColorSpaceType.RGB
및 ColorSpaceType.GRAYSCALE
만 지원합니다. 다른 색상 공간 유형에는 load(TensorBuffer, ImageProperties)
를 사용합니다.
참고: buffer
의 데이터 유형이 이 TensorImage
의 데이터 유형과 일치하지 않으면 getTensorBuffer()
및 getBuffer()
를 호출할 때 숫자 변환 및 고정이 적용됩니다.
매개변수
buffer | 로드할 TensorBuffer 입니다. 모양은 RGB 이미지의 경우 (h, w, 3) 또는 (1, h, w, 3), GRAYSCALE 이미지의 경우 (h, w) 또는 (1, h, w)여야 합니다. |
---|---|
colorSpaceType |
생성 값
IllegalArgumentException | 버퍼의 모양이 색 공간 유형과 일치하지 않거나 색 공간 유형이 지원되지 않는 경우 |
---|
public void 로드 (비트맵 비트맵)
이 TensorImage
에 Bitmap
이미지 객체를 로드합니다.
참고: TensorImage
에 DataType.UINT8
이외의 데이터 유형이 있는 경우 getTensorBuffer()
및 getBuffer()
를 호출할 때 숫자 변환 및 고정이 적용됩니다. 여기서 Bitmap
는 TensorBuffer
로 변환됩니다.
중요: 비트맵을 로드할 때 더 이상 호출자 측에서 비트맵을 수정하지 마세요. TensorImage
객체는 비트맵을 사용합니다. 그러면 비트맵도 수정될 것입니다.
이 메서드에서는 단순히 참조를 보유하기만 하면 비트맵에 관해 제로 카피 방식을 실행합니다. 필요한 경우 bitmap.copy(bitmap.getConfig(), true)
를 사용하여 사본을 만듭니다.
참고: 최상의 성능을 얻으려면 메모리 재할당을 방지하기 위해 같은 형태로 이미지를 로드하세요.
매개변수
비트맵 |
---|
생성 값
IllegalArgumentException | bitmap 가 ARGB_8888에 없는 경우
|
---|
public void load (int[] pixel, int[] shape)
int 배열을 이 TensorImage
에 RGB 픽셀로 로드하여 내부 픽셀을 나타냅니다.
참고: getTensorBuffer()
및 getBuffer()
를 호출할 때 값을 이 TensorImage
의 데이터 유형으로 변환하기 위해 숫자 변환 및 고정이 적용됩니다.
매개변수
픽셀 | 이미지를 나타내는 RGB 픽셀 |
---|---|
shape | 이미지의 모양으로 (h, w, 3) 형태이거나 (1, h, w, 3) 형식이어야 합니다. |
생성 값
IllegalArgumentException | 도형이 (h, w, 3)도 아니고 (1, h, w, 3)도 아닌 경우 |
---|
public void load (float[] pixel, int[] shape)
이 TensorImage
에 부동 소수점 배열을 RGB 픽셀로 로드하여 내부 픽셀을 나타냅니다.
참고: TensorImage
의 데이터 유형이 DataType.FLOAT32
가 아닌 경우 getTensorBuffer()
및 getBuffer()
를 호출할 때 숫자 변환 및 고정이 적용됩니다.
매개변수
픽셀 | 이미지를 나타내는 RGB 픽셀 |
---|---|
shape | 이미지의 모양으로 (h, w, 3) 형태이거나 (1, h, w, 3) 형식이어야 합니다. |
생성 값
IllegalArgumentException | 도형이 (h, w, 3)도 아니고 (1, h, w, 3)도 아닌 경우 |
---|
public void load (ByteBuffer buffer, ImageProperties imageProperties)
특정 ImageProperties
로 픽셀 값이 포함된 ByteBuffer
를 로드합니다.
참고: buffer
의 데이터 유형이 이 TensorImage
의 데이터 유형과 일치하지 않으면 getTensorBuffer()
및 getBuffer()
를 호출할 때 숫자 변환 및 고정이 적용됩니다.
매개변수
buffer | |
---|---|
imageProperties |
생성 값
IllegalArgumentException | 버퍼 크기가 ImageProperties 의 이미지 높이, 너비, 색상 공간 유형으로 표시된 이미지 크기보다 작은 경우
|
---|
public void load (TensorBuffer 버퍼, ImageProperties imageProperties)
특정 ImageProperties
로 픽셀 값이 포함된 TensorBuffer
를 로드합니다.
TensorBuffer
의 모양은 이미지 높이와 너비를 결정하는 데 사용되지 않습니다.
ImageProperties
를 통해 이미지 속성을 설정합니다.
참고: buffer
의 데이터 유형이 이 TensorImage
의 데이터 유형과 일치하지 않으면 getTensorBuffer()
및 getBuffer()
를 호출할 때 숫자 변환 및 고정이 적용됩니다.
매개변수
buffer | |
---|---|
imageProperties |
생성 값
IllegalArgumentException | 버퍼 크기가 ImageProperties 의 이미지 높이, 너비, 색상 공간 유형으로 표시된 이미지 크기보다 작은 경우
|
---|
public void 로드 (이미지 이미지)
이 TensorImage
에 Image
객체를 로드합니다.
이 메서드의 주요 용도는 Image
객체를 https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview에 모델 입력으로 로드하는 것입니다.
Image
에서 지원하는 TensorImage
은(는) ImageProcessor
에서 지원되지 않습니다.
* image
의 ImageFormat
가 YUV_420_888이 아닌 경우 @IllegalArgumentException이 발생합니다.
매개변수
이미지 |
---|