নিশ্চিত করুন যে আপনার AI ভিশন সেন্সরের সাথে কালার সিগনেচার এবং কালার কোড কনফিগার করা আছে যাতে সেগুলি আপনার ব্লকের সাথে ব্যবহার করা যায়। এগুলি কীভাবে কনফিগার করবেন সে সম্পর্কে আরও জানতে, আপনি নীচের নিবন্ধগুলি পড়তে পারেন:

এআই ভিশন সেন্সর এআই ক্লাসিফিকেশন এবং এপ্রিলট্যাগও সনাক্ত করতে পারে। এই সনাক্তকরণ মোডগুলি কীভাবে সক্ষম করবেন তা জানতে, এখানে যান:

এই পৃথক কমান্ডগুলি সম্পর্কে আরও বিস্তারিত জানতে এবং VEXcode-এ কীভাবে সেগুলি ব্যবহার করবেন তা জানতে, API সাইটে যান।


এআই ভিশন সেন্সর দিয়ে ভিজ্যুয়াল ডেটা সংগ্রহ করুন

প্রতিটি AI Vision Sensor কমান্ড কনফিগার করা AI Vision Sensor এর নাম দিয়ে শুরু হবে। এই প্রবন্ধের সকল উদাহরণের জন্য, ব্যবহৃত AI ভিশন সেন্সরের নাম হবে AIVision

স্ন্যাপশট নিন

takeSnapshot পদ্ধতিটি AI ভিশন সেন্সর বর্তমানে যা দেখছে তার একটি ছবি তোলে এবং সেই স্ন্যাপশট থেকে ডেটা সংগ্রহ করে যা পরে একটি প্রকল্পে ব্যবহার করা যেতে পারে। যখন একটি স্ন্যাপশট নেওয়া হয়, তখন আপনাকে নির্দিষ্ট করতে হবে যে AI ভিশন সেন্সর কোন ধরণের বস্তুর তথ্য সংগ্রহ করবে:

  • Aরঙের স্বাক্ষর অথবারঙের কোড
    • এই ভিজ্যুয়াল স্বাক্ষরগুলি AI ভিশন সেন্সরের নাম, ডাবল আন্ডারস্কোর এবং তারপর ভিজ্যুয়াল স্বাক্ষরের নাম দিয়ে শুরু হয়, উদাহরণস্বরূপ: AIVision1__Blue
  • এআই শ্রেণীবিভাগ - এভিশন::ALL_AIOBJS
  • এপ্রিলট্যাগ- বিমানচালনা::ALL_TAGS

একটি স্ন্যাপশট নিলে আপনার নির্দিষ্ট করা সমস্ত সনাক্ত করা বস্তুর একটি অ্যারে তৈরি হবে। উদাহরণস্বরূপ, যদি আপনি একটি "নীল" রঙের স্বাক্ষরসনাক্ত করতে চান, এবং AI ভিশন সেন্সর 3টি ভিন্ন নীল বস্তু সনাক্ত করে, তাহলে তিনটিরই ডেটা অ্যারেতে রাখা হবে।

এই উদাহরণে, AIVision1নামক AI ভিশন সেন্সর থেকে "নীল" রঙের স্বাক্ষরএর একটি স্ন্যাপশট নেওয়া হয়েছে। এটি অ্যারেতে সনাক্ত করা বস্তুর সংখ্যা প্রদর্শন করে এবং প্রতি 0.5 সেকেন্ডে একটি নতুন স্ন্যাপশট ক্যাপচার করে।

while (true) {
// সমস্ত নীল রঙের বস্তুর একটি স্ন্যাপশট পান।
AIVision.takeSnapshot(AIVision1__Blue);

// ডেটা টানার আগে স্ন্যাপশটে কোনও বস্তু সনাক্ত করা হয়েছে কিনা তা পরীক্ষা করে দেখুন।
যদি (AIVision.objectCount > 0) {

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

বস্তু

স্ন্যাপশট থেকে প্রতিটি বস্তুর আলাদা আলাদা বৈশিষ্ট্য রয়েছে যা সেই বস্তু সম্পর্কে তথ্য রিপোর্ট করতে ব্যবহার করা যেতে পারে। অবজেক্টস পদ্ধতি আপনাকে এই বৈশিষ্ট্যগুলি অ্যাক্সেস করার অনুমতি দেয়।

উপলব্ধ সম্পত্তিগুলি নিম্নরূপ:

  • আইডি
  • সেন্টারএক্স এবং সেন্টারওয়াই
  • অরিজিনএক্স এবং অরিজিনওয়াই
  • প্রস্থ
  • উচ্চতা
  • কোণ
  • বিদ্যমান
  • স্কোর

কোনও বস্তুর সম্পত্তি অ্যাক্সেস করতে, AI ভিশন সেন্সরের নাম ব্যবহার করুন, তারপরে অবজেক্ট পদ্ধতি এবং তারপরে অবজেক্টের সূচক ব্যবহার করুন।

অবজেক্ট ইনডেক্সটি নির্দেশ করে যে আপনি কোন নির্দিষ্ট অবজেক্টের সম্পত্তি পুনরুদ্ধার করতে চান। স্ন্যাপশট নেওয়ার পর, এআই ভিশন সেন্সর স্বয়ংক্রিয়ভাবে আকার অনুসারে বস্তু বাছাই করে। সবচেয়ে বড় বস্তুটিকে সূচক ০ দেওয়া হয়, যেখানে ছোট বস্তুগুলিকে উচ্চতর সূচক সংখ্যা দেওয়া হয়।

উদাহরণস্বরূপ, বৃহত্তম বস্তুর প্রস্থকে কল করলে AIVision1.objects[0].widthহবে।

আইডি

id সম্পত্তিটি শুধুমাত্র এপ্রিল ট্যাগ এবং AI শ্রেণীবিভাগের জন্য উপলব্ধ।

এআই ভিশন ইউটিলিটি তিনটি এপ্রিলট্যাগ ট্র্যাক করছে। প্রতিটি ট্যাগ চিহ্নিত, অবস্থান এবং রূপরেখাযুক্ত, যা সিস্টেম দ্বারা এর ট্র্যাকিং নির্দেশ করে। এই উদাহরণে এপ্রিলট্যাগ আইডি গুলি 0, 3, এবং 9 পড়ে।

একটিAprilTagএর জন্য, id বৈশিষ্ট্যটি সনাক্ত করাAprilTag(গুলি) আইডি নম্বরটি উপস্থাপন করে।

নির্দিষ্ট এপ্রিলট্যাগ সনাক্ত করলে নির্বাচনী নেভিগেশনের সুযোগ তৈরি হয়। আপনি আপনার রোবটকে নির্দিষ্ট ট্যাগের দিকে এগিয়ে যাওয়ার জন্য প্রোগ্রাম করতে পারেন, অন্যগুলিকে উপেক্ষা করে, কার্যকরভাবে স্বয়ংক্রিয় নেভিগেশনের জন্য সাইনপোস্ট হিসাবে ব্যবহার করতে পারেন।

এআই ভিশন ইউটিলিটি দ্বারা চারটি বস্তু ট্র্যাক করা হচ্ছে, দুটি বাকিবল এবং দুটি রিং। প্রতিটি বস্তু চিহ্নিত, অবস্থান এবং রূপরেখা তৈরি করা হয়, যা সিস্টেম দ্বারা এর ট্র্যাকিং নির্দেশ করে। ইউটিলিটিটি বস্তুর আইডি নোট করে, এই উদাহরণে একটি লাল বল, একটি নীল বল, একটি সবুজ রিং এবং একটি লাল রিং রয়েছে।

AI শ্রেণীবিভাগএর জন্য, id বৈশিষ্ট্যটি সনাক্ত করা নির্দিষ্ট ধরণের AI শ্রেণীবিভাগকে প্রতিনিধিত্ব করে।

নির্দিষ্ট এআই শ্রেণীবিভাগসনাক্তকরণ রোবটকে শুধুমাত্র নির্দিষ্ট বস্তুর উপর ফোকাস করতে দেয়, যেমন শুধুমাত্র একটি লাল বাকিবলের দিকে নেভিগেট করতে চাওয়া, নীল রঙের দিকে নয়।

এপ্রিলট্যাগ এবং এআই ক্লাসিফিকেশন এবং এআই ভিশন ইউটিলিটিতে কীভাবে তাদের সনাক্তকরণ সক্ষম করবেন সে সম্পর্কে আরও তথ্যের জন্য এই নিবন্ধগুলি দেখুন।

কেন্দ্রX এবং কেন্দ্রY

এটি পিক্সেলের মাধ্যমে সনাক্ত করা বস্তুর কেন্দ্র স্থানাঙ্ক।

এআই ভিশন সেন্সরে একটি নীল বাকিবল ট্র্যাক করা দেখানো হয়েছে। বাকিবলের চারপাশে একটি ট্র্যাকিং আয়তক্ষেত্র রয়েছে এবং উপরের লেবেলটি দেখায় যে এর X অবস্থান 176 এবং Y অবস্থান 117। ট্র্যাকিং আয়তক্ষেত্রের কেন্দ্রটি হাইলাইট করা হয়েছে যাতে দেখানো হয় যে অবস্থানটি কেন্দ্র থেকে পরিমাপ করা হচ্ছে।

CenterX এবং CenterY স্থানাঙ্কগুলি নেভিগেশন এবং অবস্থান নির্ধারণে সহায়তা করে। এআই ভিশন সেন্সরটির রেজোলিউশন ৩২০ x ২৪০ পিক্সেল।

এআই ভিশন সেন্সর দুটি নীল কিউব ট্র্যাক করছে বলে দেখানো হয়েছে। কিউবগুলির চারপাশে ট্র্যাকিং আয়তক্ষেত্র রয়েছে এবং একটি ক্যামেরার অনেক কাছাকাছি। কাছেরটির Y অবস্থান 184, এবং দূরে থাকাটির Y অবস্থান 70।

আপনি দেখতে পাচ্ছেন যে AI ভিশন সেন্সরের কাছাকাছি থাকা কোনও বস্তুর CenterY স্থানাঙ্ক দূরবর্তী কোনও বস্তুর তুলনায় কম থাকবে।

এই উদাহরণে, যেহেতু AI ভিশন সেন্সরের ভিউয়ের কেন্দ্র (160, 120), রোবটটি ডানদিকে ঘুরবে যতক্ষণ না সনাক্ত করা বস্তুর সেন্টারএক্স স্থানাঙ্ক 150 পিক্সেলের বেশি কিন্তু 170 পিক্সেলের কম হয়।

while (true) {
  // সমস্ত নীল রঙের বস্তুর একটি স্ন্যাপশট পান।
  AIVision.takeSnapshot(AIVision__Blue);

  // ডেটা টানার আগে স্ন্যাপশটে কোনও বস্তু সনাক্ত করা হয়েছে কিনা তা পরীক্ষা করে দেখুন।
  যদি (AIVision.objectCount > 0) {

    যদি (AIVision.objects[0].centerX > 150.0 && 170.0 > AIVision.objects[0].centerX) {
      Drivetrain.turn(right);
    } অন্যথায় {
      Drivetrain.stop();
    }
  }
  অপেক্ষা (5, msec);
}

অরিজিনX এবং অরিজিন

OriginX এবং OriginY হল পিক্সেলের মাধ্যমে সনাক্ত করা বস্তুর উপরের-বাম কোণে স্থানাঙ্ক।

এআই ভিশন সেন্সরে একটি নীল বাকিবল ট্র্যাক করা দেখানো হয়েছে। বাকিবলের চারপাশে একটি ট্র্যাকিং আয়তক্ষেত্র রয়েছে এবং উপরের লেবেলটি দেখায় যে এর X অবস্থান 176 এবং Y অবস্থান 117। ট্র্যাকিং আয়তক্ষেত্রের উপরের বাম কোণটি হাইলাইট করা হয়েছে যাতে দেখানো হয় যে মূল অবস্থানটি তার উপরের বাম কোণ থেকে পরিমাপ করা হয়েছে।

OriginX এবং OriginY স্থানাঙ্ক নেভিগেশন এবং অবস্থান নির্ধারণে সহায়তা করে। এই স্থানাঙ্কটিকে বস্তুর প্রস্থ এবং উচ্চতার সাথে একত্রিত করে, আপনি বস্তুর বাউন্ডিং বাক্সের আকার নির্ধারণ করতে পারেন। এটি চলমান বস্তুগুলি ট্র্যাক করতে বা বস্তুগুলির মধ্যে নেভিগেট করতে সাহায্য করতে পারে।

প্রস্থ এবং উচ্চতা

এটি পিক্সেলের মাধ্যমে সনাক্ত করা বস্তুর প্রস্থ বা উচ্চতা।

এআই ভিশন সেন্সরে একটি নীল বাকিবল ট্র্যাক করা দেখানো হয়েছে। বাকিবলের চারপাশে একটি ট্র্যাকিং আয়তক্ষেত্র রয়েছে এবং উপরের লেবেলটি দেখায় যে এর প্রস্থ ৮০ পিক্সেল এবং উচ্চতা ৭৮ পিক্সেল। লাল তীরচিহ্নগুলি ট্র্যাকিং আয়তক্ষেত্রটিকে হাইলাইট করছে যাতে এর প্রস্থ এবং উচ্চতা দেখা যায়।

প্রস্থ এবং উচ্চতা পরিমাপ বিভিন্ন বস্তু সনাক্ত করতে সাহায্য করে। উদাহরণস্বরূপ, একটি বাকিবলের উচ্চতা একটি রিংয়ের চেয়ে বেশি হবে।

এআই ভিশন সেন্সর দুটি নীল কিউব ট্র্যাক করছে বলে দেখানো হয়েছে। কিউবগুলির চারপাশে ট্র্যাকিং আয়তক্ষেত্র রয়েছে এবং একটি ক্যামেরার অনেক কাছাকাছি। কাছেরটির প্রস্থ ১৪৪ এবং উচ্চতা ১১৩, এবং দূরে থাকাটির প্রস্থ ৭৩ এবং উচ্চতা ৮৪।

প্রস্থ এবং উচ্চতা এআই ভিশন সেন্সর থেকে কোনও বস্তুর দূরত্বও নির্দেশ করে। ছোট পরিমাপ সাধারণত বোঝায় যে বস্তুটি আরও দূরে, যখন বড় পরিমাপ ইঙ্গিত দেয় যে এটি আরও কাছে।

এই উদাহরণে, বস্তুর প্রস্থ নেভিগেশনের জন্য ব্যবহৃত হয়েছে। রোবটটি বস্তুটির কাছে যাবে যতক্ষণ না প্রস্থ একটি নির্দিষ্ট আকারে পৌঁছায় এবং থামে।

while (true) {
  // সমস্ত নীল বস্তুর একটি স্ন্যাপশট পান।
  AIVision.takeSnapshot(AIVision1__Blue);

  // ডেটা টানার আগে স্ন্যাপশটে কোনও বস্তু সনাক্ত হয়েছে কিনা তা পরীক্ষা করে দেখুন।
  যদি (AIVision.objectCount > 0) {

    যদি (AIVision.objects[0].width < 250.0) {
      Drivetrain.drive(forward);
    } অন্যথায় {
      Drivetrain.stop();
    }
  }
  wait(5, msec);
}

কোণ

একটি লাল বর্গক্ষেত্র এবং একটি সবুজ বর্গক্ষেত্রকে একসাথে ঘোরানোর অ্যানিমেশন, যাতে একটি কোণের মান ৩৬০ ডিগ্রি দেখানো হয়।

কোণ বৈশিষ্ট্যটি শুধুমাত্ররঙ কোড এবংএপ্রিলট্যাগএর জন্য উপলব্ধ।

এটি সনাক্ত করা রঙের কোডঅথবা এপ্রিলট্যাগ ভিন্নভাবে পরিচালিত কিনা তা নির্দেশ করে।

এআই ভিশন সেন্সরে সবুজের পরে নীল রঙের কোড ট্র্যাক করা দেখানো হয়েছে। ভিডিও ফিডে একটি নীল ঘনকের উপরে একটি সবুজ ঘনক স্তূপীকৃত দেখানো হয়েছে। কালার কোডের কোণের মান হাইলাইট করা হয়েছে এবং 87 ডিগ্রি পড়ে, যা নির্দেশ করে যে কালার কোডটি উল্লম্বভাবে অবস্থিত।

আপনি দেখতে পাবেন যে রোবটটিকালার কোড অথবাএপ্রিলট্যাগ এর সাথে ভিন্নভাবে পরিচালিত কিনা এবং সেই অনুযায়ী নেভিগেশনের সিদ্ধান্ত নিতে পারবেন।

এআই ভিশন সেন্সরে সবুজের পরে নীল রঙের কোড ট্র্যাক করা দেখানো হয়েছে। ভিডিও ফিডে একটি নীল কিউবের পাশে বসে থাকা একটি সবুজ কিউব দেখানো হয়েছে, কিন্তু সেন্সরের তুলনায় তারা একটি বিশ্রী কোণে রয়েছে। কালার কোডের কোণের মান হাইলাইট করা হয়েছে এবং 0 ডিগ্রি পড়ে, যা নির্দেশ করে যে কালার কোডের কোণ পড়া যাচ্ছে না।

উদাহরণস্বরূপ, যদি একটিরঙের কোড সঠিক কোণে সনাক্ত না করা হয়, তাহলে এটি যে বস্তুটি উপস্থাপন করে তা রোবট দ্বারা সঠিকভাবে তোলা সম্ভব নাও হতে পারে।

স্কোর

AI ভিশন সেন্সর দিয়েAI ক্লাসিফিকেশন সনাক্ত করার সময় স্কোর বৈশিষ্ট্যটি ব্যবহার করা হয়।

এআই ভিশন ইউটিলিটি দ্বারা চারটি বস্তু ট্র্যাক করা হচ্ছে, দুটি বাকিবল এবং দুটি রিং। প্রতিটি বস্তু চিহ্নিত, অবস্থান এবং রূপরেখা তৈরি করা হয়, যা সিস্টেম দ্বারা এর ট্র্যাকিং নির্দেশ করে। এই ইউটিলিটি প্রতিটি বস্তুর AI শ্রেণীবিভাগের স্কোরও তালিকাভুক্ত করে, এই উদাহরণে প্রতিটি স্কোর ৯৯% পড়ে।

আত্মবিশ্বাসের স্কোর নির্দেশ করে যে এআই ভিশন সেন্সর তার সনাক্তকরণের বিষয়ে কতটা নিশ্চিত। এই ছবিতে, এই চারটি বস্তুর AI শ্রেণীবিভাগ সনাক্ত করার ক্ষেত্রে এটি ৯৯% আত্মবিশ্বাসী। আপনার রোবটটি শুধুমাত্র অত্যন্ত আত্মবিশ্বাসী সনাক্তকরণের উপর ফোকাস করে তা নিশ্চিত করতে আপনি এই স্কোরটি ব্যবহার করতে পারেন।

বিদ্যমান

শেষ তোলা স্ন্যাপশটে একটি নির্দিষ্ট ভিজ্যুয়াল সিগনেচার সনাক্ত করা হয়েছে কিনা তা সনাক্ত করতে exists প্রপার্টি ব্যবহার করা হয়।

এটি আপনাকে পূর্ববর্তী স্ন্যাপশটে কোনও সনাক্ত করা বস্তু সনাক্ত করা হয়েছে কিনা তা পরীক্ষা করতে দেয়। যখন কোন বস্তু বিদ্যমান থাকে তখন এই বৈশিষ্ট্যটি True এবং যখন কোন বস্তু বিদ্যমান থাকে না তখন False প্রদান করবে।


অবজেক্টকাউন্ট

objectCount পদ্ধতিটি শেষ স্ন্যাপশটে সনাক্ত করা বস্তুর পরিমাণ ফেরত দেয়।

এআই ভিশন সেন্সর দুটি নীল কিউব ট্র্যাক করছে বলে দেখানো হয়েছে। কিউবগুলির চারপাশে ট্র্যাকিং আয়তক্ষেত্র রয়েছে এবং একটি ক্যামেরার অনেক কাছাকাছি।

এই উদাহরণে,রঙের স্বাক্ষর "নীল" দিয়ে দুটি বস্তু সনাক্ত করা হয়েছে। takeSnapshot পদ্ধতি ব্যবহার করা হলে উভয়কেই অ্যারেতে রাখা হবে।

এই কোড স্নিপেটটি ক্রমাগত EXP ব্রেইনকে সনাক্ত করা বস্তুর সংখ্যা আপডেট করে। প্রদত্ত উদাহরণের উপর ভিত্তি করে, এটি বারবার মান 2 পাঠাবে, যা নির্দেশ করবে যে দুটি বস্তু সনাক্ত করা হয়েছে।

while (true) {
// সমস্ত নীল বস্তুর একটি স্ন্যাপশট পান।
AIVision.takeSnapshot(AIVision__Blue);

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

// ডেটা টানার আগে স্ন্যাপশটে কোনও বস্তু সনাক্ত করা হয়েছে কিনা তা পরীক্ষা করে দেখুন।
যদি (AIVision.objectCount > 0) {
Brain.Screen.print(AIVision1.objectCount);
}
অপেক্ষা করুন(5, msec);
}

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

Last Updated: