চিত্র অনুসন্ধানকারীদের সংহত করুন

চিত্র অনুসন্ধানের মাধ্যমে চিত্রের ডাটাবেসে অনুরূপ চিত্র অনুসন্ধান করা সম্ভব হয়। এটি অনুসন্ধানের কোয়েরিটিকে একটি উচ্চ-মাত্রিক ভেক্টরে এম্বেড করে কাজ করে যা কোয়েরির অর্থগত অর্থ উপস্থাপন করে, তারপরে ScaNN (স্কেলেবল নিকটতম প্রতিবেশী) ব্যবহার করে একটি পূর্বনির্ধারিত, কাস্টম সূচকে সাদৃশ্য অনুসন্ধান করে।

ছবির শ্রেণীবিভাগের বিপরীতে, শনাক্তযোগ্য আইটেমের সংখ্যা বাড়ানোর জন্য পুরো মডেলটিকে পুনরায় প্রশিক্ষণ দেওয়ার প্রয়োজন হয় না। নতুন আইটেম যোগ করা যেতে পারে কেবল সূচকটি পুনরায় তৈরি করে। এটি ছবির বৃহত্তর (১০০k+ আইটেম) ডাটাবেসের সাথে কাজ করার সুযোগও দেয়।

আপনার মোবাইল অ্যাপে আপনার কাস্টম ইমেজ সার্চার স্থাপন করতে Task Library ImageSearcher API ব্যবহার করুন।

ImageSearcher API এর মূল বৈশিষ্ট্যগুলি

  • ইনপুট হিসেবে একটি একক ছবি নেয়, এম্বেডিং এক্সট্রাকশন এবং ইনডেক্সে নিকটতম-প্রতিবেশী অনুসন্ধান করে।

  • ইনপুট ইমেজ প্রসেসিং, যার মধ্যে রয়েছে ঘূর্ণন, আকার পরিবর্তন এবং রঙের স্থান রূপান্তর।

  • ইনপুট ছবির আগ্রহের অঞ্চল।

পূর্বশর্ত

ImageSearcher API ব্যবহার করার আগে, অনুসন্ধানের জন্য প্রয়োজনীয় চিত্রগুলির কাস্টম সংগ্রহের উপর ভিত্তি করে একটি সূচক তৈরি করতে হবে। টিউটোরিয়ালটি অনুসরণ এবং অভিযোজিত করে মডেল মেকার অনুসন্ধানকারী API ব্যবহার করে এটি অর্জন করা যেতে পারে।

এর জন্য আপনার প্রয়োজন হবে:

  • একটি TFLite ইমেজ এম্বেডার মডেল যেমন mobilenet v3Kaggle Models-এ Google Image Modules সংগ্রহ থেকে আরও প্রি-ট্রেনডেড এম্বেডার মডেল (যাকে ফিচার ভেক্টর মডেলও বলা হয়) দেখুন।
    • তোমার ছবির সংগ্রহ।

এই ধাপের পরে, আপনার একটি স্বতন্ত্র TFLite অনুসন্ধানকারী মডেল (যেমন mobilenet_v3_searcher.tflite ) থাকা উচিত, যা মূল চিত্র এম্বেডকারী মডেল যার সূচকটি TFLite মডেল মেটাডেটার সাথে সংযুক্ত থাকে।

জাভাতে অনুমান চালান

ধাপ ১: গ্রেডল নির্ভরতা এবং অন্যান্য সেটিংস আমদানি করুন

.tflite searcher মডেল ফাইলটি Android মডিউলের সম্পদ ডিরেক্টরিতে কপি করুন যেখানে মডেলটি চালানো হবে। ফাইলটি সংকুচিত করা উচিত নয় তা নির্দিষ্ট করুন এবং মডিউলের build.gradle ফাইলে TensorFlow Lite লাইব্রেরি যোগ করুন:

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 কনফিগার করার জন্য আরও বিকল্পের জন্য সোর্স কোড এবং জাভাডোক দেখুন।

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 কনফিগার করার জন্য আরও বিকল্পের জন্য সোর্স কোডটি দেখুন।

পাইথনে ইনফারেন্স চালান

ধাপ ১: টেনসরফ্লো লাইট সাপোর্ট পাইপি প্যাকেজ ইনস্টল করুন।

আপনি নিম্নলিখিত কমান্ড ব্যবহার করে 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

আপনার নিজস্ব মডেল এবং পরীক্ষার ডেটা দিয়ে ImageSearcher-এর জন্য সহজ CLI ডেমো টুলটি ব্যবহার করে দেখুন।