blog-post

Manticore Search के साथ एक रिवर्स इमेज सर्च ऐप बनाना

TL;DR: जानें कि Manticore Search के साथ एक रिवर्स इमेज सर्च ऐप कैसे बनाया जाए, जिसमें रिवर्स इमेज सर्च का इतिहास, इसके पीछे की प्रौद्योगिकी, और इमेज रिसर्च सिस्टम के लिए व्यावहारिक दृष्टिकोण शामिल हैं।

परिचय

रिवर्स इमेज सर्च ने डिजिटल सामग्री की खोज करने के तरीके को बदल दिया है, जिससे उपयोगकर्ता पाठ के बजाय चित्रों का उपयोग करके खोज कर सकते हैं। इस प्रौद्योगिकी के कई अनुप्रयोग हैं, जैसे कि खरीदारों को उत्पादों को खोजने में मदद करना और डिजाइनरों को मौजूदा डिज़ाइन के खिलाफ अपने कार्य की जांच करने में सक्षम बनाना। यह कई डिजिटल प्लेटफार्मों में एक प्रमुख घटक बन गया है।

आप हमारे रिवर्स इमेज सर्च डेमो का अनुभव कर सकते हैं image.manticoresearch.com पर, और GitHub पर ओपन-सोर्स कार्यान्वयन देखें

हम यह समझेंगे कि रिवर्स इमेज सर्च कैसे काम करता है, इसके वास्तविक जीवन में उपयोगों पर चर्चा करेंगे, और दिखाएंगे कि वेक्टर सर्च प्रौद्योगिकी इस उपकरण को विभिन्न परिदृश्यों के लिए कुशल और सुलभ कैसे बनाती है, चाहे वह रोज़मर्रा के ब्राउज़िंग के लिए हो या विशेष अनुप्रयोगों के लिए।

रिवर्स इमेज सर्च को समझना

रिवर्स इमेज सर्च कैसे काम करता है?

रिवर्स इमेज सर्च उपयोगकर्ताओं को एक छवि अपलोड करके या एक चित्र यूआरएल प्रदान करके खोज करने की अनुमति देता है, और प्रणाली दृश्यता के समान छवियों के साथ संबंधित जानकारी लौटाती है। प्रक्रिया में कई प्रमुख कदम शामिल हैं, जो उच्च-आयामी छवि डेटा को कुशलतापूर्वक संभालने के लिए वेक्टर सर्च प्रौद्योगिकी का उपयोग करते हैं:

  1. फीचर एक्सट्रैक्शन: प्रणाली छवि का विश्लेषण करती है ताकि प्रमुख दृश्य तत्वों की पहचान की जा सके।
  2. एंबेडिंग जनरेशन: दृश्य विशेषताएँ एक संख्यात्मक वेक्टर प्रतिनिधित्व में परिवर्तित होती हैं।
  3. समानता तुलना: इस वेक्टर की तुलना संग्रहीत छवि वेक्टरों के डेटाबेस के खिलाफ वेक्टर सर्च का उपयोग करके की जाती है।
  4. परिणाम रैंकिंग: परिणाम समानता अंकों के आधार पर क्रमबद्ध होते हैं।

मशीन लर्निंग मॉडल की भूमिका

मशीन लर्निंग मॉडल, विशेष रूप से गहरा शिक्षा, ने रिवर्स इमेज सर्च में क्रांति ला दी है। 2000 के दशक में प्रारंभिक सिस्टम ने बुनियादी रंग(histogram) और किनारे पहचान पर भरोसा किया, जिसने सटीकता को सीमित किया। 2012 में कॉन्वोल्यूशनल न्यूरल नेटवर्क (CNNs) के परिचय, जैसे कि AlexNet, ने जटिल दृश्य पैटर्न को समझने की क्षमता को काफी बेहतर किया।

कई समय के साथ, Google Images और Pinterest जैसे सेवाएँ बुनियादी मेटाडेटा मिलान से उन्नत गहरे शिक्षा मॉडलों का उपयोग करने में विकसित हुईं, जो सटीक खोज परिणाम प्रदान करती हैं। TinEye ने भी वेब पर छवि संशोधनों और पुनः उपयोगों को ट्रैक करने की क्षमता को दर्शाया।

आधुनिक मशीन लर्निंग मॉडल जटिल दृश्य पैटर्न को समझने और प्रत्येक फोटो की पहचान को कैप्चर करने के लिए विस्तृत इमेज एंबेडिंग बनाने में उत्कृष्ट हैं। ये मॉडल संदर्भ को समझ सकते हैं, विभिन्न परिप्रेक्ष्य से वस्तुओं को पहचान सकते हैं, और यहां तक कि कलात्मक शैलियों को भी समझ सकते हैं - ये ऐसे उपलब्धियां थीं जो पुराने कंप्यूटर दृष्टि विधियों की पहुंच से बाहर थीं।

TinyCLIP और Manticore Search के साथ एक रिवर्स इमेज सर्च सिस्टम बनाना

Reverse Image Search Showcase

Manticore Search पर, हमने एक कुशल रिवर्स इमेज सर्च सिस्टम बनाने के लिए कई दृष्टिकोणों का अन्वेषण किया। हम एक व्यावहारिक समाधान चाहते थे जो Manticore की शक्तिशाली वेक्टर सर्च का लाभ उठाते हुए भी सुलभ हो, और इसने हमें TinyCLIP — एक सुव्यवस्थित मॉडल की ओर अग्रसर किया जो मानक CPUs पर कुशलतापूर्वक चलता है।

TinyCLIP हमारे कार्यान्वयन के लिए एकदम सही है क्योंकि यह प्रोसेसिंग कुशलता और सटीकता के बीच संतुलन बनाता है। बड़े मॉडलों के विपरीत, जिनके लिए विशेष GPU ढांचे की आवश्यकता होती है, TinyCLIP मानक हार्डवेयर पर चल सकता है, जिससे यह हल्के, कंटेनरीकृत परिनियोजनों के लिए आदर्श हो जाता है।

CLIP (Contrastive Language-Image Pre-training) परिवार का हिस्सा, TinyCLIP छवियों और पाठ दोनों के लिए वेक्टर एंबेडिंग बनाने में सक्षम है, जिससे:

  1. अन्य चित्रों का उपयोग करके चित्रों की खोज करना (रिवर्स इमेज सर्च)।
  2. पाठ वर्णन का उपयोग करके चित्रों की खोज करना।
  3. किसी चित्र के साथ संबंधित पाठ सामग्री ढूँढना।
  4. समानता के आधार पर पाठ-दर-पाठ मिलान करना।

TinyCLIP अच्छी सटीकता बनाए रखते हुए निम्नलिखित कम करता है:

  • मॉडल का आकार (कम भंडारण और मेमोरी)।
  • कंप्यूटेशनल आवश्यकताएँ (CPUs पर चलते हैं)।
  • अनुमान का समय (तेजी से प्रतिक्रिया)।
  • कंटेनर का आकार (आसान परिनियोजन और पैमाना बढ़ाना)।

Manticore Search के वेक्टर स्टोरेज के साथ TinyCLIP को एकीकृत करके, हमने उपयोग में लाने योग्य मल्टीमोडल सर्च सिस्टम बनाने के लिए एक व्यावहारिक आधार बनाया।

वेक्टर सर्च रिवर्स इमेज सर्च के लिए एक प्रभावी दृष्टिकोण है, जो उच्च-आयामी वेक्टरों की तेज और सटीक तुलना को सक्षम बनाता है। Manticore Search, एक ओपन-सोर्स इंजन, वेक्टर सर्च का समर्थन करता है, जिससे यह रिवर्स इमेज सर्च को लागू करने के लिए एक शक्तिशाली विकल्प बन जाता है।

Manticore Search के साथ रिवर्स इमेज सर्च लागू करना

हमने Manticore Search की क्षमताओं के साथ रिवर्स इमेज सर्च को जीवित किया। नीचे एक कदम-दर-चरण मार्गदर्शिका है:

  1. Manticore Search सेट करें: इन निर्देशों का पालन करके Manticore Search स्थापित करें और कॉन्फ़िगर करें।
  2. चित्र वेक्टरों के लिए एक टेबल बनाएं: चित्र वेक्टरों को संग्रहीत करने के लिए एक टेबल स्कीमा परिभाषित करें:
    CREATE TABLE IF NOT EXISTS <table name> (
        id bigint,
        image_path text,
        caption text,
        embeddings float_vector knn_type='hnsw' knn_dims='512' hnsw_similarity='COSINE'
    )
    
  3. चित्र एंबेडिंग जनरेट करें: अपने चित्रों को वेक्टर एंबेडिंग में परिवर्तित करने के लिए TinyCLIP का उपयोग करें।
    चित्र एंबेडिंग उत्पन्न करें: TinyCLIP का उपयोग करके छवियों को वेक्टर एंबेडिंग में परिवर्तित करें। हमने एक हल्का Python सर्वर बनाया ताकि इन एंबेडिंग को उत्पन्न और पुनर्प्राप्त किया जा सके।
    यदि आप Python के साथ मॉडल का उपयोग करने के लिए उत्सुक हैं, तो यह बहुत सीधा है और यह कुछ इस तरह दिखता है:
    from transformers import CLIPProcessor, CLIPModel, AutoProcessor, AutoModelForCausalLM
    
    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")
    
    try:
        image_bytes = base64.b64decode(request.image)
        image = Image.open(io.BytesIO(image_bytes))
    
        inputs = clip_processor(images=image, return_tensors="pt")
        with torch.no_grad():
            image_features = clip_model.get_image_features(**inputs)
    
        print(image_features.squeeze().tolist())
    except Exception as e:
        raise HTTPException(status_code=400, detail=f"Error processing image: {str(e)}")
    
  4. छवि वेक्टर का अनुक्रमण करें: अपने वेक्टर डेटा को Manticore Search तालिका में आयात करें।
    सबसे पहले, प्रत्येक छवि को उसके पाठ एम्बेडिंग प्रतिनिधित्व प्राप्त करने के लिए संसाधित करें, फिर इन वेक्टरों को अपनी Manticore Search तालिका में संग्रहीत करें। यह महत्वपूर्ण कदम आपके दृश्य डेटा को खोजने योग्य संख्यात्मक मानों में परिवर्तित करता है, जिससे उनकी खोजों के दौरान प्रभावी रूप से पुनर्प्राप्त करने के लिए तैयार हो जाता है।
    इस स्क्रिप्ट पर एक नज़र डालें जिसे हमने पहले उल्लेखित Python सर्वर API का उपयोग करके हमारे डेमो में डेटा आयात करने के लिए विकसित किया। आपको बस अपनी छवि संग्रह को मॉडल के माध्यम से संसाधित करना है, जो वेक्टर उत्पन्न करेगा जिन्हें फिर Manticore Search में संग्रहीत किया जा सकता है।
  5. छवि खोज को लागू करें: दृष्टिगत समान छवियों को खोजने के लिए Manticore Search की वेक्टर क्षमताओं को एकीकृत करें।
    यहाँ एक व्यावहारिक कार्यान्वयन और बुनियादी कार्यप्रवाह है जो दिखाता है कि आप Manticore के साथ क्या हासिल कर सकते हैं। सरलता के लिए कुछ विवरण छोड़ दिए गए हैं, लेकिन आप हमारे संग्रहीत कोड में पूरा कोड पा सकते हैं।
    // छवि अपलोड करें और पहले एम्बेडिंग प्राप्त करें
    $image = Image::upload($file['tmp_name'])->unwrap();
    $embeddings = $Embed->getImageEmbeddings($image->getPath())->unwrap();
    
    // Manticore Search के साथ खोजें
    $client = new Manticoresearch\Client(config('manticore'));
    $query = new Manticoresearch\Query\KnnQuery('embeddings', $embeddings, 10);
    $docs = $client->index('image')->search($query)->get();
    
    // अंत में प्रাপ্ত छवियों के साथ कुछ करें
    foreach ($docs as $doc) {
        $row = ['id' => (int)$doc->getId(), ...$doc->getData()];
        $items[] = $row;
    }
    
    इसके अलावा, इस स्क्रिप्ट में आप देख सकते हैं कि हम छवि एम्बेडिंग को कैसे संसाधित करते हैं और Manticore Search का उपयोग करके प्रासंगिक परिणाम प्राप्त करने के लिए वेक्टर समानता खोज कैसे करते हैं।

Manticore Search छवि डेमो

हमने वेक्टर खोज की क्षमताओं का प्रदर्शन करने के लिए एक डेमो विकसित किया है, जिसे आप image.manticoresearch.com पर देख सकते हैं। यह डेमो TinyCLIP के AI मॉडल का उपयोग करता है ताकि छवियों को वेक्टर में परिवर्तित किया जा सके और तेज समानता खोजें की जा सकें।

