सुनिश्चित करें कि आपके एआई विज़न सेंसर के साथ कलर सिग्नेचर और कलर कोड कॉन्फ़िगर किए गए हैं ताकि उनका उपयोग आपके ब्लॉक के साथ किया जा सके। इन्हें कॉन्फ़िगर करने के बारे में अधिक जानने के लिए, आप नीचे दिए गए लेख पढ़ सकते हैं:
- VEXcode EXP में AI विज़न सिग्नेचर के साथ कलर सिग्नेचर को कॉन्फ़िगर करना
- VEXcode EXP में AI विज़न सिग्नेचर के साथ कलर कोड कॉन्फ़िगर करना
एआई विजन सेंसर एआई वर्गीकरण और अप्रैल टैग का भी पता लगा सकता है। इन डिटेक्शन मोड को सक्रिय करने का तरीका जानने के लिए, यहां जाएं:
एआई विज़न सेंसर की मदद से दृश्य डेटा प्राप्त करें
प्रत्येक एआई विज़न सेंसर कमांड की शुरुआत कॉन्फ़िगर किए गए एआई विज़न सेंसर के नाम से होगी। इस लेख में दिए गए सभी उदाहरणों के लिए, उपयोग किए गए एआई विज़न सेंसर का नाम ai_vision_1 होगा।
आशुचित्र लें
विधि एआई विज़न सेंसर द्वारा वर्तमान में देखी जा रही चीज़ की एक तस्वीर लेती है और उस स्नैपशॉट से डेटा निकालती है जिसका उपयोग बाद में किसी प्रोजेक्ट में किया जा सकता है। स्नैपशॉट लेते समय, आपको यह निर्दिष्ट करना होगा कि एआई विज़न सेंसर को किस प्रकार की वस्तु का डेटा एकत्र करना चाहिए:
- Aकलर सिग्नेचर याकलर कोड
- ये विज़ुअल सिग्नेचर एआई विज़न सेंसर के नाम, डबल अंडरस्कोर और फिर विज़ुअल सिग्नेचर के नाम से शुरू होते हैं, उदाहरण के लिए:
ai_vision_1__Blue।
- ये विज़ुअल सिग्नेचर एआई विज़न सेंसर के नाम, डबल अंडरस्कोर और फिर विज़ुअल सिग्नेचर के नाम से शुरू होते हैं, उदाहरण के लिए:
-
एआई वर्गीकरण -
AiVision.ALL_AIOBJS -
अप्रैल टैग-
AiVision.ALL_TAGS
स्नैपशॉट लेने से आपके द्वारा निर्दिष्ट सभी पहचाने गए ऑब्जेक्ट्स का एक टपल बन जाएगा। उदाहरण के लिए, यदि आप "नीला" रंग हस्ताक्षरका पता लगाना चाहते हैं, और एआई विज़न सेंसर ने 3 अलग-अलग नीली वस्तुओं का पता लगाया है, तो तीनों से डेटा टपल में डाल दिया जाएगा।
इस उदाहरण में, चर vision_objects एक टपल को संग्रहीत करता है जिसमें एआई विज़न सेंसर ai_vision_1 से पता लगाए गए "बैंगनी"रंग हस्ताक्षर शामिल हैं। यह पता लगाए गए ऑब्जेक्ट्स की संख्या प्रदर्शित करता है और हर 0.5 सेकंड में एक नया स्नैपशॉट लेता है।
while True:
# सभी बैंगनी रंग हस्ताक्षरों का स्नैपशॉट प्राप्त करें और इसे vision_objects में संग्रहीत करें।
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Purple)
# डेटा खींचने से पहले स्नैपशॉट में ऑब्जेक्ट का पता लगाया गया था या नहीं, यह सुनिश्चित करने के लिए जाँच करें।
if vision_objects[0].exists == True
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("ऑब्जेक्ट की संख्या:", len(vision_objects))
wait(0.5, SECONDS)ऑब्जेक्ट गुण
स्नैपशॉट में मौजूद प्रत्येक ऑब्जेक्ट में अलग-अलग गुण होते हैं जिनका उपयोग उस ऑब्जेक्ट के बारे में जानकारी देने के लिए किया जा सकता है। उपलब्ध संपत्तियां निम्नलिखित हैं:
- पहचान
- केंद्रX और केंद्रY
- मूलX और मूलY
- चौड़ाई
- ऊंचाई
- कोण
- अंक
- मौजूद है
किसी ऑब्जेक्ट की प्रॉपर्टी तक पहुंचने के लिए, टपल को स्टोर करने वाले वेरिएबल के नाम का उपयोग करें, उसके बाद ऑब्जेक्ट इंडेक्स का उपयोग करें।
ऑब्जेक्ट इंडेक्स यह दर्शाता है कि आप किस विशिष्ट ऑब्जेक्ट की प्रॉपर्टी को प्राप्त करना चाहते हैं। स्नैपशॉट लेने के बाद, एआई विजन सेंसर स्वचालित रूप से वस्तुओं को आकार के अनुसार क्रमबद्ध करता है। सबसे बड़ी वस्तु को सूचकांक 0 दिया जाता है, जबकि छोटी वस्तुओं को उच्चतर सूचकांक संख्याएँ प्राप्त होती हैं।
उदाहरण के लिए, vision_objects चर के अंदर सबसे बड़े ऑब्जेक्ट की चौड़ाई को कॉल करना इस प्रकार होगा: vision_objects[0].width.
पहचान
id प्रॉपर्टी केवल अप्रैलटैग और एआई वर्गीकरणों के लिए उपलब्ध है।
AprilTagके लिए, id प्रॉपर्टी पता लगाए गएAprilTag(s) ID नंबर को दर्शाती है।
विशिष्ट अप्रैल टैग की पहचान करने से चयनात्मक नेविगेशन संभव हो पाता है। आप अपने रोबोट को कुछ टैग की ओर बढ़ने और अन्य को अनदेखा करने के लिए प्रोग्राम कर सकते हैं, जिससे प्रभावी रूप से उनका उपयोग स्वचालित नेविगेशन के लिए दिशासूचक के रूप में किया जा सकता है।
एआई वर्गीकरणके लिए, आईडी प्रॉपर्टी पता लगाए गए एआई वर्गीकरण के विशिष्ट प्रकार को दर्शाती है।
विशिष्ट एआई वर्गीकरणकी पहचान करने से रोबोट को केवल विशिष्ट वस्तुओं पर ध्यान केंद्रित करने की अनुमति मिलती है, जैसे कि केवल लाल बकीबॉल की ओर जाना, नीले रंग की ओर नहीं।
अप्रैलटैग और एआई वर्गीकरण के बारे में अधिक जानकारी के लिए और एआई विज़न यूटिलिटी में उनकी पहचान को सक्षम करने के तरीके के लिए इन लेखों पर जाएं।
केंद्रX और केंद्रY
यह पिक्सेल में पता लगाए गए ऑब्जेक्ट के केंद्र निर्देशांक हैं।
सेंटरएक्स और सेंटरवाई निर्देशांक नेविगेशन और स्थिति निर्धारण में सहायता करते हैं। एआई विजन सेंसर का रिजॉल्यूशन 320 x 240 पिक्सल है।
आप देख सकते हैं कि एआई विज़न सेंसर के करीब स्थित वस्तु का सेंटरवाई निर्देशांक दूर स्थित वस्तु की तुलना में कम होगा।
इस उदाहरण में, क्योंकि एआई विज़न सेंसर के दृश्य का केंद्र (160, 120) है, रोबोट तब तक दाईं ओर मुड़ेगा जब तक कि पता लगाए गए ऑब्जेक्ट का केंद्रX निर्देशांक 150 पिक्सेल से अधिक न हो, लेकिन 170 पिक्सेल से कम हो।
while True:
# सभी नीले रंग के हस्ताक्षरों का स्नैपशॉट प्राप्त करें और इसे vision_objects में संग्रहीत करें।
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# डेटा खींचने से पहले स्नैपशॉट में किसी ऑब्जेक्ट का पता लगाया गया था या नहीं, यह सुनिश्चित करने के लिए जाँच करें।
if vision_objects[0].exists == True
# जांचें कि वस्तु एआई विज़न सेंसर के दृश्य के केंद्र में नहीं है।
if vision_objects[0].centerX > 150 and 170 > vision_objects[0].centerX:
# जब तक ऑब्जेक्ट दृश्य के केंद्र में न हो तब तक दाईं ओर मुड़ते रहें।
ड्राइवट्रेन.टर्न(दाएं)
अन्यथा:
ड्राइवट्रेन.स्टॉप()
प्रतीक्षा(5, एमएसईसी)
मूल बिंदु X और मूल बिंदु
OriginX और OriginY, पिक्सेल में पता लगाए गए ऑब्जेक्ट के ऊपरी-बाएँ कोने पर स्थित निर्देशांक हैं।
OriginX और OriginY निर्देशांक नेविगेशन और स्थिति निर्धारण में सहायता करते हैं। इस निर्देशांक को वस्तु की चौड़ाई और ऊंचाई के साथ मिलाकर, आप वस्तु के परिबद्ध बॉक्स का आकार निर्धारित कर सकते हैं। इससे गतिशील वस्तुओं को ट्रैक करने या वस्तुओं के बीच नेविगेट करने में मदद मिल सकती है।
चौड़ाई ऊंचाई और , ऊंचाई
यह पिक्सेल में पता लगाए गए ऑब्जेक्ट की चौड़ाई या ऊंचाई है।
चौड़ाई और ऊंचाई के माप विभिन्न वस्तुओं की पहचान करने में सहायक होते हैं। उदाहरण के लिए, एक बकीबॉल की ऊंचाई एक रिंग की ऊंचाई से अधिक होगी।
चौड़ाई और ऊंचाई किसी वस्तु की एआई विजन सेंसर से दूरी को भी दर्शाती हैं। आमतौर पर छोटे माप का मतलब होता है कि वस्तु अधिक दूर है, जबकि बड़े माप से पता चलता है कि वह पास है।
इस उदाहरण में, ऑब्जेक्ट की चौड़ाई का उपयोग नेविगेशन के लिए किया जाता है। रोबोट वस्तु के पास तब तक जाएगा जब तक उसकी चौड़ाई एक निश्चित आकार तक नहीं पहुंच जाती, उसके बाद वह रुक जाएगा।
while True:
# सभी नीले रंग के हस्ताक्षरों का स्नैपशॉट प्राप्त करें और इसे vision_objects में संग्रहीत करें।
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# डेटा खींचने से पहले स्नैपशॉट में किसी ऑब्जेक्ट का पता लगाया गया था या नहीं, यह सुनिश्चित करने के लिए जाँच करें।
if vision_objects[0].exists == True
# सबसे बड़ी वस्तु की चौड़ाई मापकर AI विज़न सेंसर के करीब है या नहीं, इसकी जाँच करें।
if vision_objects[0].width < 250:
# वस्तु के करीब तब तक ड्राइव करें जब तक कि यह 250 पिक्सेल से अधिक चौड़ा न हो जाए।
ड्राइवट्रेन.ड्राइव(फॉरवर्ड)
अन्यथा:
ड्राइवट्रेन.स्टॉप()
प्रतीक्षा(5, एमएसईसी)कोण
कोण प्रॉपर्टी केवलकलर कोड औरअप्रैल टैग.
के लिए उपलब्ध है।
यह दर्शाता है कि क्या पता लगाया गया कलर कोडया अप्रैलटैग अलग तरह से उन्मुख है।
आप देख सकते हैं कि रोबोटकलर कोड याअप्रैलटैग के संबंध में अलग तरह से उन्मुख है या नहीं और उसके अनुसार नेविगेशन संबंधी निर्णय ले सकते हैं।
उदाहरण के लिए, यदिकलर कोड को उचित कोण पर नहीं पहचाना जाता है, तो रोबोट उस वस्तु को ठीक से उठा नहीं पाएगा जिसका वह प्रतिनिधित्व करता है।
अंक
एआई विज़न सेंसर के साथवर्गीकरण का पता लगाने के दौरान स्कोर प्रॉपर्टी का उपयोग किया जाता है।
कॉन्फिडेंस स्कोर यह दर्शाता है कि एआई विजन सेंसर अपने डिटेक्शन को लेकर कितना आश्वस्त है। इस छवि में, एआई इन चार वस्तुओं के वर्गीकरण की पहचान करने में 99% आश्वस्त है। आप इस स्कोर का उपयोग यह सुनिश्चित करने के लिए कर सकते हैं कि आपका रोबोट केवल अत्यधिक विश्वसनीय पहचानों पर ही ध्यान केंद्रित करे।
मौजूद है
मौजूद प्रॉपर्टी का उपयोग यह पता लगाने के लिए किया जाता है कि क्या अंतिम लिए गए स्नैपशॉट में एक निर्दिष्ट विज़ुअल सिग्नेचर का पता लगाया गया है।
इससे आप यह जांच सकते हैं कि पिछली स्नैपशॉट में कोई भी ऑब्जेक्ट मौजूद था या नहीं। यह प्रॉपर्टी ऑब्जेक्ट के मौजूद होने पर True और ऑब्जेक्ट के मौजूद न होने पर False मान लौटाएगी।