Kërkimi i imazheve lejon kërkimin e imazheve të ngjashme në një bazë të dhënash imazhesh. Funksionon duke integruar 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 dhe të personalizuar duke përdorur ScaNN (Fqinjët më të Afërt të Shkallëzueshëm).
Në ndryshim nga klasifikimi i imazheve , zgjerimi i numrit të artikujve që mund të njihen nuk kërkon ritrajnimin e të gjithë modelit. Artikuj të rinj mund të shtohen thjesht duke rindërtuar indeksin. Kjo gjithashtu mundëson punën me baza të dhënash më të mëdha (mbi 100 mijë artikuj) të imazheve.
Përdorni API-n ImageSearcher të Task Library për të vendosur kërkuesin tuaj të personalizuar të imazheve në aplikacionet tuaja celulare.
Karakteristikat kryesore të API-t ImageSearcher
Merr një imazh të vetëm si të dhënë hyrëse, kryen nxjerrjen e ngulitur dhe kërkimin e fqinjit më të afërt në indeks.
Përpunimi i imazhit hyrës, duke përfshirë rrotullimin, ndryshimin e madhësisë dhe konvertimin e hapësirës së ngjyrave.
Rajoni i interesit të imazhit të futur.
Parakushte
Përpara se të përdorni ImageSearcher API, duhet të ndërtohet një indeks bazuar në korpusin e personalizuar të imazheve në të cilin do të bëhet kërkimi. 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:
- një model ngulitës imazhi TFLite siç është mobilenet v3 . Shihni më shumë modele ngulitësish të paratrajnuar (të njohur edhe si modele vektoriale të veçorive) nga koleksioni i Moduleve të Imazheve Google në Kaggle Models .
- korpusi juaj i imazheve.
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 ngulitjes së imazhit me indeksin e bashkangjitur në Metadatat e Modelit TFLite .
Ekzekutoni përfundimin në Java
Hapi 1: Importoni varësinë e Gradle dhe cilësimet e tjera
Kopjoni skedarin e modelit searcher .tflite në direktorinë e aseteve të modulit Android ku do të ekzekutohet modeli. Specifikoni që skedari nuk duhet të kompresohet 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);
Shihni kodin burimor dhe javadoc për më shumë opsione për të konfiguruar ImageSearcher .
Ekzekutoni përfundimin 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();
Shih kodin burimor për më shumë opsione për të konfiguruar ImageSearcher .
Ekzekutoni përfundimin në Python
Hapi 1: Instaloni paketën Pypi të Mbështetjes TensorFlow Lite.
Mund ta 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)
Shih kodin burimor për më shumë opsione për të konfiguruar ImageSearcher .
Rezultatet e shembujve
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.