Integroni kërkuesit e imazheve

Kërkimi i imazheve lejon kërkimin e imazheve të ngjashme në një bazë të dhënash imazhesh. Ai funksionon duke futur pyetjen e kërkimit në një vektor me dimensione të larta që përfaqëson kuptimin semantik të pyetjes, i ndjekur nga kërkimi i ngjashmërisë në një indeks të paracaktuar, të personalizuar duke përdorur ScaNN (Fqinjët më të afërt të shkallëzuar).

Në krahasim me klasifikimin e imazheve , zgjerimi i numrit të artikujve që mund të njihen nuk kërkon ritrajnim të të gjithë modelit. Artikujt e rinj mund të shtohen thjesht duke rindërtuar indeksin. Kjo gjithashtu mundëson punën me bazat e të dhënave më të mëdha (100 mijë artikuj) të imazheve.

Përdorni Task Library ImageSearcher API për të vendosur kërkuesin tuaj të personalizuar të imazheve në aplikacionet tuaja celulare.

Karakteristikat kryesore të API-së ImageSearcher

  • Merr një imazh të vetëm si hyrje, kryen nxjerrjen e integruar dhe kërkimin e fqinjit më të afërt në indeks.

  • Përpunimi i imazhit në hyrje, duke përfshirë rrotullimin, ndryshimin e madhësisë dhe konvertimin e hapësirës së ngjyrave.

  • Rajoni i interesit të imazhit të hyrjes.

Parakushtet

Përpara përdorimit të ImageSearcher API, duhet të ndërtohet një indeks bazuar në korpusin e personalizuar të imazheve për të kërkuar. Kjo mund të arrihet duke përdorur Model Maker Searcher API duke ndjekur dhe përshtatur tutorialin .

Për këtë do t'ju duhet:

Pas këtij hapi, duhet të keni një model të pavarur kërkuesi TFLite (p.sh. mobilenet_v3_searcher.tflite ), i cili është modeli origjinal i ngulitësit të imazhit me indeksin e bashkangjitur në Metadatat e Modelit TFLite .

Ekzekutoni konkluzionet në Java

Hapi 1: Importoni varësinë Gradle dhe cilësime të tjera

Kopjoni skedarin e modelit të kërkuesit .tflite në drejtorinë e aseteve të modulit Android ku do të ekzekutohet modeli. Specifikoni që skedari të mos jetë i ngjeshur dhe shtoni bibliotekën TensorFlow Lite në skedarin build.gradle të modulit:

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

Hapi 2: Përdorimi i modelit

// 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);

Shikoni kodin burimor dhe javadoc për më shumë opsione për të konfiguruar ImageSearcher .

Ekzekutoni konkluzionet në C++

// 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();

Shikoni kodin burimor për më shumë opsione për të konfiguruar ImageSearcher .

Ekzekutoni konkluzionet në Python

Hapi 1: Instaloni paketën TensorFlow Lite Support Pypi.

Ju mund të instaloni paketën TensorFlow Lite Support Pypi duke përdorur komandën e mëposhtme:

pip install tflite-support

Hapi 2: Përdorimi i modelit

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)

Shikoni kodin burimor për më shumë opsione për të konfiguruar ImageSearcher .

Shembuj të rezultateve

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

Provoni mjetin e thjeshtë demo CLI për ImageSearcher me modelin tuaj dhe të dhënat e testimit.