संक्षेप: जानें कि Manticore Search कैसे टेक्स्ट विवरण के आधार पर इमेज खोजने की अनुमति देता है, प्राकृतिक भाषा प्रसंस्करण और वेक्टर प्रेजेंटेशन के आधार पर। हम विभिन्न तरीकों का अवलोकन करेंगे — पारंपरिक विधियों से लेकर वेक्टर खोज आधारित आधुनिक समाधानों तक। और यदि आप इसे वास्तविक समय में देखना चाहते हैं, तो हमारे डेमो पर जाएं।
परिचय
कल्पना कीजिए, कि आप बस शब्दों के माध्यम से आवश्यक इमेज खोज सकते हैं, जैसे: “समुद्र तट पर सूर्यास्त”। अब यह कोई कल्पना नहीं, बल्कि वास्तविकता है। टेक्स्ट के आधार पर इमेज खोज भाषा और दृश्य सामग्री को एकत्र करता है।
पारंपरिक तरीके (कीवर्ड आधारित खोज या मैन्युअल टैगिंग) अक्सर असंगत और स्केलिंग में कठिन होते हैं। आधुनिक विधियाँ, जैसे कि Manticore Search का समाधान, अर्थ के समझने और वेक्टर प्रेजेंटेशन का उपयोग करते हैं, ताकि अधिक सटीक और संदर्भिक परिणाम दिए जा सकें। यह विशेष रूप से ई-कॉमर्स, मीडिया लाइब्रेरी या रचनात्मक कार्यों के लिए सेवा में सहायक है, सामग्री के साथ काम करने की प्रक्रिया को आसान बनाते हुए।
क्या आप देखना चाहते हैं कि यह कैसे काम करता है? हमारे डेमो पर प्रयास करें!
टेक्स्ट के आधार पर इमेज खोज के तरीके
1. कीवर्ड खोज
सबसे सरल तरीका। पहले एक तालिका बनाते हैं:
CREATE TABLE images (
title text,
description text,
tags text,
path string stored
);
फिर हम प्रत्येक इमेज के लिए मैन्युअल रूप से टैग जोड़ते हैं। इसके बाद आप एक क्वेरी कर सकते हैं:
SELECT * FROM images WHERE MATCH('@tags लाल ड्रेस');
या शीर्षकों और विवरणों के माध्यम से खोजें:
SELECT * FROM images WHERE MATCH('@(title,description) लाल ड्रेस');
यहां खोज टेक्स्ट मेटाडेटा और क्वेरी की तुलना पर आधारित है। तरीका सरल है, लेकिन इसे मैन्युअल टैगिंग की आवश्यकता होती है और यह बहुत सीमित है। यह शब्दों के बीच के व्यापक संबंधों या उनके संदर्भ को समझने में असमर्थ है, और सटीक मिलान पर आधारित है, न कि अर्थ पर।
2. श्रेणीकरण के साथ खोज
उत्पादों या किसी अन्य वस्तुओं की खोज में सुधार करने के लिए, आप श्रेणियाँ जोड़ सकते हैं। तब उपयोगकर्ता को चयनित श्रेणी के अनुसार इमेज को फ़िल्टर करने और साथ ही पूर्ण-टेक्स्ट खोज का उपयोग करने की अनुमति मिलेगी। यह उन लोगों के लिए जीवन को आसान बनाता है जो कुछ विशिष्ट खोज रहे हैं।
तालिका का एक उदाहरण इस तरह हो सकता है:
CREATE TABLE images (
category_id int,
subcategory_id int,
attributes json,
path string stored
);
इस तरीके से सभी इमेज को पूर्व निर्धारित श्रेणियों में वितरित किया जाता है। यह केवल कीवर्ड के मुकाबले एक अधिक स्पष्ट संरचना प्रदान करता है, लेकिन इसके साथ ही लचीलापन सीमित कर देता है, क्योंकि सबकुछ पूर्व निर्धारित समूहों से जुड़ा होता है। इसके अलावा, आपको मैन्युअल रूप से यह तय करना होगा कि प्रत्येक इमेज को कहाँ सूट करना है।
3. इमेज के लिए कैप्शन का उपयोग करके खोज
विभिन्न 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 समुद्र तट सूर्यास्त');
- अधिक सटीक खोज के लिए उन्नत ऑपरेटरों का उपयोग करें:
-- वाक्यांश पर खोज SELECT * FROM images WHERE MATCH('"लाल कार"'); -- जटिल क्वेरी SELECT * FROM images WHERE MATCH('@indexed_caption (समुद्र तट | सूर्यास्त) -रात');
कैसे परिणाम सुधारें?
कैप्शन से स्टॉप वर्ड हटाएँ।
विभिन्न शब्द रूपों को कवर करने के लिए स्टेमिंग समायोजित करें।
लोकप्रिय शब्दों के लिए पर्यायवाची जोड़ें।
परिणाम को और अधिक सटीक बनाने के लिए प्रासंगिकता के गुणांक को समायोजित करें।
पूर्ण-टेक्स्ट खोज को फ़िल्टर के साथ मिलाया जा सकता है:
SELECT path, WEIGHT() as relevance
FROM images
WHERE MATCH('@indexed_caption सूर्यास्त')
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")
डाटाबेस में तालिका बनाना
वेक्टरों को संग्रहीत करने के लिए संरचना तैयार करें: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 में वेक्टर एम्बेडिंग का उपयोग कर चित्रों की खोज करते हैं, तो आपको कई महत्वपूर्ण लाभ मिलेंगे:
सेमांटिक समझ: अनुरोध और चित्र को सामान्य अर्थ के अनुसार मिलाता है, न कि शब्दों की सटीक संगति के अनुसार।
दृश्य अवधारणाओं के लिए लचीलापन: यहां तक कि बारीक दृश्य विवरणों को भी शानदार तरीके से पकड़ता है और उन्हें वर्णन के साथ मेल करता है।
प्राकृतिक भाषा की सहजता: सामान्य वाक्यांशों और प्रश्नों का उपयोग करने की अनुमति देता है।
उच्च सटीकता: अमूर्त या जटिल अनुरोधों के लिए उपयुक्त।
स्केलेबिलिटी: निरंतर मैनुअल टैगिंग की आवश्यकता नहीं होती और बड़े संग्रहों के साथ आसानी से काम करता है।
विधियों की तुलना
नीचे विभिन्न विधियों के वास्तविक परिस्थितियों में प्रदर्शन का संक्षिप्त सारांश है:
दृष्टिकोण | विवरण | सटीकता | सेटअप की जटिलता | रखरखाव | अनुरोध की गति |
---|---|---|---|---|---|
कीवर्ड खोज | मैन्युअल रूप से लगाए गए टैग के साथ अनुरोध का मिलान। सबसे सरल, लेकिन अर्थ नहीं समझता। | कम | कम | उच्च | तेज |
श्रेणीबद्ध खोज | पूर्व निर्धारित समूहों के आधार पर चित्रों का स्पष्ट संगठन, संरचित खोज प्रदान करता है। | औसत | औसत | उच्च | तेज |
कैप्शन इस्तेमाल करके खोज | स्वचालित या मैन्युअल विवरण, जो कीवर्ड को पूरा करते हैं। | औसत | उच्च | औसत | तेज |
| वेक्टर खोज | एम्बेडिंग बनाता है और अर्थ के अनुसार तुलना करता है, न कि औपचारिक संगति के अनुसार। | उच्च | उच्च | कम | औसत |
हर विकल्प के अपने लाभ और हानि हैं। उस विकल्प का चयन करें जो आपकी आवश्यकताओं और संसाधनों के लिए सबसे उपयुक्त हो।
डेमो आजमाएं
क्या आप सब कुछ अपनी आंखों से देखना चाहते हैं? हमारे पास एक ओपन-सोर्स डेमो प्रोजेक्ट है। आप GitHub पर रिपोजिटरी देख सकते हैं और सभी चीजों को अपनी जरूरतों के अनुसार सेट कर सकते हैं: Manticore Image Search Demo।
रिपोजिटरी में विस्तार से निर्देश और स्क्रिप्ट के उदाहरण हैं, ताकि आप जल्दी से ऐप्लिकेशन चालू कर सकें या इसे अपने अनुसार ढाल सकें। यह परीक्षणों और वास्तविक प्रोडक्शन के लिए एक शानदार शुरुआत है।
निष्कर्ष
Manticore Search के साथ पाठ के लिए चित्रों की वेक्टर खोज पारंपरिक विधियों की तुलना में महत्वपूर्ण लाभ देती है। यह सुनिश्चित करती है:
बहुत सटीक अनुरोधों और प्रासंगिक छवियों का मिलान।
कम मैनुअल काम (हर जगह टैग लगाने की आवश्यकता नहीं)।
शब्दों और चित्रों के बीच सेमांटिक संबंधों का ध्यान।
छवियों की संख्या बढ़ने पर अच्छी स्केलेबिलिटी।
हालांकि कीवर्ड खोज या श्रेणीकरण कभी-कभी सहायक होते हैं, वेक्टर दृष्टिकोण वर्तमान में चित्रों की खोज के लिए सबसे आधुनिक और प्रभावी माना जाता है।
क्या आप शब्दों पर विश्वास नहीं करते? हमारे डेमो पर जाएं image.manticoresearch.com या GitHub पर स्रोत को देखें: Manticore Image Search Demo.