VEXcode V5 C++ жүйесінде AI көру сенсорымен кодтау

AI көру сенсорымен конфигурацияланған Түс қолтаңбасы және Түс кодтары бар екеніне көз жеткізіңіз, осылайша оларды блоктарыңызбен пайдалануға болады. Оларды конфигурациялау туралы көбірек білу үшін төмендегі мақалаларды оқуға болады:

AI көру сенсоры сонымен қатар AI классификациялары мен AprilTags анықтай алады. Осы анықтау режимдерін қосу жолын білу үшін мына жерге өтіңіз:

Осы жеке пәрмендер және оларды VEXcode ішінде қалай пайдалану керектігі туралы қосымша мәліметтер алу үшін API сайтына өтіңіз.


AI Vision Sensor көмегімен визуалды деректерді алыңыз

Әрбір AI Vision Sensor пәрмені конфигурацияланған AI Vision Sensor атауынан басталады. Осы мақаладағы барлық мысалдар үшін пайдаланылатын AI көру сенсорының атауы AIVisionболады.

Snapshot түсіру

takeSnapshot әдісі AI көру сенсоры қазір көріп отырған нәрсенің суретін түсіреді және сол суреттен деректерді алады, содан кейін жобада пайдалануға болады. Сурет түсірілген кезде, AI көру сенсоры қандай нысанның түрі туралы деректерді жинау керектігін көрсетуіңіз керек:

  • түсті қолтаңба немесетүс коды
    • Бұл визуалды қолтаңбалар AI көру сенсорының атынан басталады, қос астын сызу, содан кейін Көрнекі қолтаңба атауы, мысалы: AIVision1__Blue.
  • AI классификациялары - aivision::ALL_AIOBJS
  • сәуірБелгілер- aivision::ALL_TAGS

Суретке түсіру сіз көрсеткен барлық анықталған нысандардың массивін жасайды. Мысалы, егер сіз «Көк» түсті қолтаңбаныанықтағыңыз келсе және AI көру сенсоры 3 түрлі көк нысанды анықтаса, үшеуінің деректері массивке қойылады.

Бұл мысалда AIVision1деп аталатын AI көру сенсорынан "Көк" түсті қолтаңбасуреті түсірілген. Ол массивте анықталған нысандардың санын көрсетеді және әрбір 0,5 секунд сайын жаңа суретті түсіреді.

while (true) {
// Көк түсті барлық нысандардың суретін алу.
AIVision.takeSnapshot(AIVision1__Көк);

// Деректерді алудан бұрын суретте нысанның анықталғанын тексеріңіз.
егер (AIVision.objectCount > 0) {

Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print(AIVision1.objectCount);
}
күту(5, мсек);
}

нысандар

Суреттегі әрбір нысанда сол нысан туралы ақпаратты хабарлау үшін пайдалануға болатын әртүрлі сипаттар бар. Objects әдісі осы қасиеттерге қол жеткізуге мүмкіндік береді.

Қол жетімді қасиеттер келесідей:

  • id
  • centerX және centerY
  • OriginX және OriginY
  • ені
  • биіктігі
  • бұрыш
  • бар
  • ұпай

Нысанның қасиетіне қол жеткізу үшін AI көру сенсорының атын, одан кейін нысандар әдісін, содан кейін нысанның индексін пайдаланыңыз.

Нысан индексі қай нақты нысанның қасиетін шығарып алғыңыз келетінін көрсетеді. Суретке түсіргеннен кейін AI көру сенсоры нысандарды өлшемі бойынша автоматты түрде сұрыптайды. Ең үлкен нысанға 0 индексі тағайындалады, ал кішірек нысандар жоғары индекс сандарын алады.

Мысалы, ең үлкен нысанның енін шақыру AIVision1.objects[0].widthболады.

id

id сипаты тек сәуірдегі және AI классификациялары үшін қол жетімді.

0, 9 және 3 идентификаторларымен белгіленген үш шаршы идентификациялық маркер, әрқайсысының сәйкес координаттары мен өлшем өлшемдері ақ мәтінде көрсетіледі. ID 0 сол жақта, ID 9 оң жақта, ал ID 3 төменгі орталықта. Әрбір маркер шаршының ішінде ерекше ақ-қара үлгісіне ие.

AprilTagүшін id сипаты анықталғанAprilTag(лар) ID нөмірін білдіреді.

Нақты сәуірдегіТагтарды анықтау таңдамалы шарлау мүмкіндігін береді. Сіз роботты басқаларды елемей, белгілі бір тегтерге қарай жылжу үшін бағдарламалай аласыз, оларды автоматтандырылған навигация үшін бағдаршалар ретінде тиімді пайдалана аласыз.

Екі шар мен екі сақина суретте анықталған, олардың орнын, өлшемін және ұпайын көрсететін белгілер. Қызыл шар сол жақта, көк шар оң жақта, жасыл сақина төменгі сол жақта, қызыл сақина төменгі оң жақта. Әрбір нысан ақ жолақпен белгіленеді және X, Y координаттары, ені, биіктігі және 99% ұпайы сияқты мәліметтер ақ мәтінде көрсетіледі.

AI классификациясыүшін id сипаты анықталған AI классификациясының арнайы түрін білдіреді.

Арнайы AI классификациясын анықтауроботқа көк емес, тек қызыл Бакиболға қарай шарлау сияқты нақты нысандарға ғана назар аударуға мүмкіндік береді.

сәуірдегі және AI классификациялары және оларды AI Vision утилитасында анықтауды қосу жолы туралы қосымша ақпарат алу үшін осы мақалаларға өтіңіз.

centerX және centerY

Бұл анықталған нысанның пиксельдегі орталық координаталары.

Көк Бакиболды компьютерлік көру жүйесі бақылайды. Нысан ақ шаршымен сызылған, ал контурдың ішінде ортасы бар ақ крестті қоршап тұрған кішірек қызыл шаршы бар. Кескіннің жоғарғы сол жақ бұрышында белгі нысанның көк екенін көрсетеді, координаттары X:176, Y:117 және өлшемдері W:80, H:78.

CenterX және CenterY координаттары навигацияға және орналасуға көмектеседі. AI Vision Sensor 320 x 240 пиксел рұқсатына ие.

Көру жүйесі арқылы бақыланатын екі көк текше нысан. Үстіңгі нысан X:215, Y:70 координаталарымен және W:73, H:84 өлшемдерімен, ақ контурмен және ортасында ақ крестпен белгіленген. Төменгі нысан X:188, Y:184 координаталарымен және W:144, H:113 өлшемдерімен белгіленеді, сонымен қатар ортасында ақ крестпен ақ түспен белгіленген.

AI көру сенсорына жақынырақ нысанның алыстағы нысанға қарағанда CenterY координатасы төмен болатынын көруге болады.

Бұл мысалда AI көру сенсорының көрінісінің орталығы (160, 120) болғандықтан, робот анықталған нысанның centerX координатасы 150 пиксельден үлкен, бірақ 170 пикселден аз болғанша оңға бұрылады.

while (true) {
  // Көк түсті барлық нысандардың суретін алу.
  AIVision.takeSnapshot(AIVision__Blue);

  // Деректерді алудан бұрын суретте нысанның анықталғанын тексеріңіз.
  егер (AIVision.objectCount > 0) {

    if (AIVision.objects[0].centerX > 150,0 && 170,0 > AIVision.objects[0].centerX) {
      Drivetrain.burn(оңға);
    } else {
      Drivetrain.stop();
    }
  }
  күту(5, мсек);
}

бастапқы X және бастапқы

OriginX және OriginY - анықталған нысанның пиксельдегі жоғарғы сол жақ бұрышындағы координат.

Көк Бакиболды көру жүйесі бақылайды. Ақ контур нысанды қоршап тұр, оның ішінде ортаңғы ақ крест бар. Жоғарғы сол жақ белгі нысанның түсін X:176, Y:117 координаттарымен және W:80, H:78 өлшемдерімен бірге көк ретінде көрсетеді. Кішкентай қызыл шаршы нысанның жоғарғы сол жақ бұрышын ерекшелейді.

