nxp-logo

NXP AN14263 Implementirajte LVGL GUI prepoznavanje lica na Frameworu

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-product

Informacije o proizvodu

Specifikacije

  • Naziv proizvoda: LVGL GUI prepoznavanje lica na Framework-u
  • Revizija dokumenta: 1 – 19. april 2024
  • Ključne riječi: Prepoznavanje lica, LVGL GUI, Framework

Upute za upotrebu proizvoda

  1. Gotovoview
    Ovaj proizvod omogućava AI&ML model algoritma vida za prepoznavanje lica na okviru za implementaciju funkcije prepoznavanja lica s jednostavnim LVGL GUI example na SLN-TLHMI-IOT ploči.
  2. Framework Overview
    Softver rješenja je dizajniran oko arhitekture okvira koja uključuje upravitelje uređaja odgovorne za upravljanje uređajima, HAL uređaje za apstraktne osnovne detalje i događaje za komunikaciju između različitih uređaja.
  3. Karakteristike
    Proizvod omogućava implementaciju funkcije prepoznavanja lica putem prethodnog fotoaparataview na GUI ekranu sa dugmadima za pokretanje registracije, prepoznavanja i uklanjanja lica. Registrirani podaci o licu pohranjuju se na Flash preko a file sistem.
  4. Sadržaj Napomena o aplikaciji
    Bilješka o aplikaciji predstavlja LVGL GUI ekran s prethodnom kameromview i dugmad za radnje koje se odnose na lice. Pomaže programerima da razumiju okvir i kako implementirati prepoznavanje lica koristeći priloženi example.

Gotovoview

NXP je lansirao komplet za razvoj rješenja pod nazivom SLN-TLHMI-IOT koji se fokusira na pametne HMI aplikacije. Omogućava pametni HMI sa ML vizijom, glasom i grafičkim korisničkim sučeljem implementiranim na jednom NXP i.MX RT117H MCU. Zasnovano na SDK-u, softver rješenja je konstruiran na dizajnu zvanom framework koji podržava fleksibilne dizajne i prilagođavanje vidnih i glasovnih funkcija. Kako bi se korisnicima pomoglo da bolje koriste softversku platformu, dati su neki osnovni dokumenti, nprample, korisnički priručnik za razvoj softvera. Vodič predstavlja osnovni softverski dizajn i arhitekturu aplikacija koje pokrivaju sve komponente rješenja uključujući okvir koji pomaže programerima da lakše i efikasnije implementiraju svoje aplikacije koristeći SLN-TLHMI-IOT.
Za više detalja o rješenju i relevantnim dokumentima posjetite web stranica NXP EdgeReady Smart HMI rješenja zasnovanog na i.MX RT117H sa ML Vision, Voice i Graphic UI. Međutim, programerima još uvijek nije tako lako implementirati svoje pametne HMI aplikacije pozivajući se na ove osnovne vodiče. Planiran je niz napomena o aplikaciji koji će pomoći u proučavanju razvoja okvira korak po korak. Ova napomena o aplikaciji zasnovana je na Implement LVGL GUI Camera Preview o okviru (dokument AN14147). Ova napomena o aplikaciji opisuje kako omogućiti model algoritma AI&ML vida za prepoznavanje lica na okviru da implementira funkciju prepoznavanja lica putem prethodnog fotoaparataview na GUI ekranu sa jednostavnim LVGL GUI example na SLN-TLHMI-IOT ploči. U napomeni o prijavi, prample predstavlja LVGL GUI ekran sa pred. kameromview i neka dugmad za pokretanje registracije, prepoznavanja i uklanjanja lica. Registrirani podaci o licu se pohranjuju na Flash preko malo file sistem.

Na visokom nivou, bilješka o aplikaciji sadrži sljedeće sadržaje:

  • Omogućite funkciju prepoznavanja lica na okviru.
  • Dodajte podršku bazi podataka lica na okviru preko file sistem na Flash-u.
  • Implementirajte LVGL GUI aplikaciju. Kroz gornje uvode, ovaj dokument pomaže programerima da:
  • Dublje razumite okvir i softver pametnog HMI rješenja.
  • Razvijte svoje AI&ML prepoznavanje lica na okviru pomoću LVGL GUI aplikacije.

Okvir je gotovview
Softver rješenja prvenstveno je dizajniran oko upotrebe arhitekture okvira koja se sastoji od nekoliko različitih dijelova:

  • Upravljači uređajima – osnovni dio
  • Uređaji sloja hardverske apstrakcije (HAL).
  • Poruke/Događaji

Kao što je prikazano na slici 1, prekoview mehanizam okvira je:

Upravljači uređaja su odgovorni za upravljanje uređajima koje koristi sistem. Svaki tip uređaja (ulaz, izlaz i tako dalje) ima svoj upravitelj uređaja specifičan za tip. Sa upraviteljem uređaja koji se pokreće nakon što se uređaji registruju na njega, on čeka i provjerava poruku za prijenos podataka na uređaje i druge upravitelje nakon inicijalizacije i pokretanja registriranih uređaja. HAL uređaji su napisani na vrhu koda drajvera nižeg nivoa, pomažući da se poveća razumljivost koda apstrahujući mnoge osnovne detalje.

Događaji su način na koji se informacije komuniciraju između različitih uređaja preko njihovih menadžera. Kada se događaj pokrene, uređaj koji je prvi primio događaj komunicira o tom događaju svom menadžeru, a zatim obavještava druge menadžere koji su određeni da prime događaj.

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

Arhitektonski dizajn okvira bio je usredsređen na tri osnovna cilja:

  1. Jednostavnost upotrebe
  2. Fleksibilnost/Prenosivost
  3. Performanse

Okvir je dizajniran s ciljem da se ubrza vrijeme izlaska na tržište za viziju i druge aplikacije za strojno učenje. Kako bi se osiguralo brzo vrijeme izlaska na tržište, ključno je da sam softver bude lak za razumijevanje i modificiranje. Imajući ovaj cilj na umu, arhitekturu okvira je lako modificirati bez ograničavanja i bez uzimanja po cijenu performansi.
Za više detalja o okviru, pogledajte Korisnički vodič za razvoj softvera Smart HMI (dokument MCU-SMHMI-SDUG).

Lagana i raznovrsna grafička biblioteka (LVGL)
LVGL (Light and Versatile Graphics Library) je besplatna grafička biblioteka otvorenog koda koja pruža sve što vam je potrebno za kreiranje ugrađenog GUI-a sa grafičkim elementima lakim za korištenje, prekrasnim vizualnim efektima i malim memorijskim otiskom.

GUI Guider
GUI Guider je NXP-ov alat za razvoj grafičkog korisničkog interfejsa prilagođen korisniku koji omogućava brz razvoj visokokvalitetnih displeja sa LVGL grafičkom bibliotekom otvorenog koda. GUI Guider-ov drag-and-drop editor olakšava korištenje mnogih funkcija LVGL-a kao što su widgeti, animacije i stilovi za kreiranje GUI-ja sa minimalnim kodiranjem ili bez njega.

Klikom na dugme možete pokrenuti svoju aplikaciju u simuliranom okruženju ili je izvesti u ciljni projekat. Generisani kod iz GUI Guider-a može se lako dodati u vaš projekat, ubrzavajući proces razvoja i omogućavajući vam da neprimetno dodate ugrađeno korisničko sučelje vašoj aplikaciji. GUI Guider je besplatan za korištenje sa NXP-ovim općim namjenskim i crossover MCU-ovima i uključuje ugrađene predloške projekta za nekoliko podržanih platformi. Da biste saznali više o razvoju LVGL-a i GUI-ja na GUI Guideru, provjerite Light and Versatile Graphics Library i GUI Guider.

Razvojno okruženje

Prvo, pripremite i postavite hardversko i softversko okruženje za implementaciju example na okviru.

Hardversko okruženje
Hardversko okruženje je postavljeno za provjeru example:

  • Pametni razvojni komplet HMI baziran na NXP i.MX RT117H (SLN_TLHMI_IOT komplet)
  • SEGGER J-Link sa 9-pinskim Cortex-M adapterom i V7.84a ili novijom verzijom drajvera

Softversko okruženje
Softversko okruženje je postavljeno za razvoj example:

  • MCUXpresso IDE V11.7.0
  • GUI Guider V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – prample kod druge napomene o aplikaciji kao osnovni softver razvoja. Za detalje pogledajte https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 – kao izvor koda za razvoj.
  • SLN-TLHMI-IOT softver V1.1.2 – pametni HMI izvorni kod objavljen u NXP GitHub repozitorijumu kao izvor koda za razvoj. Za detalje pogledajte: GitHub – NXP/mcu-smhmi na v1.1.2

Za detalje o nabavci i postavljanju softverskog okruženja, pogledajte: Početak rada sa SLN-TLHMI-IOT.

Arhitektura vizije na okviru

Arhitektura vizije na okviru je prikazana na slici 2. Algo vizije HAL (OASIS_HAL) ima sljedeće procese:

  • Uradite registraciju i prepoznavanje lica kroz model algoritma vizije AI&ML nakon što primite povezane događaje iz izlaznog UI HAL-a. Obavijesti rezultate zaključivanja iz modela algoritma u izlazni UI HAL.
  • Pristupa (dodavanje, brisanje…) bazi podataka o karakteristikama lica na osnovu malog file sistem pozivanjem API-ja FaceDB HAL-a nakon primanja povezanih događaja iz izlaznog UI HAL-a.
  • Zatražite video okvir kamere od kamere HAL kada obavljate registraciju i prepoznavanje lica.

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

Implementirajte prepoznavanje lica na okviru

LVGL GUI za prepoznavanje lica nprample (bivšiample je dostavljen kasnije) na okviru se implementira na osnovu prample kodovi implementacije LVGL GUI kamere preview o okviru (dokument AN14147).

Za demonstraciju prepoznavanja lica u exampDakle, osnovna funkcija GUI aplikacije (pogledajte glavni ekran na slici 3) je dizajnirana kako je opisano u nastavku:

  • GUI aplikacija pokreće događaj registracije ili prepoznavanja lica na izlaznom UI HAL-u kada se klikne na dugme Registracija ili prepoznavanje. A izlazni UI HAL obavještava o događaju dodavanja korisnika u vizijski algo HAL nakon što je registracija lica uspješna.
  • GUI aplikacija pokreće događaj brisanja korisnika u izlazni UI HAL kada se klikne na dugme Izbriši korisnika nakon što se lice korisnika prepozna.
  • GUI aplikacija pokreće događaj zaustavljanja alga oaze koji pokreće izlazni UI HAL kada se klikne na ekran izvan dugmadi i slika.

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

Pripremite softverski paket za implementaciju example.

  • Klonirajte osnovni softver lvgl_gui_camera_preview_cm7. Promijenite naziv projekta i glavni fileime na lvgl_gui_face_rec_cm7.
  • Framework je potrebno ažurirati u softveru jer su izvorni kodovi za jezgro okvira počeli biti javni na GitHubu od verzije 1.1.2.
  • Zamijenite folder okvira kopijom V1.1.2 sa GitHub-a osim za files fwk_log.h i fwk_common.h pod inc\ jer su modificirani za seriju napomena o aplikaciji. Operacije su prikazane na slici 4:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (11)
  • Izbrišite fasciklu framework_cm7 pod grupom libs i uklonite biblioteku framework_cm7 i njenu putanju za pretragu konfigurisanu u Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries pošto je izvorni kod jezgra obezbeđen.

Omogućite funkciju prepoznavanja lica na okviru
Funkcija prepoznavanja lica je izgrađena na modelu algoritma ML vision koji je obezbeđen kao statička biblioteka – oasis lite runtime biblioteka od strane NXP-a. Biblioteka je mala, visoko efikasna, prilagođena i optimizovana AI biblioteka. Model uključuje detekciju lica, prepoznavanje lica, detekciju stakla i detekciju živosti. Uglavnom pruža API OASISLT_run_extended() za pokretanje cjevovoda za prepoznavanje lica dok se ažuriraju rezultati pozivaocu putem povratnih poziva događaja i dodavanje/ažuriranje/brisanje lica u bazi podataka putem povratnih poziva baze podataka nakon specificiranja informacija izvornog okvira, povratnih poziva i memorije bazen koji koristi biblioteka pozivanjem drugog API-ja OASISLT_init() pri inicijalizaciji. Pozivanje API-ja i funkcija povratnog poziva implementirano je u algo vizije HAL okvira.

Dodajte biblioteku modela vision algo

  1. Kopirajte fasciklu oaza koja sadrži biblioteku i povezano zaglavlje file iz smart HMI\coffee_machine\cm7\libs\ u folder libs example SW.
  2. Dodajte putanju pretraživanja zaglavlja file u Projekt > Svojstva > C/C++ Build > postavke > Postavke alata > MCU C kompajler > Uključuje i MCU C++ kompajler > Uključuje: “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. Dodajte lib i njegovu putanju za pretraživanje na Project > Properties > C/C++ Build > settings > MCU C+ + Linker > Libraries: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” i definiciju makroa za omogućite funkciju na Project > Svojstva > C/C++ Build > postavke > Postavke alata > MCU C kompajler > Preprocesor i MCU C++ kompajler > Preprocesor: SMART_TLHMI_2D

Omogući vision algo HAL
Algo vizije HAL pokreće vizijski algo model da radi i odgovara na rezultate na UI izlaz HAL nakon što primi događaje iz njega.

Da biste to omogućili, klonirajte postojeći sličan HAL drajver file gdje se implementiraju sljedeće funkcije:

  • Implementirajte povratne pozive operacija baze podataka lica i rukovanja događajima.
  • Pokrenite algo vizije da radi pozivanjem API-ja biblioteke oaze.
  • Pristupite bazi podataka korisničkih lica i bazi podataka aplikacija (nije potrebna u example).
  • Primanje događaja i slanje rezultata na izlaz UI HAL.

Glavni radovi na implementaciji HAL-a za exampsu:

  • Klonirajte postojeći sličan HAL drajver file i promijenite povezana imena.
  • Uklonite kodove koji se odnose na operacije podataka aplikacije.
  • Ažurirajte definicije i funkcije za rukovanje događajima iz izlaznog UI HAL-a prema prampdizajn.
  • Dodajte konfiguracije potrebne za inicijalizaciju oaze.

Detaljni koraci su sljedeći:

  1. Klon hal_vision_algo_oasis_coffeemachine.c. Promijenite fileime za hal_vision_algo_oasis_guifacerec.c. I zamijenite sve žice CoffeeMachine sa GUIFaceRec u file.
  2. Uklonite kodove koji sadrže niz coffeedb (nije osjetljiv na velika i mala slova) koji se odnosi na bazu podataka aplikacija, npr.ample, #include hal_sln_coffeedb.h.
  3. Izmijenite funkciju HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() za rukovanje događajima iz HAL izlaznog korisničkog sučelja.
    • Promijenite definiciju događaja kEventFaceRecId_RegisterCoffeeSelection u kEventFaceRecId_RegisterUserFace i string strukture regCoffeeSelection u regGUIFaceRec za rukovanje događajima da dodate nove podatke o karakteristikama lica u bazu podataka.
    • Da bi se prikazao standardni proces radnji prepoznavanja lica u prample, modificirati rukovanje u slučaju kEventFaceRecID_OasisSetState sa definicijama stanja:
      • kOASISLiteState
      • Registracija kOASISLiteState
      • Prepoznavanje kOASISLiteState
      • Zaustavljeno
  4. Dodajte i izmijenite definicije događaja spomenutih u gornjem koraku.
    • Kopirajte zaglavlje file smart_tlhmi_event_descriptor.h iz pametnog HMI\kafe_mašina \cm7\source\event_handlers\ u folder izvor example SW. Ažurirajte file kao dolje:
    • Promijenite definiciju događaja kEventFaceRecId_RegisterCoffeeSelection u kEventFaceRecId_RegisterUserFace u tipu enuma _event_smart_tlhmi_id i strukturni niz regCoffeeSelection u regGUIFaceRec u strukturi struct rtsma_event_event Dakle, promijenite strukturu register_coffee_selection_event_t za regCoffeeSelection u register_gui_facerec_event_t.
    • Izbrišite ostale sadržaje koji se koriste za aplikaciju aparata za kafu, nprample, red koda o glasu: #include “hal_event_descriptor_voice.h”.
    • Dodajte tipove kOASISLiteState_Stopped i kOASISLiteState_Running tipu enuma oasis_lite_state_t u hal_vision_algo.h pod framework>hal>vision u projektu kao u nastavku:
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • Trčanje, kOASISLiteState
      • Zaustavljeno, kOASISLiteState
      • priznanje,
      • kOASISLiteState
      • Registracija, kOASISLiteState
      • Deregistracija, kOASISLiteState
      • RemoteRegistration, kOASISLiteState
      • Count
    • Koristite gore ažuriranu strukturu oasis_lite_state_t da precizirate strukturu oasis_state_event_t u hal_event_descriptor_face_rec.h pod framework>hal>vision u projektu kao u nastavku: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
  5. Promijenite sve kEventInfo_Remote u kEventInfo_Local za slanje događaja iz vision algo HAL-a na druge HAL-ove koji rade na istom jezgru jer se jednojezgarni umjesto dual-core koristi u example.
  6. Dodajte i modificirajte donje konfiguracije za inicijalizaciju oaze u OASISLT_init():
    • Dodajte makro definicije i memorijske sekcije za video okvir u 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, alignbytes) \
      • __attribute__((odjeljak(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __attribute__((poravnano(alignbytes)))
    • Konfigurirajte dodjelu memorije gornjoj memorijskoj sekciji fb_sh_mem na Project > Properties > C/C++ Build > MCU postavke prikazane na slici 5:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (12)
    • Deklarirajte globalnu varijablu g_DTCOPBuf u lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • Nastavite sa dodavanjem definicija korištenih u gornjoj varijabli:
    • Definirajte gornji odjeljak u board_define.h:
      • #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
      • attribute__((odjeljak(.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • atribut__((poravnano(poravnano bajtova)))
    • Uključite zaglavlje file hal_vision_algo.h koji sadrži makro definiciju DTC_OPTIMIZE_BUFFER_SIZE u app_config.h uključen u lvgl_gui_face_rec_cm7.cpp.
  7. Postavite varijablu s_debugOption na true za prikaz statusa napretka pri prepoznavanju lica.
  8. Dodajte putanju pretraživanja zaglavlja files vizije HAL na projektu > Svojstva >C/C++ Build > postavke > Postavke alata > MCU C kompajler > Uključuje i MCU C++ kompajler > Uključuje: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. Dodajte donju definiciju da omogućite vision algo HAL u board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

Omogući izlaz UI HAL
Izlazni UI HAL obavještava o događajima algo HAL vizije i odgovara na rezultate zaključivanja iz alga vizije HAL. Uz GUI aplikaciju, događaje općenito pokreće aplikacija, a rezultati se prikazuju u aplikaciji.

Da biste to omogućili, klonirajte postojeći sličan HAL drajver file gdje se općenito implementiraju sljedeće funkcije:

  • Obavijesti o događajima za prepoznavanje lica i pristup bazi podataka.
  • Implementirajte povratne pozive za GUI aplikaciju da pokrenete događaje.
  • Rukovati rezultatima zaključivanja iz algo modula vizije.
  • Prikažite proces i rezultate rukovanja događajima na korisničkom sučelju pomoću trake napretka kontrolisane pomoću tajmera i pravokutnika vodiča za lice.

Glavni radovi na implementaciji HAL-a za exampkorišćeni u ovom dokumentu su:

  • Klonirajte postojeći sličan HAL drajver file i promijenite povezana imena.
  • Uklonite kodove koji se odnose na aplikaciju.
  • Ažurirajte funkcije za obavještenje o događajima i odgovor na rezultate prema nprampdizajn.
  • Dodajte povratne pozive za GUI aplikaciju da pokrenete događaje.

Detaljni koraci su sljedeći:

  1. Klon hal_output_ui_coffee_machine.c. Promijenite fileime za hal_ output_ui_guifacerec.c.
  2. Zamijenite sve žice CoffeeMachine sa GUIFaceRec u file.
  3. Uklonite kodove vezane za aplikaciju – aparat za kafu.
    • Uklonite funkcije WakeUp() i _StandBy() i povezane kodove (može pretraživati ​​niz wake_up i standby za njih).
    • Uklonite preview Događaji režima koji rukuju povezanim kodovima u HAL_OutputDev_UiGUIFaceRec_Input Notify().
    • Uklonite funkcije UI_xxx_Callback() i kodove koji sadrže niz gui_ i ekran koji se odnosi na GUI aparata za kafu osim gui_set_virtual_face() za prethodniview režim rada.
    • Uklonite sve kodove povezane s varijablama s_IsWaitingAnotherSelection i s_IsWaitingRegisterSelection koje se odnose na aplikaciju aparata za kafu.
    • Uklonite kodove koji se odnose na glas, zvuk i jezik. Za nprample:
      • #include “hal_voice_algo_asr_local.h”,
      • #include “hal_event_descriptor_voice.h”
  4. Za obavještenja o različitim događajima implementirajte nove funkcije _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() i DeregisterGUIFaceRec() koje se odnose na funkcije _StopFaceRec(), _RegisterCoffeeSelection() i DeregisterCoffeeSelection() prije njih (DeregisterSelectionC).
    • _OutputManagerNotify() implementira osnovnu izlaznu funkciju događaja za slanje događaja u vizijski algo HAL. Funkcije u nastavku pozivaju ga za slanje vlastitih događaja.
    • _SetFaceRec() šalje događaj kEventFaceRecID_OasisSetState da pokrene algo vida za registraciju lica, prepoznavanje i zaustavljanje alga.
    • _RegisterGUIFaceRec() šalje događaj kEventFaceRecId_RegisterGUIFaceRec koji je definiran u smart_tlhmi_event_descriptor.h za dodavanje podataka karakteristika lica u bazu podataka kada je registracija OK.
    • DeregisterGUIFaceRec() šalje događaj kEventFaceRecID_DelUser da izbriše podatke o karakteristikama lica iz baze podataka prilikom prosljeđivanja prepoznavanja lica.
  5. Ažurirajte kodove za poduzimanje odgovarajućih radnji uključujući osvježavanje GUI-a pozivanjem API-ja iz LVGL GUI aplikacije za rezultate zaključivanja registracije i prepoznavanja lica u funkciji _InferComplete_Vision() po example's design. Za nprample, kada je registracija lica uspješna,
    • Zaustavite prikazivanje napretka tako što ćete pozvati _FaceRecProcess_Stop();
    • Zaustavite registraciju lica pozivanjem _SetFaceRec(kOASISLiteState_Stopped);
    • Prikažite uspješan rezultat na GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Registrirajte podatke lica u bazi podataka: _RegisterUserFace(s_UserId);
  6. Dodajte funkcije povratnog poziva korisničkog interfejsa za rukovanje događajima: preview, registracija lica, prepoznavanje i brisanje korisnika pokrenuto iz GUI. Za nprample, povratni poziv registracije lica: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • I dodajte funkcije _FaceRecProcess_Start() i _FaceRecProcess_Stop() da prikažete napredak i status u različitim događajima i rezultatima.
    • Ažurirajte funkciju povratnog poziva ISR tajmera _SessionTimer_Callback() da obrađuje slučaj time-outa pozivanjem: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. Dodajte donje definicije da omogućite UI izlaz HAL u board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

Napomena:
Da biste bolje predstavili funkciju prepoznavanja lica, zadržite funkciju za prikaz procesa i rezultata prepoznavanja lica u izlaznom UI HAL-u. Funkcija je opisana na sljedeći način

  • Pravougaonik vodiča za lice prikazuje plavo, a traka napretka pokazuje napredak pri pokretanju registracije ili prepoznavanja lica.
  • Pravougaonik vodiča za lice pokazuje crveno kada je registracija lica uspješna.
  • Pravougaonik vodiča za lice pokazuje zeleno kada je prepoznavanje lica uspješno.
  • Pravougaonik vodiča za lice ostaje plavi, a traka napretka pokazuje puni napredak kada je radnja neuspješna nakon isteka tajmera. U tom trenutku zaustavite registraciju ili prepoznavanje lica.

Traka napretka i pravougaonik vodiča lica predstavljeni su kao ikone koje su ugrađene u binarni resurs file programirati u Flash. Pokazivači na podatke o ikonama na SDRAM-u se postavljaju u funkciji LoadIcons(APP_ICONS_BASE) koja se poziva na inicijalizaciju izlaznog UI HAL uređaja u izlaznom UI HAL-u. Mora implementirati podršku za ikone za funkciju.

Implementirajte podršku za ikone

  1. Napravite resurs kombinujući ikone sa slikama koje se koriste u LVGL GUI aplikaciji:
    • Klonirajte zaglavlje četiri ikone files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h i virtual_face_red_420x426.h iz pametnog HMI-a
      \kafemašina\resource\icons\ u nove ikone foldera u folderu resursa example SW.
    • Dodajte putanju za pretragu za četiri ikone files u kameri_preview_resource.txt file u folderu resursa, nprample: ikona ../resource/icons/process_bar_240x14.h
    • Izvrši camera_preview_resource_build.bat za izradu resursa slika i ikona za generiranje kante file camera_preview_resource.bin i info file resource_information_table.txt (vidi sliku 6).NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (13)
  2. Definirajte početnu adresu na SDRAM-u i veličinu ikona u app_config.h. Adresa počinje pored slika GUI aplikacije. Veličina se generira u informacijama file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. Ažurirajte dodijeljenu veličinu memorijskog odjeljka pod nazivom res_sh_mem na 0x200000 tako što ćete ga redefinirati u app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 i odgovarajuću postavku u Project > Properties > C/C++ Build > MCU postavke.
  4. Dodajte veličinu ikone ukupnoj veličini resursa učitanog iz Flash-a u SDRAM u funkciji APP_LoadResource() u glavnom file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

Napomena: Da biste dovršili funkciju prepoznavanja lica, potrebna je podrška za LVGL GUI aplikaciju. Funkcije povratnog poziva korisničkog interfejsa u izlaznom UI HAL-u poziva LVGL GUI aplikacija za rukovanje događajima sa UI ekrana. S druge strane, izlazni UI HAL poziva API-je iz LVGL GUI aplikacije da ažurira UI kako bi prikazao rezultat i status. Razvoj LVGL GUI aplikacije je relativno nezavisan i predstavljen je u Odjeljku 4.3.

4.1.5 Pokrenite HAL uređaje i menadžere za prepoznavanje lica
Omogućeni algo vizije HAL i UI izlaz HAL i njihovi menadžeri se pokreću u glavnom file
lvgl_gui_face_rec_cm7.cpp prateći konverzije razvoja na okvir kao u nastavku:

  1. Uključite zaglavlje file vezano za dva HAL menadžera dodavanjem linije koda:
    • #include ” fwk_output_manager.h “
    • #include “fwk_vision_algo_manager.h”
  2. Deklarirajte HAL uređaje:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. Registrirajte HAL uređaje:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
  4. Inicijalizirajte menadžere:
    • FWK_MANAGER_INIT(VisionAlgoManager, ret);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. Pokrenite menadžere:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. Definirajte prioritet zadataka menadžera:
    • #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #define OUTPUT_MANAGER_TASK_PRIORITY 1

Dodajte podršku baze podataka lica na framework
Podacima o registrovanim karakteristikama lica pristupa se u bazi podataka lica pohranjenoj na Flash-u putem malog file sistem. Koraci za dodavanje podrške bazi podataka lica opisani su u nastavku.

Dodajte drajvere za Flash memoriju
Kopirajte FlexSPI drajver Flash interfejsa files fsl_flexspi.c i fsl_flexspi.h, te drajver za šifriranje podataka files fsl_caam.c i fsl_caam.h sa putanje SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ do foldera drajvera example SW.

Dodajte podršku na nivou ploče

  1. Dodajte definicije FlexSPI-a koje se koriste za Flash uređaj na ploči u board.h:
    • #define BOARD_FLEXSPI FLEXSPI1
    • #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. Kopirajte operatore i konfiguracije files Flash uređaja flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h ispod putanje pametne HMI\chisource_board foldera example SW.
    • Poništite izbor "Isključi resurse iz gradnje" u C/C++ Build > Settings nakon što kliknete desnim tasterom miša na fileime i otvaranje Properties kako bi se omogućilo njihovo ugrađivanje u projekat.
  3. Promijenite uključeno zaglavlje fileime sln_flash_config.h u sln_flash_config_w25q256jvs.h u sln_flash_config.c i flexspi_nor_flash_ops.h.
  4. Postavite FlexSPI1 izvor takta u file clock_config.c koji se odnosi na aplikaciju aparata za kafu.

Dodajte adapter i podršku srednjeg nivoa

  1. Kopiraj files sln_flash.c, sln_flash.h, sln_encrypt.c i sln_encrypt.h kao drajveri adaptera za file sistem i aplikaciju od puta pametnog HMI\coffee_machine\cm7\source\ do foldera source example. Ažurirajte novo files:
    • Poništite kvačicu "Isključi resurs iz gradnje" na njima za izgradnju.
    • Promijenite sva uključena zaglavlja file ime sln_flash_config.h u sln_flash_config_w25q256jvs.h.
  2. Kopirajte folder filesistem koji sadrži API-je za male filesistema i HAL drajvera od smart HMI \coffee_machine\cm7\source\ do example SW. I ažuriranje za novi folder:
    • Poništite kvačicu "Isključi resurs iz gradnje" na njemu za izgradnju.
    • Dodajte putanju uključivanja za to u postavke projekta: “${workspace_loc:/${ProjName}/filesistem}"
    • Promijenite uključeno zaglavlje file ime sln_flash_config.h u sln_flash_config_w25q256jvs.h i fica_definition.h u app_config.h u file sln_flash_littlefs.h.
  3. Kopirajte fasciklu littlefs koja sadrži srednju robu – malo filesistem od puta SDK_2_13_0_ MIMXRT1170-EVK\middleware\ do example SW. I ažurirajte novi folder:
    • Poništite kvačicu "Isključi resurs iz gradnje" na njemu za izgradnju.
    • Dodajte putanju uključivanja za to u postavke projekta: “${workspace_loc:/${ProjName}/littlefs}”

Dodajte HAL drajvere 

  • Postoje dva HAL uređaja – file sistem i baza podataka lica HAL podržani za funkciju pristupa bazi podataka i već su implementirani u okviru bez ikakvih promjena. Omogućite ih dodavanjem dolje definicija u board_define.h:
    • #define ENABLE_FLASH_DEV_Littlefs
    • #define ENABLE_FACEDB

I promijenite ime baze podataka lica za example: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”

Dodajte podršku na nivou aplikacije

  1. Ažurirajte glavnu file lvgl_gui_face_rec_cm7.cpp:
    • Uključite zaglavlje file vezano za Flash file sistemski HAL menadžer dodavanjem linije koda: #include “fwk_flash.h”
    • Izjavite i registrujte file sistem HAL uređaj:
      • HAL_FLASH_DEV_DECLARE(Littlefs);
      • HAL_FLASH_DEV_REGISTER(Littlefs, ret);
        Napomena: The file sistemski HAL uređaj mora biti registriran prije nego što se svi upravitelji uređaja inicijaliziraju u funkciji APP_InitFramework().
    • Pozovite funkciju BOARD_ConfigMPU() u APP_BoardInit() da konfigurišete MPU.
  2. Postavite file dodjela sistema na Flashu u file app_config.h definiranjem makro definicija korištenih u file sln_flash_littlefs.h:
    • #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #define FICA_FILE_SYS_SIZE (0x280000)

Konfiguracije
Neki kodovi koji se odnose na Flash se izvršavaju u SRAM ITC području za dovoljne performanse. Kopirajte folder linkscripts koji sadrži konfiguracije linkera sa putanje smart HMI\coffee_machine\cm7\ na example SW.

Implementirajte LVGL GUI aplikaciju
Razvoj LVGL GUI aplikacije zasnovane na okviru poziva API-je iz izlaznog UI HAL-a i pruža API-je za izlaz UI HAL-a (pogledajte odjeljak 4.1.3 za implementaciju izlaznog UI HAL-a).

Međutim, detaljna implementacija LVGL GUI aplikacije ovisi o zahtjevima i dizajnu aplikacije. GUI aplikacija u ovom example je dizajniran kako je opisano na početku odeljka 4.

Ispod su uvodi u implementaciju:

  1. Prilagođeni kodovi su implementirani u custom.c i custom.h koje daje GUI Guider kao interfejs između projekta GUI Guider i projekta ugrađenog sistema.
    •  Dodajte nove funkcije pod nazivom gui_xxx() u custom.c da biste postigli sljedeće funkcije:
      • Za izlaz UI HAL i GUI aplikacija za ažuriranje korisničkog sučelja.
      • Za GUI aplikaciju koja pokreće događaje pozivanjem UI funkcija povratnog poziva iz izlaznog UI HAL-a.
        Za nprampDakle, nova funkcija gui_event_face_rec_action() poziva funkcije povratnog poziva korisničkog sučelja za rukovanje jednim od događaja registracije lica, prepoznavanja lica i brisanja korisnika koji se aktiviraju iz GUI aplikacije kada se klikne povezano dugme.
        Napomena: Funkcija gui_set_virtual_face() pozvana u izlaznom korisničkom interfejsu HAL za preview način rada treba implementirati u custom.c:
    •  Klonirajte funkciju gui_set_virtual_face() iz pametnog HMI\kafe_mašina\cm4\custom \custom.c.
    •  Promijenite naziv widgeta home_img_cameraPreview na screen_img_camera_preview u funkciji.
    •  Implementirajte funkcije povratnog poziva korisničkog interfejsa sa istim prototipom na sve one u izlaznom UI HAL-u pod kontrolom makro definicije #ifndef RT_PLATFORM u custom.c zbog kompatibilnosti sa projektom GUI Guider jer ove funkcije u izlaznom UI HAL-u zavise od ugrađena platforma. U custom.c, oni zavise od simulatora na GUI vodiču i nezavisni su od ugrađene platforme. Za nprampda, povratni poziv registracije lica implementiran je na sljedeći način za GUI Guider simulator koji radi: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = lažno; povratak; }
      Napomena: Pogledajte isti prototip funkcije uveden u koraku 6 odjeljka 4.1.3
      Makro definicija RT_PLATFORM je postavljena na projektnim postavkama MCUXpresso kao što je prikazano na slici 7:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (14)
    • Deklarirajte sve funkcije pod nazivom UI_xxx_Callback() i gui_xxx() u custom.h i dodajte custom.h uključen u smart_tlhmi_event_descriptor.h kako biste dijelili GUI API-je za UI izlaz HAL.
  2. Razvijte GUI na GUI Guideru:
    • Klonirajte folder preview koji sadrži softver projekta GUI Guider u fascikli gui_guider u osnovnom softverskom paketu lvgl_gui_camera_preview_cm7. Promijenite povezano ime camera_preview to face_rec za novog example.
    • Kopirajte gore ažurirani custom.c i custom. h na novi softver projekta GUI Guider.
    •  Otvorite novi projekat face_rec na GUI Guideru. Ažurirajte kako slijedi:
      • Dodajte novo dugme pod nazivom Izbriši korisnika. Dodajte mu oznaku Hidden tako da će dugme biti skriveno kada se GUI aplikacija pokrene.
      • Dodajte liniju koda za pozivanje API-ja gui_event_face_rec_action() s različitim parametrom ID-a događaja na okidaču “Oslobodeno” u Postavke događaja svih gumba Registracija, Prepoznavanje i Brisanje korisnika za pokretanje događaja registracije lica, prepoznavanja lica i brisanja korisnika. Slika 8 prikazuje kod za događaj dugmeta Registracija:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (15)
  3. Ažurirajte generirani kod iz GUI Guidera na MCUXpresso projekt.
    • Zamijenite sadržaj osim slika mape u fascikli generiranoj od MCUXpresso projekta SW sa odgovarajućim sadržajem u folderu generisanom od GUI Guider projekta SW.

Napomena: Za više detalja o gore navedenim modifikacijama, pogledajte prample software at https://mcuxpresso.nxp.com/appcodehub.

Verifikacije sa bivample project

Da dobijem bivšegampsoftverski paket koji sadrži resurse i alate za ovu aplikaciju, posjetite: https://mcuxpresso.nxp.com/appcodehub. Otvori exampprojekat na MCUXpresso IDE. Napravite i programirajte .axf file na adresu 0x30000000 i programirajte korpu resursa file camera_preview_resource.bin na adresu 0x30800000.

LVGL GUI za prepoznavanje lica nprampradi normalno kako slijedi:

  • Preview: Sa uključenjem, video tokovi snimljeni kamerom prikazuju se na određenom području pred kameromview na ekranu GUI. Statusna oznaka prikazuje „Preview…”. Za detalje pogledajte sliku 3. Dugme Delete User je skriveno. Kada kliknete na područje izvan dugmadi i slika, prikazuje se preview navedite kao što je gore navedeno nakon završetka akcije registracije ili prepoznavanja lica.
  • Registracija:
    • tarup: Kada se klikne na dugme Registracija, počinje registracija lica. Oznaka statusa se mijenja u prikaz "Registration...", pravougaonik vodiča za lice prikazuje plavo, a traka napretka počinje da prikazuje napredak. Uvjerite se da se lice korisnika prikazuje u plavom pravokutniku vodiča za lice za registraciju.
    • uccess: Oznaka statusa prikazuje “Registration…OK” i registrovani korisnički ID broj, pravougaonik vodiča za lice postaje crven ako je registracija lica uspješna prije nego što se napredak pokaže punim na traci.
    • Neuspjeh -> Vrijeme čekanja: Oznaka statusa prikazuje “Registration…Time out” ako registracija lica i dalje nije uspjela kada je napredak pun na traci.
    • Neuspjeh -> Dupliciranje: Statusna oznaka prikazuje “Registration…Failed”, pravougaonik vodiča lica postaje zelen ako se registrirano lice prepozna prije nego što se napredak pokaže punim na traci.
  • ekoznanje:
    • Pokretanje: Kada se klikne na dugme Prepoznavanje, počinje prepoznavanje lica. Oznaka statusa se mijenja i prikazuje “Prepoznavanje…”, pravougaonik vodiča za lice pokazuje plavo, a traka napretka počinje da prikazuje napredak. Uvjerite se da je lice korisnika prikazano u plavom pravokutniku vodiča za lice za registraciju.
    • uccess: Statusna oznaka prikazuje “Prepoznavanje…OK” i prepoznati ID broj korisnika, pravougaonik vodiča lica postaje zelen ako je prepoznavanje lica uspješno prije nego što se napredak pokaže punim na traci. U tom trenutku se pojavljuje dugme Izbriši korisnika. To znači da je korisnika dozvoljeno brisanje samo kada je prepoznat.
    • ailure: Oznaka statusa prikazuje “Prepoznavanje… Time out” ako je prepoznavanje lica i dalje neuspješno kada je napredak prikazan pun na traci.
  • Izbriši korisnika: Kada se klikne na dugme “Delete User”, nakon što je prepoznavanje lica uspešno, statusna oznaka se menja i prikazuje “Delete User…OK” sa pravougaonikom vodiča za lice koji postaje plav, a napredak se prikazuje u potpunosti na traci. Dugme Delete User je ponovo skriveno. Prepoznato lice/korisnik se briše iz baze podataka. To znači da se ovo lice/korisnik ne može prepoznati dok se ponovo ne registruje.

Napomena o izvornom kodu u dokumentu
Example kod prikazan u ovom dokumentu ima sljedeća autorska prava i licencu BSD-3-klauzule:

Autorsko pravo 2024 NXP Redistribucija i upotreba u izvornim i binarnim oblicima, sa ili bez modifikacija, su dozvoljeni pod uslovom da su ispunjeni sljedeći uslovi:

  1. Redistribucije izvornog koda moraju zadržati gornju napomenu o autorskim pravima, ovu listu uslova i sljedeće odricanje odgovornosti.
  2. Redistribucije u binarnom obliku moraju reproducirati gornju napomenu o autorskim pravima, ovu listu uslova i sljedeće odricanje odgovornosti u dokumentaciji i/ili drugim materijalima moraju biti dostavljeni uz distribuciju.
  3. Niti ime nosioca autorskih prava niti imena njegovih saradnika ne smiju se koristiti za odobravanje ili promoviranje proizvoda izvedenih iz ovog softvera bez posebne prethodne pismene dozvole

OVAJ SOFTVER OBEZBJEĐUJU NOSILACI AUTORSKIH PRAVA I SARADNICI „KAKVI JESU“ I BILO KAKVE IZRIČITE ILI PODRAZUMEVANE GARANCIJE, UKLJUČUJUĆI, ALI NE OGRANIČUJUĆI SE NA, PODRAZUMEVANE GARANCIJE O PRODAJNOSTI I PRIKLADNOSTI DESCLAIMED. NI U KOJOM SLUČAJU NOSIlac autorskog prava ILI SARADNICI NEĆE BITI ODGOVORNI ZA BILO KAKVE DIREKTNE, INDIREKTNE, SLUČAJNE, POSEBNE, PRIMJERNE ILI POSLJEDIČNE ŠTETE (UKLJUČUJUĆI, ALI NE OGRANIČENO NA, GODINE PROIZVODE; GUBITAK KORIŠĆENJA, PODATAKA ILI DOBITAKA ILI PREKIDA POSLOVANJA) BILO KOJI BILO UZROK I NA BILO KOJOJ TEORIJI ODGOVORNOSTI, BILO U UGOVORU, STROGOJ ODGOVORNOSTI ILI DELATNOM PRAVOM (UKLJUČUJUĆI NEMAR ILI BILO BILO DRUGO OD NJEGA); SOFTVER, ČAK I AKO JE OBAVEŠTEN O MOGUĆNOSTI TAKVE ŠTETE.

Istorija revizija

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

Pravne informacije

Definicije
Nacrt — Status nacrta na dokumentu ukazuje na to da je sadržaj još uvijek pod internom revizijomview i podliježu formalnom odobrenju, što može rezultirati izmjenama ili dopunama. NXP Semiconductors ne daje nikakve izjave ili garancije u pogledu tačnosti ili potpunosti informacija uključenih u nacrt verzije dokumenta i neće imati nikakvu odgovornost za posledice korišćenja takvih informacija.

Odricanje od odgovornosti

  • Ograničena garancija i odgovornost — Vjeruje se da su informacije u ovom dokumentu tačne i pouzdane. Međutim, NXP Semiconductors ne daje nikakve izjave ili garancije, izražene ili implicirane, u pogledu tačnosti ili potpunosti takvih informacija i neće snositi odgovornost za posledice korišćenja takvih informacija. NXP Semiconductors ne preuzima nikakvu odgovornost za sadržaj u ovom dokumentu ako je dostavljen od izvora informacija izvan NXP Semiconductors.
    NXP Semiconductors ni u kom slučaju neće biti odgovoran za bilo kakvu indirektnu, slučajnu, kaznenu, posebnu ili posljedičnu štetu (uključujući – bez ograničenja – izgubljenu dobit, izgubljenu ušteđevinu, prekid poslovanja, troškove vezane za uklanjanje ili zamjenu bilo kojeg proizvoda ili troškove prerade) bilo da ili ne takve štete su zasnovane na deliktu (uključujući nemar), garanciji, kršenju ugovora ili bilo kojoj drugoj pravnoj teoriji.
    Bez obzira na bilo kakvu štetu koju bi kupac mogao pretrpjeti iz bilo kojeg razloga, ukupna i kumulativna odgovornost NXP Semiconductors prema kupcu za proizvode opisane ovdje biće ograničena u skladu sa Odredbama i uslovima komercijalne prodaje NXP Semiconductors.
  • Pravo na promjene — NXP Semiconductors zadržava pravo izmjene informacija objavljenih u ovom dokumentu, uključujući bez ograničenja specifikacije i opise proizvoda, u bilo koje vrijeme i bez prethodne najave. Ovaj dokument zamjenjuje i zamjenjuje sve informacije dostavljene prije objavljivanja ovog dokumenta.
  • Pogodnost za upotrebu — NXP Semiconductors proizvodi nisu dizajnirani, odobreni ili pod garancijom da budu prikladni za održavanje života, životno kritične ili sigurnosno kritične sisteme ili opremu, niti u aplikacijama u kojima se može razumno očekivati ​​da će kvar ili kvar proizvoda NXP Semiconductors lične povrede, smrt ili teška imovinska ili ekološka šteta. NXP Semiconductors i njeni dobavljači ne prihvataju nikakvu odgovornost za uključivanje i/ili upotrebu NXP Semiconductors proizvoda u takvu opremu ili aplikacije i stoga je takvo uključivanje i/ili upotreba na sopstveni rizik kupca.
  • Prijave — Aplikacije koje su ovdje opisane za bilo koji od ovih proizvoda služe samo u ilustrativne svrhe. NXP Semiconductors ne daje nikakve izjave ili garancije da će takve aplikacije biti prikladne za navedenu upotrebu bez daljeg testiranja ili modifikacije.
    Kupci su odgovorni za dizajn i rad svojih aplikacija i proizvoda koji koriste NXP Semiconductors proizvode, a NXP Semiconductors ne prihvata nikakvu odgovornost za bilo kakvu pomoć u aplikacijama ili dizajnu proizvoda za kupce. Isključiva je odgovornost kupca da utvrdi da li je proizvod NXP Semiconductors prikladan i prikladan za kupčeve aplikacije i planirane proizvode, kao i za planiranu primjenu i korištenje kupca treće strane. Kupci treba da obezbede odgovarajući dizajn i operativne mere zaštite kako bi se smanjili rizici povezani sa njihovim primenama i proizvodima. NXP Semiconductors ne prihvata nikakvu odgovornost u vezi sa bilo kakvim zadatkom, štetom, troškovima ili problemom koji je zasnovan na bilo kojoj slabosti ili nedostatku u aplikacijama ili proizvodima korisnika, ili aplikaciji ili upotrebi od strane klijenta treće strane. Kupac je odgovoran za obavljanje svih potrebnih testiranja za klijentove aplikacije i proizvode koji koriste NXP Semiconductors proizvode kako bi se izbjeglo neispunjenje aplikacija i proizvoda ili aplikacije ili korištenja od strane kupca treće strane. NXP ne prihvata nikakvu odgovornost u tom pogledu.
  • Uslovi komercijalne prodaje — NXP Semiconductors proizvodi se prodaju u skladu sa opštim uslovima komercijalne prodaje, objavljenim na https://www.nxp.com/profile/uslovi, osim ako je drugačije ugovoreno u važećem pismenom pojedinačnom ugovoru. U slučaju da se zaključi pojedinačni ugovor, primjenjuju se samo uslovi i odredbe odgovarajućeg ugovora. NXP Semiconductors se ovim izričito protivi primjeni opštih uslova korisnika u vezi sa kupovinom proizvoda NXP Semiconductors od strane kupca.
  • Kontrola izvoza — Ovaj dokument kao i ovde opisani artikli mogu biti predmet propisa o kontroli izvoza. Za izvoz može biti potrebno prethodno odobrenje nadležnih organa.
  • Pogodnost za upotrebu u proizvodima koji nisu kvalifikovani za automobile — Osim ako se u ovom dokumentu izričito ne navodi da je ovaj specifični NXP Semiconductors proizvod kvalifikovan za automobile, proizvod nije prikladan za upotrebu u automobilima. Nije ni kvalificiran niti testiran u skladu sa zahtjevima za automobilsko testiranje ili primjenu. NXP Semiconductors ne prihvata nikakvu odgovornost za uključivanje i/ili upotrebu proizvoda koji nisu kvalifikovani za automobile u automobilskoj opremi ili aplikacijama.
    U slučaju da kupac koristi proizvod za dizajn i upotrebu u automobilskim aplikacijama prema automobilskim specifikacijama i standardima, kupac (a) će koristiti proizvod bez garancije NXP Semiconductors za proizvod za takve automobilske aplikacije, upotrebu i specifikacije, i ( b) kad god kupac koristi proizvod za automobilske aplikacije izvan specifikacija NXP Semiconductors, takva upotreba će biti isključivo na vlastiti rizik kupca, i (c) kupac u potpunosti obeštećuje NXP Semiconductors za bilo kakvu odgovornost, štetu ili neuspjele zahtjeve za proizvodom koji su rezultat dizajna i korištenja proizvod za automobilske aplikacije izvan standardne garancije NXP Semiconductors i specifikacija proizvoda NXP Semiconductors.
  • Prevodi — Neengleska (prevedena) verzija dokumenta, uključujući pravne informacije u tom dokumentu, služi samo kao referenca. Engleska verzija ima prednost u slučaju bilo kakvog neslaganja između prevedene i engleske verzije.
  • Sigurnost — Kupac razume da svi NXP proizvodi mogu biti podložni neidentifikovanim ranjivostima ili da podržavaju utvrđene bezbednosne standarde ili specifikacije sa poznatim ograničenjima. Kupac je odgovoran za dizajn i rad svojih aplikacija i proizvoda tokom njihovog životnog ciklusa kako bi se smanjio uticaj ovih ranjivosti na aplikacije i proizvode korisnika. Odgovornost korisnika se takođe proteže na druge otvorene i/ili vlasničke tehnologije koje podržavaju NXP proizvodi za upotrebu u aplikacijama korisnika. NXP ne prihvata nikakvu odgovornost za bilo kakvu ranjivost. Klijent bi trebao redovno provjeravati sigurnosna ažuriranja od NXP-a i na odgovarajući način pratiti. Kupac će odabrati proizvode sa sigurnosnim karakteristikama koje najbolje zadovoljavaju pravila, propise i standarde predviđene primjene i donijeti konačne odluke o dizajnu u vezi sa svojim proizvodima i isključivo je odgovoran za usklađenost sa svim zakonskim, regulatornim i sigurnosnim zahtjevima koji se odnose na svoje proizvode, bez obzira na bilo koje informacije ili podršku koju može pružiti NXP.

NXP ima tim za odgovor na bezbednosne incidente (PSIRT) (dostupan na PSIRT@nxp.com) koji upravlja istraživanjem, izveštavanjem i izdavanjem rešenja za bezbednosne propuste NXP proizvoda.
NXP B.V. — NXP B.V. nije operativna kompanija i ne distribuira niti prodaje proizvode.

Trademarks
Napomena: Svi navedeni brendovi, nazivi proizvoda, nazivi usluga i zaštitni znakovi vlasništvo su njihovih vlasnika.

NXP — slovni žig i logo su zaštitni znaci kompanije NXP BV

AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed omogućen, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — su zaštitni znakovi i/ili registrovani zaštitni znakovi Arm Limited (ili njegovih podružnica ili podružnica) u SAD-u i/ili drugdje. Povezana tehnologija može biti zaštićena bilo kojim ili svim patentima, autorskim pravima, dizajnom i poslovnim tajnama. Sva prava zadržana.

  • i.MX — je zaštitni znak NXP BV
  • J-Link — je zaštitni znak SEGGER Microcontroller GmbH.

Microsoft, Azure i ThreadX — su zaštitni znakovi grupe kompanija Microsoft.

Imajte na umu da su važna obavještenja u vezi sa ovim dokumentom i ovdje opisanim proizvodom uključena u odjeljak 'Pravne informacije'.

© 2024 NXP BV
Za više informacija posjetite: https://www.nxp.com

  • Datum izdavanja: 19. april 2024
  • Identifikator dokumenta: AN14263

FAQ

P: Koja je glavna svrha ovog proizvoda?
O: Glavna svrha je omogućiti funkciju prepoznavanja lica koristeći AI&ML model algoritma vida s jednostavnim LVGL GUI example na SLN-TLHMI-IOT ploči.

P: Kako programeri mogu imati koristi od ove napomene o aplikaciji?
O: Programeri mogu naučiti kako implementirati prepoznavanje lica u okviru korak po korak koristeći priloženi exampnaučiti i razumjeti uključene upravitelje uređaja, HAL uređaje i mehanizme događaja.

Dokumenti / Resursi

NXP AN14263 Implementirajte LVGL GUI prepoznavanje lica na Frameworu [pdf] Korisnički priručnik
AN14263 Implementirajte LVGL GUI prepoznavanje lica na Frameworu, AN14263, Implementirajte LVGL GUI prepoznavanje lica na Frameworu, LVGL GUI prepoznavanje lica na Frameworu, Prepoznavanje lica na Frameworu, Prepoznavanje na Frameworu

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *