Görsel arayan kullanıcıları entegre edin

Görsel arama, görsel veritabanında benzer görselleri aramanıza olanak tanır. Bu işlem, arama sorgusunu sorgunun semantik anlamını temsil eden yüksek boyutlu bir vektöre yerleştirerek çalışır. Ardından, ScaNN (Ölçeklenebilir En Yakın Komşular) kullanılarak önceden tanımlanmış özel bir dizinde benzerlik araması yapılır.

Resim sınıflandırmanın aksine, tanınabilecek öğe sayısını artırmak için modelin tamamının yeniden eğitilmesi gerekmez. Yeni öğeler, dizin yeniden oluşturularak kolayca eklenebilir. Bu sayede, daha büyük (100.000'den fazla öğe) görüntü veritabanlarıyla da çalışabilirsiniz.

Özel resim arama aracınızı mobil uygulamalarınıza dağıtmak için Görev Kitaplığı ImageSearcher API'sini kullanın.

ImageSearcher API'nin temel özellikleri

  • Giriş olarak tek bir resim alır, gömmeleri çıkarır ve dizinde en yakın komşu araması yapar.

  • Döndürme, yeniden boyutlandırma ve renk alanı dönüştürme dahil olmak üzere giriş görüntüsü işleme.

  • Giriş resminin ilgi alanı.

Ön koşullar

ImageSearcher API'yi kullanmadan önce, aranacak özel resim derlemesine dayalı bir dizin oluşturulması gerekir. Bu, Model Maker Searcher API kullanılarak ve eğiticiyi takip edip uyarlayarak yapılabilir.

Bunun için ihtiyacınız olanlar:

Bu adımdan sonra, dizinin TFLite Model Meta Verileri'ne eklenmiş olduğu orijinal resim yerleştirme modeli olan bağımsız bir TFLite arama modeli (ör. mobilenet_v3_searcher.tflite) elde etmeniz gerekir.

Java'da çıkarım çalıştırma

1. adım: Gradle bağımlılığını ve diğer ayarları içe aktarın

.tflite arama modeli dosyasını, modelin çalıştırılacağı Android modülünün öğeler dizinine kopyalayın. Dosyanın sıkıştırılmaması gerektiğini belirtin ve TensorFlow Lite kitaplığını modülün build.gradle dosyasına ekleyin:

android {
    // Other settings

    // Specify tflite index file should not be compressed for the app apk
    aaptOptions {
        noCompress "tflite"
    }

}

dependencies {
    // Other dependencies

    // Import the Task Vision Library dependency
    implementation 'org.tensorflow:tensorflow-lite-task-vision:0.4.4'
    // Import the GPU delegate plugin Library for GPU inference
    implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin:0.4.4'
}

2. adım: Modeli kullanma

// Initialization
ImageSearcherOptions options =
    ImageSearcherOptions.builder()
        .setBaseOptions(BaseOptions.builder().useGpu().build())
        .setSearcherOptions(
            SearcherOptions.builder().setL2Normalize(true).build())
        .build();
ImageSearcher imageSearcher =
    ImageSearcher.createFromFileAndOptions(context, modelFile, options);

// Run inference
List<NearestNeighbor> results = imageSearcher.search(image);

ImageSearcher yapılandırmayla ilgili daha fazla seçenek için kaynak kodu ve javadoc'a bakın.

C++'ta çıkarım çalıştırma

// Initialization
ImageSearcherOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
options.mutable_embedding_options()->set_l2_normalize(true);
std::unique_ptr<ImageSearcher> image_searcher = ImageSearcher::CreateFromOptions(options).value();

// Create input frame_buffer from your inputs, `image_data` and `image_dimension`.
// See more information here: tensorflow_lite_support/cc/task/vision/utils/frame_buffer_common_utils.h
std::unique_ptr<FrameBuffer> frame_buffer = CreateFromRgbRawBuffer(
      image_data, image_dimension);

// Run inference
const SearchResult result = image_searcher->Search(*frame_buffer).value();

ImageSearcher yapılandırmayla ilgili diğer seçenekler için kaynak koduna bakın.

Python'da çıkarım çalıştırma

1. adım: TensorFlow Lite Support Pypi paketini yükleyin.

Aşağıdaki komutu kullanarak TensorFlow Lite Support Pypi paketini yükleyebilirsiniz:

pip install tflite-support

2. adım: Modeli kullanma

from tflite_support.task import vision

# Initialization
image_searcher = vision.ImageSearcher.create_from_file(model_path)

# Run inference
image = vision.TensorImage.create_from_file(image_file)
result = image_searcher.search(image)

ImageSearcher yapılandırmayla ilgili diğer seçenekler için kaynak koduna bakın.

Örnek sonuçlar

Results:
 Rank#0:
  metadata: burger
  distance: 0.13452
 Rank#1:
  metadata: car
  distance: 1.81935
 Rank#2:
  metadata: bird
  distance: 1.96617
 Rank#3:
  metadata: dog
  distance: 2.05610
 Rank#4:
  metadata: cat
  distance: 2.06347

ImageSearcher için basit KSA demo aracını kendi modeliniz ve test verilerinizle deneyin.