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

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

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

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


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

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

суретке_ түсіру

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

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

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

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

while True: 
# Барлық күлгін түсті қолтаңбалардың суретін алыңыз және оны vision_objects ішінде сақтаңыз.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Purple)

# Деректерді түсірмес бұрын суретте нысанның анықталғанын тексеріңіз.
егер vision_objects[0].exists == True

brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)

brain.screen.print("Нысан саны:", len(vision_objects))
күту(0,5, СЕКУНД)

Нысан сипаттары

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

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

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

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

Мысалы, vision_objects айнымалысының ішіндегі ең үлкен нысанның енін шақыру: vision_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:
# Барлық көк түсті қолтаңбалардың суретін алыңыз және оны vision_objects ішінде сақтаңыз.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)

# Деректерді алу алдында суретте нысанның анықталғанын тексеріңіз.
if vision_objects[0].exists == True

# Нысанның AI Vision Sensor көрінісінің ортасында еместігін тексеріңіз.
if vision_objects[0].centerX > 150 және 170 > vision_objects[0].centerX:

# Нысан көріністің ортасында болғанша оңға бұрыла беріңіз.
drivetrain.turn(RIGHT)
басқа:
drivetrain.stop()
күту(5, MSEC)

бастапқы 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:
# Барлық көк түсті қолтаңбалардың суретін алыңыз және оны vision_objects ішінде сақтаңыз.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)

# Деректерді алу алдында суретте нысанның анықталғанын тексеріңіз.
if vision_objects[0].exists == True

# Ең үлкен нысанның енін өлшеу арқылы AI көру сенсорына жақын екенін тексеріңіз.
if vision_objects[0].width < 250:

# 250 пиксельден кеңірек болғанша нысанға жақындаңыз.
drivetrain.drive(FORWARD)
басқа:
drivetrain.stop()

күту(5, MSEC)

бұрыш

Қызыл және жасыл блоктарды көрсететін айналмалы 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 мәнін қайтарады.

 

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

Last Updated: