सुनिश्चित करें कि आपके एआई विज़न सेंसर के साथ कलर सिग्नेचर और कलर कोड कॉन्फ़िगर किए गए हैं ताकि उनका उपयोग आपके ब्लॉक के साथ किया जा सके। इन्हें कॉन्फ़िगर करने के बारे में अधिक जानने के लिए, आप नीचे दिए गए लेख पढ़ सकते हैं:
- VEXcode V5 में AI विज़न सिग्नेचर के साथ कलर सिग्नेचर को कॉन्फ़िगर करना
- VEXcode V5 में AI विज़न सिग्नेचर के साथ कलर कोड कॉन्फ़िगर करना
एआई विजन सेंसर एआई वर्गीकरण और अप्रैल टैग का भी पता लगा सकता है। इन डिटेक्शन मोड को सक्रिय करने का तरीका जानने के लिए, यहां जाएं:
एआई विज़न सेंसर की मदद से दृश्य डेटा प्राप्त करें
प्रत्येक एआई विज़न सेंसर कमांड की शुरुआत कॉन्फ़िगर किए गए एआई विज़न सेंसर के नाम से होगी। इस लेख में दिए गए सभी उदाहरणों के लिए, उपयोग किए गए एआई विज़न सेंसर का नाम AIVision होगा।
आशुचित्र लें
takeSnapshot विधि एआई विजन सेंसर द्वारा वर्तमान में देखी जा रही चीज़ की एक तस्वीर लेती है और उस स्नैपशॉट से डेटा निकालती है जिसका उपयोग बाद में किसी प्रोजेक्ट में किया जा सकता है। स्नैपशॉट लेते समय, आपको यह निर्दिष्ट करना होगा कि एआई विज़न सेंसर को किस प्रकार की वस्तु का डेटा एकत्र करना चाहिए:
- Aकलर सिग्नेचर याकलर कोड
- ये विज़ुअल सिग्नेचर एआई विज़न सेंसर के नाम, डबल अंडरस्कोर और फिर विज़ुअल सिग्नेचर के नाम से शुरू होते हैं, उदाहरण के लिए:
AIVision1__Blue।
- ये विज़ुअल सिग्नेचर एआई विज़न सेंसर के नाम, डबल अंडरस्कोर और फिर विज़ुअल सिग्नेचर के नाम से शुरू होते हैं, उदाहरण के लिए:
-
एआई वर्गीकरण -
aivision::ALL_AIOBJS -
अप्रैल टैग-
aivision::ALL_TAGS
स्नैपशॉट लेने से आपके द्वारा निर्दिष्ट सभी पहचाने गए ऑब्जेक्ट्स का एक ऐरे बन जाएगा। उदाहरण के लिए, यदि आप "नीला" रंग हस्ताक्षरका पता लगाना चाहते हैं, और एआई विज़न सेंसर ने 3 अलग-अलग नीली वस्तुओं का पता लगाया है, तो तीनों से डेटा सरणी में डाल दिया जाएगा।
इस उदाहरण में, AIVision1 नामक AI विज़न सेंसर से "ब्लू" कलर सिग्नेचरका स्नैपशॉट लिया गया है। यह ऐरे में पता लगाए गए ऑब्जेक्ट्स की संख्या प्रदर्शित करता है और हर 0.5 सेकंड में एक नया स्नैपशॉट लेता है।
while (true) {
// सभी नीले रंग की वस्तुओं का स्नैपशॉट प्राप्त करें।
AIVision.takeSnapshot(AIVision1__Blue);
// डेटा खींचने से पहले स्नैपशॉट में ऑब्जेक्ट का पता लगाया गया था या नहीं, यह सुनिश्चित करने के लिए जाँच करें।
यदि (AIVision.objectCount > 0) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print(AIVision1.objectCount);
}
wait(5, msec);
}वस्तुओं
स्नैपशॉट में मौजूद प्रत्येक ऑब्जेक्ट में अलग-अलग गुण होते हैं जिनका उपयोग उस ऑब्जेक्ट के बारे में जानकारी देने के लिए किया जा सकता है। objects मेथड आपको इन प्रॉपर्टीज तक पहुंचने की अनुमति देता है।
उपलब्ध संपत्तियां निम्नलिखित हैं:
- पहचान
- केंद्रX और केंद्रY
- मूलX और मूलY
- चौड़ाई
- ऊंचाई
- कोण
- मौजूद है
- अंक
किसी ऑब्जेक्ट की प्रॉपर्टी तक पहुंचने के लिए, एआई विज़न सेंसर के नाम का उपयोग करें, उसके बाद ऑब्जेक्ट की विधि और फिर ऑब्जेक्ट का इंडेक्स लिखें।
ऑब्जेक्ट इंडेक्स यह दर्शाता है कि आप किस विशिष्ट ऑब्जेक्ट की प्रॉपर्टी को प्राप्त करना चाहते हैं। स्नैपशॉट लेने के बाद, एआई विजन सेंसर स्वचालित रूप से वस्तुओं को आकार के अनुसार क्रमबद्ध करता है। सबसे बड़ी वस्तु को सूचकांक 0 दिया जाता है, जबकि छोटी वस्तुओं को उच्चतर सूचकांक संख्याएँ प्राप्त होती हैं।
उदाहरण के लिए, सबसे बड़े ऑब्जेक्ट की चौड़ाई को कॉल करना AIVision1.objects[0].width होगा।
पहचान
id प्रॉपर्टी केवल अप्रैलटैग और एआई वर्गीकरणों के लिए उपलब्ध है।
AprilTagके लिए, id प्रॉपर्टी पता लगाए गएAprilTag(s) ID नंबर को दर्शाती है।
विशिष्ट अप्रैल टैग की पहचान करने से चयनात्मक नेविगेशन संभव हो पाता है। आप अपने रोबोट को कुछ टैग की ओर बढ़ने और अन्य को अनदेखा करने के लिए प्रोग्राम कर सकते हैं, जिससे प्रभावी रूप से उनका उपयोग स्वचालित नेविगेशन के लिए दिशासूचक के रूप में किया जा सकता है।
एआई वर्गीकरणके लिए, आईडी प्रॉपर्टी पता लगाए गए एआई वर्गीकरण के विशिष्ट प्रकार को दर्शाती है।
विशिष्ट एआई वर्गीकरणकी पहचान करने से रोबोट को केवल विशिष्ट वस्तुओं पर ध्यान केंद्रित करने की अनुमति मिलती है, जैसे कि केवल लाल बकीबॉल की ओर जाना, नीले रंग की ओर नहीं।
अप्रैलटैग और एआई वर्गीकरण के बारे में अधिक जानकारी के लिए और एआई विज़न यूटिलिटी में उनकी पहचान को सक्षम करने के तरीके के लिए इन लेखों पर जाएं।
केंद्रX और केंद्रY
यह पिक्सेल में पता लगाए गए ऑब्जेक्ट के केंद्र निर्देशांक हैं।
सेंटरएक्स और सेंटरवाई निर्देशांक नेविगेशन और स्थिति निर्धारण में सहायता करते हैं। एआई विजन सेंसर का रिजॉल्यूशन 320 x 240 पिक्सल है।
आप देख सकते हैं कि एआई विज़न सेंसर के करीब स्थित वस्तु का सेंटरवाई निर्देशांक दूर स्थित वस्तु की तुलना में कम होगा।
इस उदाहरण में, क्योंकि एआई विज़न सेंसर के दृश्य का केंद्र (160, 120) है, रोबोट तब तक दाईं ओर मुड़ेगा जब तक कि पता लगाए गए ऑब्जेक्ट का केंद्रX निर्देशांक 150 पिक्सेल से अधिक न हो, लेकिन 170 पिक्सेल से कम हो।
while (true) {
// सभी नीले रंग की वस्तुओं का स्नैपशॉट प्राप्त करें।
AIVision.takeSnapshot(AIVision__Blue);
// डेटा खींचने से पहले स्नैपशॉट में ऑब्जेक्ट का पता लगाया गया था या नहीं, यह सुनिश्चित करने के लिए जाँच करें।
यदि (AIVision.objectCount > 0) {
यदि (AIVision.objects[0].centerX > 150.0 && 170.0 > AIVision.objects[0].centerX) {
ड्राइवट्रेन.टर्न(दाएं);
} अन्यथा {
ड्राइवट्रेन.स्टॉप();
}
}
प्रतीक्षा करें(5, मिलीसेकंड);
}
मूल बिंदु X और मूल बिंदु
OriginX और OriginY, पिक्सेल में पता लगाए गए ऑब्जेक्ट के ऊपरी-बाएँ कोने पर स्थित निर्देशांक हैं।
OriginX और OriginY निर्देशांक नेविगेशन और स्थिति निर्धारण में सहायता करते हैं। इस निर्देशांक को वस्तु की चौड़ाई और ऊंचाई के साथ मिलाकर, आप वस्तु के परिबद्ध बॉक्स का आकार निर्धारित कर सकते हैं। इससे गतिशील वस्तुओं को ट्रैक करने या वस्तुओं के बीच नेविगेट करने में मदद मिल सकती है।
चौड़ाई ऊंचाई और , ऊंचाई
यह पिक्सेल में पता लगाए गए ऑब्जेक्ट की चौड़ाई या ऊंचाई है।
चौड़ाई और ऊंचाई के माप विभिन्न वस्तुओं की पहचान करने में सहायक होते हैं। उदाहरण के लिए, एक बकीबॉल की ऊंचाई एक रिंग की ऊंचाई से अधिक होगी।
चौड़ाई और ऊंचाई किसी वस्तु की एआई विजन सेंसर से दूरी को भी दर्शाती हैं। आमतौर पर छोटे माप का मतलब होता है कि वस्तु अधिक दूर है, जबकि बड़े माप से पता चलता है कि वह पास है।
इस उदाहरण में, ऑब्जेक्ट की चौड़ाई का उपयोग नेविगेशन के लिए किया जाता है। रोबोट वस्तु के पास तब तक जाएगा जब तक उसकी चौड़ाई एक निश्चित आकार तक नहीं पहुंच जाती, उसके बाद वह रुक जाएगा।
while (true) {
// सभी नीले ऑब्जेक्ट का स्नैपशॉट प्राप्त करें।
AIVision.takeSnapshot(AIVision1__Blue);
// डेटा खींचने से पहले स्नैपशॉट में ऑब्जेक्ट का पता लगाया गया था या नहीं, यह सुनिश्चित करने के लिए जाँच करें।
यदि (AIVision.objectCount > 0) {
यदि (AIVision.objects[0].width < 250.0) {
ड्राइवट्रेन.ड्राइव(फॉरवर्ड);
} अन्यथा {
ड्राइवट्रेन.स्टॉप();
}
}
प्रतीक्षा करें(5, मिलीसेकंड);
}कोण
कोण प्रॉपर्टी केवलकलर कोड औरअप्रैल टैग.
के लिए उपलब्ध है।
यह दर्शाता है कि क्या पता लगाया गया कलर कोडया अप्रैलटैग अलग तरह से उन्मुख है।
आप देख सकते हैं कि रोबोटकलर कोड याअप्रैलटैग के संबंध में अलग तरह से उन्मुख है या नहीं और उसके अनुसार नेविगेशन संबंधी निर्णय ले सकते हैं।
उदाहरण के लिए, यदिकलर कोड को उचित कोण पर नहीं पहचाना जाता है, तो रोबोट उस वस्तु को ठीक से उठा नहीं पाएगा जिसका वह प्रतिनिधित्व करता है।
अंक
एआई विज़न सेंसर के साथवर्गीकरण का पता लगाने के दौरान स्कोर प्रॉपर्टी का उपयोग किया जाता है।
कॉन्फिडेंस स्कोर यह दर्शाता है कि एआई विजन सेंसर अपने डिटेक्शन को लेकर कितना आश्वस्त है। इस छवि में, एआई इन चार वस्तुओं के वर्गीकरण की पहचान करने में 99% आश्वस्त है। आप इस स्कोर का उपयोग यह सुनिश्चित करने के लिए कर सकते हैं कि आपका रोबोट केवल अत्यधिक विश्वसनीय पहचानों पर ही ध्यान केंद्रित करे।
मौजूद है
मौजूद प्रॉपर्टी का उपयोग यह पता लगाने के लिए किया जाता है कि क्या अंतिम लिए गए स्नैपशॉट में एक निर्दिष्ट विज़ुअल सिग्नेचर का पता लगाया गया है।
इससे आप यह जांच सकते हैं कि पिछली स्नैपशॉट में कोई भी ऑब्जेक्ट मौजूद था या नहीं। यह प्रॉपर्टी ऑब्जेक्ट के मौजूद होने पर True और ऑब्जेक्ट के मौजूद न होने पर False मान लौटाएगी।
ऑब्जेक्टकाउंट
objectCount विधि अंतिम स्नैपशॉट में पता लगाए गए ऑब्जेक्ट की संख्या लौटाती है।
इस उदाहरण में,कलर सिग्नेचर "ब्लू" के साथ दो वस्तुओं का पता लगाया गया है। takeSnapshot विधि का उपयोग करते समय उन दोनों को ऐरे में डाल दिया जाएगा।
यह कोड स्निपेट एक्सपी ब्रेन को पता लगाए गए ऑब्जेक्ट्स की संख्या के साथ लगातार अपडेट करता रहता है। दिए गए उदाहरण के आधार पर, यह बार-बार 2 का मान भेजेगा, जो यह दर्शाता है कि दो वस्तुओं का पता लगाया गया है।
while (true) {
// सभी नीले ऑब्जेक्ट का स्नैपशॉट प्राप्त करें।
AIVision.takeSnapshot(AIVision__Blue);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// डेटा खींचने से पहले स्नैपशॉट में किसी ऑब्जेक्ट का पता लगाया गया था या नहीं, यह सुनिश्चित करने के लिए जाँच करें।
if (AIVision.objectCount > 0) {
Brain.Screen.print(AIVision1.objectCount);
}
wait(5, msec);
}