VEXcode V5 C++-ൽ AI വിഷൻ സെൻസർ ഉപയോഗിച്ചുള്ള കോഡിംഗ്.

നിങ്ങളുടെ ബ്ലോക്കുകളിൽ ഉപയോഗിക്കാൻ കഴിയുന്ന തരത്തിൽ നിങ്ങളുടെ AI വിഷൻ സെൻസർ ഉപയോഗിച്ച് കോൺഫിഗർ ചെയ്‌തിരിക്കുന്ന കളർ സിഗ്നേച്ചറുകൾ ഉം കളർ കോഡുകൾ ഉണ്ടെന്ന് ഉറപ്പാക്കുക. അവ എങ്ങനെ ക്രമീകരിക്കാം എന്നതിനെക്കുറിച്ച് കൂടുതലറിയാൻ, താഴെയുള്ള ലേഖനങ്ങൾ നിങ്ങൾക്ക് വായിക്കാം:

AI വിഷൻ സെൻസറിന് AI ക്ലാസിഫിക്കേഷനുകളും ഏപ്രിൽ ടാഗുകളും കണ്ടെത്താനും കഴിയും. ഈ കണ്ടെത്തൽ മോഡുകൾ എങ്ങനെ പ്രാപ്തമാക്കാമെന്ന് അറിയാൻ, ഇവിടെ പോകുക:

ഈ വ്യക്തിഗത കമാൻഡുകളെക്കുറിച്ചും VEXcode-ൽ അവ എങ്ങനെ ഉപയോഗിക്കാമെന്നതിനെക്കുറിച്ചും കൂടുതലറിയാൻ, API സൈറ്റിലേക്ക് പോകുക.


AI വിഷൻ സെൻസർ ഉപയോഗിച്ച് വിഷ്വൽ ഡാറ്റ നേടുക.

എല്ലാ AI വിഷൻ സെൻസർ കമാൻഡുകളും കോൺഫിഗർ ചെയ്തിരിക്കുന്ന AI വിഷൻ സെൻസറിന്റെ പേരിൽ ആരംഭിക്കും. ഈ ലേഖനത്തിലെ എല്ലാ ഉദാഹരണങ്ങൾക്കും, ഉപയോഗിക്കുന്ന AI വിഷൻ സെൻസറിന്റെ പേര് AIVisionആയിരിക്കും.

ടേക്ക്സ്നാപ്പ്ഷോട്ട്

takeSnapshot രീതി AI വിഷൻ സെൻസർ നിലവിൽ കാണുന്നതിന്റെ ഒരു ചിത്രം എടുക്കുകയും ആ സ്നാപ്പ്ഷോട്ടിൽ നിന്ന് ഡാറ്റ എടുക്കുകയും അത് ഒരു പ്രോജക്റ്റിൽ ഉപയോഗിക്കാൻ കഴിയുകയും ചെയ്യുന്നു. ഒരു സ്നാപ്പ്ഷോട്ട് എടുക്കുമ്പോൾ, AI വിഷൻ സെൻസർ ഏത് തരം വസ്തുവിന്റെ ഡാറ്റ ശേഖരിക്കണമെന്ന് നിങ്ങൾ വ്യക്തമാക്കേണ്ടതുണ്ട്:

  • കളർ സിഗ്നേച്ചർ അല്ലെങ്കിൽകളർ കോഡ്
    • ഈ വിഷ്വൽ സിഗ്നേച്ചറുകൾ AI വിഷൻ സെൻസറിന്റെ പേരിൽ ആരംഭിക്കുന്നു, ഇരട്ട അടിവരയിടുന്നു, തുടർന്ന് വിഷ്വൽ സിഗ്നേച്ചറിന്റെ പേരിൽ, ഉദാഹരണത്തിന്: AIVision1__Blue.
  • AI വർഗ്ഗീകരണങ്ങൾ - aivision::ALL_AIOBJS
  • ഏപ്രിൽടാഗുകൾ- aivision::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);
}
കാത്തിരിക്കുക(5, msec);
}

വസ്തുക്കൾ

ഒരു സ്നാപ്പ്ഷോട്ടിലെ ഓരോ ഒബ്ജക്റ്റിനും ആ ഒബ്ജക്റ്റിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ റിപ്പോർട്ട് ചെയ്യാൻ ഉപയോഗിക്കാവുന്ന വ്യത്യസ്ത ഗുണങ്ങളുണ്ട്. ഈ പ്രോപ്പർട്ടികൾ ആക്‌സസ് ചെയ്യാൻ ഒബ്‌ജക്റ്റ് രീതി നിങ്ങളെ അനുവദിക്കുന്നു.

ലഭ്യമായ പ്രോപ്പർട്ടികൾ ഇപ്രകാരമാണ്:

  • ഐഡി
  • സെന്റർഎക്സും സെന്റർവൈയും
  • ഉത്ഭവംX ഉം ഉത്ഭവംY ഉം
  • വീതി
  • ഉയരം
  • ആംഗിൾ
  • നിലവിലുണ്ട്
  • സ്കോർ

ഒരു വസ്തുവിന്റെ പ്രോപ്പർട്ടി ആക്‌സസ് ചെയ്യുന്നതിന്, AI വിഷൻ സെൻസറിന്റെ പേരും തുടർന്ന് ഒബ്‌ജക്റ്റ് രീതിയും തുടർന്ന് ഒബ്‌ജക്റ്റിന്റെ സൂചികയും ഉപയോഗിക്കുക.

ഏത് പ്രത്യേക വസ്തുവിന്റെ പ്രോപ്പർട്ടി ആണ് നിങ്ങൾ വീണ്ടെടുക്കാൻ ആഗ്രഹിക്കുന്നതെന്ന് ഒബ്ജക്റ്റ് സൂചിക സൂചിപ്പിക്കുന്നു. ഒരു സ്നാപ്പ്ഷോട്ട് എടുത്ത ശേഷം, AI വിഷൻ സെൻസർ വസ്തുക്കളെ വലുപ്പമനുസരിച്ച് സ്വയമേവ അടുക്കുന്നു. ഏറ്റവും വലിയ വസ്തുവിന് സൂചിക 0 നൽകിയിരിക്കുന്നു, ചെറിയ വസ്തുക്കൾക്ക് ഉയർന്ന സൂചിക സംഖ്യകൾ ലഭിക്കുന്നു.

ഉദാഹരണത്തിന്, ഏറ്റവും വലിയ വസ്തുവിന്റെ വീതി AIVision1.objects[0].widthഎന്ന് വിളിക്കുന്നത് ആയിരിക്കും.

ഐഡി

ഐഡി പ്രോപ്പർട്ടി ഏപ്രിൽ ടാഗുകൾ ഉം AI ക്ലാസിഫിക്കേഷനുകൾക്ക് മാത്രമേ ലഭ്യമാകൂ.

0, 9, 3 എന്നീ ഐഡികൾ ഉപയോഗിച്ച് ലേബൽ ചെയ്ത മൂന്ന് ചതുര തിരിച്ചറിയൽ മാർക്കറുകൾ, ഓരോന്നിനും അനുബന്ധ കോർഡിനേറ്റുകളും വലുപ്പ അളവുകളും വെളുത്ത വാചകത്തിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്നു. ഐഡി 0 ഇടതുവശത്തും, ഐഡി 9 വലതുവശത്തും, ഐഡി 3 താഴെ മധ്യത്തിലുമാണ്. ഓരോ മാർക്കറിനും ഒരു ചതുരത്തിനുള്ളിൽ ഒരു സവിശേഷമായ കറുപ്പും വെളുപ്പും പാറ്റേൺ ഉണ്ട്.

ഒരുAprilTagന്, id പ്രോപ്പർട്ടി കണ്ടെത്തിയAprilTag(s) ID നമ്പറിനെ പ്രതിനിധീകരിക്കുന്നു.

നിർദ്ദിഷ്ട ഏപ്രിൽ ടാഗുകൾ തിരിച്ചറിയുന്നത് തിരഞ്ഞെടുത്ത നാവിഗേഷനെ അനുവദിക്കുന്നു. നിങ്ങളുടെ റോബോട്ടിനെ ചില ടാഗുകളിലേക്ക് നീങ്ങാൻ പ്രോഗ്രാം ചെയ്യാനും മറ്റുള്ളവയെ അവഗണിക്കാനും കഴിയും, ഓട്ടോമേറ്റഡ് നാവിഗേഷനുള്ള സൂചനകളായി അവയെ ഫലപ്രദമായി ഉപയോഗിക്കാനും കഴിയും.

