تأكد من أن لديك توقيعات لونية و رمز لوني تم تكوينهما باستخدام مستشعر الرؤية AI الخاص بك حتى يمكن استخدامها مع الكتل الخاصة بك. لمعرفة المزيد حول كيفية تكوينها، يمكنك قراءة المقالات أدناه:
- تكوين توقيعات الألوان باستخدام توقيع AI Vision في VEXcode EXP
- تكوين أكواد الألوان باستخدام توقيع AI Vision في VEXcode EXP
يمكن لمستشعر الرؤية AI أيضًا اكتشاف تصنيفات AI وAprilTags. لتعلم كيفية تمكين أوضاع الكشف هذه، انتقل إلى هنا:
- تصنيفات الذكاء الاصطناعي باستخدام مستشعر رؤية الذكاء الاصطناعي في VEXcode EXP
- علامات أبريل مع مستشعر الرؤية بالذكاء الاصطناعي في VEXcode EXP
لمعرفة المزيد من التفاصيل حول هذه الأوامر الفردية وكيفية استخدامها في VEXcode، انتقل إلى موقع API.
احصل على البيانات المرئية باستخدام مستشعر الرؤية AI
سيبدأ كل أمر من أوامر AI Vision Sensor باسم AI Vision Sensor الذي تم تكوينه. بالنسبة لجميع الأمثلة المذكورة في هذه المقالة، سيكون اسم مستشعر الرؤية AI المستخدم هو ai_vision_1.
التقط لقطة
تلتقط طريقة take_snapshot صورة لما يراه مستشعر الرؤية AI حاليًا وتستخرج البيانات من تلك اللقطة التي يمكن استخدامها بعد ذلك في مشروع. عند التقاط لقطة، يتعين عليك تحديد نوع الكائن الذي يجب أن يجمع مستشعر الرؤية AI بيانات عنه:
- توقيع اللون أورمز اللون
- تبدأ هذه التوقيعات المرئية باسم مستشعر الرؤية الذكية، ثم الشرطة السفلية المزدوجة، ثم اسم التوقيع المرئي، على سبيل المثال:
ai_vision_1__Blue.
- تبدأ هذه التوقيعات المرئية باسم مستشعر الرؤية الذكية، ثم الشرطة السفلية المزدوجة، ثم اسم التوقيع المرئي، على سبيل المثال:
-
تصنيفات الذكاء الاصطناعي -
AiVision.ALL_AIOBJS -
AprilTags-
AiVision.ALL_TAGS
سيؤدي التقاط لقطة إلى إنشاء مجموعة من جميع الكائنات المكتشفة التي حددتها. على سبيل المثال، إذا كنت تريد اكتشاف توقيع لون "أزرق" ، واكتشف مستشعر الرؤية بالذكاء الاصطناعي 3 كائنات زرقاء مختلفة، فسيتم وضع البيانات من الثلاثة في المجموعة.
في هذا المثال، يخزن المتغير vision_objects مجموعة تحتوي على توقيعات اللون "الأرجواني"المكتشفة من مستشعر الرؤية AI المسمى ai_vision_1. يعرض عدد الكائنات المكتشفة ويلتقط لقطة جديدة كل 0.5 ثانية.
بينما صحيح:
# احصل على لقطة لجميع توقيعات اللون الأرجواني وقم بتخزينها في vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Purple)
# تحقق للتأكد من اكتشاف كائن في اللقطة قبل سحب البيانات.
إذا كان vision_objects[0].exists == صحيح
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Object count:", len(vision_objects))
wait(0.5, SECONDS)
خصائص الكائن
يتمتع كل كائن من لقطة ما بخصائص مختلفة يمكن استخدامها للإبلاغ عن معلومات حول هذا الكائن. الخصائص المتوفرة هي كما يلي:
- بطاقة تعريف
- مركز X ومركز Y
- الأصل X والأصل Y
- عرض
- ارتفاع
- زاوية
- نتيجة
- موجود
للوصول إلى خصائص الكائن، استخدم اسم المتغير الذي يخزن المجموعة، متبوعًا بمؤشر الكائن.
يشير مؤشر الكائن إلى خاصية الكائن المحددة التي تريد استردادها. بعد التقاط لقطة، يقوم مستشعر الرؤية AI بفرز الكائنات حسب الحجم تلقائيًا. يتم تعيين أكبر كائن إلى الفهرس 0، مع حصول الكائنات الأصغر على أرقام فهرس أعلى.
على سبيل المثال، استدعاء عرض الكائن الأكبر داخل المتغير vision_objects سيكون: vision_objects[0].width.
بطاقة تعريف
الخاصية id متاحة فقط لتصنيفات الذكاء الاصطناعي AprilTags و
بالنسبة لـAprilTag، تمثل الخاصية id رقم معرف AprilTag(s)المكتشف
إن تحديد AprilTags محددة يسمح بالتنقل الانتقائي. يمكنك برمجة الروبوت الخاص بك للتحرك نحو علامات معينة مع تجاهل علامات أخرى، واستخدامها بشكل فعال كعلامات إرشادية للملاحة الآلية.
بالنسبة لتصنيفات الذكاء الاصطناعي، تمثل الخاصية id النوع المحدد لتصنيف الذكاء الاصطناعي المكتشف.
يتيح تحديد تصنيفات الذكاء الاصطناعيالتركيز فقط على أشياء محددة، مثل الرغبة في التنقل نحو كرة Buckyball الحمراء فقط، وليس الزرقاء.
انتقل إلى هذه المقالات للحصول على مزيد من المعلومات حول تصنيفات الذكاء و وكيفية تمكين اكتشافها في AI Vision Utility
مركز X و مركز Y
هذه هي إحداثيات مركز الكائن المكتشف بالبكسل.
تساعد إحداثيات CenterX وCenterY في التنقل وتحديد المواقع. يتمتع مستشعر الرؤية AI بدقة 320 × 240 بكسل.
يمكنك أن ترى أن الكائن الأقرب إلى مستشعر الرؤية AI سيكون له إحداثيات مركز Y أقل من الكائن الأبعد.
في هذا المثال، نظرًا لأن مركز رؤية مستشعر الرؤية الذكية هو (160، 120)، فسوف يدور الروبوت إلى اليمين حتى يصبح إحداثي مركز X للكائن المكتشف أكبر من 150 بكسل، ولكن أقل من 170 بكسل.
بينما صحيح:
# احصل على لقطة لجميع توقيعات اللون الأزرق وقم بتخزينها في vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# تحقق للتأكد من اكتشاف كائن في اللقطة قبل سحب البيانات.
إذا كان vision_objects[0].exists == True
# تحقق مما إذا كان الكائن ليس في وسط عرض مستشعر الرؤية AI.
إذا كانت vision_objects[0].centerX > 150 و170 > vision_objects[0].centerX:
# استمر في الانعطاف إلى اليمين حتى يصبح الكائن في وسط العرض.
drivetrain.turn(RIGHT)
وإلا:
drivetrain.stop()
wait(5, MSEC)
الأصل X و الأصل
OriginX و OriginY هو الإحداثي في الزاوية العلوية اليسرى للكائن المكتشف بالبكسل.
تساعد إحداثيات OriginX وOriginY في التنقل وتحديد المواقع. من خلال الجمع بين هذا الإحداثي مع عرض الكائن وارتفاعه، يمكنك تحديد حجم الصندوق المحيط بالكائن. يمكن أن يساعد هذا في تتبع الكائنات المتحركة أو التنقل بين الكائنات.
عرض و ارتفاع
هذا هو العرض أو الارتفاع للكائن المكتشف بالبكسل.
تساعد قياسات العرض والارتفاع في تحديد الكائنات المختلفة. على سبيل المثال، سيكون ارتفاع كرة باكي أكبر من الحلقة.
يشير العرض والارتفاع أيضًا إلى مسافة الكائن من مستشعر الرؤية AI. عادةً ما تعني القياسات الأصغر أن الجسم أبعد، في حين تشير القياسات الأكبر إلى أنه أقرب.
في هذا المثال، يتم استخدام عرض الكائن للتنقل. سوف يقترب الروبوت من الجسم حتى يصل عرضه إلى حجم معين قبل التوقف.
بينما صحيح:
# احصل على لقطة لجميع توقيعات اللون الأزرق وقم بتخزينها في vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# تحقق للتأكد من اكتشاف كائن في اللقطة قبل سحب البيانات.
إذا كان vision_objects[0].exists == True
# تحقق مما إذا كان أكبر كائن قريبًا من مستشعر الرؤية AI عن طريق قياس عرضه.
إذا كانت vision_objects[0].width < 250:
# قم بالقيادة أقرب إلى الكائن حتى يصبح عرضه أكبر من 250 بكسل.
drivetrain.drive(FORWARD)
وإلا:
drivetrain.stop()
wait(5, MSEC)
زاوية
خاصية الزاوية متاحة فقط لرموز الألوان وAprilTags.
يمثل هذا ما إذا كان رمز اللون الذي تم اكتشافهأو AprilTag موجهًا بشكل مختلف.
يمكنك معرفة ما إذا كان الروبوت موجهًا بشكل مختلف فيما يتعلق برمز اللون أوAprilTag واتخاذ قرارات التنقل وفقًا لذلك.
على سبيل المثال، إذا لم يتم اكتشاف رمز اللون بزاوية مناسبة، فقد لا يتمكن الروبوت من التقاط الكائن الذي يمثله بشكل صحيح.
نتيجة
يتم استخدام خاصية النتيجة عند اكتشاف تصنيفين للذكاء باستخدام مستشعر الرؤية بالذكاء الاصطناعي.
تشير درجة الثقة إلى مدى ثقة مستشعر الرؤية AI في اكتشافه. في هذه الصورة، هناك ثقة بنسبة 99% في تحديد تصنيفات الذكاء الاصطناعي لهذه الكائنات الأربعة. يمكنك استخدام هذه النتيجة للتأكد من أن الروبوت الخاص بك يركز فقط على الاكتشافات الواثقة للغاية.
موجود
يتم استخدام الخاصية موجود لكشف ما إذا كان قد تم اكتشاف توقيع مرئي محدد في آخر لقطة تم التقاطها.
يتيح لك هذا التحقق مما إذا كان قد تم اكتشاف أي كائنات تم اكتشافها في اللقطة السابقة. ستقوم هذه الخاصية بإرجاع قيمة True عندما يكون الكائن موجودًا، وقيمة False عندما لا يكون الكائن موجودًا.