प्रमुख विशेषताएँ

  1. प्रतिवर्ती छवि खोज (छवि से छवि खोज): दृश्य रूप से समान सामग्री खोजने के लिए एक छवि अपलोड करें या लिंक करें।
  2. पाठ से छवि खोज: प्रासंगिक छवियों को खोजने के लिए पाठ विवरणों का उपयोग करें। यह सुविधा TinyCLIP की क्षमता के कारण संभव है, जो पाठ एम्बेडिंग बनाता है जो छवि एम्बेडिंग के साथ मेल खाती हैं, प्रभावी क्रॉस-मोडल पुनर्प्राप्ति की पेशकश करती हैं। जबकि यह लेख प्रतिवर्ती छवि खोज पर केंद्रित है, हम भविष्य में पाठ से छवि खोज पर समर्पित एक अलग लेख बनाएंगे।
  3. कुशल CPU प्रसंस्करण: TinyCLIP बिना किसी विशिष्ट हार्डवेयर की आवश्यकता के तेज परिणाम प्रदान करता है।

प्रतिवर्ती छवि खोज के अनुप्रयोग

प्रतिवर्ती छवि खोज कई संभावनाओं को खोलती है:

  • ई-कॉमर्स: प्रतिवर्ती छवि खोज ग्राहकों को एक फोटो अपलोड करके दृश्य रूप से समान उत्पाद खोजने में मदद कर सकती है। उदाहरण के लिए, यदि एक ग्राहक एक ड्रेस देखता है जिसे वह पसंद करता है लेकिन उसे ऑनलाइन नहीं मिल रहा है, तो वह उसकी तस्वीर अपलोड कर सकता है, और सिस्टम उन्हें खरीदने के लिए उपलब्ध दृश्य रूप से समान ड्रेसेस दिखाएगा। यह सुविधा उत्पाद खोज को बेहतर बनाने और खरीदारी के अनुभव को बढ़ाने में मदद करती है।
  • सामग्री प्रबंधन: बड़े सामग्री पुस्तकालयों वाली संगठनों के लिए डुप्लिकेट छवियों की पहचान एक बड़ा चुनौती है। प्रतिवर्ती छवि खोज सामग्री प्रबंधकों को तेजी से डुप्लिकेट छवियों की पहचान करने और उन्हें हटाने, संग्रहण स्थान का अनुकूलन करने और कुशल सामग्री प्रबंधन सुनिश्चित करने की अनुमति देती है। यह विभिन्न प्लेटफार्मों पर छवियों के अनधिकृत उपयोग को ट्रैक करने में भी मदद करती है, जिससे कॉपीराइट अनुपालन बनाए रखता है।
  • सिफारिशें: दृश्य रूप से प्रासंगिक सुझाव प्रदान करना उपयोगकर्ता सहभागिता को बढ़ाने में मदद करता है, जिससे उपयोगकर्ताओं के लिए संबंधित सामग्री खोज करना आसान हो जाता है। उदाहरण के लिए, यदि एक उपयोगकर्ता एक विशेष फर्नीचर के टुकड़े की तस्वीर अपलोड करता है, तो उसे स्टाइल या रंग के मेल खाते समान आइटम दिखाए जा सकते हैं, जिससे उनके लिए एक सेट पूरा करना या समान विकल्पों का अन्वेषण करना आसान हो जाता है। यह क्षमता फैशन, घरेलू सजावट और कई अन्य क्षेत्रों में लागू की जा सकती है ताकि एक अधिक सहज और दृश्य प्रेरित सिफारिश अनुभव प्रदान किया जा सके।

निष्कर्ष और भविष्य की दिशाएँ

प्रतिवर्ती छवि खोज काफी लंबा सफर तय कर चुकी है, सरल रंग मिलान से उन्नत वेक्टर-आधारित समानता विश्लेषण में विकसित हो चुकी है। TinyCLIP और Manticore Search जैसे मॉडलों के साथ, अब सभी स्तरों के डेवलपर्स के लिए प्रतिवर्ती छवि खोज प्रणाली बनाना संभव है।

हमारा छवि खोज डेमो image.manticoresearch.com पर उपलब्ध है, जो आपको इन तकनीकों का प्रत्यक्ष अनुभव करने देता है। चाहे आप अपने ऐप में दृश्य खोज जोड़ने की योजना बना रहे हों या बस जिज्ञासु हों, यह डेमो आधुनिक प्रतिवर्ती छवि खोज की शक्ति का अन्वेषण करने के लिए एक उत्कृष्ट जगह है।

मैंटीकोर सर्च इंस्टॉल करें

मैंटीकोर सर्च इंस्टॉल करें