تأكد من أن لديك توقيعات لونية و رمز لوني تم تكوينهما باستخدام مستشعر الرؤية 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 و

ثلاثة علامات تعريف مربعة مُسمّاة بالمعرفات 0 و9 و3، كل منها مع إحداثيات وقياسات الحجم المقابلة المعروضة بنص أبيض. المعرف 0 موجود على اليسار، والمعرف 9 على اليمين، والمعرف 3 في أسفل المنتصف. تحتوي كل علامة على نمط فريد باللونين الأبيض والأسود داخل مربع.

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

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

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

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

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

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

مركز X و مركز Y

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

كرة باكى زرقاء يتم تعقبها بواسطة نظام رؤية كمبيوترية. تم تحديد الكائن بمربع أبيض، وداخل هذا المربع يوجد مربع أحمر أصغر يحيط بصليب أبيض في المنتصف. في الزاوية العلوية اليسرى من الصورة، يشير الملصق إلى أن الكائن باللون الأزرق، مع إحداثيات X:176، Y:117، والأبعاد W:80، H:78.

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

جسمين مكعبين باللون الأزرق يتم تعقبهما بواسطة نظام الرؤية. تم وضع علامة على الكائن العلوي بإحداثيات X: 215، Y: 70، والأبعاد W: 73، H: 84، مع مخطط أبيض وصليب أبيض في المنتصف. تم وضع علامة على الكائن السفلي بإحداثيات X: 188، Y: 184، والأبعاد W: 144، H: 113، كما تم تحديده باللون الأبيض مع صليب أبيض في المنتصف.

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

كرة باكيبول زرقاء يتم تعقبها بواسطة نظام الرؤية. يحيط بالكائن خط أبيض، مع وجود صليب أبيض في وسط الخط. يشير الملصق الموجود في أعلى اليسار إلى لون الكائن باللون الأزرق، إلى جانب الإحداثيات X:176، Y:117، والأبعاد W:80، H:78. يسلط مربع أحمر صغير الضوء على الزاوية العلوية اليسرى للكائن.

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

عرض و ارتفاع

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

تظهر الصورة كرة Buckyball زرقاء اللون مع مخطط مربع أبيض يتبعها. تحتوي الزاوية العلوية اليسرى على ملصق يشير إلى أنها عبارة عن جسم أزرق، بإحداثيات X: 176، Y: 117، وأبعاد W: 80، H: 78. تسلط الأسهم الحمراء الضوء على عرض وارتفاع الكائن.

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

جسمين مكعبين باللون الأزرق يتم تعقبهما بواسطة نظام التعرف البصري. يحتوي المكعب العلوي على مخطط أبيض مع تسمية تشير إلى موضعه كـ X: 215، Y: 70 وأبعاده W: 73، H: 84. يحتوي المكعب السفلي على مخطط أبيض مماثل مع الملصق الذي يعرض X: 188، Y: 184 والأبعاد W: 144، H: 113. يحتوي كل مكعب على صليب أبيض في المنتصف، مما يشير على الأرجح إلى نقطة التركيز للتتبع. تسلط الملصقات الضوء على القياسات وبيانات التتبع لكل كائن.

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

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

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

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

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

زاوية

صورة متحركة دوارة تظهر كتل حمراء وخضراء. عندما يتم وضع الكتل بشكل أفقي تمامًا من الأحمر إلى الأخضر، فإنها تظهر على أنها 0 درجة. إذا كانت الكتلة الحمراء فوق الكتلة الخضراء عموديا، فإنها تكون بزاوية 90 درجة. إذا كانت الكتل أفقية باللون الأخضر إلى الأحمر، فإنها تكون 180 درجة. إذا كانت الكتلة الخضراء فوق الكتلة الحمراء عموديا، فإنها تكون 20 درجة.

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

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

كومة من مكعبين، واحد أخضر في الأعلى وواحد أزرق في الأسفل، يتم تعقبهما بواسطة نظام الرؤية. يحيط مخطط أبيض بالمكعبين، مع وجود صليب أبيض في وسط المكعب الأخضر. يعرض الملصق الموجود أسفل الصورة Green_Blue A:87°، مما يشير إلى الألوان المكتشفة وقياس الزاوية. أدناه، يتم ترتيب الإحداثيات على النحو التالي X:117، Y:186، مع الأبعاد W:137، H:172، والتي تمثل موضع وحجم المكعبات المكدسة في الإطار.

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

مكعبين، واحد أخضر وواحد أزرق، موضوعين جنبًا إلى جنب ويتم تتبعهما بواسطة نظام رؤية. يحيط مخطط أبيض بالمكعبين مع وجود صليب أبيض في المنتصف. يشير الملصق الموجود في أعلى اليسار إلى Green_Blue A:0°، في إشارة إلى الألوان المكتشفة وقياس الزاوية. أدناه، تظهر الإحداثيات على النحو التالي: X:150، Y:102، مع الأبعاد W:179، H:109، والتي تمثل موضع وحجم المكعبات داخل الإطار.

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

نتيجة

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

تظهر الصورة أربعة أشياء يتم تعقبها بواسطة نظام الرؤية: كرتان وحلقتان. تم وضع علامة على الكرة الحمراء بالإحداثيات X: 122، Y: 84، W: 67، H: 66، ونتيجة 99%. الكرة الزرقاء لها X: 228، Y: 86، W: 70، H: 68، مع درجة 99%. الحلقة الخضراء لها إحداثيات X:109، Y:186، W:98، H:92، ودرجة 99%. الحلقة الحمراء تحمل العلامة X:259، Y:187، W:89، H:91، بدرجة 99%. يتم تحديد كل كائن باللون الأبيض، مما يشير إلى دقة التتبع.

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

موجود

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

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


عدد الكائنات

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

تم اكتشاف واجهة AI Vision Utility مع مكعبين أزرقين على الجانب الأيسر، وكل منهما مُميز بإحداثيات X وY وأبعادهما. تم توصيل النظام وتم تشغيل AprilTags، بينما تم إيقاف تشغيل تصنيف الذكاء الاصطناعي. على اليمين، يتم عرض إعدادات اللون الأزرق مع نطاقات الصبغة والتشبع القابلة للتعديل، والتي تم ضبطها على 22 و0.34 على التوالي. هناك خيار لإضافة أو تعيين اللون وتجميد الفيديو. تم تحديث البرامج الثابتة، وهي تعمل بالإصدار 1.0.0.b16، ويتوفر زر إغلاق في الأسفل.

في هذا المثال، تم اكتشاف كائنين بتوقيع اللون"". سيتم وضعهما معًا في المصفوفة عند استخدام طريقة 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: