TensorImage, Image nesnesinin sarmalayıcı sınıfıdır. TFLite.support kitaplığında görüntü işleme araçlarını kullanırken, ilk başta varyant türlerdeki görüntü nesnelerini TensorImage'a dönüştürmek yaygındır.
Şu anda yalnızca RGB görüntüleri desteklenmektedir ve A kanalı her zaman yok sayılır.
Veri depolama ayrıntıları: Bir TensorImage
nesnesinin 2 potansiyel doğruluk kaynağı olabilir: bir Bitmap
veya bir TensorBuffer
. TensorImage
durumu korur ve yalnızca gerektiğinde birini diğerine dönüştürür. TensorImage
tipik bir kullanım durumu, önce bir Bitmap
görüntüsü yüklemek, ardından ImageProcessor
kullanarak işlemek ve son olarak TensorBuffer
temel ByteBuffer
almak ve onu TFLite yorumlayıcısına beslemektir.
ÖNEMLİ: En iyi performansı elde etmek için TensorImage
, mümkün olduğunda veri kopyalamaktan kaçınır. Bu nedenle, verilerinin sahibi değildir. Çağıranlar, load(Bitmap)
veya load(TensorBuffer, ColorSpaceType)
iletilen veri nesnelerini değiştirmemelidir.
ÖNEMLİ: tüm yöntemlerin iş parçacığı için güvenli olduğu kanıtlanmamıştır.
Ayrıca bakınız
Kamu İnşaatçılar
TensorImage () Bir TensorImage nesnesini başlatır. | |
Genel Yöntemler
statik TensorImage | createFrom ( TensorImage kaynağı, DataType dataType) İstenilen veri türüyle belirli bir TensorImage derin bir kopyasını oluşturur. |
statik TensorImage | fromBitmap (Bitmap bitmap) |
bit eşlem | getBitmap () Bu TensorImage bir Bitmap temsilini döndürür. |
ByteBuffer | getBuffer () Beklenen veri türüyle bu TensorImage bir ByteBuffer temsilini döndürür. |
RenkSpaceType | getColorSpaceType () Bu TensorImage renk alanı türünü alır. |
Veri tipi | getDataType () Bu TensorImage veri türünü alır. |
int | getHeight () Görüntü yüksekliğini alır. |
resim | getMediaImage () Bu TensorImage bir Image temsilini döndürür. |
Tensör Tamponu | getTensorBuffer () Bu TensorImage beklenen veri türüyle bir TensorBuffer temsilini döndürür. |
int | getWidth () Görüntü genişliğini alır. |
geçersiz | yükle ( TensorBuffer arabelleği, ColorSpaceType colorSpaceType) Belirli ColorSpaceType ile piksel değerleri içeren bir TensorBuffer yükler. |
geçersiz | yükle (Bitmap bitmap) Bu TensorImage içine bir Bitmap görüntü nesnesi yükler. |
geçersiz | yükle (int[] piksel, int[] şekil) Bu TensorImage içine, içindeki pikselleri temsil eden RGB pikselleri olarak bir int dizisi yükler. |
geçersiz | load (float[] piksel, int[] şekli) Bu TensorImage içine, içindeki pikselleri temsil eden bir kayan nokta dizisini RGB pikselleri olarak yükler. |
geçersiz | yükle ( ByteBuffer arabelleği, ImageProperties imageProperties) Belirli ImageProperties ile piksel değerleri içeren bir ByteBuffer yükler. |
geçersiz | yükle ( TensorBuffer arabelleği, ImageProperties imageProperties) Belirli ImageProperties ile piksel değerleri içeren bir TensorBuffer yükler. |
geçersiz | yükle (Resim resmi) Bu TensorImage içine bir Image nesnesi yükler. |
Kalıtsal Yöntemler
Kamu İnşaatçılar
genel TensorImage ()
Bir TensorImage
nesnesini başlatır.
Not: Bu TensorImage
veri türü DataType.UINT8
. Diğer veri türleri tercih TensorImage(DataType)
kullanın.
public TensorImage ( DataType dataType)
Belirtilen veri türüyle bir TensorImage
nesnesini başlatır.
Bu TensorImage
getTensorBuffer()
ve getBuffer()
kullanımı gibi bir TensorBuffer
veya ByteBuffer
alırken, veri değerleri belirtilen veri türüne dönüştürülür.
Not: TensorImage
şekli sabit değildir. Bu TensorImage
yüklenen görüntünün şekline göre ayarlanabilir.
parametreler
veri tipi | ortaya çıkan TensorBuffer beklenen veri türü. Tür, TensorImage ömrü boyunca her zaman sabittir. Veri türünü dönüştürmek için, aynı anda bir kopya oluşturmak ve veri türünü dönüştürmek için createFrom(TensorImage, DataType) kullanın. |
---|
atar
IllegalArgumentException | dataType , DataType.UINT8 veya DataType.FLOAT32 değilse |
---|
Genel Yöntemler
genel statik TensorImage createFrom ( TensorImage kaynağı, DataType dataType)
İstenilen veri türüyle belirli bir TensorImage
derin bir kopyasını oluşturur.
parametreler
kaynak | kopyalamak için TensorImage |
---|---|
veri tipi | yeni oluşturulan TensorImage beklenen veri türü |
İadeler
- verileri
TensorImage
src
birdataType
genel statik TensorImage fromBitmap (Bitmap bitmap)
Bir Bitmap
ile DataType.UINT8
TensorImage
nesnesini başlatır.
parametreler
bit eşlem |
---|
genel Bitmap getBitmap ()
Bu TensorImage
bir Bitmap
temsilini döndürür.
Saklanan veriler uint8 değilse, sayısal döküm ve sıkıştırma uygulanacaktır.
Bir ALPHA_8
piksel almanın güvenilir yolunun copyPixelsToBuffer
kullanmak olduğunu unutmayın. `setPixels()` ve `getPixels` gibi bitmap yöntemleri çalışmaz.
Önemli: Bu sadece bir referanstır. DEĞİŞTİRMEYİN. Performans endişesi için burada bir kopya oluşturmuyoruz, ancak değişiklik gerekiyorsa lütfen bir kopya oluşturun.
İadeler
-
ARGB_8888
yapılandırmasında ("A" kanalı her zaman opaktır) veya buTensorBuffer
ColorSpaceType
bağlı olarakALPHA_8
içindeki birBitmap
referans.
atar
IllegalStateException | TensorImage hiçbir zaman veri yüklemezse |
---|
genel ByteBuffer getBuffer ()
Beklenen veri türüyle bu TensorImage
bir ByteBuffer
temsilini döndürür.
Saklanan veriler TensorImage
veri türünden farklıysa sayısal döküm ve sıkıştırma uygulanacaktır.
Önemli: Bu sadece bir referanstır. DEĞİŞTİRMEYİN. Performans endişesi için burada bir kopya oluşturmuyoruz, ancak değişiklik gerekiyorsa lütfen bir kopya oluşturun.
Esasen getTensorBuffer().getBuffer()
için kısa bir yoldur.
İadeler
- görüntü verilerini tutan bir
ByteBuffer
referans
atar
IllegalStateException | TensorImage hiçbir zaman veri yüklemezse |
---|
genel ColorSpaceType getColorSpaceType ()
Bu TensorImage
renk alanı türünü alır.
atar
IllegalStateException | TensorImage hiçbir zaman veri yüklemezse |
---|
genel DataType getDataType ()
Bu TensorImage
veri türünü alır.
İadeler
- bir veri türü. Şu anda yalnızca
DataType.UINT8
veDataType.FLOAT32
desteklenmektedir.
public int getHeight ()
Görüntü yüksekliğini alır.
atar
IllegalStateException | TensorImage hiçbir zaman veri yüklemezse |
---|---|
IllegalArgumentException | temel alınan veriler bozuksa |
public Image getMediaImage ()
Bu TensorImage
bir Image
temsilini döndürür.
Bu yöntem yalnızca TensorImage
bir Image
tarafından desteklendiğinde çalışır, yani önce bir Image
load(Image)
aracılığıyla yüklemeniz gerekir.
Önemli: Bu sadece bir referanstır. DEĞİŞTİRMEYİN. Performans endişesi için burada bir kopya oluşturmuyoruz, ancak değişiklik gerekiyorsa lütfen bir kopya oluşturun.
İadeler
-
ARGB_8888
yapılandırmasında ("A" kanalı her zaman opaktır) veya buTensorBuffer
ColorSpaceType
bağlı olarakALPHA_8
içindeki birBitmap
referans.
atar
IllegalStateException | TensorImage hiçbir zaman veri yüklemezse |
---|
genel TensorBuffer getTensorBuffer ()
Bu TensorImage
beklenen veri türüyle bir TensorBuffer
temsilini döndürür.
Saklanan veriler TensorImage
veri türünden farklıysa sayısal döküm ve sıkıştırma uygulanacaktır.
Önemli: Bu sadece bir referanstır. DEĞİŞTİRMEYİN. Performans endişesi için burada bir kopya oluşturmuyoruz, ancak değişiklik gerekiyorsa lütfen bir kopya oluşturun.
İadeler
- görüntü verilerini tutan bir
TensorBuffer
referans
atar
IllegalStateException | TensorImage hiçbir zaman veri yüklemezse |
---|
public int getWidth ()
Görüntü genişliğini alır.
atar
IllegalStateException | TensorImage hiçbir zaman veri yüklemezse |
---|---|
IllegalArgumentException | temel alınan veriler bozuksa |
genel boşluk yükü ( TensorBuffer arabelleği, ColorSpaceType colorSpaceType)
Belirli ColorSpaceType
ile piksel değerleri içeren bir TensorBuffer
yükler.
Yalnızca ColorSpaceType.RGB
ve ColorSpaceType.GRAYSCALE
destekler. Diğer renk alanı türleri için load(TensorBuffer, ImageProperties)
kullanın.
Not: buffer
veri türü bu TensorImage
ile eşleşmiyorsa, getTensorBuffer()
ve getBuffer()
sayısal döküm ve sıkıştırma uygulanacaktır.
parametreler
tampon | yüklenecek TensorBuffer . Şekli, RGB görüntüler için (h, w, 3) veya (1, h, w, 3) ve GRAYSCALE görüntüler için (h, w) veya (1, h, w) olmalıdır. |
---|---|
renkSpaceType |
atar
IllegalArgumentException | arabelleğin şekli renk alanı türüyle eşleşmiyorsa veya renk alanı türü desteklenmiyorsa |
---|
genel boşluk yükü (Bitmap bitmap)
Bu TensorImage
içine bir Bitmap
görüntü nesnesi yükler.
Not: TensorImage
DataType.UINT8
dışında bir veri türü varsa, getTensorBuffer()
ve getBuffer()
, Bitmap
bir TensorBuffer
dönüştürüleceği sayısal döküm ve sıkıştırma uygulanacaktır.
Önemli: Bir bitmap yüklerken, artık arayan taraftan bitmap'i DEĞİŞTİRMEYİN. TensorImage
nesnesi bitmap'e güvenecektir. Muhtemelen bitmap'i de değiştirecektir. Bu yöntemde, sadece referansını tutarak o bitmap için sıfır kopya yaklaşımı uygularız. Gerekirse bir kopya oluşturmak için bitmap.copy(bitmap.getConfig(), true)
kullanın.
Not: En iyi performansı elde etmek için, belleğin yeniden tahsis edilmesini önlemek için lütfen görüntüleri aynı şekilde yükleyin.
parametreler
bit eşlem |
---|
atar
IllegalArgumentException | bitmap ARGB_8888'de değilse |
---|
public void load (int[] piksel, int[] şekli)
Bu TensorImage
içine, içindeki pikselleri temsil eden RGB pikselleri olarak bir int dizisi yükler.
Not: getTensorBuffer()
ve getBuffer()
değerleri bu TensorImage
veri tipine dönüştürmek için sayısal döküm ve sıkıştırma uygulanacaktır.
parametreler
piksel | görüntüyü temsil eden RGB pikselleri |
---|---|
şekil | görüntünün şekli, ya (h, w, 3) biçiminde ya da (1, h, w, 3) biçiminde olmalıdır. |
atar
IllegalArgumentException | şekil ne (h, w, 3) ne de (1, h, w, 3) ise |
---|
public void load (float[] piksel, int[] şekli)
Bu TensorImage
içine, içindeki pikselleri temsil eden bir kayan nokta dizisini RGB pikselleri olarak yükler.
Not: TensorImage
DataType.FLOAT32
dışında bir veri türü varsa, getTensorBuffer()
ve getBuffer()
sayısal döküm ve sıkıştırma uygulanacaktır.
parametreler
piksel | görüntüyü temsil eden RGB pikselleri |
---|---|
şekil | görüntünün şekli, ya (h, w, 3) biçiminde ya da (1, h, w, 3) biçiminde olmalıdır. |
atar
IllegalArgumentException | şekil ne (h, w, 3) ne de (1, h, w, 3) ise |
---|
genel boşluk yükü ( ByteBuffer arabelleği, ImageProperties imageProperties)
Belirli ImageProperties
ile piksel değerleri içeren bir ByteBuffer
yükler.
Not: buffer
veri türü bu TensorImage
ile eşleşmiyorsa, getTensorBuffer()
ve getBuffer()
sayısal döküm ve sıkıştırma uygulanacaktır.
parametreler
tampon | |
---|---|
imageÖzellikler |
atar
IllegalArgumentException | arabellek boyutu, ImageProperties görüntü yüksekliği, genişliği ve renk alanı türü tarafından belirtilen görüntü boyutundan küçükse |
---|
genel boşluk yükü ( TensorBuffer arabelleği, ImageProperties imageProperties)
Belirli ImageProperties
ile piksel değerleri içeren bir TensorBuffer
yükler.
TensorBuffer
şekli, görüntü yüksekliğini ve genişliğini belirlemek için kullanılmayacaktır. Görüntü özelliklerini ImageProperties
aracılığıyla ayarlayın.
Not: buffer
veri türü bu TensorImage
ile eşleşmiyorsa, getTensorBuffer()
ve getBuffer()
sayısal döküm ve sıkıştırma uygulanacaktır.
parametreler
tampon | |
---|---|
imageÖzellikler |
atar
IllegalArgumentException | arabellek boyutu, ImageProperties görüntü yüksekliği, genişliği ve renk alanı türü tarafından belirtilen görüntü boyutundan küçükse |
---|
genel boşluk yükü (Resim resmi)
Bu TensorImage
içine bir Image
nesnesi yükler.
Bu yöntemin ana kullanımı, bir Image
nesnesini https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview'a model girişi olarak yüklemektir. Image
tarafından desteklenen TensorImage
, ImageProcessor
tarafından desteklenmez.
* image
ImageFormat
YUV_420_888 değilse, @IllegalArgumentException'ı atar
parametreler
resim |
---|