جستجوگرهای تصویر را ادغام کنید

جستجوی تصویر امکان جستجوی تصاویر مشابه در پایگاه داده تصاویر را فراهم می‌کند. این کار با جاسازی عبارت جستجو در یک بردار با ابعاد بالا که نمایانگر معنای معنایی عبارت جستجو است، انجام می‌شود و به دنبال آن جستجوی شباهت در یک شاخص از پیش تعریف شده و سفارشی با استفاده از ScaNN (نزدیکترین همسایه‌های مقیاس‌پذیر) انجام می‌شود.

برخلاف طبقه‌بندی تصویر ، افزایش تعداد مواردی که می‌توان تشخیص داد نیازی به آموزش مجدد کل مدل ندارد. موارد جدید را می‌توان به سادگی با بازسازی شاخص اضافه کرد. این امر همچنین امکان کار با پایگاه‌های داده بزرگتر (بیش از ۱۰۰ هزار مورد) از تصاویر را فراهم می‌کند.

از API مربوط به Task Library ImageSearcher برای پیاده‌سازی جستجوگر تصویر سفارشی خود در برنامه‌های تلفن همراه استفاده کنید.

ویژگی‌های کلیدی رابط برنامه‌نویسی کاربردی جستجوی تصویر (ImageSearcher API)

  • یک تصویر واحد را به عنوان ورودی می‌گیرد، استخراج جاسازی و جستجوی نزدیکترین همسایه را در اندیس انجام می‌دهد.

  • پردازش تصویر ورودی، شامل چرخش، تغییر اندازه و تبدیل فضای رنگ.

  • ناحیه مورد نظر تصویر ورودی.

پیش‌نیازها

قبل از استفاده از رابط برنامه‌نویسی کاربردی ImageSearcher ، باید یک فهرست بر اساس مجموعه تصاویر سفارشی برای جستجو ساخته شود. این کار را می‌توان با استفاده از رابط برنامه‌نویسی کاربردی Model Maker Searcher و با دنبال کردن و تطبیق با آموزش مربوطه انجام داد.

برای این کار به موارد زیر نیاز خواهید داشت:

پس از این مرحله، شما باید یک مدل جستجوگر TFLite مستقل (مثلاً mobilenet_v3_searcher.tflite ) داشته باشید که مدل جاسازی تصویر اصلی با اندیس متصل به متاداده مدل TFLite است.

اجرای استنتاج در جاوا

مرحله ۱: وارد کردن وابستگی Gradle و سایر تنظیمات

فایل مدل .tflite searcher را در دایرکتوری assets ماژول اندروید که مدل در آن اجرا خواهد شد، کپی کنید. مشخص کنید که فایل نباید فشرده شود و کتابخانه 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'
}

مرحله ۲: استفاده از مدل

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

مرحله ۲: استفاده از مدل

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 را با مدل و داده‌های آزمایشی خودتان امتحان کنید.