Resim yerleştiriciler, resimlerin yüksek boyutlu bir özellik vektörüne yerleştirilmesine olanak tanır temsil eder. Bu resim daha sonra şu sorguyla karşılaştırılabilir: diğer görsellerin özellik vektörlerini kullanarak semantik benzerliklerini değerlendirebilirsiniz.
Şuna karşılık: görsel arama, Resim yerleştirme aracı, resimler arasındaki benzerliğin anında hesaplanmasını sağlar .
Özel resim yerleştirdiğinizi dağıtmak için Task Library ImageEmbedder
API'yi kullanın.
mobil uygulamalarınıza entegre edebilirsiniz.
ImageEmbedder API'nin temel özellikleri
Döndürme, yeniden boyutlandırma ve renk alanı dahil resim işleme gösterir.
Giriş resminin ilgilenilen bölge.
kosinüs benzerliği özellik vektörleridir.
Desteklenen resim yerleştirme modelleri
Aşağıdaki modellerin ImageEmbedder
ile uyumlu olacağı garanti edilir
API'ye gidin.
Önceki modellere ait Kaggle Modellerinde Google Resim Modülleri koleksiyonu.
Şu koşulları karşılayan özel modeller: model uyumluluk koşullarını karşılayın.
C++'ta çıkarım çalıştır
// Initialization
ImageEmbedderOptions options:
options.mutable_model_file_with_metadata()->set_file_name(model_path);
options.set_l2_normalize(true);
std::unique_ptr<ImageEmbedder> image_embedder = ImageEmbedder::CreateFromOptions(options).value();
// Create input frame_buffer_1 and frame_buffer_2 from your inputs `image_data1`, `image_data2`, `image_dimension1` and `image_dimension2`.
// See more information here: tensorflow_lite_support/cc/task/vision/utils/frame_buffer_common_utils.h
std::unique_ptr<FrameBuffer> frame_buffer_1 = CreateFromRgbRawBuffer(
image_data1, image_dimension1);
std::unique_ptr<FrameBuffer> frame_buffer_2 = CreateFromRgbRawBuffer(
image_data2, image_dimension2);
// Run inference on two images.
const EmbeddingResult result_1 = image_embedder->Embed(*frame_buffer_1);
const EmbeddingResult result_2 = image_embedder->Embed(*frame_buffer_2);
// Compute cosine similarity.
double similarity = ImageEmbedder::CosineSimilarity(
result_1.embeddings[0].feature_vector(),
result_2.embeddings[0].feature_vector());
Bkz.
kaynak kod
daha fazla ImageEmbedder
yapılandırma seçeneğine gidin.
Python'da çıkarım çalıştırma
1. Adım: TensorFlow Lite Destek Pypi paketini yükleyin.
TensorFlow Lite Destek Pypi paketini aşağıdakini kullanarak yükleyebilirsiniz komut:
pip install tflite-support
2. Adım: Modeli kullanma
from tflite_support.task import vision
# Initialization.
image_embedder = vision.ImageEmbedder.create_from_file(model_path)
# Run inference on two images.
image_1 = vision.TensorImage.create_from_file('/path/to/image1.jpg')
result_1 = image_embedder.embed(image_1)
image_2 = vision.TensorImage.create_from_file('/path/to/image2.jpg')
result_2 = image_embedder.embed(image_2)
# Compute cosine similarity.
feature_vector_1 = result_1.embeddings[0].feature_vector
feature_vector_2 = result_2.embeddings[0].feature_vector
similarity = image_embedder.cosine_similarity(
result_1.embeddings[0].feature_vector, result_2.embeddings[0].feature_vector)
Bkz.
kaynak kod
daha fazla ImageEmbedder
yapılandırma seçeneğine gidin.
Örnek sonuçlar
Normalleştirilmiş özellik vektörleri arasındaki kosinüs benzerliği, -1 arasında bir puan döndürür. ve 1. Yüksekse o kadar iyidir, yani kosinüs benzerliğinin 1 olması iki vektörün aynı olmalıdır.
Cosine similarity: 0.954312
Nasıl yapıldığını ImageEmbedder için KSA demo aracı kullanarak test edebilirsiniz.
Model uyumluluğu şartları
ImageEmbedder
API, isteğe bağlı ancak kesinlikle yüksek bir TFLite modeli bekler
önerilen
TFLite Model Meta Verileri.
Uyumlu resim yerleştirme modelleri aşağıdaki gereksinimleri karşılamalıdır:
Giriş görüntüsü tensörü (kTfLiteUInt8/kTfLitefloat32)
[batch x height x width x channels]
boyutunda resim girişi.- toplu çıkarım desteklenmiyor (
batch
değerinin 1 olması gerekir). - yalnızca RGB girişleri desteklenir (
channels
değerinin 3 olması gerekir). - tür kTfLitefloat32 ise NormalizationOptions'ın giriş normalleştirmesi için meta verilere eklenir.
En az bir çıkış tensörü (kTfLiteUInt8/kTfLitefloat32)
- döndürülen öğenin
N
boyutlarına karşılık gelenN
bileşenle özellik vektörü kullanır. - 2 veya 4 boyut, ör.
[1 x N]
veya[1 x 1 x 1 x N]
.
- döndürülen öğenin