छवि एम्बेडर्स छवियों को एक उच्च-आयामी फीचर वेक्टर में एम्बेड करने की अनुमति देते हैं जो एक छवि के अर्थ अर्थ का प्रतिनिधित्व करते हैं, जिसे बाद में उनकी सिमेंटिक समानता का मूल्यांकन करने के लिए अन्य छवियों के फीचर वेक्टर के साथ तुलना की जा सकती है।
छवि खोज के विपरीत, छवि एम्बेडर छवियों के संग्रह से निर्मित पूर्वनिर्धारित अनुक्रमणिका के माध्यम से खोज करने के बजाय ऑन-द-फ्लाई छवियों के बीच समानता की गणना करने की अनुमति देता है।
अपने कस्टम छवि एम्बेडर को अपने मोबाइल एप्लिकेशन में परिनियोजित करने के लिए कार्य लाइब्रेरी ImageEmbedder
API का उपयोग करें।
ImageEmbedder API की मुख्य विशेषताएं
इनपुट इमेज प्रोसेसिंग, जिसमें रोटेशन, आकार बदलना और रंग स्थान रूपांतरण शामिल हैं।
इनपुट छवि के हित का क्षेत्र।
फीचर वैक्टर के बीच कोसाइन समानता की गणना करने के लिए अंतर्निहित उपयोगिता फ़ंक्शन।
समर्थित छवि एम्बेडर मॉडल
निम्नलिखित मॉडलों को ImageEmbedder
API के साथ संगत होने की गारंटी है।
TensorFlow हब पर Google छवि मॉड्यूल संग्रह से फ़ीचर वेक्टर मॉडल।
कस्टम मॉडल जो मॉडल संगतता आवश्यकताओं को पूरा करते हैं।
सी ++ में अनुमान चलाएं
// 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
को कॉन्फ़िगर करने के अधिक विकल्पों के लिए स्रोत कोड देखें।
पायथन में अनुमान चलाएँ
चरण 1: TensorFlow लाइट सपोर्ट Pypi पैकेज स्थापित करें।
आप निम्न आदेश का उपयोग करके TensorFlow लाइट सपोर्ट Pypi पैकेज स्थापित कर सकते हैं:
pip install tflite-support
चरण 2: मॉडल का उपयोग करना
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
1 होना आवश्यक है)। - केवल आरजीबी इनपुट समर्थित हैं (
channels
3 होना आवश्यक है)। - यदि प्रकार kTfLiteFloat32 है, तो सामान्यीकरण विकल्प को इनपुट सामान्यीकरण के लिए मेटाडेटा से संलग्न करना आवश्यक है।
- आकार का छवि इनपुट
कम से कम एक आउटपुट टेंसर (kTfLiteUInt8/kTfLiteFloat32)
- इस आउटपुट लेयर के लिए लौटाए गए फीचर वेक्टर के
N
आयामों के अनुरूपN
घटकों के साथ। - या तो 2 या 4 आयाम, यानी
[1 x N]
या[1 x 1 x 1 x N]
।
- इस आउटपुट लेयर के लिए लौटाए गए फीचर वेक्टर के