OriginX және OriginY координаттары навигацияға және орналасуға көмектеседі. Осы координатаны нысанның ені мен биіктігімен біріктіру арқылы нысанның шектейтін өрісінің өлшемін анықтауға болады. Бұл қозғалатын нысандарды қадағалауға немесе нысандар арасында шарлауға көмектеседі.

ені және биіктігі

Бұл анықталған нысанның пиксельдегі ені немесе биіктігі.

Суретте ақ төртбұрышты контуры бар көк Бакиболды қадағалап отыр. Жоғарғы сол жақ бұрышта оның 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 көру сенсорынан қашықтығын көрсетеді. Кішірек өлшемдер әдетте нысанның алыс екенін білдіреді, ал үлкен өлшемдер оның жақынырақ екенін көрсетеді.

Бұл мысалда нысанның ені шарлау үшін пайдаланылады. Робот тоқтау алдында ені белгілі бір өлшемге жеткенше нысанға жақындайды.

while (true) {
  // Барлық көк нысандардың суретін алыңыз.
  AIVision.takeSnapshot(AIVision1__Көк);

  // Деректерді алудан бұрын суретте нысанның анықталғанын тексеріңіз.
  егер (AIVision.objectCount > 0) {

    if (AIVision.objects[0].ені < 250,0) {
      Drivetrain.drive(алға);
    } else {
      Drivetrain.stop();
    }
  }
  күту(5, мсек);
}

бұрыш

Қызыл және жасыл блоктарды көрсететін айналмалы GIF. Блоктар қызылдан жасылға дейін мінсіз көлденең орналасқанда, олар 0 градус болып көрсетіледі. Егер қызыл блок жасыл блоктың үстінде тігінен тұрса, ол 90 градуста болады. Егер блоктар көлденеңінен жасылдан қызылға дейін болса, ол 180 градус болады. Егер жасыл блок қызыл блоктың үстінде тігінен тұрса, ол 20 градус.

бұрышы сипаты тектүс кодтары жәнесәуірдеүшін қол жетімді.

Бұл анықталған Түс кодынемесе 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, кадрдағы текшелердің орны мен өлшемін көрсетеді.

Мысалы, егерТүс коды дұрыс бұрышта анықталмаса, ол көрсететін нысанды робот дұрыс ала алмауы мүмкін.

ұпай

ұпай қасиеті AI көру сенсорыменAI классификациясын анықтау кезінде пайдаланылады.

Суретте көру жүйесі арқылы бақыланатын төрт нысан көрсетілген: екі шар және екі сақина. Қызыл шар 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 көру сенсорының оны анықтауға қаншалықты сенімді екенін көрсетеді. Бұл суретте бұл төрт нысанның AI классификациясын анықтауға 99% сенімді. Сіз бұл ұпайды роботыңыздың тек жоғары сенімді анықтауларға назар аударуын қамтамасыз ету үшін пайдалана аласыз.

бар

бар сипаты соңғы түсірілген суретте көрсетілген визуалды қолтаңба анықталғанын анықтау үшін пайдаланылады.

Бұл алдыңғы суретте анықталған нысандардың анықталғанын тексеруге мүмкіндік береді. Бұл сипат нысан бар кезде True мәнін, ал объект жоқ кезде False мәнін қайтарады.


objectCount

objectCount әдісі соңғы суретте анықталған нысандардың санын қайтарады.

AI Vision Utility интерфейсі сол жақта әрқайсысы X және Y координаталарымен және өлшемдерімен белгіленген екі көк текшеден тұрады. Жүйе қосылған және AprilTags қосулы, ал AI классификациясы өшірулі. Оң жақта Көк түс параметрлері реттелетін реңк пен қанықтылық диапазондарымен көрсетіледі, сәйкесінше 22 және 0,34. Түс қосу немесе орнату және бейнені мұздату опциясы бар. Микробағдарлама жаңартылған, 1.0.0.b16 нұсқасы жұмыс істейді және төменгі жағында жабу түймесі қолжетімді.

Бұл мысалдаТүс белгісі "Көк" белгісімен екі нысан анықталды. 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, мсек);
}

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

Last Updated: