تأكد من أن لديك توقيعات لونية و رمز لوني تم تكوينهما باستخدام مستشعر الرؤية AI الخاص بك حتى يمكن استخدامها مع الكتل الخاصة بك. لمعرفة المزيد حول كيفية تكوينها، يمكنك قراءة المقالات أدناه:

يمكن لمستشعر الرؤية AI أيضًا اكتشاف تصنيفات AI وAprilTags. لتعلم كيفية تمكين أوضاع الكشف هذه، انتقل إلى هنا:

لمعرفة المزيد من التفاصيل حول هذه الأوامر الفردية وكيفية استخدامها في 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 و

يتم تتبع ثلاث علامات AprilTags بواسطة AI Vision Utility. يتم تحديد كل علامة وتحديد موقعها وإبرازها، مما يشير إلى تعقبها بواسطة النظام. معرفات AprilTag في هذا المثال هي 0 و3 و9.

بالنسبة لـAprilTag، تمثل الخاصية id رقم معرف AprilTag(s)المكتشف

إن تحديد AprilTags محددة يسمح بالتنقل الانتقائي. يمكنك برمجة الروبوت الخاص بك للتحرك نحو علامات معينة مع تجاهل علامات أخرى، واستخدامها بشكل فعال كعلامات إرشادية للملاحة الآلية.

يتم تعقب أربعة أشياء بواسطة أداة AI Vision، وهي كرتان من BuckyBalls وحلقتان. يتم تحديد كل كائن وتحديد موقعه وتحديد معالمه، مما يشير إلى تعقبه بواسطة النظام. تلاحظ الأداة المساعدة معرف الكائن، وفي هذا المثال توجد كرة حمراء، وكرة زرقاء، وحلقة خضراء، وحلقة حمراء.

بالنسبة لتصنيفات الذكاء الاصطناعي، تمثل الخاصية id النوع المحدد لتصنيف الذكاء الاصطناعي المكتشف.

يتيح تحديد تصنيفات الذكاء الاصطناعيالتركيز فقط على أشياء محددة، مثل الرغبة في التنقل نحو كرة Buckyball الحمراء فقط، وليس الزرقاء.

انتقل إلى هذه المقالات للحصول على مزيد من المعلومات حول تصنيفات الذكاء و وكيفية تمكين اكتشافها في AI Vision Utility

مركز X و مركز Y

هذه هي إحداثيات مركز الكائن المكتشف بالبكسل.

يظهر مستشعر الرؤية AI وهو يتتبع كرة Buckyball الزرقاء. تحتوي كرة Buckyball على مستطيل تتبع حولها، ويُظهر الملصق الموجود أعلاه أنها تحتوي على موضع X 176 وموضع Y 117. يتم تسليط الضوء على مركز مستطيل التتبع لإظهار أن الموضع يتم قياسه من المركز.

تساعد إحداثيات CenterX وCenterY في التنقل وتحديد المواقع. يتمتع مستشعر الرؤية AI بدقة 320 × 240 بكسل.

يظهر مستشعر الرؤية AI وهو يتتبع مكعبين أزرقين. تحتوي المكعبات على مستطيلات تتبع حولها، وواحدة منها أقرب كثيرًا إلى الكاميرا. كلما اقترب الشخص من المكان، كان موقعه على المحور Y هو 184، وكلما ابتعد الشخص من المكان، كان موقعه على المحور Y هو 70.

يمكنك أن ترى أن الكائن الأقرب إلى مستشعر الرؤية 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 هو الإحداثي في الزاوية العلوية اليسرى للكائن المكتشف بالبكسل.

يظهر مستشعر الرؤية AI وهو يتتبع كرة Buckyball الزرقاء. تحتوي كرة Buckyball على مستطيل تتبع حولها، ويُظهر الملصق الموجود أعلاه أنها تحتوي على موضع X 176 وموضع Y 117. يتم تسليط الضوء على الزاوية العلوية اليسرى لمستطيل التتبع لإظهار أن موضع الأصل يتم قياسه من الزاوية العلوية اليسرى.

تساعد إحداثيات OriginX وOriginY في التنقل وتحديد المواقع. من خلال الجمع بين هذا الإحداثي مع عرض الكائن وارتفاعه، يمكنك تحديد حجم الصندوق المحيط بالكائن. يمكن أن يساعد هذا في تتبع الكائنات المتحركة أو التنقل بين الكائنات.

عرض و ارتفاع

هذا هو العرض أو الارتفاع للكائن المكتشف بالبكسل.

يظهر مستشعر الرؤية AI وهو يتتبع كرة Buckyball الزرقاء. تحتوي Buckyball على مستطيل تتبع حولها، ويُظهر الملصق الموجود أعلاه أن عرضها 80 بكسل وارتفاعها 78 بكسل. تسلط الأسهم الحمراء الضوء على مستطيل التتبع لإظهار عرضه وارتفاعه.

تساعد قياسات العرض والارتفاع في تحديد الكائنات المختلفة. على سبيل المثال، سيكون ارتفاع كرة باكي أكبر من الحلقة.

يظهر مستشعر الرؤية AI وهو يتتبع مكعبين أزرقين. تحتوي المكعبات على مستطيلات تتبع حولها، وواحدة منها أقرب كثيرًا إلى الكاميرا. الأقرب عرضه 144 وارتفاعه 113 والأبعد عرضه 73 وارتفاعه 84.

يشير العرض والارتفاع أيضًا إلى مسافة الكائن من مستشعر الرؤية 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)

زاوية

رسوم متحركة لمربع أحمر ومربع أخضر يتم تدويرهما معًا لإظهار قيمة الزاوية البالغة 360 درجة.

خاصية الزاوية متاحة فقط لرموز الألوان وAprilTags.

يمثل هذا ما إذا كان رمز اللون الذي تم اكتشافهأو AprilTag موجهًا بشكل مختلف.

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

يمكنك معرفة ما إذا كان الروبوت موجهًا بشكل مختلف فيما يتعلق برمز اللون أوAprilTag واتخاذ قرارات التنقل وفقًا لذلك.

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

على سبيل المثال، إذا لم يتم اكتشاف رمز اللون بزاوية مناسبة، فقد لا يتمكن الروبوت من التقاط الكائن الذي يمثله بشكل صحيح.

نتيجة

يتم استخدام خاصية النتيجة عند اكتشاف تصنيفين للذكاء باستخدام مستشعر الرؤية بالذكاء الاصطناعي.

يتم تعقب أربعة أشياء بواسطة أداة AI Vision، وهي كرتان من BuckyBalls وحلقتان. يتم تحديد كل كائن وتحديد موقعه وتحديد معالمه، مما يشير إلى تعقبه بواسطة النظام. تسرد الأداة المساعدة أيضًا درجة تصنيف الذكاء الاصطناعي لكل كائن، وفي هذا المثال تقرأ كل درجة 99%.

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

موجود

يتم استخدام الخاصية موجود لكشف ما إذا كان قد تم اكتشاف توقيع مرئي محدد في آخر لقطة تم التقاطها.

يتيح لك هذا التحقق مما إذا كان قد تم اكتشاف أي كائنات تم اكتشافها في اللقطة السابقة. ستقوم هذه الخاصية بإرجاع قيمة True عندما يكون الكائن موجودًا، وقيمة False عندما لا يكون الكائن موجودًا.

 

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: