NXP AN14263 Implementacija LVGL GUI prepoznavanja lica na Frameworu
Informacije o proizvodu
Tehnički podaci
- Naziv proizvoda: LVGL GUI prepoznavanje lica na Frameworku
- Revizija dokumenta: 1. – 19. travnja 2024
- Ključne riječi: Prepoznavanje lica, LVGL GUI, Framework
Upute za uporabu proizvoda
- Nadview
Ovaj proizvod omogućuje 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. - Okvir završenview
Softver rješenja dizajniran je oko okvirne arhitekture koja uključuje upravitelje uređaja odgovorne za upravljanje uređajima, HAL uređaje za apstrahiranje temeljnih detalja i događaje za komunikaciju između različitih uređaja. - Značajke
Proizvod omogućuje implementaciju funkcije prepoznavanja lica putem kamereview na GUI zaslonu s gumbima za pokretanje registracije lica, prepoznavanja i uklanjanja. Podaci o registriranom licu pohranjuju se na Flashu putem a file sustav. - Sadržaj bilješke o aplikaciji
Napomena o aplikaciji predstavlja LVGL GUI zaslon s preview i gumbi za radnje povezane s licem. Pomaže programerima da razumiju okvir i kako implementirati prepoznavanje lica pomoću ponuđenog example.
Nadview
NXP je lansirao komplet za razvoj rješenja pod nazivom SLN-TLHMI-IOT koji se fokusira na pametne HMI aplikacije. Omogućuje pametni HMI s ML vizijom, glasom i grafičkim korisničkim sučeljem implementiranim na jednom NXP i.MX RT117H MCU. Temeljen na SDK-u, softver rješenja izgrađen je na dizajnu koji se naziva framework koji podržava fleksibilne dizajne i prilagodbu vizualnih i glasovnih funkcija. Kako bismo pomogli korisnicima da bolje koriste softversku platformu, dostavljeni su neki osnovni dokumenti, nprample, korisnički priručnik za razvoj softvera. Vodič predstavlja osnovni dizajn softvera i arhitekturu aplikacija koje pokrivaju sve komponente rješenja uključujući okvir kako bi se programerima pomoglo da lakše i učinkovitije implementiraju svoje aplikacije koristeći SLN-TLHMI-IOT.
Za više pojedinosti o rješenju i relevantnim dokumentima posjetite web stranica NXP EdgeReady Smart HMI rješenja temeljenog na i.MX RT117H s ML Vision, glasovnim i grafičkim korisničkim sučeljem. Međutim, programerima još uvijek nije tako lako implementirati svoje pametne HMI aplikacije pozivajući se na ove osnovne vodiče. Niz bilješki o aplikaciji planiran je za pomoć u proučavanju razvoja okvira korak po korak. Ova bilješka o aplikaciji temelji se na Implement LVGL GUI Camera Preview o okviru (dokument AN14147). Ova bilješka o aplikaciji opisuje kako omogućiti model algoritma vida AI&ML za prepoznavanje lica na okviru za implementaciju funkcije prepoznavanja lica putem kamere preview na GUI zaslonu s jednostavnim LVGL GUI nprample na SLN-TLHMI-IOT ploči. U prijavnici je prample predstavlja LVGL GUI zaslon s kamerom preview i neki gumbi za pokretanje registracije, prepoznavanja i uklanjanja lica. Podaci o registriranom licu pohranjuju se na Flashu putem malog file sustav.
Na visokoj razini, bilješka o aplikaciji sadrži sljedeći sadržaj:
- Omogućite značajku prepoznavanja lica na okviru.
- Dodajte podršku za bazu podataka lica na okviru putem file sustav na Flashu.
- Implementirajte LVGL GUI aplikaciju. Kroz gore navedene uvode, ovaj dokument pomaže programerima da:
- Dublje shvatite okvir i softver za pametno HMI rješenje.
- Razvijte svoje AI&ML prepoznavanje lica na okviru s LVGL GUI aplikacijom.
Okvir završenview
Softver rješenja prvenstveno je dizajniran oko upotrebe okvirne arhitekture koja se sastoji od nekoliko različitih dijelova:
- Upravitelji uređaja – ključni dio
- Uređaji sloja apstrakcije hardvera (HAL).
- Poruke/Događaji
Kao što je prikazano na slici 1, overview mehanizma okvira je:
Upravitelji uređaja odgovorni su za upravljanje uređajima koje koristi sustav. Svaki tip uređaja (ulaz, izlaz i tako dalje) ima svoj upravitelj uređaja specifičan za tip. S upraviteljem uređaja koji se pokreće nakon što se uređaji registriraju na njega, čeka i provjerava poruku za prijenos podataka na uređaje i druge upravitelje nakon inicijalizacije i pokretanja registriranih uređaja. HAL uređaji napisani su povrh koda upravljačkog programa niže razine, što pomaže u povećanju razumljivosti koda apstrahiranjem mnogih temeljnih detalja.
Događaji su način na koji se informacije komuniciraju između različitih uređaja putem njihovih upravitelja. Kada se događaj pokrene, uređaj koji je prvi primio događaj priopćava taj događaj svom upravitelju, a zatim obavještava druge upravitelje određene za primanje događaja.
Arhitektonski dizajn okvira bio je usredotočen na tri primarna cilja:
- Jednostavnost korištenja
- Fleksibilnost/prenosivost
- Performanse
Okvir je dizajniran s ciljem ubrzavanja vremena izlaska na tržište za viziju i druge aplikacije strojnog učenja. Kako bi se osiguralo brzo izlazak na tržište, ključno je da je sam softver lak za razumijevanje i modifikaciju. Imajući ovaj cilj na umu, arhitekturu okvira lako je modificirati bez ograničavanja i bez gubitka performansi.
Za više pojedinosti o okviru pogledajte korisnički priručnik za razvoj softvera Smart HMI (dokument MCU-SMHMI-SDUG).
Lagana i svestrana 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 stvaranje ugrađenog GUI-ja s grafičkim elementima jednostavnim za korištenje, prekrasnim vizualnim efektima i malom količinom memorije.
GUI vodič
GUI Guider je user-friendly alat za razvoj grafičkog korisničkog sučelja tvrtke NXP koji omogućuje brzi razvoj visokokvalitetnih zaslona s LVGL grafičkom bibliotekom otvorenog koda. Uređivač GUI Guider-a za povlačenje i ispuštanje olakšava korištenje mnogih značajki LVGL-a kao što su widgeti, animacije i stilovi za stvaranje GUI-a s minimalnim ili nikakvim kodiranjem.
Klikom na gumb možete pokrenuti svoju aplikaciju u simuliranom okruženju ili je izvesti u ciljni projekt. Generirani kod iz GUI Guidera može se jednostavno dodati vašem projektu, ubrzavajući razvojni proces i omogućujući vam da neprimjetno dodate ugrađeno korisničko sučelje svojoj aplikaciji. GUI Guider je besplatan za korištenje s NXP-ovim opće namjenama i crossover MCU-ovima i uključuje ugrađene projektne predloške 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
Najprije pripremite i postavite hardversko i softversko okruženje za implementaciju example na okviru.
Hardversko okruženje
Hardversko okruženje je postavljeno za provjeru exampono:
- Pametni HMI razvojni komplet temeljen na NXP i.MX RT117H (SLN_TLHMI_IOT komplet)
- SEGGER J-Link s 9-pinskim Cortex-M adapterom i V7.84a ili novijom verzijom upravljačkog programa
Softversko okruženje
Softversko okruženje je postavljeno za razvoj exampono:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – prample kod druge bilješke aplikacije kao temeljnog softvera razvoja. Za detalje pogledajte https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – kao resurs koda za razvoj.
- SLN-TLHMI-IOT softver V1.1.2 – pametni HMI izvorni kod objavljen na NXP GitHub repozitoriju kao izvor koda za razvoj. Za detalje pogledajte: GitHub – NXP/mcu-smhmi na v1.1.2
Za detalje o stjecanju i postavljanju softverskog okruženja, pogledajte: Prvi koraci sa SLN-TLHMI-IOT.
Vizija arhitekture na okviru
Arhitektura vizije na okviru prikazana je na slici 2. Algo vizija HAL (OASIS_HAL) ima procese u nastavku:
- Izvršite registraciju i prepoznavanje lica putem modela algoritma vida AI&ML nakon primanja povezanih događaja iz HAL izlaznog korisničkog sučelja. Obavijestite rezultate zaključivanja iz modela algoritma u HAL izlaznog sučelja.
- Pristupa (dodaj, izbriši...) bazi podataka značajki lica na temelju malog file sustav pozivanjem API-ja FaceDB HAL-a nakon primanja povezanih događaja iz izlaznog UI HAL-a.
- Zatražite video okvir kamere od HAL-a kamere kada radite registraciju i prepoznavanje lica.
Implementirajte prepoznavanje lica na okviru
LVGL GUI prepoznavanje lica prample (prample je dano kasnije) na okvir se implementira na temelju prample kodovi Implementacije LVGL GUI kamere Preview o okviru (dokument AN14147).
Za demonstraciju prepoznavanja lica u prample, osnovna funkcija GUI aplikacije (pogledajte glavni zaslon na slici 3) dizajnirana je kako je opisano u nastavku:
- GUI aplikacija pokreće događaj registracije ili prepoznavanja lica na izlaznom HAL korisničkom sučelju kada se klikne gumb Registration or Recognition. A izlazni UI HAL obavještava o događaju dodavanja korisnika u HAL algo za vid nakon što je registracija lica uspješna.
- Aplikacija GUI pokreće događaj brisanja korisnika u HAL izlaznog sučelja kada se klikne gumb Izbriši korisnika nakon prepoznavanja lica korisnika.
- Aplikacija GUI pokreće događaj zaustavljanja pokretanja algo oasis na izlaznom korisničkom sučelju HAL kada se klikne zaslon izvan gumba i slika.
Pripremiti programski paket za implementaciju prample.
- Klonirajte osnovni softver lvgl_gui_camera_preview_cm7. Promijenite naziv projekta i glavni filenaziv za lvgl_gui_face_rec_cm7.
- Okvir je potrebno ažurirati u softveru jer su izvorni kodovi za jezgru okvira počeli biti javni na GitHubu od verzije 1.1.2.
- Zamijenite okvirnu mapu kopijom V1.1.2 s GitHuba osim za files fwk_log.h i fwk_common.h pod inc\ budući da su izmijenjeni za niz bilješki o aplikaciji. Radnje su prikazane na slici 4:
- Izbrišite mapu framework_cm7 pod grupom libs i uklonite biblioteku framework_cm7 i njezinu putanju pretraživanja konfiguriranu u Projekt > Svojstva > C/C++ Build > postavke > Postavke alata > MCU C++ Linker > Biblioteke budući da je izvorni kod jezgre osiguran.
Omogućite značajku prepoznavanja lica na okviru
Značajka prepoznavanja lica izgrađena je na modelu algoritma ML vision koji se nudi kao statična biblioteka – oasis lite runtime biblioteka tvrtke NXP. Knjižnica je malena, vrlo učinkovita, prilagođena i optimizirana AI knjižnica. 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 ažurira rezultate pozivatelju putem povratnih poziva događaja i dodavanje/ažuriranje/brisanje lica u bazi podataka putem povratnih poziva baze podataka lica nakon navođenja informacija o izvornom okviru, povratnih poziva i memorije bazen koji koristi biblioteka pozivanjem drugog API-ja OASISLT_init() pri inicijalizaciji. Pozivanje API-ja i funkcije povratnog poziva implementirani su u algo HAL okvira vizije.
Dodajte biblioteku modela vision algo
- Kopiraj oazu mape koja sadrži biblioteku i povezano zaglavlje file iz pametnog HMI\coffee_machine\cm7\libs\ u mapu libs example SW.
- Dodajte put 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}”
- Dodajte lib i njegovu stazu pretraživanja na Projekt > Svojstva > C/C++ Build > postavke > MCU C+ + Linker > Biblioteke: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” i definiciju makronaredbe u omogućite značajku na Projekt > Svojstva > C/C++ Build > postavke > Postavke alata > MCU C kompajler > Predprocesor i MCU C++ kompajler > Predprocesor: SMART_TLHMI_2D
Omogući algo vida HAL
Vision algo HAL pokreće model vision algo da radi i odgovara rezultatima na UI output HAL nakon što od njega primi događaje.
Da biste ga omogućili, klonirajte postojeći sličan HAL upravljački program file gdje su implementirane sljedeće funkcije:
- Implementirati povratne pozive operacija baze podataka lica i rukovanja događajima.
- Pokrenite vision algo da radi pozivanjem API-ja knjižnice oasis.
- Pristup bazi podataka o korisničkim licima i bazi podataka aplikacija (nije potrebno u prample).
- Primanje događaja iz i slanje rezultata na izlaz UI HAL.
Glavni radovi na implementaciji HAL-a za prample su:
- Klonirajte postojeći sličan HAL upravljački program file i promijenite povezana imena.
- Uklonite kodove koji se odnose na podatkovne operacije aplikacije.
- Ažurirajte definicije i funkcije za rukovanje događajima iz izlaznog korisničkog sučelja HAL prema exampoblikovati.
- Dodajte konfiguracije potrebne za inicijalizaciju oasis.
Detaljni koraci su sljedeći:
- Klonirajte hal_vision_algo_oasis_coffeemachine.c. Promijenite filenaziv za hal_vision_algo_oasis_guifacerec.c. I zamijenite sve žice CoffeeMachine s GUIFaceRec u file.
- Uklonite kodove koji sadrže niz coffeedb (nije osjetljiv na velika i mala slova) koji se odnosi na bazu podataka aplikacije, nprample, #include hal_sln_coffeedb.h.
- Izmijenite funkciju HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() za rukovanje događajima iz izlaznog korisničkog sučelja HAL.
- Promijenite definiciju događaja kEventFaceRecId_RegisterCoffeeSelection u kEventFaceRecId_RegisterUserFace i strukturni niz regCoffeeSelection u regGUIFaceRec za rukovanje događajem za dodavanje novih podataka o značajkama lica u bazu podataka.
- Za prikaz standardnog procesa radnji prepoznavanja lica u prample, modificirajte rukovanje u slučaju kEventFaceRecID_OasisSetState s definicijama stanja:
- kOASISLiteState
- Registracija kOASISLiteState
- Prepoznavanje kOASISLiteState
- Zaustavljeno
- Dodajte i izmijenite definicije događaja navedenih u gornjem koraku.
- Kopirajte zaglavlje file smart_tlhmi_event_descriptor.h iz pametnog HMI\coffee_machine \cm7\source\event_handlers\ u mapu izvor example SW. Ažurirajte file kao ispod:
- Promijenite definiciju događaja kEventFaceRecId_RegisterCoffeeSelection u kEventFaceRecId_RegisterUserFace u enum tipu _event_smart_tlhmi_id i strukturni niz regCoffeeSelection u regGUIFaceRec u strukturi _event_smart_tlhmi. 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 kavu, nprample, linija koda o glasu: #include “hal_event_descriptor_voice.h”.
- Dodajte tipove kOASISLiteState_Stopped i kOASISLiteState_Running enum tipu 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
- Računati
- Koristite gornju ažuriranu strukturu oasis_lite_state_t za pročišćavanje strukture 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;
- Promijenite sve kEventInfo_Remote u kEventInfo_Local za slanje događaja iz vision algo HAL-a u druge HAL-ove koji se izvode na istoj jezgri jer se jednojezgreni umjesto dual-core koristi u example.
- Dodajte i izmijenite donje konfiguracije za inicijalizaciju oaze u OASISLT_init():
- Dodajte makro definicije i memorijske odjeljke 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) \
- __atribut__((odjeljak(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __atribut__((poravnano(poravnanobytes)))
- Konfigurirajte dodjelu memorije gornjoj memorijskoj sekciji fb_sh_mem na Projekt > Svojstva > C/C++ Build > MCU postavke prikazane na slici 5:
- 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 dodavati definicije korištene u gornjoj varijabli:
- Definirajte gornji odjeljak u board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- atribut__((odjeljak(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- atribut__((poravnano(poravnanobytes)))
- Uključite zaglavlje file hal_vision_algo.h koji sadrži makro definiciju DTC_OPTIMIZE_BUFFER_SIZE u app_config.h uključenu u lvgl_gui_face_rec_cm7.cpp.
- Dodajte makro definicije i memorijske odjeljke za video okvir u board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- Postavite varijablu s_debugOption na true za prikaz statusa napretka prepoznavanja lica.
- Dodajte put pretraživanja zaglavlja filevizije 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}”
- Dodajte donju definiciju da biste omogućili algo vision HAL u board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Omogući izlaz UI HAL
Izlazni UI HAL obavještava o događajima vizijski algo HAL i odgovara na rezultate zaključivanja iz vizijskog algo HAL. Uz GUI aplikaciju, događaje općenito pokreće aplikacija i rezultati se prikazuju u aplikaciji.
Da biste ga omogućili, klonirajte postojeći sličan HAL upravljački program file gdje se općenito implementiraju sljedeće funkcije:
- Obavijestite događaje za prepoznavanje lica i pristup bazi podataka.
- Implementirajte povratne pozive za GUI aplikaciju za pokretanje događaja.
- Rukovanje rezultatima zaključivanja iz modula vision algo.
- Prikažite proces i rezultate rukovanja događajima na korisničkom sučelju pomoću trake napretka koja se kontrolira pomoću mjerača vremena i pravokutnika za usmjeravanje lica.
Glavni radovi na implementaciji HAL-a za prampdatoteke koje se koriste u ovom dokumentu su:
- Klonirajte postojeći sličan HAL upravljački program file i promijenite povezana imena.
- Uklonite kodove povezane s aplikacijom.
- Ažurirajte funkcije za obavijest o događajima i odgovor na rezultate prema prampoblikovati.
- Dodajte povratne pozive za GUI aplikaciju za pokretanje događaja.
Detaljni koraci su sljedeći:
- Kloniraj hal_output_ui_coffee_machine.c. Promijenite filenaziv za hal_ output_ui_guifacerec.c.
- Zamijenite sve nizove CoffeeMachine s GUIFaceRec u file.
- Uklonite kodove koji se odnose na aplikaciju – aparat za kavu.
- Uklonite funkcije WakeUp() i _StandBy() i povezane kodove (možete ih pretraživati u nizu wake_up i standby).
- Ukloni preview događaji načina rukovanja povezanim kodovima u HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Uklonite funkcije UI_xxx_Callback() i kodove koji sadrže niz gui_ i zaslon koji se odnosi na GUI aparata za kavu osim gui_set_virtual_face() za preview značajka načina rada.
- Uklonite sve kodove uključene u varijable s_IsWaitingAnotherSelection i s_IsWaitingRegisterSelection koji se odnose na aplikaciju aparata za kavu.
- Uklonite kodove koji se odnose na glas, zvuk i jezik. Na primjerampono:
- #include “hal_voice_algo_asr_local.h”,
- #include “hal_event_descriptor_voice.h”
- Za obavijest o raznim događajima implementirajte nove funkcije _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() i DeregisterGUIFaceRec() pozivajući se na funkcije _StopFaceRec(), _RegisterCoffeeSelection() i DeregisterCoffeeSelection() prije njihovog brisanja.
- _OutputManagerNotify() implementira osnovnu funkciju izlaza događaja za slanje događaja u vizijski algo HAL. Funkcije u nastavku ga pozivaju da pošalju vlastite događaje.
- _SetFaceRec() šalje događaj kEventFaceRecID_OasisSetState da pokrene algo vida za registraciju lica, prepoznavanje i zaustavi algo.
- _RegisterGUIFaceRec() šalje događaj kEventFaceRecId_RegisterGUIFaceRec koji je definiran u smart_tlhmi_event_descriptor.h za dodavanje podataka o značajkama lica u bazu podataka kada je registracija u redu.
- DeregisterGUIFaceRec() šalje događaj kEventFaceRecID_DelUser za brisanje podataka o značajci lica iz baze podataka prilikom prosljeđivanja prepoznavanja lica.
- Ažurirajte kodove za poduzimanje odgovarajućih radnji, uključujući osvježavanje GUI-ja pozivanjem API-ja iz aplikacije LVGL GUI za rezultate zaključivanja registracije i prepoznavanja lica u funkciji _InferComplete_Vision() po pr.ample-ov dizajn. Na primjerample, kada je registracija lica uspješna,
- Prestanite prikazivati napredak pozivom _FaceRecProcess_Stop();
- Zaustavite registraciju lica pozivom _SetFaceRec(kOASISLiteState_Stopped);
- Prikaži uspješan rezultat na GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Registrirajte podatke o licu u bazi podataka: _RegisterUserFace(s_UserId);
- Dodajte funkcije povratnog poziva korisničkog sučelja za rukovanje događajima: preview, registracija lica, prepoznavanje i brisanje korisnika pokrenuto iz GUI-ja. Na primjerample, povratni poziv registracije lica: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- I dodajte funkcije _FaceRecProcess_Start() i _FaceRecProcess_Stop() za prikaz napretka i statusa u različitim događajima i rezultatima.
- Ažurirajte ISR funkciju povratnog poziva tajmera _SessionTimer_Callback() za obradu slučaja isteka pozivanjem: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Dodajte donje definicije kako biste omogućili HAL izlaz korisničkog sučelja u board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Obavijest:
Kako biste bolje predstavili značajku prepoznavanja lica, zadržite funkciju za prikaz procesa i rezultata prepoznavanja lica u HAL izlaznom korisničkom sučelju. Funkcija je opisana u nastavku
- Pravokutnik za vođenje lica je plavo, a traka napretka pokazuje napredak pri pokretanju registracije ili prepoznavanja lica.
- Pravokutnik vodiča za lice pokazuje crvenu boju kada je registracija lica uspješna.
- Pravokutnik za vođenje lica svijetli zeleno kada je prepoznavanje lica uspješno.
- Pravokutnik vodiča za lice ostaje plav, a traka napretka pokazuje puni napredak kada je radnja neuspješna nakon isteka vremena. U tom trenutku zaustavite registraciju ili prepoznavanje lica.
Traka napretka i pravokutnik vodiča lica predstavljeni su kao ikone koje su ugrađene u binarnu datoteku resursa file programirati u Flash. Pokazivači na podatke o ikonama na SDRAM-u postavljaju se u funkciji LoadIcons(APP_ICONS_BASE) koja se poziva na inicijalizaciji izlaznog UI HAL uređaja u izlaznom UI HAL. Mora implementirati podršku ikona za funkciju.
Implementirajte podršku za ikone
- Izradite resurs kombinirajući ikone sa slikama koje se koriste u aplikaciji LVGL GUI:
- 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-ja
\stroj za kavu\resource\icons\ u nove ikone mape ispod mape resursa example SW. - Dodajte put pretraživanja za četiri ikone files u kameri_preview_resource.txt file u mapi resursa, nprample: ikona ../resource/icons/process_bar_240x14.h
- Izvršite camera_preview_resource_build.bat za izgradnju resursa slika i ikona za generiranje spremnika file kamera_preview_resource.bin i informacije file resource_information_table.txt (Pogledajte sliku 6).
- 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-ja
- 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
- Ažurirajte dodijeljenu veličinu odjeljka memorije pod nazivom res_sh_mem na 0x200000 redefiniranjem u app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 i odgovarajuće postavke u Projekt > Svojstva > C/C++ Build > MCU postavke.
- Dodajte veličinu ikone ukupnoj veličini resursa učitanog iz Flasha 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);
Obavijest: Za dovršetak značajke prepoznavanja lica potrebna je podrška za aplikaciju LVGL GUI. Funkcije povratnog poziva korisničkog sučelja u izlaznom korisničkom sučelju HAL poziva aplikacija LVGL GUI za rukovanje događajima sa zaslona korisničkog sučelja. S druge strane, izlazno korisničko sučelje HAL poziva API-je iz LVGL GUI aplikacije za ažuriranje korisničkog sučelja za prikaz rezultata i statusa. Razvoj LVGL GUI aplikacije je relativno neovisan i predstavljen u odjeljku 4.3.
4.1.5 Pokrenite HAL uređaje i upravitelje za prepoznavanje lica
Omogućeni vizijski algo HAL i UI izlaz HAL i njihovi upravitelji pokreću se u glavnom file
lvgl_gui_face_rec_cm7.cpp slijedeći pretvorbe razvoja na okviru kao u nastavku:
- Uključite zaglavlje file povezan s dva HAL upravitelja dodavanjem linije koda:
- #include ” fwk_output_manager.h “
- #include “fwk_vision_algo_manager.h”
- Deklarirajte HAL uređaje:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Registrirajte HAL uređaje:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Inicijalizirajte upravitelje:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- Pokrenite upravitelje:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Definirajte prioritet zadataka upravitelja:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Dodajte podršku za bazu podataka lica na okviru
Podacima o registriranim značajkama lica pristupa se u bazi podataka lica pohranjenoj na Flashu putem malog file sustav. Koraci za dodavanje podrške za bazu podataka lica opisani su u nastavku.
Dodajte upravljačke programe za Flash pohranu
Kopirajte upravljački program FlexSPI za Flash sučelje files fsl_flexspi.c i fsl_flexspi.h, te upravljački program za šifriranje podataka files fsl_caam.c i fsl_caam.h sa staze SDK_2_13_0_MIMXRT1170-EVK\uređaji \MIMRX1176\drivers\ u mapu upravljačkih programa example SW.
Dodajte podršku na razini ploče
- Dodajte definicije FlexSPI-ja koji se koristi 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
- 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 pod pločama \ kava \ kava \ kava \ kava \ample SW.
- Poništite odabir opcije "Isključi resurs iz izgradnje" u C/C++ Build > Postavke nakon desnog klika na fileime i otvaranje svojstava za omogućavanje njihove ugradnje u projekt.
- 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.
- Postavite FlexSPI1 izvor takta u file clock_config.c koji se odnosi na aplikaciju aparata za kavu.
Dodajte adapter i podršku srednje razine
- Kopiraj files sln_flash.c, sln_flash.h, sln_encrypt.c i sln_encrypt.h kao upravljački programi adaptera za file sustava i aplikacije s putanje pametnog HMI\coffee_machine\cm7\source\ do izvorne mape example. Ažurirajte novo files:
- Poništite odabir "Isključi resurs iz izgradnje" na njima za izgradnju.
- Promijenite sva uključena zaglavlja file naziv sln_flash_config.h do sln_flash_config_w25q256jvs.h.
- Kopirajte mapu filesustav koji sadrži API-je za male filesustav i HAL drajver od pametnog HMI \coffee_machine\cm7\source\ do example SW. I ažuriranje za novu mapu:
- Poništite opciju "Isključi resurs iz izgradnje" na njemu za izgradnju.
- Dodajte uključeni put za njega u postavkama projekta: “${workspace_loc:/${ProjName}/filesustav}”
- 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.
- Kopirajte mapu littlefs koja sadrži srednji ware – little filesustav od putanje SDK_2_13_0_ MIMXRT1170-EVK\middleware\ do example SW. I ažurirajte novu mapu:
- Poništite opciju "Isključi resurs iz izgradnje" na njemu za izgradnju.
- Dodajte uključeni put za njega u postavkama projekta: “${workspace_loc:/${ProjName}/littlefs}”
Dodajte HAL upravljačke programe
- Postoje dva HAL uređaja – file sustav i baza podataka lica HAL podržan za značajku pristupa bazi podataka i već su implementirani u okviru bez ikakvih promjena. Omogućite ih dodavanjem definicija u nastavku u board_define.h:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
I promijenite naziv baze podataka lica za example: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”
Dodajte podršku na razini aplikacije
- Ažurirajte glavni file lvgl_gui_face_rec_cm7.cpp:
- Uključite zaglavlje file vezano za Flash file HAL upravitelj sustava dodavanjem linije koda: #include “fwk_flash.h”
- Prijaviti i registrirati file sustav HAL uređaj:
- HAL_FLASH_DEV_DECLARE(Littlefs);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Bilješka: The file sustav 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() za konfiguraciju MPU-a.
- Postavite file dodjela sustava na Flash u file app_config.h definiranjem makro definicija koje se koriste u file sln_flash_littlefs.h:
- #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #definiraj FICA_FILE_SYS_SIZE (0x280000)
Konfiguracije
Neki kodovi koji se odnose na Flash izvršavaju se u SRAM ITC području za dovoljnu izvedbu. Kopirajte mapu linkscripts koja sadrži konfiguracije povezivača iz staze smart HMI\coffee_machine\cm7\ na example SW.
Implementirajte LVGL GUI aplikaciju
Razvoj LVGL GUI aplikacije temeljene na okviru poziva API-je iz izlaznog UI HAL-a i osigurava API-je za izlazni UI HAL (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 ovoj prampdizajniran je kako je opisano na početku odjeljka Odjeljak 4.
U nastavku je uvod u implementaciju:
- Prilagođeni kodovi implementirani su u custom.c i custom.h koje daje GUI Guider kao sučelje između projekta GUI Guider i projekta ugrađenog sustava.
- Dodajte nove funkcije pod nazivom gui_xxx() u custom.c kako biste postigli sljedeće funkcije:
- Za izlaz UI HAL i GUI aplikacija za ažuriranje UI.
- Za aplikaciju GUI koja pokreće događaje pozivanjem funkcija povratnog poziva sučelja iz izlaznog sučelja HAL.
Na primjerample, 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 odgovarajući gumb.
Napomena: Funkcija gui_set_virtual_face() pozvana u izlaznom korisničkom sučelju HAL za preview način rada treba implementirati u custom.c:
- Klonirajte funkciju gui_set_virtual_face() iz pametnog HMI\coffee_machine\cm4\custom \custom.c.
- Promijenite naziv widgeta home_img_cameraPreview na screen_img_camera_preview u funkciji.
- Implementirajte funkcije povratnog poziva korisničkog sučelja s istim prototipom na sve one u izlaznom UI HAL-u pod kontrolom definicije makronaredbe #ifndef RT_PLATFORM u custom.c kako bi bile kompatibilne s projektom GUI Guider jer te funkcije u izlaznom UI HAL-u ovise o ugrađena platforma. U custom.c, oni ovise o simulatoru na GUI vodiču i neovisni su o ugrađenoj platformi. Na primjerample, povratni poziv registracije lica implementiran je kao ispod za GUI Guider simulator koji radi: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = netočno; povratak; }
Bilješka: Pogledajte isti prototip funkcije predstavljene u koraku 6 odjeljka 4.1.3
Makro definicija RT_PLATFORM postavljena je na postavke projekta MCUXpresso kao što je prikazano na slici 7: - 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 za dijeljenje GUI API-ja s HAL izlazom UI-ja.
- Dodajte nove funkcije pod nazivom gui_xxx() u custom.c kako biste postigli sljedeće funkcije:
- Razvijte GUI na GUI Guideru:
- Clone the folder camera preview koji sadrži projektni softver GUI Guider u mapi gui_guider u osnovnom programskom paketu lvgl_gui_camera_preview_cm7. Promijenite povezani naziv camera_preview na face_rec za novog bivšegample.
- Kopirajte gornji ažurirani custom.c i custom. h novom projektnom softveru GUI Guider.
- Otvorite novi projekt face_rec na GUI Guideru. Ažurirajte kao u nastavku:
- Dodajte novi gumb s oznakom Izbriši korisnika. Dodajte mu oznaku Hidden kako bi gumb bio skriven 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 "Otpušteno" u postavkama 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 gumba Registracija:
- Ažurirajte generirani kod iz GUI Guidera na MCUXpresso projekt.
- Zamijenite sadržaj osim slika mape u mapi generiranoj SW projekta MCUXpresso s odgovarajućim sadržajima u mapi generiranoj SW projekta GUI Guider.
Bilješka: Za više detalja o gore navedenim izmjenama, provjerite prampsoftver na https://mcuxpresso.nxp.com/appcodehub.
Provjere s example projekt
Da dobijem bivšegampsoftverski paket koji sadrži resurse i alate za ovu aplikaciju Napomena, posjetite: https://mcuxpresso.nxp.com/appcodehub. Otvori exampprojekt na MCUXpresso IDE. Izgradite i programirajte .axf file na adresu 0x30000000 i programirajte spremnik resursa file kamera_preview_resource.bin na adresu 0x30800000.
LVGL GUI prepoznavanje lica prample radi normalno kao ispod:
- prijeview: S uključivanjem, video streamovi snimljeni kamerom prikazuju se na određenom području kamere preview na GUI zaslonu. Oznaka statusa prikazuje "Preview…”. Za detalje pogledajte sliku 3. Gumb Izbriši korisnika je skriven. Kada kliknete na područje izvan gumba i slika, prikazuje se preview navedite kao gore nakon završetka registracije ili prepoznavanja lica.
- Registracija:
- tartup: Kada se klikne gumb Registracija, počinje registracija lica. Oznaka statusa mijenja se u prikaz "Registracija...", pravokutnik vodiča za lice postaje plav, a traka napretka počinje prikazivati napredak. Provjerite prikazuje li se lice korisnika u plavom pravokutniku vodiča za lice radi registracije.
- uspjeh: Oznaka statusa prikazuje "Registracija...OK" i ID broj registriranog korisnika, pravokutnik vodiča za lice postaje crven ako je registracija lica uspješna prije nego što se napredak pokaže pun na traci.
- Neuspjeh -> Istek vremena: Oznaka statusa prikazuje "Registration…Time out" ako registracija lica i dalje nije uspjela kada je napredak prikazan pun na traci.
- Neuspjeh -> Umnožavanje: oznaka statusa prikazuje "Registracija... neuspjela", pravokutnik vodiča za lice postaje zelen ako je registrirano lice prepoznato prije nego što se napredak prikaže u cijelosti na traci.
- ecognition:
- Pokretanje: Kada se klikne gumb Prepoznavanje, počinje prepoznavanje lica. Oznaka statusa mijenja se u prikaz "Prepoznavanje...", pravokutnik vodiča za lice postaje plav, a traka napretka počinje prikazivati napredak. Provjerite je li korisnikovo lice prikazano u plavom pravokutniku vodiča za lice radi registracije.
- uspjeh: Oznaka statusa prikazuje "Prepoznavanje...OK" i ID broj prepoznatog korisnika, pravokutnik vodiča za lice postaje zelen ako je prepoznavanje lica uspješno prije nego što se napredak pokaže pun na traci. Na tom se mjestu pojavljuje gumb Izbriši korisnika. To znači da je korisnika dopušteno brisati tek kada se prepozna.
- bolest: Oznaka statusa prikazuje "Prepoznavanje... Isteklo" ako prepoznavanje lica i dalje nije uspjelo kada je napredak prikazan pun na traci.
- Izbriši korisnika: Kada se klikne gumb "Izbriši korisnika", nakon što je prepoznavanje lica uspješno, oznaka statusa se mijenja u prikaz "Izbriši korisnika...OK" s pravokutnikom vodiča za lice koji postaje plav, a napredak prikazuje punu traku. Gumb Izbriši korisnika ponovno je skriven. Prepoznato lice/korisnik se briše iz baze podataka. To znači da se ovo lice/korisnik ne može prepoznati dok se ponovno ne registrira.
Napomena o izvornom kodu u dokumentu
Exampkod prikazan u ovom dokumentu ima sljedeća licenca za autorska prava i klauzulu BSD-3:
Autorsko pravo 2024 NXP Redistribucija i korištenje u izvornom i binarnom obliku, sa ili bez izmjena, dopušteni su pod uvjetom da su ispunjeni sljedeći uvjeti:
- Redistribucije izvornog koda moraju zadržati gornju obavijest o autorskim pravima, ovaj popis uvjeta i sljedeće odricanje od odgovornosti.
- Redistribucije u binarnom obliku moraju reproducirati gornju obavijest o autorskim pravima, ovaj popis uvjeta i sljedeće odricanje od odgovornosti u dokumentaciji i/ili drugim materijalima moraju biti dostavljeni uz distribuciju.
- Niti ime nositelja autorskih prava niti imena njegovih suradnika ne smiju se koristiti za podržavanje ili promoviranje proizvoda izvedenih iz ovog softvera bez posebne prethodne pismene dozvole
OVAJ SOFTVER PRUŽAJU NOSITELJI AUTORSKIH PRAVA I SURADNICI "KAKV JEST" I SVA IZRIČITA ILI POSREDNA JAMSTVA, UKLJUČUJUĆI, ALI NE OGRANIČENO NA, POSREDNA JAMSTVA PRODAJE I PRIKLADNOSTI ZA ODREĐENU NAMJENU SU ODRICAN. NI U KOJEM SLUČAJU NOSITELJ AUTORSKOG PRAVA ILI SURADNICI NEĆE BITI ODGOVORNI ZA BILO KAKVU IZRAVNU, NEIZRAVNU, SLUČAJNU, POSEBNU, EKZEMPLARNU ILI POSLJEDIČNU ŠTETU (UKLJUČUJUĆI, ALI NE OGRANIČENO NA, NABAVU ZAMJENSKE ROBE ILI USLUGE; GUBITAK KORIŠTENJA, PODATAKA ILI DOBITI; ILI PREKIDA U POSLOVANJU) BILO KAKO DA JE UZROKOVAN I NA BILO KOJOJ TEORIJI ODGOVORNOSTI, BILO U GOVORU, STRIKTNOJ ODGOVORNOSTI ILI DELIKTU (UKLJUČUJUĆI NEMAR ILI NA DRUGI NAČIN) KOJI PROIZILAZE IZ UPOTREBE OVOG SOFTVERA, ČAK I AKO BUDU UPOZORENI O MOGUĆNOSTI TAKVE ŠTETE.
Povijest revizija
Pravne informacije
Definicije
Nacrt — status nacrta na dokumentu označava da je sadržaj još uvijek pod internom revizijomview i podliježe formalnom odobrenju, koje može rezultirati izmjenama ili dodacima. NXP Semiconductors ne daje nikakva zastupanja niti jamstva u pogledu točnosti ili potpunosti informacija uključenih u radnu verziju dokumenta i neće snositi nikakvu odgovornost za posljedice korištenja takvih informacija.
Odricanje
- Ograničeno jamstvo i odgovornost — Vjeruje se da su informacije u ovom dokumentu točne i pouzdane. Međutim, NXP Semiconductors ne daje nikakva jamstva, izričita ili implicitna, u pogledu točnosti ili potpunosti takvih informacija i neće snositi nikakvu odgovornost za posljedice korištenja takvih informacija. NXP Semiconductors ne preuzima odgovornost za sadržaj u ovom dokumentu ako ga je dostavio izvor informacija izvan NXP Semiconductors.
NXP Semiconductors ni u kojem slučaju neće biti odgovoran za bilo kakvu neizravnu, slučajnu, kaznenu, posebnu ili posljedičnu štetu (uključujući – bez ograničenja – izgubljenu dobit, izgubljenu ušteđevinu, prekid poslovanja, troškove povezane s uklanjanjem ili zamjenom bilo kojeg proizvoda ili troškove prerade) bilo ili ne, te se štete temelje na deliktu (uključujući nemar), jamstvu, 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 tvrtke NXP Semiconductors prema kupcu za ovdje opisane proizvode bit će ograničena u skladu s Odredbama i uvjetima komercijalne prodaje tvrtke NXP Semiconductors. - Pravo na izmjene — 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 obavijesti. Ovaj dokument poništava i zamjenjuje sve informacije dostavljene prije njegove objave.
- Prikladnost za korištenje — Proizvodi tvrtke NXP Semiconductors nisu dizajnirani, odobreni ili za koje se jamči da su prikladni za upotrebu u sustavima ili opremi za održavanje života, kritičnim za život ili sigurnost, niti u primjenama u kojima se opravdano može očekivati da kvar ili kvar proizvoda tvrtke NXP Semiconductors rezultira tjelesne ozljede, smrt ili teška imovinska ili ekološka šteta. NXP Semiconductors i njegovi dobavljači ne prihvaćaju nikakvu odgovornost za uključivanje i/ili korištenje proizvoda NXP Semiconductors u takvu opremu ili aplikacije i stoga je takvo uključivanje i/ili korištenje na vlastitu odgovornost kupca.
- Prijave — Prijave koje su ovdje opisane za bilo koji od ovih proizvoda samo su u ilustrativne svrhe. NXP Semiconductors ne izjavljuje niti jamči da će takve aplikacije biti prikladne za navedenu upotrebu bez daljnjeg testiranja ili modifikacije.
Kupci su odgovorni za dizajn i rad svojih aplikacija i proizvoda koji koriste proizvode tvrtke NXP Semiconductors, a tvrtka NXP Semiconductors ne prihvaća nikakvu odgovornost za bilo kakvu pomoć s aplikacijama ili dizajnom proizvoda za korisnike. Isključiva je odgovornost kupca da utvrdi je li proizvod tvrtke 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 bi trebali osigurati odgovarajuće zaštitne mjere za dizajn i rad kako bi smanjili rizike povezane s njihovim aplikacijama i proizvodima. NXP Semiconductors ne prihvaća nikakvu odgovornost u vezi s bilo kakvim nedostatkom, štetom, troškovima ili problemom koji se temelji na bilo kakvoj slabosti ili nedostatku u kupčevim aplikacijama ili proizvodima, ili primjeni ili korištenju od strane korisnika treće strane. Kupac je odgovoran za provođenje svih potrebnih testiranja za kupčeve aplikacije i proizvode koristeći proizvode tvrtke NXP Semiconductors kako bi se izbjegla greška aplikacija i proizvoda ili aplikacije ili korištenja od strane kupaca treće strane. NXP ne prihvaća nikakvu odgovornost u tom pogledu. - Uvjeti komercijalne prodaje — Proizvodi tvrtke NXP Semiconductors prodaju se u skladu s općim uvjetima komercijalne prodaje, objavljenima na https://www.nxp.com/profile/uvjeti, osim ako nije drugačije dogovoreno valjanim pisanim pojedinačnim ugovorom. U slučaju sklapanja pojedinačnog ugovora primjenjivat će se samo uvjeti dotičnog ugovora. NXP Semiconductors ovim se izričito protivi primjeni kupčevih općih uvjeta u vezi s kupnjom proizvoda NXP Semiconductors od strane kupca.
- Kontrola izvoza — Ovaj dokument, kao i predmet(i) opisani u njemu, mogu podlijegati propisima o kontroli izvoza. Za izvoz može biti potrebno prethodno odobrenje nadležnih tijela.
- Prikladnost za upotrebu u proizvodima koji nisu kvalificirani za automobile — Osim ako ovaj dokument izričito ne navodi da je ovaj određeni proizvod tvrtke NXP Semiconductors kvalificiran za automobile, proizvod nije prikladan za upotrebu u automobilima. Nije kvalificiran niti testiran u skladu s automobilskim testiranjem ili zahtjevima primjene. NXP Semiconductors ne prihvaća nikakvu odgovornost za uključivanje i/ili korištenje proizvoda koji nisu kvalificirani za automobile u automobilskoj opremi ili aplikacijama.
U slučaju da korisnik koristi proizvod za projektiranje i upotrebu u automobilskim aplikacijama prema automobilskim specifikacijama i standardima, kupac (a) će koristiti proizvod bez jamstva NXP Semiconductors za proizvod za takve automobilske primjene, upotrebu i specifikacije, i ( b) kad god kupac koristi proizvod za automobilsku primjenu izvan specifikacija NXP Semiconductors, takva će uporaba 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 proizvod koji proizlaze iz korisničkog dizajna i upotrebe proizvod za automobilsku primjenu izvan standardnog jamstva NXP Semiconductors i specifikacije proizvoda NXP Semiconductors. - Prijevodi — Neengleska (prevedena) verzija dokumenta, uključujući pravne informacije u tom dokumentu, služi samo za referencu. Engleska verzija ima prednost u slučaju bilo kakvog neslaganja između prevedene i engleske verzije.
- Sigurnost — Kupac razumije da svi NXP proizvodi mogu biti podložni neidentificiranim ranjivostima ili mogu podržavati utvrđene sigurnosne standarde ili specifikacije s poznatim ograničenjima. Kupac je odgovoran za dizajn i rad svojih aplikacija i proizvoda tijekom njihovog životnog ciklusa kako bi se smanjio učinak ovih ranjivosti na kupčeve aplikacije i proizvode. Odgovornost korisnika također se proteže na druge otvorene i/ili vlasničke tehnologije koje podržavaju NXP proizvodi za korištenje u korisničkim aplikacijama. NXP ne prihvaća nikakvu odgovornost za bilo kakvu ranjivost. Korisnik bi trebao redovito provjeravati sigurnosna ažuriranja od NXP-a i prikladno ih pratiti. Kupac će odabrati proizvode sa sigurnosnim značajkama koje najbolje zadovoljavaju pravila, propise i standarde namjeravane primjene i donijeti konačne odluke o dizajnu u vezi sa svojim proizvodima te je isključivo odgovoran za usklađenost sa svim zakonskim, regulatornim i sigurnosnim zahtjevima koji se odnose na njegove proizvode, bez obzira bilo kakvih informacija ili podrške koju može pružiti NXP.
NXP ima Product Security Incident Response Team (PSIRT) (dostupan na PSIRT@nxp.com) koji upravlja istragom, izvješćivanjem i izdavanjem rješenja za sigurnosne propuste NXP proizvoda.
NXP BV — NXP BV nije operativna tvrtka i ne distribuira niti prodaje proizvode.
Zaštitni znakovi
Obavijest: Sve navedene robne marke, nazivi proizvoda, nazivi usluga i zaštitni znakovi vlasništvo su svojih vlasnika.
NXP — riječni znak i logotip zaštitni su znakovi 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 — zaštitni su znakovi i/ili registrirani 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 pridržana.
- i.MX — je zaštitni znak NXP BV
- J-Link — je zaštitni znak tvrtke SEGGER Microcontroller GmbH.
Microsoft, Azure i ThreadX — zaštitni su znakovi grupe tvrtki Microsoft.
Imajte na umu da su važne obavijesti koje se tiču ovog dokumenta i proizvoda koji su ovdje opisani uključene u odjeljak 'Pravne informacije'.
© 2024 NXP BV
Za više informacija posjetite: https://www.nxp.com
- Datum izdavanja: 19. travnja 2024
- Identifikator dokumenta: AN14263
FAQ
P: Koja je glavna svrha ovog proizvoda?
O: Glavna svrha je omogućiti funkciju prepoznavanja lica pomoću modela algoritma vida AI&ML s jednostavnim LVGL GUI example na SLN-TLHMI-IOT ploči.
P: Kako programeri mogu imati koristi od ove napomene o aplikaciji?
O: Razvojni programeri mogu naučiti kako implementirati prepoznavanje lica na okviru korak po korak pomoću ponuđenog exampi razumjeti uključene upravitelje uređaja, HAL uređaje i mehanizme događaja.
Dokumenti / Resursi
![]() |
NXP AN14263 Implementacija LVGL GUI prepoznavanja lica na Frameworu [pdf] Korisnički priručnik AN14263 Implementiraj LVGL GUI prepoznavanje lica na Frameworu, AN14263, Implementiraj LVGL GUI prepoznavanje lica na Frameworu, LVGL GUI prepoznavanje lica na Frameworu, prepoznavanje lica na Frameworu, prepoznavanje na Frameworu, Framewor |