جستجوی تصویر امکان جستجوی تصاویر مشابه در پایگاه داده تصاویر را فراهم می کند. با جاسازی پرس و جوی جستجو در یک بردار با ابعاد بالا که معنای معنایی پرس و جو را نشان می دهد، و به دنبال آن جستجوی شباهت در یک نمایه از پیش تعریف شده سفارشی با استفاده از ScaNN (نزدیکترین همسایگان مقیاس پذیر) کار می کند.
برخلاف طبقهبندی تصویر ، افزایش تعداد مواردی که قابل تشخیص هستند نیازی به آموزش مجدد کل مدل ندارد. آیتم های جدید را می توان به سادگی با ساخت مجدد شاخص اضافه کرد. این همچنین کار با پایگاه داده های بزرگتر (100k+ مورد) تصاویر را امکان پذیر می کند.
از Task Library ImageSearcher
API برای استقرار جستجوگر تصویر سفارشی خود در برنامه های تلفن همراه خود استفاده کنید.
ویژگی های کلیدی ImageSearcher API
یک تصویر را به عنوان ورودی می گیرد، استخراج جاسازی و جستجوی نزدیکترین همسایه را در فهرست انجام می دهد.
پردازش تصویر ورودی، از جمله چرخش، تغییر اندازه و تبدیل فضای رنگ.
منطقه مورد علاقه تصویر ورودی.
پیش نیازها
قبل از استفاده از ImageSearcher
API، باید یک فهرست بر اساس مجموعه سفارشی تصاویر برای جستجو ساخته شود. این را می توان با استفاده از Model Maker Searcher API با دنبال کردن و تطبیق آموزش به دست آورد.
برای این شما نیاز خواهید داشت:
- یک مدل جاسازی تصویر TFLite مانند mobilenet v3 . مدلهای تعبیهشده از قبل آموزشدیده (معروف به مدلهای بردار ویژگی) را از مجموعه ماژولهای تصویر Google در Kaggle Models ببینید.
- مجموعه تصاویر شما
پس از این مرحله، باید یک مدل جستجوگر TFLite مستقل داشته باشید (به عنوان مثال mobilenet_v3_searcher.tflite
)، که مدل اصلی جاسازی تصویر است که نمایه آن به فراداده مدل TFLite متصل شده است.
استنتاج را در جاوا اجرا کنید
مرحله 1: وابستگی Gradle و تنظیمات دیگر را وارد کنید
فایل مدل جستجوگر .tflite
را در فهرست داراییهای ماژول Android که مدل در آنجا اجرا میشود، کپی کنید. مشخص کنید که فایل نباید فشرده شود و کتابخانه TensorFlow Lite را به فایل build.gradle
ماژول اضافه کنید:
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: استفاده از مدل
// 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
به کد منبع و javadoc مراجعه کنید.
استنتاج را در 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();
برای گزینه های بیشتر برای پیکربندی ImageSearcher
به کد منبع مراجعه کنید.
استنتاج را در پایتون اجرا کنید
مرحله 1: بسته TensorFlow Lite Support Pypi را نصب کنید.
با استفاده از دستور زیر می توانید بسته TensorFlow Lite Support Pypi را نصب کنید:
pip install tflite-support
مرحله 2: استفاده از مدل
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
به کد منبع مراجعه کنید.
نتایج نمونه
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
ابزار ساده CLI را برای ImageSearcher با مدل و داده های آزمایشی خود امتحان کنید.