nxp logotips

NXP AN14263 Ieviesiet LVGL GUI sejas atpazīšanu uz Framewor

NXP-AN14263-Ievietot-LVGL-GUI Sejas atpazīšana uz rāmja-produkta

Informācija par produktu

Specifikācijas

  • Produkta nosaukums: LVGL GUI sejas atpazīšana ietvarā
  • Dokumenta pārskatīšana: 1. gada 19.–2024. aprīlis
  • Atslēgvārdi: Sejas atpazīšana, LVGL GUI, Framework

Produkta lietošanas instrukcijas

  1. Beigāsview
    Šis produkts nodrošina AI&ML redzes algoritma modeli sejas atpazīšanai ietvarā, lai īstenotu sejas atpazīšanas funkciju ar vienkāršu LVGL GUI ex.ample uz SLN-TLHMI-IOT plates.
  2. Ietvars ir beidziesview
    Risinājuma programmatūra ir izstrādāta, pamatojoties uz ietvara arhitektūru, kas ietver ierīču pārvaldniekus, kas ir atbildīgi par ierīču pārvaldību, HAL ierīces, lai abstrahētu pamatā esošās detaļas, un notikumi saziņai starp dažādām ierīcēm.
  3. Funkcijas
    Produkts ļauj īstenot sejas atpazīšanas funkciju, izmantojot kameras iepriekšējuview GUI ekrānā ar pogām, lai aktivizētu sejas reģistrāciju, atpazīšanu un noņemšanu. Reģistrētie sejas dati tiek saglabāti Flash, izmantojot a file sistēma.
  4. Lietojumprogrammas piezīmes saturs
    Lietojumprogrammas piezīmē ir redzams LVGL GUI ekrāns ar iepriekšēju kameruview un pogas ar seju saistītām darbībām. Tas palīdz izstrādātājiem izprast sistēmu un to, kā ieviest sejas atpazīšanu, izmantojot sniegto example.

Beigāsview

NXP ir laidis klajā risinājumu izstrādes komplektu ar nosaukumu SLN-TLHMI-IOT, kas koncentrējas uz viedajām HMI lietojumprogrammām. Tas nodrošina viedo HMI ar ML redzes, balss un grafikas lietotāja interfeisu, kas ieviests vienā NXP i.MX RT117H MCU. Pamatojoties uz SDK, risinājuma programmatūra ir veidota, pamatojoties uz ietvaru, kas atbalsta elastīgu dizainu un redzes un balss funkciju pielāgošanu. Lai palīdzētu lietotājiem labāk izmantot programmatūras platformu, tiek nodrošināti daži pamatdokumenti, piemēram,ample, programmatūras izstrādes lietotāja rokasgrāmata. Rokasgrāmata iepazīstina ar pamata programmatūras dizainu un lietojumprogrammu arhitektūru, kas aptver visus risinājuma komponentus, tostarp ietvaru, lai palīdzētu izstrādātājiem vieglāk un efektīvāk ieviest savas lietojumprogrammas, izmantojot SLN-TLHMI-IOT.
Lai iegūtu plašāku informāciju par risinājumu un attiecīgajiem dokumentiem, apmeklējiet vietni web NXP EdgeReady viedā HMI risinājuma lapa, pamatojoties uz i.MX RT117H ar ML Vision, Voice un grafisko lietotāja interfeisu. Tomēr izstrādātājiem joprojām nav tik vienkārši ieviest savas viedās HMI lietojumprogrammas, atsaucoties uz šīm pamata rokasgrāmatām. Ir plānota virkne pieteikumu piezīmju, lai palīdzētu soli pa solim izpētīt ietvara izstrādi. Šī lietojumprogrammas piezīme ir balstīta uz Implement LVGL GUI Camera Preview par ietvaru (dokuments AN14147). Šajā lietojumprogrammas piezīmē ir aprakstīts, kā iespējot AI&ML redzes algoritma modeli sejas atpazīšanai sistēmā, lai ieviestu sejas atpazīšanas funkciju, izmantojot kameras iepriekšējuview GUI ekrānā ar vienkāršu LVGL GUI, piemample uz SLN-TLHMI-IOT plates. Pieteikuma piezīmē bijušaisample piedāvā LVGL GUI ekrānu ar iepriekšēju kameruview un dažas pogas, lai aktivizētu sejas reģistrāciju, atpazīšanu un noņemšanu. Reģistrētie sejas dati tiek saglabāti Flash, izmantojot nelielu file sistēma.

Augstā līmenī pieteikuma piezīmē ir šāds saturs:

  • Iespējojiet sejas atpazīšanas funkciju ietvarā.
  • Pievienojiet seju datu bāzes atbalstu ietvaram, izmantojot file sistēma Flash.
  • Ieviesiet LVGL GUI lietotni. Izmantojot iepriekš minētos ievadus, šis dokuments palīdz izstrādātājiem:
  • Padziļināti izprotiet sistēmu un viedo HMI risinājumu programmatūru.
  • Izstrādājiet viņu AI un ML sejas atpazīšanas sistēmu, izmantojot LVGL GUI lietotni.

Ietvars beidziesview
Risinājuma programmatūra galvenokārt ir izstrādāta, izmantojot ietvara arhitektūru, kas sastāv no vairākām dažādām daļām:

  • Ierīču pārvaldnieki – galvenā daļa
  • Aparatūras abstrakcijas slāņa (HAL) ierīces
  • Ziņas/Notikumi

Kā parādīts 1. attēlā, virsview ietvara mehānisms ir:

Ierīču pārvaldnieki ir atbildīgi par sistēmas izmantoto ierīču pārvaldību. Katram ierīces tipam (ievadei, izvadei un tā tālāk) ir savs tipam raksturīgs ierīču pārvaldnieks. Kad ierīču pārvaldnieks sākas pēc tam, kad tajā ir reģistrētas ierīces, tas gaida un pārbauda ziņojumu, lai pēc reģistrēto ierīču inicializācijas un palaišanas pārsūtītu datus uz ierīcēm un citiem pārvaldniekiem. HAL ierīces ir rakstītas virs zemāka līmeņa draivera koda, palīdzot uzlabot koda saprotamību, abstrahējot daudzas pamatā esošās detaļas.

Notikumi ir līdzeklis, ar kura palīdzību informācija tiek pārraidīta starp dažādām ierīcēm, izmantojot to pārvaldniekus. Kad notikums tiek aktivizēts, ierīce, kas pirmo reizi saņēmusi notikumu, paziņo par šo notikumu savam pārvaldniekam, un pēc tam tā informē citus pārvaldniekus, kas ir izraudzīti notikuma saņemšanai.

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (1)

Ietvara arhitektoniskais dizains bija vērsts uz trim galvenajiem mērķiem:

  1. Vienkārša lietošana
  2. Elastība/pārnesamība
  3. Performance

Ietvars ir izstrādāts ar mērķi paātrināt redzes un citu mašīnmācīšanās lietojumprogrammu nonākšanu tirgū. Lai nodrošinātu ātru laišanu tirgū, ir ļoti svarīgi, lai pati programmatūra būtu viegli saprotama un modificējama. Paturot prātā šo mērķi, ietvara arhitektūru ir viegli modificēt bez ierobežojumiem un uz veiktspējas rēķina.
Papildinformāciju par sistēmu skatiet viedās HMI programmatūras izstrādes lietotāja rokasgrāmatā (dokuments MCU-SMHMI-SDUG).

Vieglas un daudzpusīgas grafikas bibliotēka (LVGL)
LVGL (Light and Versatile Graphics Library) ir bezmaksas un atvērtā koda grafikas bibliotēka, kas nodrošina visu nepieciešamo, lai izveidotu iegultu GUI ar viegli lietojamiem grafiskiem elementiem, skaistiem vizuāliem efektiem un mazu atmiņas apjomu.

GUI vadītājs
GUI Guider ir lietotājam draudzīgs grafiskā lietotāja interfeisa izstrādes rīks no NXP, kas ļauj ātri izstrādāt augstas kvalitātes displejus ar atvērtā koda LVGL grafikas bibliotēku. GUI Guider vilkšanas un nomešanas redaktors ļauj ērti izmantot daudzas LVGL funkcijas, piemēram, logrīkus, animācijas un stilus, lai izveidotu GUI ar minimālu kodēšanu vai bez tā.

Noklikšķinot uz pogas, varat palaist savu lietojumprogrammu simulētā vidē vai eksportēt to uz mērķa projektu. Ģenerēto kodu no GUI Guider var viegli pievienot savam projektam, paātrinot izstrādes procesu un ļaujot lietojumprogrammai nemanāmi pievienot iegultu lietotāja interfeisu. GUI Guider var bez maksas izmantot kopā ar NXP vispārīgajiem un pārrobežu MCU, un tajā ir iekļautas iebūvētas projektu veidnes vairākām atbalstītajām platformām. Lai uzzinātu vairāk par LVGL un GUI izstrādi GUI Guider, skatiet Light and Versatile Graphics Library un GUI Guider.

Attīstības vide

Vispirms sagatavojiet un iestatiet aparatūras un programmatūras vidi example uz ietvara.

Aparatūras vide
Aparatūras vide ir iestatīta, lai pārbaudītu example:

  • Viedais HMI izstrādes komplekts, kura pamatā ir NXP i.MX RT117H (komplekts SLN_TLHMI_IOT)
  • SEGGER J-Link ar 9 kontaktu Cortex-M adapteri un V7.84a vai jaunāku draivera versiju

Programmatūras vide
Programmatūras vide ir izveidota, lai izstrādātu example:

  • MCUXpresso IDE V11.7.0
  • GUI Guider V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – piemampotrās pieteikuma piezīmes kods kā izstrādes pamatprogrammatūra. Sīkāku informāciju sk https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 – kā izstrādes koda resurss.
  • SLN-TLHMI-IOT programmatūra V1.1.2 — viedais HMI pirmkods, kas izlaists NXP GitHub repozitorijā kā izstrādes koda resurss. Detalizētu informāciju skatiet: GitHub — NXP/mcu-smhmi versijā 1.1.2

Plašāku informāciju par programmatūras vides iegādi un iestatīšanu skatiet: Darba sākšana ar SLN-TLHMI-IOT.

Vīzijas arhitektūra uz ietvara

Redzes arhitektūra uz ietvara ir parādīta 2. attēlā. Redzes algoritmam HAL (OASIS_HAL) ir šādi procesi:

  • Veiciet seju reģistrāciju un atpazīšanu, izmantojot AI&ML redzes algoritma modeli pēc saistīto notikumu saņemšanas no izvades UI HAL. Paziņojiet algoritma modeļa secinājumu rezultātus izvades lietotāja interfeisa HAL.
  • Piekļūst (pievienot, dzēst…) sejas iezīmju datu bāzei, pamatojoties uz mazo file sistēma, izsaucot FaceDB HAL API pēc saistīto notikumu saņemšanas no izvades UI HAL.
  • Veicot sejas reģistrāciju un atpazīšanu, pieprasiet kameras video kadru no kameras HAL.

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (3)

Ieviesiet ietvarā sejas atpazīšanu

LVGL GUI sejas atpazīšana, example (bijušaisample ir sniegta vēlāk) uz ietvara tiek īstenota, pamatojoties uz exampIeviest LVGL GUI kameras kodi Preview par ietvaru (dokuments AN14147).

Par sejas atpazīšanas demonstrēšanu bijušajāampGUI lietotnes pamatfunkcija (skatiet galveno ekrānu 3. attēlā) ir izstrādāta, kā aprakstīts tālāk:

  • GUI lietotne aktivizē sejas reģistrācijas vai atpazīšanas notikumu izvades UI HAL, noklikšķinot uz pogas Reģistrācija vai atpazīšana. Un izvades UI HAL paziņo par lietotāja pievienošanu redzes algoritmam HAL pēc veiksmīgas sejas reģistrācijas.
  • GUI lietotne aktivizē lietotāja dzēšanas notikumu izvades UI HAL, noklikšķinot uz pogas Dzēst lietotāju pēc tam, kad ir atpazīta lietotāja seja.
  • GUI lietotne aktivizē gadījumu, kad tiek apturēta oāzes algoritma darbība uz izvades UI HAL, noklikšķinot uz ekrāna ārpus pogām un attēliem.

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (10)

Sagatavojiet programmatūras pakotni example.

  • Klonējiet bāzes programmatūru lvgl_gui_camera_preview_cm7. Mainiet projekta nosaukumu un galveno filenosaukums uz lvgl_gui_face_rec_cm7.
  • Ietvars ir jāatjaunina programmatūrā, jo ietvara kodola pirmkodi ir sākuši publiskot GitHub, sākot no versijas 1.1.2.
  • Aizstājiet ietvara mapi ar versijas 1.1.2 kopiju no GitHub, izņemot files fwk_log.h un fwk_common.h zem inc\, jo tie ir modificēti lietojumprogrammas piezīmju sērijai. Darbības ir parādītas 4. attēlā:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (11)
  • Izdzēsiet mapi framework_cm7 zem libs grupas un noņemiet bibliotēku framework_cm7 un tās meklēšanas ceļu, kas konfigurēts sadaļā Projekts > Rekvizīti > C/C++ Build > Iestatījumi > Rīka iestatījumi > MCU C++ Linker > Bibliotēkas, jo ir nodrošināts kodola pirmkods.

Iespējot sejas atpazīšanas funkciju ietvarā
Sejas atpazīšanas funkcija ir balstīta uz ML redzes algoritma modeli, kas tiek nodrošināts kā statiska bibliotēka — NXP oasis Lite izpildlaika bibliotēka. Bibliotēka ir niecīga, ļoti efektīva, pielāgota un optimizēta AI bibliotēka. Modelis ietver seju noteikšanu, sejas atpazīšanu, stikla noteikšanu un dzīvīguma noteikšanu. Tas galvenokārt nodrošina API OASISLT_run_extended(), lai palaistu sejas atpazīšanas cauruļvadu, vienlaikus atjauninot rezultātus zvanītājam, izmantojot notikumu atzvanus, un pievienot/atjaunināt/dzēst sejas datu bāzē, izmantojot seju datu bāzes atzvanus pēc avota kadra informācijas, atzvanīšanas un atmiņas norādīšanas. baseins, ko izmanto bibliotēka, inicializācijas laikā izsaucot citu API OASISLT_init(). API izsaukšana un atzvanīšanas funkcijas ir ieviestas ietvara vīzijas algā HAL.

Pievienojiet redzes algo modeļu bibliotēku

  1. Kopējiet mapes oāzi ar bibliotēku un saistīto galveni file no viedā HMI\coffee_machine\cm7\libs\ uz bijušā lietotāja mapi libsample SW.
  2. Pievienojiet galvenes meklēšanas ceļu file sadaļā Projekts > Rekvizīti > C/C++ būvējums > iestatījumi > Rīka iestatījumi > MCU C kompilators > Ietver un MCU C++ kompilators > Ietver: “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. Pievienojiet lib un tā meklēšanas ceļu sadaļā Project > Properties (Rekvizīti) > C/C++ Build > Settings (Iestatījumi > MCU C++ linker > Libraries): liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” un makro definīciju. iespējojiet šo funkciju sadaļā Projekts > Rekvizīti > C/C++ būve > iestatījumi > Rīka iestatījumi > MCU C kompilators > Priekšprocesors un MCU C++ kompilators > Priekšprocesors: SMART_TLHMI_2D

Iespējot redzes algo HAL
Redzes algo HAL iedarbina redzes algo modeli un reaģē uz rezultātiem uz lietotāja interfeisa izvadi HAL pēc notikumu saņemšanas no tā.

Lai to iespējotu, klonējiet esošo līdzīgu HAL draiveri file kur tiek īstenotas šādas funkcijas:

  • Ieviesiet seju datu bāzes darbību un notikumu apstrādes atzvanus.
  • Iedarbiniet vīzijas algoritmu, izsaucot oāzes bibliotēkas API.
  • Piekļūstiet lietotāju seju datu bāzei un lietotņu datu bāzei (tā nav nepieciešama, piemēram,ample).
  • Saņemiet notikumus no un nosūtiet rezultātus uz izvades UI HAL.

Galvenie darbi, lai ieviestu HAL bijušajamamptie ir:

  • Klonējiet esošo līdzīgu HAL draiveri file un mainiet saistītos nosaukumus.
  • Noņemiet kodus, kas saistīti ar lietotnes datu darbībām.
  • Atjauniniet definīcijas un funkcijas notikumu apstrādei no izvades UI HAL atbilstoši piemampdizains.
  • Pievienojiet oāzes inicializēšanai nepieciešamās konfigurācijas.

Detalizētas darbības ir šādas:

  1. Klonēt hal_vision_algo_oasis_coffeemachine.c. Mainiet filenosaukums hal_vision_algo_oasis_guifacerec.c. Un nomainiet visas CoffeeMachine virknes ar GUIFaceRec file.
  2. Noņemiet kodus, kas satur virkni coffeedb (nav reģistrjutīga), kas saistīti ar lietotņu datu bāzi, piemēram,ample, #include hal_sln_coffeedb.h.
  3. Mainiet funkciju HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify(), lai apstrādātu notikumus no izvades lietotāja saskarnes HAL.
    • Mainiet notikuma definīciju kEventFaceRecId_RegisterCoffeeSelection uz kEventFaceRecId_RegisterUserFace un struktūras virkni regCoffeeSelection uz regGUIFaceRec notikumu apstrādei, lai datubāzei pievienotu jaunus sejas objekta datus.
    • Parādīt sejas atpazīšanas darbību standarta procesu example, mainiet apstrādi kEventFaceRecID_OasisSetState gadījumā ar stāvokļu definīcijām:
      • kOASISLiteState
      • Reģistrācija kOASISLiteState
      • Atzīšana kOASISLiteState
      • Apstājās
  4. Pievienojiet un mainiet iepriekš minētajā darbībā minēto notikumu definīcijas.
    • Kopējiet galveni file smart_tlhmi_event_descriptor.h no viedā HMI\coffee_machine \cm7\source\event_handlers\ uz ex mapes avotu.ample SW. Atjauniniet file kā zemāk:
    • Mainiet notikuma definīciju kEventFaceRecId_RegisterCoffeeSelection uz kEventFaceRecId_RegisterUserFace enum tipā _event_smart_tlhmi_id un struktūras virkni regCoffeeSelection uz regGUIFaceRec struktūrā _event_smart_t. Tāpēc mainiet strukturu register_coffee_selection_event_t for regCoffeeSelection uz register_gui_facerec_event_t.
    • Izdzēsiet pārējo kafijas automāta lietotnē izmantoto saturu, piemēram,ample, koda rindiņa par balsi: #include “hal_event_descriptor_voice.h”.
    • Pievienojiet tipus kOASISLiteState_Stopped un kOASISLiteState_Running enum tipam oasis_lite_state_t failā hal_vision_algo.h sadaļā framework>hal>vision projektā, kā norādīts tālāk:
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • Skriešana, kOASISLiteState
      • Apturēts, kOASISLiteState
      • Atzinība,
      • kOASISLiteState
      • Reģistrācija, kOASISLiteState
      • Reģistrācijas atcelšana, kOASISLiteState
      • RemoteRegistration, kOASISLiteState
      • Skaitīt
    • Izmantojiet iepriekš atjaunināto struct oasis_lite_state_t, lai precizētu struktūru oasis_state_event_t failā hal_event_descriptor_face_rec.h zem framework>hal>vision projektā, kā norādīts tālāk: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
  5. Mainiet visu kEventInfo_Remote uz kEventInfo_Local, lai nosūtītu notikumus no vision algo HAL uz citiem HAL, kas darbojas tajā pašā kodolā, jo viens kodols, nevis divkodolu tiek izmantots ex.ample.
  6. Pievienojiet un mainiet tālāk norādītās oāzes inicializācijas konfigurācijas programmā OASISLT_init():
    • Pievienojiet makro definīcijas un atmiņas sadaļas video kadram vietnē board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
      • #define OASIS_RGB_FRAME_HEIGHT 600
      • #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
      • #define OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
      • #define AT_FB_SHMEM_SECTION_ALIGN(var, alignbaiti) \
      • __attribute__((section(.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __attribute__((līdzināts(līdzinātbaiti)))
    • Konfigurējiet atmiņas piešķiršanu iepriekš norādītajai atmiņas sadaļai fb_sh_mem vietnē Project > Properties > C/C++ Build > MCU iestatījumi, kas parādīti 5. attēlā:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (12)
    • Deklarē globālo mainīgo g_DTCOPBuf failā lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • Turpiniet pievienot iepriekš minētajā mainīgajā izmantotās definīcijas:
    • Definējiet iepriekš minēto sadaļu vietnē board_define.h:
      • #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
      • atribūti__((section(.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • atribūts__((līdzināts(līdzinātbaiti)))
    • Iekļaujiet galveni file hal_vision_algo.h, kas satur makro definīciju DTC_OPTIMIZE_BUFFER_SIZE failā app_config.h, kas iekļauta failā lvgl_gui_face_rec_cm7.cpp.
  7. Iestatiet mainīgo s_debugOption uz True, lai parādītu sejas atpazīšanas progresa statusu.
  8. Pievienojiet galvenes meklēšanas ceļu filevīzijas HAL s projektā > Rekvizīti > C/C++ būve > iestatījumi > Rīka iestatījumi > MCU C kompilators > Ietver un MCU C++ kompilators > Ietver: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. Pievienojiet tālāk norādīto definīciju, lai iespējotu vision algo HAL vietnē board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

Iespējot izvades UI HAL
Izvades lietotāja saskarne HAL paziņo par notikumiem redzes algoritmam HAL un reaģē uz secinājumu rezultātiem no redzes algoritma HAL. Izmantojot GUI lietotni, notikumus parasti aktivizē lietotne, un rezultāti tiek parādīti lietotnē.

Lai to iespējotu, klonējiet esošo līdzīgu HAL draiveri file kur parasti tiek īstenotas šādas funkcijas:

  • Paziņojiet par notikumiem sejas atpazīšanai un piekļuvei datubāzei.
  • Ieviesiet GUI lietotnes atzvanīšanu, lai aktivizētu notikumus.
  • Apstrādājiet secinājumu rezultātus no redzes algo moduļa.
  • Parādiet notikumu apstrādes procesu un rezultātus lietotāja saskarnē, izmantojot progresa joslu, ko kontrolē ar taimeriem un sejas vadotnes taisnstūri.

Galvenie darbi, lai ieviestu HAL bijušajamampŠajā dokumentā tiek izmantoti:

  • Klonējiet esošo līdzīgu HAL draiveri file un mainiet saistītos nosaukumus.
  • Noņemiet ar lietotni saistītos kodus.
  • Atjauniniet notikumu paziņojumu un rezultātu atbildes funkcijas atbilstoši piemampdizains.
  • Pievienojiet GUI lietotnes atzvanus, lai aktivizētu notikumus.

Detalizētas darbības ir šādas:

  1. Klonēt hal_output_ui_coffee_machine.c. Mainiet filenosaukums uz hal_ output_ui_guifacerec.c.
  2. Nomainiet visas CoffeeMachine virknes ar GUIFaceRec file.
  3. Noņemiet kodus, kas saistīti ar lietotni – kafijas automātu.
    • Noņemiet funkcijas WakeUp() un _StandBy() un saistītos kodus (var meklēt virknē wake_up un gaidstāves).
    • Noņemt iepriekšview režīma notikumi, kas apstrādā saistītos kodus HAL_OutputDev_UiGUIFaceRec_Input Notify().
    • Noņemiet funkcijas UI_xxx_Callback() un kodus, kas satur virkni gui_ un ekrānu, kas saistīti ar kafijas automāta GUI, izņemot gui_set_virtual_face() priekšview režīma funkcija.
    • Noņemiet visus kodus, kas saistīti ar mainīgajiem s_IsWaitingAnotherSelection un s_IsWaitingRegisterSelection, kas saistīti ar kafijas automāta lietotni.
    • Noņemiet kodus, kas saistīti ar balsi, audio un valodu. Piemēram,ample:
      • #include “hal_voice_algo_asr_local.h”,
      • #include “hal_event_descriptor_voice.h”
  4. Dažādu notikumu paziņošanai ieviesiet jaunās funkcijas _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() un DeregisterGUIFaceRec(), kas attiecas uz funkcijām _StopFaceRec(), _RegisterCoffeeSelection() un DeregisterCoffeeSdeleting tos.
    • _OutputManagerNotify() ievieš pamata notikumu izvades funkciju, lai nosūtītu notikumu uz redzes algo HAL. Tālāk norādītās funkcijas to sauc, lai nosūtītu savus notikumus.
    • _SetFaceRec() nosūta notikumu kEventFaceRecID_OasisSetState, lai aktivizētu redzes algoritmu sejas reģistrēšanai, atpazīšanai un darbības apturēšanai.
    • _RegisterGUIFaceRec() nosūta notikumu kEventFaceRecId_RegisterGUIFaceRec, kas ir definēts smart_tlhmi_event_descriptor.h, lai datubāzei pievienotu sejas iezīmju datus, kad reģistrācija ir OK.
    • DeregisterGUIFaceRec() nosūta notikumu kEventFaceRecID_DelUser, lai, nododot sejas atpazīšanu, no datu bāzes izdzēstu sejas funkcijas datus.
  5. Atjauniniet kodus, lai veiktu atbilstošās darbības, tostarp atsvaidzinātu GUI, izsaucot API no LVGL GUI lietotnes, lai secinātu sejas reģistrācijas un atpazīšanas rezultātus funkcijā _InferComplete_Vision() atbilstoši ex.amples dizains. Piemēram,ample, kad sejas reģistrācija ir veiksmīga,
    • Pārtrauciet rādīt progresu, izsaucot _FaceRecProcess_Stop();
    • Pārtrauciet sejas reģistrāciju, izsaucot _SetFaceRec(kOASISLiteState_Stopped);
    • Rādīt veiksmīgo rezultātu GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Reģistrēt sejas datus datu bāzē: _RegisterUserFace(s_UserId);
  6. Pievienojiet lietotāja saskarnes atzvanīšanas funkcijas, lai apstrādātu notikumus: iepriekšview, sejas reģistrācija, atpazīšana un lietotāja dzēšana, kas aktivizēta no GUI. Piemēram,ample, sejas reģistrācijas atzvans: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • Un pievienojiet funkcijas _FaceRecProcess_Start() un _FaceRecProcess_Stop(), lai parādītu progresu un statusu dažādos pasākumos un rezultātos.
    • Atjauniniet taimera ISR atzvanīšanas funkciju _SessionTimer_Callback(), lai apstrādātu taimauta gadījumu, izsaucot: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. Pievienojiet tālāk norādītās definīcijas, lai iespējotu lietotāja interfeisa izvadi HAL vietnē board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

Paziņojums:
Lai labāk parādītu sejas atpazīšanas funkciju, saglabājiet funkciju, kas parāda sejas atpazīšanas procesu un rezultātus izvades lietotāja saskarnē HAL. Funkcija ir aprakstīta zemāk

  • Sejas vadotnes taisnstūris tiek rādīts zilā krāsā, un progresa josla parāda progresu, sākot sejas reģistrāciju vai atpazīšanu.
  • Sejas vadotnes taisnstūris tiek rādīts sarkanā krāsā, kad sejas reģistrācija ir veiksmīga.
  • Ja sejas atpazīšana ir veiksmīga, sejas vadotnes taisnstūris tiek rādīts zaļā krāsā.
  • Sejas vadotnes taisnstūris paliek zils, un progresa josla parāda pilnu progresu, ja darbība ir neveiksmīga pēc taimera termiņa beigām. Tajā brīdī pārtrauciet sejas reģistrāciju vai atpazīšanu.

Progresa josla un sejas vadotnes taisnstūris tiek parādītas kā ikonas, kas ir iebūvētas resursa binārajā failā file jāieprogrammē Flash. Norādes uz ikonu datiem SDRAM ir iestatītas funkcijā LoadIcons(APP_ICONS_BASE), kas tiek izsaukta izvades UI HAL ierīces inicializācijā izvades UI HAL. Tam ir jāievieš šīs funkcijas ikonu atbalsts.

Ieviesiet ikonu atbalstu

  1. Izveidojiet resursu, apvienojot ikonas ar LVGL GUI lietotnē izmantotajiem attēliem:
    • Klonējiet četru ikonu galveni files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h un virtual_face_red_420x426.h no viedā HMI
      \kafijas automāts\resurss\ikonas\ uz jauno mapju ikonām, kas atrodas zem bijušā uzņēmuma resursu mapesample SW.
    • Pievienojiet četru ikonu meklēšanas ceļu files in the camera_preview_resurss.txt file resursu mapē, piemēram,ample: icon ../resource/icons/process_bar_240x14.h
    • Izpildīt camera_preview_resource_build.bat, lai izveidotu attēlu un ikonu resursus atkritumu tvertnes ģenerēšanai file camera_preview_resource.bin un informāciju file Resource_information_table.txt (sk. 6. attēlu).NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (13)
  2. Definējiet sākuma adresi SDRAM atmiņā un ikonu lielumu vietnē app_config.h. Adrese sākas blakus GUI lietotnes attēliem. Izmērs tiek ģenerēts informācijā file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. Atjauniniet piešķirto lielumu atmiņas sadaļai ar nosaukumu res_sh_mem uz 0x200000, atkārtoti definējot to vietnē app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 un atbilstošo iestatījumu sadaļā Projekts > Rekvizīti > C/C++ būvēšana > MCU iestatījumi.
  4. Pievienojiet ikonas lielumu no Flash uz SDRAM ielādētā resursa kopējam izmēram galvenajā funkcijā APP_LoadResource(). file lvgl_gui_face_rec_cm7.cpp: memcpy((tukšs *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

Paziņojums: lai pabeigtu sejas atpazīšanas funkciju, ir nepieciešams LVGL GUI lietotnes atbalsts. UI atzvanīšanas funkcijas izvades UI HAL izsauc LVGL GUI lietotne, lai apstrādātu notikumus no lietotāja interfeisa ekrāna. No otras puses, izvades lietotāja saskarne HAL izsauc API no LVGL GUI lietotnes, lai atjauninātu lietotāja saskarni, lai parādītu rezultātu un statusu. LVGL GUI lietotnes izstrāde ir salīdzinoši neatkarīga, un tā ir aprakstīta 4.3. sadaļā.

4.1.5. Palaidiet HAL ierīces un pārvaldniekus sejas atpazīšanai
Iespējotais vīzijas algo HAL un UI izvade HAL un to vadītāji tiek palaisti galvenajā file
lvgl_gui_face_rec_cm7.cpp pēc izstrādes pārveidošanas ietvarā, kā norādīts tālāk:

  1. Iekļaujiet galveni file saistīti ar diviem HAL vadītājiem, pievienojot koda rindu:
    • #include ” fwk_output_manager.h ”
    • #include “fwk_vision_algo_manager.h”
  2. Deklarējiet HAL ierīces:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. Reģistrējiet HAL ierīces:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
  4. Inicializējiet vadītājus:
    • FWK_MANAGER_INIT(VisionAlgoManager, ret);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. Sāciet vadītājus:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. Definējiet vadītāja uzdevumu prioritāti:
    • #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #define OUTPUT_MANAGER_TASK_PRIORITY 1

Pievienojiet seju datu bāzes atbalstu ietvaram
Reģistrētajiem sejas elementu datiem var piekļūt seju datu bāzē, kas tiek glabāta Flash, izmantojot nelielu palīdzību file sistēma. Tālāk ir aprakstītas darbības, lai pievienotu seju datu bāzes atbalstu.

Pievienojiet draiverus Flash krātuvei
Kopējiet Flash interfeisa FlexSPI draiveri files fsl_flexspi.c un fsl_flexspi.h, kā arī datu šifrēšanas draiveri files fsl_caam.c un fsl_caam.h no ceļa SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ uz bijušā uzņēmuma draiveru mapiample SW.

Pievienojiet plates līmeņa atbalstu

  1. Pievienojiet FlexSPI definīcijas, kas izmantotas zibatmiņas ierīcei board.h:
    • #define BOARD_FLEXSPI FLEXSPI1
    • #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. Kopējiet operatorus un konfigurācijas files no Flash ierīces flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h zem mapes viedā mape\\\\coflash \ample SW.
    • Pēc tam, kad ar peles labo pogu noklikšķiniet uz files vārdu un rekvizītu atvēršanu, lai tos varētu iekļaut projektā.
  3. Mainiet iekļauto galveni filenosaukums sln_flash_config.h uz sln_flash_config_w25q256jvs.h failos sln_flash_config.c un flexspi_nor_flash_ops.h.
  4. Iestatiet FlexSPI1 pulksteņa avotu file clock_config.c, kas attiecas uz kafijas automāta lietotni.

Pievienojiet adapteri un vidēja līmeņa atbalstu

  1. Kopējiet files sln_flash.c, sln_flash.h, sln_encrypt.c un sln_encrypt.h kā adaptera draiveri file sistēma un lietotne no viedā HMI\coffee_machine\cm7\source\ ceļa uz bijušā lietotāja mapes avotuample. Atjauniniet jauno files:
    • Noņemiet atzīmi no izvēles rūtiņas “Izslēgt resursus no būvēšanas”.
    • Mainiet visu iekļauto galveni file nosaukums sln_flash_config.h uz sln_flash_config_w25q256jvs.h.
  2. Kopējiet mapi filesistēma, kas satur API mazajiem filesistēma un HAL draiveris no viedā HMI \coffee_machine\cm7\source\ uz example SW. Un atjauninājums jaunajai mapei:
    • Ēkai noņemiet atzīmi no izvēles rūtiņas “Izslēgt resursu no būvējuma”.
    • Pievienojiet tā iekļaušanas ceļu projekta iestatījumos: “${workspace_loc:/${ProjName}/filesistēma}”
    • Mainiet iekļauto galveni file nosaukums sln_flash_config.h uz sln_flash_config_w25q256jvs.h un fica_definition.h uz app_config.h file sln_flash_littlefs.h.
  3. Kopējiet mapi littlefs, kurā ir vidējais izstrādājums – maz filesistēma no ceļa SDK_2_13_0_ MIMXRT1170-EVK\middleware\ uz example SW. Un atjauniniet jauno mapi:
    • Ēkai noņemiet atzīmi no izvēles rūtiņas “Izslēgt resursu no būvējuma”.
    • Pievienojiet tā iekļaušanas ceļu projekta iestatījumos: “${workspace_loc:/${ProjName}/littlefs}”

Pievienojiet HAL draiverus 

  • Ir divas HAL ierīces - file sistēma un sejas datubāze HAL atbalsta datu bāzes piekļuves līdzekli, un tās jau ir ieviestas sistēmā bez jebkādām izmaiņām. Iespējojiet tās, vietnē board_define.h pievienojot tālāk norādītās definīcijas:
    • #define ENABLE_FLASH_DEV_Littlefs
    • #define ENABLE_FACEDB

Un mainiet sejas datu bāzes nosaukumu bijušajamample: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”

Pievienojiet lietotnes līmeņa atbalstu

  1. Atjauniniet galveno file lvgl_gui_face_rec_cm7.cpp:
    • Iekļaujiet galveni file kas saistīti ar zibspuldzi file sistēmas HAL pārvaldnieks, pievienojot koda rindiņu: #include “fwk_flash.h”
    • Deklarēt un reģistrēties file sistēmas HAL ierīce:
      • HAL_FLASH_DEV_DECLARE(Littlefs);
      • HAL_FLASH_DEV_REGISTER(Littlefs, ret);
        Piezīme: file sistēmas HAL ierīce ir jāreģistrē, pirms visi ierīču pārvaldnieki tiek inicializēti funkcijā APP_InitFramework().
    • Izsauciet funkciju BOARD_ConfigMPU() programmā APP_BoardInit(), lai konfigurētu MPU.
  2. Iestatiet file sistēmas piešķiršana Flash file app_config.h, definējot makro definīcijas, kas izmantotas file sln_flash_littlefs.h:
    • #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #define FICA_FILE_SYS_SIZE (0x280000)

Konfigurācijas
Daži ar Flash saistīti kodi tiek izpildīti SRAM ITC apgabalā, lai nodrošinātu pietiekamu veiktspēju. Kopējiet mapes saišu skriptus, kas satur linkera konfigurācijas no ceļa smart HMI\coffee_machine\cm7\ uz ex.ample SW.

Ieviesiet LVGL GUI lietotni
LVGL GUI lietotnes izstrāde, kuras pamatā ir ietvars, izsauc API no izejas UI HAL un nodrošina API, lai izvadītu UI HAL (skatiet 4.1.3. sadaļu par izvades UI HAL ieviešanu).

Tomēr LVGL GUI lietotnes detalizēta ieviešana ir atkarīga no lietojumprogrammas prasībām un dizaina. GUI lietotne šajā example ir izstrādāts, kā aprakstīts 4. sadaļas sadaļas sākumā.

Tālāk ir sniegti ieviešanas ievadi:

  1. Pielāgotie kodi ir ieviesti custom.c un custom.h, ko GUI Guider nodrošina kā saskarni starp GUI Guider projektu un iegultās sistēmas projektu.
    •  Pievienojiet jaunās funkcijas ar nosaukumu gui_xxx() failā custom.c, lai sasniegtu tālāk norādītās funkcijas:
      • Izvadei UI HAL un GUI lietotnei, lai atjauninātu lietotāja interfeisu.
      • Lai GUI lietotne aktivizētu notikumus, izsaucot lietotāja interfeisa atzvanīšanas funkcijas no izejas UI HAL.
        Piemēram,ample, jaunā funkcija gui_event_face_rec_action() izsauc lietotāja interfeisa atzvanīšanas funkcijas, lai apstrādātu vienu no sejas reģistrācijas, sejas atpazīšanas un lietotāja dzēšanas notikumiem, kas tiek aktivizēti no GUI lietotnes, kad tiek noklikšķināts uz saistītās pogas.
        Piezīme. Funkcija gui_set_virtual_face() tiek izsaukta izvades UI HAL priekšview režīms ir jāievieš custom.c:
    •  Klonēt funkciju gui_set_virtual_face() no viedā HMI\coffee_machine\cm4\custom \custom.c.
    •  Mainiet logrīka nosaukumu home_img_cameraPreview uz screen_img_camera_preview funkcijā.
    •  Ieviesiet lietotāja interfeisa atzvanīšanas funkcijas ar vienu un to pašu prototipu visās izvades UI HAL funkcijās, ko kontrolē makro definīcija #ifndef RT_PLATFORM failā custom.c, lai tās būtu saderīgas ar GUI Guider projektu, jo šīs funkcijas izvades UI HAL ir atkarīgas no iegultā platforma. Vietnē custom.c tie ir atkarīgi no simulatora GUI vadotnē un ir neatkarīgi no iegultās platformas. Piemēram,ample, sejas reģistrācijas atzvanīšana tiek īstenota, kā norādīts tālāk GUI Guider simulatoram, kas darbojas: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; atgriešanās; }
      Piezīme: skatiet to pašu funkcijas prototipu, kas ieviests 6. sadaļas 4.1.3. darbībā
      Makro definīcija RT_PLATFORM ir iestatīta uz MCUXpresso projekta iestatījumiem, kā parādīts 7. attēlā:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (14)
    • Deklarējiet visas funkcijas ar nosaukumu UI_xxx_Callback() un gui_xxx() failā custom.h un pievienojiet custom.h, kas iekļautas failā smart_tlhmi_event_descriptor.h, lai kopīgotu GUI API ar lietotāja interfeisa izvadi HAL.
  2. Izstrādājiet GUI GUI Guider:
    • Klonējiet mapes kameru iepriekšview kas satur GUI Guider projekta programmatūru bāzes programmatūras pakotnes lvgl_gui_camera_pre mapē gui_guiderview_cm7. Mainiet saistīto nosaukumu camera_preview uz face_rec jaunajam bijušajamample.
    • Kopējiet iepriekš atjaunināto custom.c un custom. h uz jauno GUI Guider projekta programmatūru.
    •  Atveriet jauno face_rec projektu GUI Guider. Atjauniniet, kā norādīts tālāk:
      • Pievienojiet jauno pogu ar nosaukumu Dzēst lietotāju. Pievienojiet tai karodziņu Hidden, lai poga tiktu paslēpta, startējot GUI lietotni.
      • Pievienojiet koda rindu API izsaukšanai gui_event_face_rec_action() ar atšķirīgu notikuma ID parametru trigerim “Atbrīvots” visu pogu Reģistrācija, atpazīšana un Dzēst lietotāju notikumu iestatījumos, lai aktivizētu sejas reģistrācijas, sejas atpazīšanas un lietotāja dzēšanas notikumus. 8. attēlā parādīts pogas Reģistrācija notikuma kods:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (15)
  3. Atjauniniet ģenerēto kodu no GUI Guider uz MCUXpresso projektu.
    • Nomainiet saturu, izņemot mapes attēlus MCUXpresso projekta SW ģenerētajā mapē, ar atbilstošajiem GUI Guider projekta SW ģenerētajā mapē.

Piezīme: lai iegūtu plašāku informāciju par iepriekš ieviestajām modifikācijām, skatiet example programmatūra at https://mcuxpresso.nxp.com/appcodehub.

Pārbaudes ar bijušoample projekts

Lai iegūtu bijušoampProgrammatūras pakotni, kas satur šīs lietojumprogrammas piezīmes resursus un rīkus, apmeklējiet: https://mcuxpresso.nxp.com/appcodehub. Atveriet bijušoample projekts uz MCUXpresso IDE. Veidojiet un programmējiet failu .axf file uz adresi 0x30000000 un ieprogrammējiet resursu tvertni file camera_preview_resource.bin uz adresi 0x30800000.

LVGL GUI sejas atpazīšana, example darbojas normāli, kā norādīts zemāk:

  • Iepriekšview: ieslēdzot, kameras uzņemtās video straumes tiek rādītas konkrētajā kameras pirmsdarbības apgabalāview GUI ekrānā. Statusa uzlīme parāda “Preview…”. Sīkāku informāciju skatiet 3. attēlā. Poga Dzēst lietotāju ir paslēpta. Noklikšķinot uz apgabala ārpus pogām un attēliem, tiek parādīts iepriekšējaisview pēc sejas reģistrācijas vai atpazīšanas darbības beigām.
  • Reģistrācija:
    • tartup: Noklikšķinot uz pogas Reģistrācija, sākas sejas reģistrācija. Statusa etiķete mainās uz “Reģistrācija…”, sejas vadotnes taisnstūris ir zilā krāsā, un progresa joslā sāk parādīties norise. Reģistrācijai pārliecinieties, vai lietotāja seja ir redzama zilajā sejas vadotnes taisnstūrī.
    • panākumus: Statusa uzlīmē ir redzams “Reģistrācija…Labi” un reģistrētā lietotāja ID numurs, sejas vadotnes taisnstūris kļūst sarkans, ja sejas reģistrācija ir veiksmīga, pirms joslā tiek rādīts pilns progress.
    • Neveiksme —> Taimauts: statusa etiķetē ir redzams “Reģistrācija… Taimauts”, ja sejas reģistrācija joprojām ir neveiksmīga, kad joslā ir redzams pilns progress.
    • Neveiksme —> Dublēšana: statusa etiķetē ir redzams “Reģistrācija… neizdevās”, sejas vadotnes taisnstūris kļūst zaļš, ja reģistrētā seja tiek atpazīta, pirms joslā tiek parādīta pilnība.
  • izzināšana:
    • Startēšana: noklikšķinot uz atpazīšanas pogas, sākas sejas atpazīšana. Statusa etiķete mainās uz “Atpazīšana…”, sejas vadotnes taisnstūris ir zilā krāsā, un norises josla sāk rādīt progresu. Reģistrācijai pārliecinieties, vai lietotāja seja ir parādīta zilajā sejas vadotnes taisnstūrī.
    • panākumus: Statusa etiķetē ir redzams “Atpazīšana…Labi” un atpazītais lietotāja ID numurs, sejas vadotnes taisnstūris kļūst zaļš, ja sejas atpazīšana ir veiksmīga, pirms joslā tiek rādīts pilns progress. Tajā brīdī parādās poga Dzēst lietotāju. Tas nozīmē, ka lietotāju drīkst dzēst tikai tad, kad tas ir atpazīts.
    • vājums: Statusa etiķetē ir redzams “Atpazīšana… Taimauts”, ja sejas atpazīšana joprojām neizdodas, kad joslā tiek rādīts pilns progress.
  • Dzēst lietotāju: Noklikšķinot uz pogas “Dzēst lietotāju”, pēc veiksmīgas sejas atpazīšanas statusa etiķete tiek mainīta uz “Dzēst lietotāju… OK”, sejas vadotnes taisnstūrim kļūstot zilā krāsā un joslā tiek rādīts pilns progress. Poga Dzēst lietotāju atkal ir paslēpta. Atpazītā seja/lietotājs tiek izdzēsts no datu bāzes. Tas nozīmē, ka šo seju/lietotāju nevar atpazīt, kamēr tas nav reģistrēts vēlreiz.

Piezīme par avota kodu dokumentā
Exampkodam, kas parādīts šajā dokumentā, ir šāda autortiesību un BSD-3 klauzulas licence:

Autortiesības 2024 NXP Pārplatīšana un izmantošana avota un binārā formā ar vai bez izmaiņām ir atļauta, ja ir izpildīti šādi nosacījumi:

  1. Izplatot pirmkodu, ir jāsaglabā iepriekš minētais autortiesību paziņojums, šis nosacījumu saraksts un šī atruna.
  2. Izplatot binārā formātā, ir jāatveido iepriekš minētais autortiesību paziņojums, šis nosacījumu saraksts un šī atruna dokumentācijā un/vai citos materiālos ir jāsniedz kopā ar izplatīšanu.
  3. Ne autortiesību īpašnieka vārdu, ne tā līdzautoru vārdus nedrīkst izmantot, lai atbalstītu vai reklamētu no šīs programmatūras atvasinātus produktus bez īpašas iepriekšējas rakstiskas atļaujas.

ŠO PROGRAMMATŪRU NODROŠINA AUTORTIESĪBU ĪPAŠNIEKI UN IEGULDĪTĀJI TĀDU TĀDU TĀDU, KĀDA IR, UN JEBKĀDAS TIEŠAS VAI NETIEŠAS GARANTIJAS, IESKAITOT, BET NEAPROBEŽOTĀS, NETIEŠĀS GARANTIJAS PAR TIRDZNIECĪBU UN PIEMĒROTĪBU PAR TIRDZNIECĪBU. NEKĀDĀ GADĪJUMĀ AUTORTIESĪBU ĪPAŠNIEKS VAI IESNIEDZĒJI NEATBILD PAR JEBKĀDIEM TIEŠIEM, NETIEŠIEM, NEJAUŠIEM, ĪPAŠIEM, PIEMĒRAS VAI IZSEKOTIEM ZAUDĒJUMIEM (IESKAITOT PAKALPOJUMU, PAKALPOJUMU, IZMANTOJUMU, PREČU AIZSTĀJUMU IEGĀDĀJUMU, BET NE IEROBEŽOTĀM VAI PEĻŅA, VAI UZŅĒMĒJDARBĪBAS PĀRTRAUKŠANA) TOMĒR IZRAISĪTA UN JEBKĀDA ATBILDĪBAS TEORIJA, ATTIECĪBĀ UZ LĪGUMĀ, STRĀKĀS ATBILDĪBAS VAI ATBILDĪBAS (IESKAITOT NELAUDZĪBU VAI CITĀDI), KAS RADUŠAS JEBKĀDĀ CEĻĀ NO ŠĪS IZMANTOŠANAS ŠĀDA BOJĀJUMA IESPĒJAMĪBA.

Pārskatīšanas vēsture

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (16)

Juridiskā informācija

Definīcijas
Melnraksts — dokumenta melnraksta statuss norāda, ka saturam joprojām tiek veikta iekšējā atjaunināšanaview un tiek saņemts oficiāls apstiprinājums, kā rezultātā var tikt veiktas izmaiņas vai papildinājumi. Uzņēmums NXP Semiconductors nesniedz nekādus apliecinājumus vai garantijas par dokumenta projektā iekļautās informācijas precizitāti vai pilnīgumu un neuzņemas atbildību par šādas informācijas izmantošanas sekām.

Atruna

  • Ierobežota garantija un atbildība — Tiek uzskatīts, ka informācija šajā dokumentā ir precīza un uzticama. Tomēr uzņēmums NXP Semiconductors nesniedz nekādus apliecinājumus vai garantijas, tiešas vai netiešas, attiecībā uz šādas informācijas precizitāti vai pilnīgumu un neuzņemas atbildību par šādas informācijas izmantošanas sekām. Uzņēmums NXP Semiconductors neuzņemas atbildību par šī dokumenta saturu, ja to nodrošina informācijas avots ārpus NXP Semiconductors.
    NXP Semiconductors nekādā gadījumā nav atbildīgs par jebkādiem netiešiem, nejaušiem, sodošiem, īpašiem vai izrietošiem zaudējumiem (tostarp – bez ierobežojumiem – zaudēto peļņu, zaudētos ietaupījumus, uzņēmējdarbības pārtraukšanu, izmaksas, kas saistītas ar jebkādu produktu noņemšanu vai nomaiņu vai pārstrādāšanas maksu). vai šādi zaudējumi nav pamatoti ar deliktu (tostarp nolaidību), garantiju, līguma pārkāpumu vai jebkuru citu juridisku teoriju.
    Neatkarīgi no jebkādiem zaudējumiem, kas klientam var rasties jebkādu iemeslu dēļ, NXP Semiconductors kopējā un kumulatīvā atbildība pret klientu par šeit aprakstītajiem produktiem ir ierobežota saskaņā ar NXP Semiconductors komerciālās pārdošanas noteikumiem un nosacījumiem.
  • Tiesības veikt izmaiņas — Uzņēmums NXP Semiconductors patur tiesības jebkurā laikā un bez brīdinājuma veikt izmaiņas šajā dokumentā publicētajā informācijā, tostarp bez ierobežojuma specifikācijās un produktu aprakstos. Šis dokuments aizstāj un aizstāj visu informāciju, kas sniegta pirms šī dokumenta publicēšanas.
  • Piemērotība lietošanai — NXP Semiconductors produkti nav izstrādāti, autorizēti vai garantēti, lai tie būtu piemēroti lietošanai dzīvības uzturēšanai, dzīvībai vai drošībai kritiskās sistēmās vai aprīkojumā, kā arī lietojumos, kuros var pamatoti sagaidīt NXP Semiconductors izstrādājuma atteici vai nepareizu darbību. miesas bojājumi, nāve vai smagi īpašuma vai vides bojājumi. Uzņēmums NXP Semiconductors un tā piegādātāji neuzņemas nekādu atbildību par NXP Semiconductors produktu iekļaušanu un/vai izmantošanu šādās iekārtās vai lietojumprogrammās, un tādēļ šāda iekļaušana un/vai lietošana ir pakļauta klienta paša riskam.
  • Lietojumprogrammas — Lietojumprogrammas, kas šeit ir aprakstītas jebkuram no šiem produktiem, ir paredzētas tikai ilustratīviem nolūkiem. Uzņēmums NXP Semiconductors negarantē un negarantē, ka šādas lietojumprogrammas būs piemērotas noteiktajam lietojumam bez papildu testēšanas vai modifikācijas.
    Klienti ir atbildīgi par savu lietojumprogrammu un produktu izstrādi un darbību, izmantojot NXP Semiconductors produktus, un NXP Semiconductors neuzņemas nekādu atbildību par palīdzību saistībā ar lietojumprogrammām vai klienta produktu dizainu. Klients ir pilnībā atbildīgs par to, vai produkts NXP Semiconductors ir piemērots un piemērots klienta lietojumprogrammām un plānotajiem produktiem, kā arī klienta trešās puses klienta(-u) plānotajam lietojumam un lietošanai. Klientiem ir jānodrošina atbilstoši konstrukcijas un darbības drošības pasākumi, lai samazinātu riskus, kas saistīti ar viņu lietojumiem un produktiem. Uzņēmums NXP Semiconductors neuzņemas nekādu atbildību par saistību nepildīšanu, bojājumiem, izmaksām vai problēmām, kuru pamatā ir kāda klienta lietojumprogrammu vai produktu nepilnība vai noklusējuma darbība, vai klienta trešās puses klienta(-u) lietojumprogramma vai lietošana. Klients ir atbildīgs par visu nepieciešamo testu veikšanu klienta lietojumprogrammām un produktiem, izmantojot NXP Semiconductors produktus, lai izvairītos no lietojumprogrammu un produktu vai lietojumprogrammu vai klienta trešās puses klienta(-u) lietošanas noklusējuma. NXP šajā sakarā neuzņemas nekādu atbildību.
  • Komerciālās pārdošanas noteikumi un nosacījumi — NXP Semiconductors produkti tiek pārdoti saskaņā ar vispārējiem komerciālās pārdošanas noteikumiem un nosacījumiem, kas publicēti vietnē https://www.nxp.com/profile/termi, ja vien spēkā esošajā rakstiskā individuālajā līgumā nav noteikts citādi. Individuāla līguma noslēgšanas gadījumā tiek piemēroti tikai attiecīgā līguma noteikumi. Uzņēmums NXP Semiconductors ar šo nepārprotami iebilst pret klienta vispārējo noteikumu un nosacījumu piemērošanu attiecībā uz NXP Semiconductors produktu iegādi, ko veic klients.
  • Eksporta kontrole — Uz šo dokumentu, kā arī uz šeit aprakstīto(-ajām) vienību(-ām) var attiekties eksporta kontroles noteikumi. Eksportam var būt nepieciešama iepriekšēja kompetento iestāžu atļauja.
  • Piemērotība lietošanai izstrādājumos, kas nav kvalificēti automobiļiem — Ja vien šajā dokumentā nav skaidri norādīts, ka šis konkrētais NXP Semiconductors izstrādājums ir piemērots automobiļiem, produkts nav piemērots lietošanai automobiļos. Tas nav ne kvalificēts, ne pārbaudīts saskaņā ar automobiļu testēšanas vai lietojuma prasībām. Uzņēmums NXP Semiconductors neuzņemas nekādu atbildību par tādu produktu iekļaušanu un/vai izmantošanu, kas nav kvalificēti automobiļu aprīkojumā vai lietojumos.
    Gadījumā, ja klients izmanto izstrādājumu, lai izstrādātu un lietotu automobiļu lietojumos atbilstoši automobiļu specifikācijām un standartiem, klientam (a) ir jāizmanto produkts bez NXP Semiconductors garantijas šim izstrādājumam šādiem automobiļu lietojumiem, lietojumam un specifikācijām, un ( b) ikreiz, kad klients izmanto produktu automobiļu vajadzībām, kas pārsniedz NXP Semiconductors specifikācijas, šādu lietošanu uzņemas tikai klients, un (c) klients pilnībā atlīdzina NXP Semiconductors par jebkādām saistībām, bojājumiem vai neveiksmīgām produkta prasībām, kas izriet no klienta dizaina un produkts, kas paredzēts automobiļu vajadzībām, pārsniedzot NXP Semiconductors standarta garantiju un NXP Semiconductors produkta specifikācijas.
  • Tulkojumi — Dokumenta versija, kas nav angļu valodā (tulkota), ieskaitot juridisko informāciju šajā dokumentā, ir paredzēta tikai atsaucei. Ja rodas atšķirības starp tulkoto un angļu valodas versiju, noteicošā ir angļu valodas versija.
  • Drošība — Klients saprot, ka visi NXP produkti var būt pakļauti neidentificētām ievainojamībām vai var atbalstīt noteiktos drošības standartus vai specifikācijas ar zināmiem ierobežojumiem. Klients ir atbildīgs par savu lietojumprogrammu un produktu izstrādi un darbību visā to dzīves ciklā, lai samazinātu šo ievainojamību ietekmi uz klienta lietojumprogrammām un produktiem. Klienta atbildība attiecas arī uz citām atvērtām un/vai patentētām tehnoloģijām, ko atbalsta NXP produkti izmantošanai klienta lietojumprogrammās. NXP neuzņemas nekādu atbildību par ievainojamību. Klientam regulāri jāpārbauda drošības atjauninājumi no NXP un jāveic atbilstoši pasākumi. Klients izvēlas produktus ar drošības elementiem, kas vislabāk atbilst paredzētā lietojuma noteikumiem, noteikumiem un standartiem, un pieņem galīgos dizaina lēmumus attiecībā uz saviem produktiem un ir pilnībā atbildīgs par atbilstību visām juridiskajām, normatīvajām un ar drošību saistītajām prasībām attiecībā uz saviem produktiem neatkarīgi no jebkādu informāciju vai atbalstu, ko var nodrošināt NXP.

NXP ir Product Security Incident Response Team (PSIRT) (sasniedzama PSIRT@nxp.com), kas pārvalda NXP produktu drošības ievainojamību izmeklēšanu, ziņošanu un risinājumu izlaišanu.
NXP B.V. — NXP B.V. nav uzņēmums, kas darbojas, un tas neizplata un nepārdod produktus.

Preču zīmes
Paziņojums: visi minētie zīmoli, produktu nosaukumi, pakalpojumu nosaukumi un preču zīmes ir to attiecīgo īpašnieku īpašums.

NXP — vārdu zīme un logotips ir NXP BV preču zīmes

AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — ir Arm Limited (vai tā meitasuzņēmumu vai saistīto uzņēmumu) preču zīmes un/vai reģistrētas preču zīmes ASV un/vai citur. Saistītā tehnoloģija var būt aizsargāta ar jebkuru vai visiem patentiem, autortiesībām, dizainparaugiem un komercnoslēpumiem. Visas tiesības aizsargātas.

  • i.MX — ir NXP BV preču zīme
  • J-Link — ir SEGGER Microcontroller GmbH preču zīme.

Microsoft, Azure un ThreadX ir Microsoft uzņēmumu grupas preču zīmes.

Lūdzu, ņemiet vērā, ka sadaļā “Juridiskā informācija” ir iekļauti svarīgi paziņojumi par šo dokumentu un šeit aprakstīto(-ajiem) izstrādājumu(-iem).

© 2024 NXP BV
Lai iegūtu vairāk informācijas, lūdzu, apmeklējiet: https://www.nxp.com

  • Izdošanas datums: 19. gada 2024. aprīlis
  • Dokumenta identifikators: AN14263

FAQ

J: Kāds ir šī produkta galvenais mērķis?
A: Galvenais mērķis ir iespējot sejas atpazīšanas funkciju, izmantojot AI&ML redzes algoritma modeli ar vienkāršu LVGL GUI ex.ample uz SLN-TLHMI-IOT plates.

J: Kā izstrādātāji var gūt labumu no šīs lietojumprogrammas piezīmes?
A. Izstrādātāji var iemācīties soli pa solim ieviest sejas atpazīšanu sistēmā, izmantojot sniegto piemample un izprast iesaistītos ierīču pārvaldniekus, HAL ierīces un notikumu mehānismus.

Dokumenti / Resursi

NXP AN14263 Ieviesiet LVGL GUI sejas atpazīšanu uz Framewor [pdfLietotāja rokasgrāmata
AN14263 Ieviesiet LVGL GUI sejas atpazīšanu ietvarā, AN14263, ieviesiet LVGL GUI sejas atpazīšanu ietvarā, LVGL GUI sejas atpazīšanu ietvarā, sejas atpazīšanu ietvarā, atpazīšanu ietvarā, ietvarā.

Atsauces

Atstājiet komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *