ইমেজ এমবেডার একত্রিত করুন

ইমেজ এম্বেডারগুলি একটি উচ্চ-মাত্রিক বৈশিষ্ট্য ভেক্টরে চিত্রগুলি এম্বেড করার অনুমতি দেয় যা একটি চিত্রের শব্দার্থিক অর্থ উপস্থাপন করে, যা পরে অন্যান্য চিত্রের বৈশিষ্ট্য ভেক্টরের সাথে তাদের শব্দার্থিক সাদৃশ্য মূল্যায়নের জন্য তুলনা করা যেতে পারে।

ইমেজ সার্চের বিপরীতে, ইমেজ এম্বেডার ইমেজের সংগ্রহ থেকে তৈরি একটি পূর্বনির্ধারিত সূচকের মাধ্যমে অনুসন্ধান করার পরিবর্তে, উড়তে থাকা অবস্থায় ইমেজগুলির মধ্যে সাদৃশ্য গণনা করার অনুমতি দেয়।

আপনার মোবাইল অ্যাপে আপনার কাস্টম ইমেজ এম্বেডার স্থাপন করতে টাস্ক লাইব্রেরি ImageEmbedder API ব্যবহার করুন।

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

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

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

  • বৈশিষ্ট্য ভেক্টরগুলির মধ্যে কোসাইন সাদৃশ্য গণনা করার জন্য অন্তর্নির্মিত ইউটিলিটি ফাংশন।

সমর্থিত ইমেজ এম্বেডার মডেল

নিম্নলিখিত মডেলগুলি ImageEmbedder API-এর সাথে সামঞ্জস্যপূর্ণ হওয়ার নিশ্চয়তা রয়েছে।

C++ এ অনুমান চালান

// Initialization
ImageEmbedderOptions options:
options.mutable_model_file_with_metadata()->set_file_name(model_path);
options.set_l2_normalize(true);
std::unique_ptr<ImageEmbedder> image_embedder = ImageEmbedder::CreateFromOptions(options).value();

// Create input frame_buffer_1 and frame_buffer_2 from your inputs `image_data1`, `image_data2`, `image_dimension1` and `image_dimension2`.
// See more information here: tensorflow_lite_support/cc/task/vision/utils/frame_buffer_common_utils.h
std::unique_ptr<FrameBuffer> frame_buffer_1 = CreateFromRgbRawBuffer(
      image_data1, image_dimension1);
std::unique_ptr<FrameBuffer> frame_buffer_2 = CreateFromRgbRawBuffer(
      image_data2, image_dimension2);

// Run inference on two images.
const EmbeddingResult result_1 = image_embedder->Embed(*frame_buffer_1);
const EmbeddingResult result_2 = image_embedder->Embed(*frame_buffer_2);

// Compute cosine similarity.
double similarity = ImageEmbedder::CosineSimilarity(
    result_1.embeddings[0].feature_vector(),
    result_2.embeddings[0].feature_vector());

ImageEmbedder কনফিগার করার আরও বিকল্পের জন্য সোর্স কোডটি দেখুন।

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

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

আপনি নিম্নলিখিত কমান্ড ব্যবহার করে TensorFlow Lite Support Pypi প্যাকেজ ইনস্টল করতে পারেন:

pip install tflite-support

ধাপ ২: মডেল ব্যবহার করা

from tflite_support.task import vision

# Initialization.
image_embedder = vision.ImageEmbedder.create_from_file(model_path)

# Run inference on two images.
image_1 = vision.TensorImage.create_from_file('/path/to/image1.jpg')
result_1 = image_embedder.embed(image_1)
image_2 = vision.TensorImage.create_from_file('/path/to/image2.jpg')
result_2 = image_embedder.embed(image_2)

# Compute cosine similarity.
feature_vector_1 = result_1.embeddings[0].feature_vector
feature_vector_2 = result_2.embeddings[0].feature_vector
similarity = image_embedder.cosine_similarity(
    result_1.embeddings[0].feature_vector, result_2.embeddings[0].feature_vector)

ImageEmbedder কনফিগার করার আরও বিকল্পের জন্য সোর্স কোডটি দেখুন।

উদাহরণ ফলাফল

স্বাভাবিক বৈশিষ্ট্য ভেক্টরগুলির মধ্যে কোসাইন সাদৃশ্য -1 এবং 1 এর মধ্যে একটি স্কোর প্রদান করে। উচ্চতর হলে ভালো, অর্থাৎ 1 এর কোসাইন সাদৃশ্য মানে দুটি ভেক্টর অভিন্ন।

Cosine similarity: 0.954312

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

মডেলের সামঞ্জস্যের প্রয়োজনীয়তা

ImageEmbedder API ঐচ্ছিক, কিন্তু দৃঢ়ভাবে সুপারিশকৃত TFLite মডেল মেটাডেটা সহ একটি TFLite মডেল আশা করে।

সামঞ্জস্যপূর্ণ ইমেজ এম্বেডার মডেলগুলিকে নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করতে হবে:

  • একটি ইনপুট ইমেজ টেনসর (kTfLiteUInt8/kTfLiteFloat32)

    • আকারের চিত্র ইনপুট [batch x height x width x channels]
    • ব্যাচ ইনফারেন্স সমর্থিত নয় ( batch ১ হতে হবে)।
    • শুধুমাত্র RGB ইনপুট সমর্থিত ( channels 3 হতে হবে)।
    • যদি টাইপ kTfLiteFloat32 হয়, তাহলে ইনপুট নরমালাইজেশনের জন্য মেটাডেটার সাথে নরমালাইজেশন অপশন সংযুক্ত করতে হবে।
  • কমপক্ষে একটি আউটপুট টেনসর (kTfLiteUInt8/kTfLiteFloat32)

    • এই আউটপুট স্তরের জন্য ফেরত আসা বৈশিষ্ট্য ভেক্টরের N মাত্রার সাথে সম্পর্কিত N উপাদান সহ।
    • হয় ২ অথবা ৪ মাত্রা, অর্থাৎ [1 x N] অথবা [1 x 1 x 1 x N]