مستشعر رؤية بالذكاء الاصطناعي#

مقدمة#

يستطيع مستشعر الرؤية المدعوم بالذكاء الاصطناعي VEX IQ اكتشاف وتتبع الأجسام والألوان ومعرفات AprilTag. وهذا يسمح للروبوت بتحليل محيطه، ومتابعة الأجسام، والتفاعل بناءً على البيانات المرئية المكتشفة.

صُممت أمثلة الرؤية بالذكاء الاصطناعي للاستخدام مع روبوت Basebot مزود بمستشعر VEX IQ للرؤية بالذكاء الاصطناعي. في هذه الأمثلة، تم تكوين المستشعر بالاسم AIVision1، والذي يظهر في الكتل البرمجية.

فيما يلي قائمة بجميع الكتل:

الإجراءات — التقاط البيانات من مستشعر الرؤية VEX IQ AI لتوقيع محدد.

  • get object data — يلتقط البيانات لتوقيع معين، مثل لون مُكوّن، أو كائن مُدرّب مسبقًا، أو معرف AprilTag.

الإعدادات — اختر العنصر الذي تريد التفاعل معه.

القيم — الوصول إلى البيانات التي تم جمعها واستخدامها.

الإجراءات#

الحصول على بيانات الكائن#

تقوم كتلة المكدس get object data بتصفية البيانات من إطار مستشعر الرؤية VEX IQ AI إلى توقيع واحد - وهو وصف محفوظ لشيء يمكن للمستشعر التعرف عليه، مثل كائن مدرب مسبقًا، أو معرف AprilTag، أو لون أو رمز لوني تم تكوينه.

يجب أولاً ضبط الألوان ورموز الألوان في أداة الرؤية بالذكاء الاصطناعي قبل استخدامها مع هذه الوحدة.

تحتوي مجموعة البيانات على كائنات مرتبة من الأكبر إلى الأصغر حسب العرض، بدءًا من الفهرس 0. يمكن الوصول إلى خصائص كل كائن باستخدام كتلة AI Vision object property. يتم الإبلاغ عن مجموعة بيانات فارغة في حال عدم اكتشاف أي كائنات مطابقة.

كتلة بيانات الكائن Get.#
احصل على بيانات [SELECT_A_SIG v] من [AIVision1 v]

المعلمة

وصف

إمضاء

يقوم هذا الإجراء بتصفية مجموعة البيانات بحيث لا تتضمن إلا البيانات التي تحمل التوقيع المحدد. التوقيعات المتاحة هي:

ملاحظة: لكي تظهر خيارات معرف AprilTag أو تصنيف الذكاء الاصطناعي، يجب تمكين اكتشافها في أداة AI Vision Utility.

مثال

عند البدء
[Drive forward if an AprilTag ID is detected.]
للأبد
احصل على بيانات [AprilTag IDs v] من [AIVision1 v]
إذا <كائن [AIVIsion1 v] موجود؟> إذن
تشغيل [للأمام v] لمسافة [10] [مم v] ▶

تصنيفات الذكاء الاصطناعي#

يستطيع مستشعر الرؤية VEX IQ AI اكتشاف أجسام مختلفة ضمن تصنيفات الذكاء الاصطناعي المحددة. ويختلف الجسم الذي يتم اكتشافه باختلاف نموذج تصنيف الذكاء الاصطناعي المُختار عند إعداد مستشعر الرؤية VEX IQ AI في نافذة الأجهزة. النماذج المتاحة حاليًا هي:

أدوات الفصل الدراسي

  • بلو بول

  • جرينبول

  • ريدبول

  • بلو رينغ

  • جرين رينج

  • ريد رينغ

  • بلو كيوب

  • جرين كيوب

  • ريد كيوب

مسابقة VEX IQ للروبوتات - مزيج وتنسيق

  • شعاع

  • ريدبين

  • بلو بين

  • أورانج بين

ارتقِ بمستوى مسابقات VEX IQ للروبوتات

  • بلو بين باج

  • ريد بين باج

  • حقيبة فول صفراء

التوقيعات اللونية#

البصمة اللونية هي لون فريد يمكن لمستشعر الرؤية VEX IQ AI التعرف عليه. تُمكّن هذه البصمات المستشعر من اكتشاف الأجسام وتتبعها بناءً على لونها. بمجرد ضبط البصمة اللونية، يستطيع المستشعر تحديد الأجسام التي تحمل هذا اللون المحدد ضمن مجال رؤيته.

تُستخدم التوقيعات اللونية في كتلة get object data لمعالجة الكائنات الملونة واكتشافها في الوقت الفعلي. ويمكن تهيئة ما يصل إلى 7 توقيعات لونية في الوقت نفسه.

أداة الرؤية المدعومة بالذكاء الاصطناعي تُظهر مستشعر رؤية متصلًا يكتشف جسمين ملونين. يعرض الجانب الأيسر بثًا مباشرًا من الكاميرا مع مربع أزرق على اليسار ومربع أحمر على اليمين، كل منهما مُحاط بمربعات بيضاء. تُظهر الملصقات السوداء أسماءهما وإحداثياتهما وأبعادهما. يحتوي الجانب الأيمن على إعدادات توقيع اللون، مع أشرطة تمرير لنطاق درجة اللون والتشبع لكل من المربعين الأحمر والأزرق. توجد أزرار إضافة الألوان وتجميد الفيديو ونسخ الصورة وحفظها في الأسفل، بالإضافة إلى زر إغلاق في الزاوية اليمنى السفلى.

مثال

عند البدء
[Display if any objects matching the RED_BOX signature is detected.]
للأبد
اضبط المؤشر على الصف [1] العمود [1] على الشاشة
امسح الصف [1] من الشاشة
[Change the signature to any configured Color Signature.]
احصل على بيانات [RED_BOX v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
اطبع [Color detected!] على الشاشة ▶

رموز الألوان#

رمز اللون هو نمط منظم يتكون من 2 إلى 4 رموز لونية مرتبة بترتيب محدد. تسمح هذه الرموز لمستشعر الرؤية VEX IQ AI بالتعرف على أنماط الألوان المحددة مسبقًا.

تُعدّ رموز الألوان مفيدةً للغاية لتحديد العناصر المعقدة، ومواءمتها مع عناصر اللعبة، أو إنشاء علامات مميزة للتنقل الذاتي. ويمكن ضبط ما يصل إلى 8 رموز ألوان في الوقت نفسه.

تعرض واجهة أداة الرؤية بالذكاء الاصطناعي مستشعر رؤية متصلًا يكتشف جسمين متجاورين، مربع أزرق على اليسار ومربع أحمر على اليمين، مجمعين معًا في مربع أبيض واحد يحمل اسم BlueRed. تتضمن معلومات الكشف الزاوية (A: 11°)، والإحداثيات (X: 143، Y: 103)، والعرض (W: 233)، والارتفاع (H: 108). في اللوحة اليمنى، تظهر ثلاثة أنماط لونية: Red_Box وBlue_Box وBlueRed، مع نطاقات قابلة للتعديل للون والتشبع. يجمع نمط BlueRed بين نمطي Blue_Box وRed_Box. أسفل بث الفيديو، توجد أزرار تحمل أسماء: تجميد الفيديو، ونسخ الصورة، وحفظ الصورة، والإغلاق.

مثال

عند البدء
[Display if any objects matching the RED_BLUE code is detected.]
للأبد
اضبط المؤشر على الصف [1] العمود [1] على الشاشة
امسح الصف [1] من الشاشة
[Change the signature to any configured Color Code.]
احصل على بيانات [RED_BLUE v] من [AIVision1 v]
إذا <كائن [AIVIsion1 v] موجود؟> إذن
اطبع [Code detected!] على الشاشة ▶

إعدادات#

تعيين عنصر كائن رؤية الذكاء الاصطناعي#

تحدد كتلة المكدس set AI Vision object item العنصر المراد استخدامه في مجموعة البيانات.

مجموعة عناصر مجموعة رؤية الذكاء الاصطناعي.#
اضبط عنصر كائن [AIVision1 v] إلى (1)

حدود

وصف

غرض

رقم العنصر المراد استخدامه في مجموعة البيانات.

مثال

مجموعة من الكتل البرمجية تبدأ بكتلة “عند بدء التشغيل”، تليها كتلة تعليق بعنوان “عرض أكبر مُعرّف AprilTag تم اكتشافه”. داخل حلقة تكرار لا نهائية، تقوم كتلة “التقاط لقطة AI Vision” بالتقاط صورة لمعرّفات AprilTag. تتحقق كتلة “إذا” من وجود كائن AI Vision. إذا كان الشرط صحيحًا، تقوم كتلة “تعيين عنصر كائن AI Vision” بتعيين عدد الكائنات إلى متغير، وتقوم كتلة “طباعة” بعرض مُعرّف العلامة للكائن المكتشف على الشاشة.#
عند البدء
[Display the largest detected AprilTag ID.]
للأبد
احصل على بيانات [AprilTag IDs v] من [AIVision1 v]
امسح الصف [1] من الشاشة
اضبط المؤشر على الصف [1] العمود [1] على الشاشة
إذا <كائن [AIVision1 v] موجود؟> إذن
اضبط عنصر كائن [AIVision1 v] إلى (عدد كائنات [AIVision1 v])
اطبع (كائن [AIVision1 v] [tagID v]) على الشاشة ▶

قيم#

كائن رؤية الذكاء الاصطناعي موجود#

يشير مربع AI Vision object exists المنطقي إلى ما إذا تم اكتشاف أي كائن في مجموعة البيانات.

  • صحيح — تتضمن مجموعة البيانات كائنًا تم اكتشافه.

  • خطأ — لا تتضمن مجموعة البيانات أي كائنات تم اكتشافها.

كائن رؤية الذكاء الاصطناعي موجود في كتلة منطقية.#
<كائن [AIVision1 v] موجود؟>

حدود

وصف

لا يحتوي هذا الجزء على أي معلمات.

مثال

عند البدء
[Drive forward if an object is detected.]
للأبد
احصل على بيانات [تصنيفات الذكاء الاصطناعي v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
تشغيل [للأمام v] لمسافة [10] [مم v] ▶

عدد الكائنات في رؤية الذكاء الاصطناعي#

تقوم وحدة الإبلاغ عن عدد الكائنات المكتشفة في مجموعة البيانات بـ AI Vision object count كرقم صحيح.

مجموعة عناصر مجموعة رؤية الذكاء الاصطناعي.#
(عدد كائنات [AIVision1 v])

حدود

وصف

لا يحتوي هذا الجزء على أي معلمات.

مثال

عند البدء
[Display the total amount of cubes, rings, and balls.]
للأبد
امسح الصف [1] من الشاشة
اضبط المؤشر على الصف [1] العمود [1] على الشاشة
احصل على بيانات [تصنيفات الذكاء الاصطناعي v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
اطبع (عدد كائنات [AIVision1 v]) على الشاشة ▶
fin
انتظر [0.5] ثانية

خاصية كائن رؤية الذكاء الاصطناعي#

هناك تسع خصائص يتم تضمينها مع كل كائن (موضح أدناه) يتم تخزينها بعد استخدام كتلة get object data.

كتلة الإبلاغ عن خصائص كائنات الرؤية الذكية.#
(كائن [AIVision1 v] [العرض v])

تصف جميع قيم الخصائص، باستثناء tagID، موضع وحجم الكائن المكتشف في مجال رؤية مستشعر الرؤية VEX IQ AI في اللحظة التي تم فيها استخدام كتلة get object data. تُقاس هذه القيم بالبكسل، بناءً على دقة المستشعر البالغة 320 × 240 بكسل.

المعلمة

وصف

ملكية

أي خاصية من خصائص الكائن المكتشف يجب استخدامها؟

عرض#

تُبلغ خاصية العرض عن عرض الكائن المكتشف بالبكسل كرقم صحيح من 1 إلى 320.

كتلة خصائص كائن الرؤية الذكية مع ضبط معلماتها على العرض.#
(كائن [AIVision1 v] [العرض v])

مثال

عند البدء
[Drive towards an object until its width is larger than 100 pixels.]
للأبد
احصل على بيانات [تصنيفات الذكاء الاصطناعي v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <(كائن [AIVision1 v] [العرض v]) [math_less_than v] [100]> إذن
تشغيل [للأمام v]
fin
وإلا
إيقاف القيادة

ارتفاع#

تُظهر خاصية الارتفاع ارتفاع الكائن المكتشف بالبكسل كرقم صحيح من 1 إلى 240.

كتلة خصائص كائن الرؤية الذكية مع ضبط معلماتها على الارتفاع.#
(كائن [AIVision1 v] [الارتفاع v])

مثال

عند البدء
[Drive towards an object until its height is larger than 100 pixels.]
للأبد
احصل على بيانات [تصنيفات الذكاء الاصطناعي v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <(كائن [AIVision1 v] [الارتفاع v]) [math_less_than v] [100]> إذن
تشغيل [للأمام v]
fin
وإلا
إيقاف القيادة

سنتر إكس#

تقوم خاصية centerX بالإبلاغ عن الإحداثي السيني لمركز الكائن المكتشف بالبكسل كرقم صحيح من 0 إلى 320.

كتلة خصائص كائن الرؤية الذكية مع ضبط معلماتها على centerX.#
(كائن [AIVision1 v] [centerX v])

مثال

عند البدء
[Turn slowly until an object is centered in front of the robot.]
اضبط سرعة الدوران إلى [30] [% v]
استدر [يمين v]
للأبد
احصل على بيانات [تصنيفات الذكاء الاصطناعي v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <[140] [math_less_than v] (كائن [AIVision1 v] [centerX v]) [math_less_than v] [180]> إذن
إيقاف القيادة

سنتري#

تقوم خاصية centerY بالإبلاغ عن إحداثيات y لمركز الكائن المكتشف بالبكسل كرقم صحيح من 0 إلى 240.

كتلة خصائص كائن الرؤية بالذكاء الاصطناعي مع ضبط معلماتها على centerY.#
(كائن [AIVision1 v] [centerY v])

مثال

عند البدء
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
للأبد
احصل على بيانات [تصنيفات الذكاء الاصطناعي v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <(كائن [AIVision1 v] [centerY v]) [math_less_than v] [140]> إذن
تشغيل [للأمام v]
fin
وإلا
إيقاف القيادة

زاوية#

تشير خاصية الزاوية إلى اتجاه رمز اللون المكتشف أو معرف AprilTag كرقم صحيح بالدرجات من 0 إلى 359.

كتلة خصائص كائن الرؤية بالذكاء الاصطناعي مع ضبط معلماتها على الزاوية.#
(كائن [AIVision1 v] [الزاوية v])

مثال

عند البدء
[Slide left or right depending on how the Color Code is rotated.]
للأبد
احصل على بيانات [RED_BLUE v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <[50] [math_less_than v] (كائن [AIVision1 v] [الزاوية v]) [math_less_than v] [100]> إذن
تشغيل [يمين v]
وإلا إذا <[270] [math_less_than v] (كائن [AIVision1 v] [الزاوية v]) [math_less_than v] [330]> إذن
تشغيل [يسار v]
وإلا
إيقاف القيادة
fin
وإلا
إيقاف القيادة

IX#

تشير خاصية originX إلى الإحداثي السيني للزاوية العلوية اليسرى من المربع المحيط بالكائن المكتشف بالبكسل كرقم صحيح من 0 إلى 320.

كتلة خصائص كائن الرؤية بالذكاء الاصطناعي مع تعيين معلماتها إلى originX.#
(كائن [AIVision1 v] [originX v])

مثال

عند البدء
[Display if an object is to the left or the right.]
للأبد
امسح الصف [1] من الشاشة
اضبط المؤشر على الصف [1] العمود [1] على الشاشة
احصل على بيانات [تصنيفات الذكاء الاصطناعي v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <(كائن [AIVision1 v] [originX v]) [math_less_than v] [160]> إذن
اطبع [To the left!] على الشاشة ▶
وإلا
اطبع [To the right!] على الشاشة ▶
fin
انتظر [0.5] ثانية

الأصل Y#

تشير خاصية originY إلى إحداثيات y للزاوية العلوية اليسرى من المربع المحيط بالكائن المكتشف بالبكسل كرقم صحيح من 0 إلى 240.

كتلة خصائص كائن الرؤية بالذكاء الاصطناعي مع تعيين معلماتها إلى originY.#
(كائن [AIVision1 v] [originY v])

مثال

عند البدء
[Display if an object is close or far from the robot.]
للأبد
امسح الصف [1] من الشاشة
اضبط المؤشر على الصف [1] العمود [1] على الشاشة
احصل على بيانات [تصنيفات الذكاء الاصطناعي v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <(كائن [AIVision1 v] [originY v]) [math_less_than v] [80]> إذن
اطبع [Far!] على الشاشة ▶
وإلا
اطبع [Close!] على الشاشة ▶
fin
انتظر [0.5] ثانية

tagID#

تقوم خاصية tagID بالإبلاغ عن رقم تعريف AprilTag ID المكتشف كرقم صحيح.

كتلة خصائص كائن الرؤية الذكية مع تعيين معلماتها إلى tagID.#
(كائن [AIVision1 v] [tagID v])

مثال

عند البدء
[Drive forward when AprilTag ID 0 is detected.]
للأبد
احصل على بيانات [AprilTag IDs v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <(كائن [AIVision1 v] [tagID v]) [math_equal v] [0]> إذن
تشغيل [للأمام v]
وإلا
إيقاف القيادة
fin
انتظر [0.5] ثانية

ما هو الكائن الذي يتم تصويره بواسطة الذكاء الاصطناعي؟#

تقوم كتلة AI Vision object is? بالإبلاغ عن قيمة منطقية تشير إلى ما إذا كان الكائن المكتشف يطابق تصنيفًا معينًا.

  • صحيح — العنصر الموجود في مجموعة البيانات هو الكائن المحدد.

  • خطأ — العنصر الموجود في مجموعة البيانات ليس هو الكائن المحدد.

يُعدّ تصنيف الذكاء الاصطناعي للرؤية والذكاء الاصطناعي كتلة منطقية للكائن.#
<كائن [AIVision1 v] هو [BlueBall v]؟>

المعلمة

وصف

هدف

Which AI Classification to compare the item to.

مثال

عند البدء
[Display if a Blue Cube is detected.]
للأبد
احصل على بيانات [تصنيفات الذكاء الاصطناعي v] من [AIVision1 v]
امسح الصف [1] من الشاشة
اضبط المؤشر على الصف [1] العمود [1] على الشاشة
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <كائن [AIVision1 v] هو [BlueCube v]؟> إذن
اطبع [Cube detected!] على الشاشة ▶
انتظر [0.5] ثانية

هل كائن AI Vision هو AprilTag؟#

تقوم كتلة AI Vision object is AprilTag? بالإبلاغ عن قيمة منطقية تشير إلى ما إذا كان الكائن المكتشف هو AprilTag الذي يتطابق مع معرف معين.

  • صحيح — الكائن المكتشف هو AprilTag بالمعرف المحدد.

  • خطأ — الكائن المكتشف ليس علامة AprilTag بالمعرف المحدد.

كائن رؤية الذكاء الاصطناعي هو كتلة منطقية AprilTag.#
<كائن [AIVision1 v] هو AprilTag [0]؟>

المعلمة

وصف

معرف أبريل تاج

رقم التعريف المراد مقارنته برقم AprilTag المكتشف.

مثال

عند البدء
[Report if AprilTag 3 is detected.]
للأبد
امسح الشاشة
اضبط المؤشر على الصف [1] العمود [1] على الشاشة
احصل على بيانات [AprilTag IDs v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <كائن [AIVision1 v] هو AprilTag [3]؟> إذن
اطبع [That is 3!] على الشاشة ▶
وإلا
اطبع [That isn't 3!] على الشاشة ▶
fin
fin
انتظر [0.1] ثانية

هل كائن AI Vision هو معرف AprilTag؟#

تقوم كتلة AI Vision object is AprilTag ID? بالإبلاغ عن قيمة منطقية تشير إلى ما إذا كان معرف AprilTag المكتشف يطابق معرفًا محددًا.

  • صحيح — معرف AprilTag هو الرقم.

  • خطأ - معرف AprilTag ليس هو الرقم.

تم اكتشاف معرف AprilTag بواسطة تقنية الذكاء الاصطناعي، وهو عبارة عن كتلة منطقية.#
<[AIVision1 v] object is AprilTag ID [1] ?>

حدود

وصف

رقم تعريف AprilTag

الرقم المراد مقارنته برقم تعريف AprilTag المكتشف.

مثال:

عند البدء
[Report if AprilTag ID 3 is detected.]
للأبد
امسح الشاشة
اضبط المؤشر على الصف [1] العمود [1] على الشاشة
احصل على بيانات [AprilTag IDs v] من [AIVision1 v]
إذا <كائن [AIVision1 v] موجود؟> إذن
إذا <[AIVision1 v] object is AprilTag ID [3] ?> إذن
اطبع [That is 3!] على الشاشة ▶
وإلا
اطبع [That isn't 3!] على الشاشة ▶
fin
fin
انتظر [0.1] ثانية