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

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

لمعرفة المزيد من التفاصيل حول هذه الأوامر الفردية وكيفية استخدامها في VEXcode، انتقل إلى موقع API.


احصل على البيانات المرئية باستخدام مستشعر الرؤية AI

سيبدأ كل أمر من أوامر AI Vision Sensor باسم AI Vision Sensor الذي تم تكوينه. بالنسبة لجميع الأمثلة المذكورة في هذه المقالة، سيكون اسم مستشعر الرؤية AI المستخدم هو AIVision.

التقط لقطة

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

  • توقيع اللون أورمز اللون
    • تبدأ هذه التوقيعات المرئية باسم مستشعر الرؤية الذكية، ثم الشرطة السفلية المزدوجة، ثم اسم التوقيع المرئي، على سبيل المثال: AIVision1__Blue.
  • تصنيفات الذكاء الاصطناعي - aivision::ALL_AIOBJS
  • AprilTags- aivision::ALL_TAGS

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

في هذا المثال، تم التقاط لقطة من توقيع اللون "الأزرق" من مستشعر الرؤية الذكية المسمى AIVision1. يعرض عدد الكائنات التي تم اكتشافها في المصفوفة ويلتقط لقطة جديدة كل 0.5 ثانية.

بينما (صحيح) {
// احصل على لقطة لجميع الكائنات ذات اللون الأزرق.
AIVision.takeSnapshot(AIVision1__Blue);

// تحقق للتأكد من اكتشاف كائن في اللقطة قبل سحب البيانات.
إذا (AIVision.objectCount > 0) {

Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print(AIVision1.objectCount);
}
wait(5, msec);
}

أشياء

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

الخصائص المتوفرة هي كما يلي:

  • بطاقة تعريف
  • مركز X ومركز Y
  • الأصل X والأصل Y
  • عرض
  • ارتفاع
  • زاوية
  • موجود
  • نتيجة

للوصول إلى خصائص الكائن، استخدم اسم AI Vision Sensor، متبوعًا بطريقة الكائنات، ثم فهرس الكائن.

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

على سبيل المثال، استدعاء عرض الكائن الأكبر سيكون AIVision1.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 بكسل.

بينما (صحيح) {
  // احصل على لقطة لجميع الكائنات ذات اللون الأزرق.
  AIVision.takeSnapshot(AIVision__Blue);

  // تحقق للتأكد من اكتشاف كائن في اللقطة قبل سحب البيانات.
  إذا (AIVision.objectCount > 0) {

    إذا (AIVision.objects[0].centerX > 150.0 && 170.0 > AIVision.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. عادةً ما تعني القياسات الأصغر أن الجسم أبعد، في حين تشير القياسات الأكبر إلى أنه أقرب.

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

بينما (صحيح) {
  // احصل على لقطة لجميع الكائنات الزرقاء.
  AIVision.takeSnapshot(AIVision1__Blue);

  // تحقق للتأكد من اكتشاف كائن في اللقطة قبل سحب البيانات.
  إذا (AIVision.objectCount > 0) {

    إذا (AIVision.objects[0].width < 250.0) {
      Drivetrain.drive(forward);
    } وإلا {
      Drivetrain.stop();
    }
  }
  انتظر(5، مللي ثانية);
}

زاوية

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

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

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

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

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

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

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

نتيجة

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

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

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

موجود

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

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


عدد الكائنات

تعيد طريقة objectCount عدد الكائنات المكتشفة في اللقطة الأخيرة.

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

في هذا المثال، تم اكتشاف كائنين بتوقيع اللون"". سيتم وضعهما معًا في المصفوفة عند استخدام طريقة takeSnapshot.

يقوم مقتطف التعليمات البرمجية هذا بتحديث EXP Brain بشكل مستمر بعدد الكائنات المكتشفة. بناءً على المثال المقدم، سيتم إرسال القيمة 2 بشكل متكرر، مما يشير إلى أنه تم اكتشاف كائنين.

بينما (صحيح) {
// احصل على لقطة لجميع الكائنات الزرقاء.
AIVision.takeSnapshot(AIVision__Blue);

Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);

// تحقق للتأكد من اكتشاف كائن في اللقطة قبل سحب البيانات.
إذا (AIVision.objectCount > 0) {
Brain.Screen.print(AIVision1.objectCount);
}
wait(5, msec);
}

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

Last Updated: