TL;DR: जानें कि कैसे Manticore Search प्राकृतिक भाषा प्रसंस्करण को वेक्टर-आधारित छवि पुनर्प्राप्ति के साथ जोड़कर टेक्स्ट-से-इमेज सर्च को सक्षम करता है। पारंपरिक विधियों से लेकर उन्नत वेक्टर खोज तक, विभिन्न दृष्टिकोणों का अन्वेषण करें, और हमारे टेक्स्ट-से-इमेज सर्च डेमो को आजमाएँ ताकि इसे वास्तविकता में देख सकें।
परिचय
प्राकृतिक भाषा में “समुद्र तट पर सूर्यास्त” जैसे वर्णन करके सही छवि खोजना अब भविष्य की केवल एक दृष्टि नहीं है। टेक्स्ट-से-इमेज सर्च इसे संभव बनाता है, भाषा को दृश्य सामग्री के साथ सहजता से जोड़ता है।
परंपरागत विधियों, जैसे कि कीवर्ड मिलाना या मैनुअल टैगिंग, में सटीकता और स्केलेबिलिटी की सीमाएँ हैं। आधुनिक दृष्टिकोण, जैसे कि Manticore Search द्वारा संचालित, अर्थपूर्ण समझ और वेक्टर एम्बेडिंग का उपयोग करके अधिक सटीक और संदर्भ-जागरूक परिणाम प्रदान करते हैं। चाहे आप एक ई-कॉमर्स प्लेटफॉर्म बना रहे हों, मीडिया लाइब्रेरी का प्रबंधन कर रहे हों, या एक क्रिएटिव टूल बना रहे हों, टेक्स्ट-से-इमेज सर्च उपयोगकर्ताओं के आपके सामग्री के साथ बातचीत करने के तरीके को सरल बना सकता है।
इसे वास्तविकता में देखना चाहते हैं? हमारे टेक्स्ट-से-इमेज सर्च डेमो को आजमाएँ।
टेक्स्ट-से-इमेज सर्च के लिए विभिन्न दृष्टिकोण
1. पारंपरिक कीवर्ड-आधारित खोज
कीवर्ड-आधारित खोज टेक्स्ट-से-इमेज सर्च को लागू करने के लिए सबसे सरल विधियों में से एक है। शुरू करने के लिए, आपको उपयुक्त डेटा संरचना सेटअप करने की आवश्यकता है:
CREATE TABLE images (
title text,
description text,
tags text,
path string stored
);
इसे प्रभावी रूप से काम करने के लिए, आपको पहले प्रत्येक छवि को मैन्युअल रूप से टैग करना होगा। एक बार टैग हो जाने के बाद, आप फिर इस तरह के क्वेरी का उपयोग करके खोज कर सकते हैं:
SELECT * FROM images WHERE MATCH('@tags red dress');
या आप छवि के शीर्षक और विवरण द्वारा भी खोज कर सकते हैं जो आपने जोड़ा है:
SELECT * FROM images WHERE MATCH('@(title,description) red dress');
यह दृष्टिकोण टेक्स्ट मेटाडेटा को खोज शर्तों के साथ मिलाने पर निर्भर करता है। जबकि यह सरल है, यह दृष्टिकोण मैन्युअल टैगिंग की आवश्यकता होती है और इसमे कई सीमाएँ हैं। यह शब्दों के बीच के अर्थपूर्ण संबंधों को चूकता है, व्यापक संदर्भ को समझ नहीं सकता, और सटीक मिलानों तक सीमित है न कि वैचारिक समानता तक।
2. श्रेणीकरण-आधारित खोज
उत्पादों के लिए खोज कार्यक्षमता को बढ़ाने के लिए, आप श्रेणीकरण लागू कर सकते हैं। यह दृष्टिकोण आपको श्रेणी चयन के आधार पर चित्रों को फ़िल्टर करने की अनुमति देता है, जबकि एक साथ कस्टम विशेषताओं पर पूर्ण-पाठ खोज को लागू करता है। यह द्वि-खोज विधि उपयोगकर्ताओं को ऊर्जा के साथ ठीक वही खोजने में मदद करती है जिससे वे बचे रहना चाहते हैं।
आपको अपनी छवियों को अलग-अलग श्रेणियों में व्यवस्थित करना चाहिए। यहाँ यह दिखा सकता है कि तालिका संरचना कैसी दिखेगी:
CREATE TABLE images (
category_id int,
subcategory_id int,
attributes json,
path string stored
);
यह विधि छवियों को पूर्वनिर्धारित श्रेणियों में व्यवस्थित करती है, जिससे यह कीवर्ड-आधारित खोज की तुलना में अधिक संरचित दृष्टिकोण प्रदान करती है, जबकि इसे नेविगेट करना आसान होता है। हालाँकि, यह कठोर श्रेणीकरण द्वारा सीमित है और विशिष्ट समूहों में छवियों के लिए मैन्युअल वर्गीकरण की आवश्यकता होती है।
3. Manticore Search के साथ छवि कैप्शन का उपयोग
कई AI मॉडल हैं जो छवि कैप्शन उत्पन्न करने में सक्षम हैं। जबकि ये कैप्शन ग्राहक-समर्थित सामग्री के लिए पर्याप्त रूप से निखरे नहीं हो सकते हैं, वे खोज कार्यक्षमता को बढ़ाने के लिए मूल्यवान हो सकते हैं। यह दृष्टिकोण पारंपरिक कीवर्ड-आधारित विधियों को पूरा करता है, खोज क्षमताओं की एक अतिरिक्त परत प्रदान करता है।
आप अपनी छवियों को कैसे भी क्रमबद्ध करें - चाहे श्रेणियों के माध्यम से या मैन्युअल टैगिंग द्वारा - आपको उन भरे हुए क्षेत्रों के माध्यम से छवियों को प्रभावी रूप से खोजने के लिए पूर्ण-पाठ खोज ऑपरेटरों का उपयोग करने की आवश्यकता होगी।
चलें देखें कि यदि आप मैन्युअल कैप्शनिंग लागू करने का निर्णय लेते हैं तो कार्यप्रवाह कैसे सामने आ सकता है:
- सही प्रारूपित कैप्शन के साथ अपने डेटा को डालें:
INSERT INTO images (id, auto_caption, indexed_caption, path) VALUES (1, 'सूर्यास्त के दौरान समुद्र तट पर चलने वाला एक व्यक्ति', 'समुद्र तट सूर्यास्त चलना व्यक्ति', '/images/sunset_beach.jpg'), (2, 'शहरी सेटिंग में पार्क किया गया लाल कार', 'कार लाल शहरी पार्किंग', '/images/red_car.jpg');
- indexed_caption फ़ील्ड का उपयोग करके मूल टेक्स्ट खोजें:
SELECT * FROM images WHERE MATCH('@indexed_caption beach sunset');
- अधिक सटीक परिणामों के लिए उन्नत खोज ऑपरेटरों का उपयोग करें:
-- वाक्यांश मिलान SELECT * FROM images WHERE MATCH('"red car"'); -- बूलियन ऑपरेटर SELECT * FROM images WHERE MATCH('@indexed_caption (beach | sunset) -night');
बेहतर खोज के लिए प्रमुख विचार:
- स्टॉप शब्दों को हटाने के लिए कैप्शन को पूर्व-प्रसंस्कृत करें
- बेहतर मिलान के लिए स्टेमिंग का उपयोग करें
- सामान्य शब्दों के लिए पर्याय वाले शब्दों पर विचार करें
- बेहतर परिणाम के लिए प्रासंगिकता स्कोरिंग लागू करें
आप पूर्ण-पाठ खोज को अतिरिक्त फ़िल्टर के साथ भी संयोजित कर सकते हैं:
SELECT path, WEIGHT() as relevance
FROM images
WHERE MATCH('@indexed_caption sunset')
AND category_id = 1
ORDER BY relevance DESC
LIMIT 10;
4. वेक्टर-आधारित खोज (अनुशंसित दृष्टिकोण)
जैसा कि हमने देखा है, पारंपरिक विधियाँ जैसे कि कीवर्ड-आधारित या श्रेणीकरण-आधारित खोज, साथ ही कैप्शन के उपयोग से बढ़ी हुई विकल्प, विभिन्न स्तरों की दक्षता और जटिलता की पेशकश करते हैं। जबकि ये दृष्टिकोण विशिष्ट संदर्भों में मूल्यवान हो सकते हैं, वे अक्सर सूक्ष्म या अस्पष्ट प्रश्नों को संभालने में असफल होते हैं।
इन सीमाओं को पार करने के लिए, Manticore Search के साथ वेक्टर-आधारित खोज एक शक्तिशाली विकल्प प्रदान करता है। वेक्टर एम्बेडिंग का उपयोग करके, यह दृष्टिकोण टेक्स्ट और छवियों के बीच की खाई को पाटता है, अर्थपूर्ण समझ और सटीक मिलान के लिए सक्षम करता है। चलो इसे कैसे काम करता है और इसे लागू करने के चरणों को समझते हैं।
वेक्टर-आधारित खोज कैसे काम करती है
वेक्टर-आधारित खोज एम्बेडिंग पर निर्भर करती है — डेटा के संख्यात्मक प्रतिनिधित्व जो अर्थपूर्ण अर्थ को कोड करते हैं। एक बहु-मोडल मॉडल टेक्स्ट और छवि इनपुट को संसाधित करता है ताकि इन एम्बेडिंग को उत्पन्न किया जा सके, जिससे सिस्टम को खोजों और छवियों से मतलब के आधार पर मिलान करने की अनुमति मिलती है, न कि शाब्दिक कीवर्ड के आधार पर। कार्यप्रवाह में शामिल हैं:
- छवियों और पाठ के लिए मशीन लर्निंग मॉडल का उपयोग करके एम्बेडिंग उत्पन्न करना।
- समानता खोज के लिए अनुकूलित डेटाबेस में इन एम्बेडिंग्स को संग्रहीत करना।
- दिए गए इनपुट के लिए सबसे प्रासंगिक मेल खोजने के लिए डेटाबेस को पूछताछ करना।
इस प्रक्रिया को देखने में मदद करने के लिए, निम्नलिखित चित्र दर्शाता है कि पाठ और छवियों को कैसे एम्बेडिंग में परिवर्तित किया जाता है और Manticore Search के माध्यम से मेल खाता है:
Manticore के साथ वेक्टर-आधारित खोज स्थापित करना
यहाँ पर चरण-दर-चरण वेक्टर आधारित खोज कैसे लागू की जा सकती है:
- अपने मल्टीमोडल मॉडल को सेट करें
TinyCLIP जैसे मॉडल का उपयोग करें, जो CLIP का हल्का संस्करण है, छवियों और पाठ के लिए एम्बेडिंग उत्पन्न करने के लिए। मॉडल और इसके प्रोसेसर को लोड करें:from transformers import CLIPProcessor, CLIPModel clip_model = CLIPModel.from_pretrained("wkcn/TinyCLIP-ViT-61M-32-Text-29M-LAION400M") clip_processor = CLIPProcessor.from_pretrained("wkcn/TinyCLIP-ViT-61M-32-Text-29M-LAION400M")
- डेटाबेस संरचना बनाएँ
Manticore Search में एम्बेडिंग्स को संग्रहीत करने के लिए एक तालिका स्थापित करें:CREATE TABLE images ( id bigint, image_path text, embeddings float_vector knn_type='hnsw' knn_dims='512' hnsw_similarity='COSINE' );
- एम्बेडिंग उत्पन्न करें और डालें
अपने छवियों को मॉडल के माध्यम से प्रोसेस करें ताकि एम्बेडिंग बने और उन्हें डेटाबेस में स्टोर करें। इस कदम को लागू करने के लिए मार्गदर्शन के लिए GitHub पर load-dataset स्क्रिप्ट का संदर्भ लें। जबकि इस स्क्रिप्ट का सीधा उपयोग नहीं किया जाना है, यह एम्बेडिंग बनाने और उन्हें डेटाबेस में डालने के लिए एक विस्तृत संदर्भ के रूप में काम करती है। - डेटाबेस को पूछताछ करें
$embeddings = $Embed->getImageEmbeddings($image->getPath()); $query = new Manticoresearch\Query\KnnQuery('embeddings', $embeddings, 10); $docs = $client->index('image')->search($query)->get();
वेक्टर-आधारित खोज के लाभ
Manticore के साथ वेक्टर-आधारित छवि खोज को लागू करके, आप कई प्रमुख लाभ प्राप्त करते हैं:
- सेमांटिक समझ: पूछताछों और छवियों को उनके अर्थ के आधार पर मेल करता है, न कि सटीक कीवर्ड के आधार पर।
- दृश्य अवधारणा मेल: जटिल दृश्य विचारों को सटीक रूप से कैप्चर करता है और उन्हें पाठ प्रारूपण के साथ संरेखित करता है।
- स्वाभाविक भाषा की अनुकूलता: स्वाभाविक भाषा की पूछताछ को आसानी से संभालता है, जिससे सहज खोजें सक्षम होती हैं।
- सुधारित सटीकता: सबसे सटीक परिणाम प्रदान करता है, भले ही अमूर्त या सूक्ष्म इनपुट हो।
- स्केलेबिलिटी: मैनुअल प्रयास को कम करता है और बड़े डेटासेट के साथ सहजता से काम करता है।
विधियों की तुलना
यहाँ पर विभिन्न विधियों का वास्तविक दुनिया के परिदृश्यों में प्रदर्शन निम्नलिखित है:
Approach | Description | Accuracy | Setup Complexity | Maintenance | Query Speed |
---|---|---|---|---|---|
Keywords-based | उपयोगकर्ता की पूछताछों को मैन्युअल रूप से जोड़े गए टैग या मेटाडेटा से मेल करता है। सरल है लेकिन सेमान्टिक समझ की कमी है। | कम | कम | उच्च | तेज |
Categorization-based | छवियों को पूर्व-निर्धारित श्रेणियों में व्यवस्थित करता है और संरचित फ़िल्टरिंग की अनुमति देता है। | माध्यम | माध्यम | उच्च | तेज |
Using captions | एआई-जनित या मैन्युअल रूप से बनाए गए कैप्शनों का उपयोग करके पाठ-आधारित खोज क्षमताओं को बढ़ाता है। | माध्यम | उच्च | माध्यम | तेज |
Vector-based | सेमान्टिक खोज के लिए एम्बेडिंग का उपयोग करता है, पाठ और छवियों को अर्थपूर्ण रूप से जोड़ता है। | उच्च | उच्च | कम | माध्यम |
GitHub पर डेमो आजमाएँ
आपको यह देखने में दिलचस्पी है कि यह सब कैसे एक साथ आता है? हमने अपना डेमो ओपन-सोर्स किया है, ताकि आप उसे अन्वेषण कर सकें और अपनी खुद की कार्यान्वयन भी बना सकें। पूर्ण स्रोत कोड के लिए GitHub रिपॉजिटरी पर जाएं: Manticore Image Search Demo ।
रिपॉजिटरी में आपके टेक्स्ट-टू-इमेज खोज अनुप्रयोग को सेटअप और कस्टमाइज़ करने में मदद करने के लिए विस्तृत निर्देश और नमूना स्क्रिप्ट शामिल हैं। चाहे आप डेमो के साथ प्रयोग कर रहे हों या उत्पादन-तैयार समाधान की योजना बना रहे हों, यह एक शानदार प्रारंभिक बिंदु है।
निष्कर्ष
Manticore Search का उपयोग करके वेक्टर-आधारित टेक्स्ट-टू-इमेज खोज पारंपरिक दृष्टिकोणों की तुलना में महत्वपूर्ण लाभ प्रदान करता है। यह प्रदान करता है:
- उपयोगकर्ता की पूछताछों को प्रासंगिक छवियों के साथ मेल करने में उच्च सटीकता
- मैन्युअल टैगिंग या कैप्शनिंग की आवश्यकता नहीं
- सेमान्टिक संबंधों की बेहतर समझ
- बढ़ती छवि संग्रहों के लिए स्केलेबल प्रदर्शन
जबकि कीवर्ड-आधारित या श्रेणीकरण दृष्टिकोण जैसे अन्य तरीके विशिष्ट उपयोग के मामलों के लिए उपयोगी हो सकते हैं, वेक्टर-आधारित खोज आधुनिक टेक्स्ट-टू-इमेज खोज आवश्यकताओं के लिए सबसे उन्नत और प्रभावी समाधान को दर्शाती है।
हमारा डेमो आजमाएँ image.manticoresearch.com पर या GitHub पर स्रोत कोड में जाएं: Manticore Image Search Demo ।