ചിത്രത്തിൽ രണ്ട് പന്തുകളും രണ്ട് വളയങ്ങളും തിരിച്ചറിഞ്ഞിട്ടുണ്ട്, അവയുടെ സ്ഥാനം, വലിപ്പം, സ്കോർ എന്നിവ സൂചിപ്പിക്കുന്ന ലേബലുകൾ ഉണ്ട്. ചുവന്ന പന്ത് ഇടതുവശത്തും, നീല പന്ത് വലതുവശത്തും, പച്ച വളയം താഴെ ഇടതുവശത്തും, ചുവന്ന വളയം താഴെ വലതുവശത്തും. ഓരോ വസ്തുവിനും ഒരു വെളുത്ത ബോക്സ് ഔട്ട്‌ലൈൻ നൽകിയിരിക്കുന്നു, കൂടാതെ X, Y നിർദ്ദേശാങ്കങ്ങൾ, വീതി, ഉയരം, 99% സ്കോർ തുടങ്ങിയ വിശദാംശങ്ങൾ വെളുത്ത വാചകത്തിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്നു.

AI ക്ലാസിഫിക്കേഷനുകൾന്, id പ്രോപ്പർട്ടി കണ്ടെത്തിയ നിർദ്ദിഷ്ട തരം AI ക്ലാസിഫിക്കേഷനെ പ്രതിനിധീകരിക്കുന്നു.

നിർദ്ദിഷ്ട AI ക്ലാസിഫിക്കേഷനുകൾതിരിച്ചറിയുന്നത് റോബോട്ടിനെ നീല നിറത്തിലുള്ള ഒന്നിലേക്ക് അല്ല, ചുവന്ന ബക്കിബോളിലേക്ക് മാത്രം നാവിഗേറ്റ് ചെയ്യാൻ ആഗ്രഹിക്കുന്നത് പോലുള്ള നിർദ്ദിഷ്ട വസ്തുക്കളിൽ മാത്രം ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ അനുവദിക്കുന്നു.

ഏപ്രിൽ ടാഗുകൾ ഉം AI ക്ലാസിഫിക്കേഷനുകൾ ഉം AI വിഷൻ യൂട്ടിലിറ്റിയിൽ അവയുടെ കണ്ടെത്തൽ എങ്ങനെ പ്രാപ്തമാക്കാം എന്നതിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക് ഈ ലേഖനങ്ങളിലേക്ക് പോകുക.

സെന്റർX ഉം സെന്റർY

ഇത് കണ്ടെത്തിയ വസ്തുവിന്റെ പിക്സലുകളിൽ മധ്യ കോർഡിനേറ്റുകളാണ്.

കമ്പ്യൂട്ടർ വിഷൻ സിസ്റ്റം ട്രാക്ക് ചെയ്യുന്ന ഒരു നീല ബക്കിബോൾ. വസ്തുവിന്റെ രൂപരേഖ ഒരു വെളുത്ത ചതുരത്തിലാണ് വരച്ചിരിക്കുന്നത്, ബാഹ്യരേഖയ്ക്കുള്ളിൽ മധ്യഭാഗത്തായി ഒരു വെളുത്ത കുരിശിനെ ചുറ്റിപ്പറ്റിയുള്ള ഒരു ചെറിയ ചുവന്ന ചതുരവുമുണ്ട്. ചിത്രത്തിന്റെ മുകളിൽ ഇടത് കോണിൽ, ഒരു ലേബൽ വസ്തു നീലയാണെന്ന് സൂചിപ്പിക്കുന്നു, കോർഡിനേറ്റുകൾ X:176, Y:117, അളവുകൾ W:80, H:78 എന്നിവയുണ്ട്.

നാവിഗേഷനും സ്ഥാനനിർണ്ണയത്തിനും CenterX ഉം CenterY ഉം കോർഡിനേറ്റുകളെ സഹായിക്കുന്നു. AI വിഷൻ സെൻസറിന് 320 x 240 പിക്സൽ റെസലൂഷൻ ഉണ്ട്.

ഒരു ദർശന സംവിധാനം ട്രാക്ക് ചെയ്ത രണ്ട് നീല ക്യൂബിക് വസ്തുക്കൾ. മുകളിലെ വസ്തുവിൽ X:215, Y:70 എന്നീ കോർഡിനേറ്റുകളും W:73, H:84 എന്നീ അളവുകളും വെളുത്ത രൂപരേഖയും മധ്യഭാഗത്ത് ഒരു വെളുത്ത കുരിശും രേഖപ്പെടുത്തിയിരിക്കുന്നു. താഴെയുള്ള വസ്തുവിന് X:188, Y:184 എന്നീ കോർഡിനേറ്റുകൾ, W:144, H:113 എന്നീ അളവുകൾ എന്നിവ അടയാളപ്പെടുത്തിയിരിക്കുന്നു, കൂടാതെ മധ്യഭാഗത്ത് വെളുത്ത കുരിശുള്ള വെള്ള നിറത്തിലും രൂപരേഖ നൽകിയിട്ടുണ്ട്.

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);
    } else {
      Drivetrain.stop();
    }
  }
  wait(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) {
  // എല്ലാ നീല വസ്തുക്കളുടെയും ഒരു സ്നാപ്പ്ഷോട്ട് എടുക്കുക.
  AIVision.takeSnapshot(AIVision1__Blue);

  // ഡാറ്റ എടുക്കുന്നതിന് മുമ്പ് സ്നാപ്പ്ഷോട്ടിൽ ഒരു വസ്തു കണ്ടെത്തിയെന്ന് ഉറപ്പാക്കുക.
  (AIVision.objectCount > 0) ആണെങ്കിൽ {

    (AIVision.objects[0].width < 250.0) ആണെങ്കിൽ {
      Drivetrain.drive(forward);
    } else {
      Drivetrain.stop();
    }
  }
  wait(5, msec);
}

ആംഗിൾ

ചുവപ്പും പച്ചയും നിറങ്ങളിലുള്ള ബ്ലോക്കുകൾ കാണിക്കുന്ന ഒരു കറങ്ങുന്ന GIF. ബ്ലോക്കുകൾ ചുവപ്പിൽ നിന്ന് പച്ചയിലേക്ക് പൂർണ്ണമായും തിരശ്ചീനമായി സ്ഥാപിക്കുമ്പോൾ, അവ 0 ഡിഗ്രി ആണെന്ന് കാണിക്കുന്നു. ചുവന്ന ബ്ലോക്ക് പച്ച ബ്ലോക്കിന് മുകളിലായി ലംബമായി ആണെങ്കിൽ, അത് 90 ഡിഗ്രിയിലാണ്. ബ്ലോക്കുകൾ തിരശ്ചീനമായി പച്ച മുതൽ ചുവപ്പ് വരെയാണെങ്കിൽ, അത് 180 ഡിഗ്രിയാണ്. പച്ച ബ്ലോക്ക് ചുവന്ന ബ്ലോക്കിന് മുകളിലായി ലംബമായി ആണെങ്കിൽ, അത് 20 ഡിഗ്രിയാണ്.

ആംഗിൾ പ്രോപ്പർട്ടികളർ കോഡുകൾ ഉംഏപ്രിൽ ടാഗുകൾന് മാത്രമേ ലഭ്യമാകൂ.

കണ്ടെത്തിയ കളർ കോഡ്അല്ലെങ്കിൽ ഏപ്രിൽ ടാഗ് വ്യത്യസ്തമായി ക്രമീകരിച്ചിട്ടുണ്ടെങ്കിൽ ഇത് പ്രതിനിധീകരിക്കുന്നു.

മുകളിൽ പച്ചയും താഴെ നീലയുമുള്ള രണ്ട് ക്യൂബുകളുടെ ഒരു കൂട്ടം, ഒരു വിഷൻ സിസ്റ്റം ഉപയോഗിച്ച് ട്രാക്ക് ചെയ്യുന്നു. രണ്ട് ക്യൂബുകളുടെയും ചുറ്റും ഒരു വെളുത്ത രൂപരേഖയുണ്ട്, പച്ച ക്യൂബിൽ മധ്യഭാഗത്തായി ഒരു വെളുത്ത കുരിശുണ്ട്. ചിത്രത്തിന്റെ താഴെയുള്ള ലേബലിൽ Green_Blue A:87° പ്രദർശിപ്പിക്കുന്നു, ഇത് കണ്ടെത്തിയ നിറങ്ങളെയും ഒരു കോൺ അളവിനെയും സൂചിപ്പിക്കുന്നു. അതിനു താഴെ, കോർഡിനേറ്റുകൾ X:117, Y:186 എന്നിങ്ങനെ ക്രമീകരിച്ചിരിക്കുന്നു, W:137, H:172 എന്നീ അളവുകളോടെ, ഫ്രെയിമിലെ അടുക്കിയിരിക്കുന്ന ക്യൂബുകളുടെ സ്ഥാനവും വലുപ്പവും പ്രതിനിധീകരിക്കുന്നു.

കളർ കോഡ് അല്ലെങ്കിൽഏപ്രിൽ ടാഗ് മായി ബന്ധപ്പെട്ട് റോബോട്ട് വ്യത്യസ്തമായി ഓറിയന്റേഷൻ ചെയ്തിട്ടുണ്ടോ എന്ന് നിങ്ങൾക്ക് കാണാനും അതനുസരിച്ച് നാവിഗേഷൻ തീരുമാനങ്ങൾ എടുക്കാനും കഴിയും.

രണ്ട് ക്യൂബുകൾ, ഒന്ന് പച്ചയും ഒന്ന് നീലയും, അടുത്തടുത്തായി സ്ഥാപിച്ച് ഒരു വിഷൻ സിസ്റ്റം ഉപയോഗിച്ച് ട്രാക്ക് ചെയ്യുന്നു. രണ്ട് ക്യൂബുകളുടെയും ചുറ്റും ഒരു വെളുത്ത രൂപരേഖയുണ്ട്, മധ്യത്തിൽ ഒരു വെളുത്ത കുരിശും. മുകളിൽ ഇടത് ലേബൽ പച്ച_നീല 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% ആത്മവിശ്വാസമുണ്ട്. നിങ്ങളുടെ റോബോട്ട് വളരെ ആത്മവിശ്വാസമുള്ള കണ്ടെത്തലുകളിൽ മാത്രം ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ നിങ്ങൾക്ക് ഈ സ്കോർ ഉപയോഗിക്കാം.

നിലവിലുണ്ട്

അവസാനം എടുത്ത സ്നാപ്പ്ഷോട്ടിൽ ഒരു നിർദ്ദിഷ്ട വിഷ്വൽ സിഗ്നേച്ചർ കണ്ടെത്തിയിട്ടുണ്ടോ എന്ന് കണ്ടെത്താൻ exists പ്രോപ്പർട്ടി ഉപയോഗിക്കുന്നു.

മുമ്പത്തെ സ്നാപ്പ്ഷോട്ടിൽ കണ്ടെത്തിയ ഏതെങ്കിലും വസ്തുക്കൾ കണ്ടെത്തിയോ എന്ന് പരിശോധിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു. ഒരു ഒബ്‌ജക്റ്റ് നിലനിൽക്കുമ്പോൾ ഈ പ്രോപ്പർട്ടി ഒരു True ഉം, ആ ഒബ്‌ജക്റ്റ് നിലവിലില്ലെങ്കിൽ ഒരു False ഉം തിരികെ നൽകും.


ഒബ്ജക്റ്റ് കൗണ്ട്

ഒബ്‌ജക്റ്റ് കൗണ്ട് രീതി അവസാന സ്നാപ്പ്ഷോട്ടിൽ കണ്ടെത്തിയ ഒബ്‌ജക്റ്റുകളുടെ അളവ് തിരികെ നൽകുന്നു.

ഇടതുവശത്ത് രണ്ട് നീല ക്യൂബുകൾ കണ്ടെത്തിയിട്ടുള്ള AI വിഷൻ യൂട്ടിലിറ്റി ഇന്റർഫേസ്, ഓരോന്നിനും അവയുടെ X, Y കോർഡിനേറ്റുകളും അളവുകളും അടയാളപ്പെടുത്തിയിരിക്കുന്നു. സിസ്റ്റം കണക്ട് ചെയ്തിട്ടുണ്ട്, ഏപ്രിൽ ടാഗുകൾ ടോഗിൾ ചെയ്തിരിക്കുന്നു, അതേസമയം 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, msec);
}

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

Last Updated: