TensorImage

genel sınıf TensorImage

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.

Kamu İnşaatçılar

TensorImage ()
Bir TensorImage nesnesini başlatır.
TensorImage ( DataType dataType)
Belirtilen veri türüyle 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)
Bir Bitmap ile DataType.UINT8 TensorImage nesnesini başlatır.
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.

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

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
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

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
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
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