NXP AN14263 Implementa LVGL GUI Face Recognition in Framewor
Informazione di u produttu
Specificazioni
- Nome di u produttu: LVGL GUI Face Recognition in Framework
- Revisione di u documentu: 1 - 19 d'aprile 2024
- Parole chjave: Ricunniscenza facciale, GUI LVGL, Framework
Istruzzioni per l'usu di u produttu
- Overview
Stu pruduttu permette un mudellu d'algoritmu di visione AI & ML per u ricunniscenza facciale in un quadru per implementà a funzione di ricunniscenza facciale cù una GUI LVGL simplice ex.ample nantu à a scheda SLN-TLHMI-IOT. - Framework Overview
U software di suluzione hè cuncepitu intornu à l'architettura di u quadru chì include i gestori di i dispositi rispunsevuli di gestisce i dispositi, i dispositi HAL per astrarre i dettagli sottostanti, è l'avvenimenti per a cumunicazione trà e diverse dispositi. - Features
U pruduttu permette l'implementazione di a funzione di ricunniscenza facciale via camera preview nantu à u screnu GUI cù i buttoni per attivà a registrazione di a faccia, a ricunniscenza è a rimozione. I dati faccia arregistrati sò almacenati in Flash via a file sistema. - Cuntenutu di nota di l'applicazione
A nota di l'applicazione presenta una schermu GUI LVGL cù camera preview è i buttoni per azzione face-riguardanti. Aiuta i sviluppatori à capisce u quadru è cumu implementà a ricunniscenza facciale usendu l'ex furnituample.
Overview
NXP hà lanciatu un kit di sviluppu di suluzione chjamatu SLN-TLHMI-IOT chì si cuncentra in l'applicazioni HMI intelligenti. Permette l'HMI intelligente cù visione ML, voce è interfaccia grafica implementata in un MCU NXP i.MX RT117H. Basatu nantu à u SDK, u software di suluzione hè custruitu nantu à un disignu chjamatu framework chì sustene disinni flessibili è persunalizazione di e funzioni di visione è voce. Per aiutà l'utilizatori à utilizà megliu a piattaforma di u software, alcuni documenti di basa sò furniti, per esempiuample, a guida di l'utilizatori di sviluppu di software. A guida introduce u disignu di u software di basa è l'architettura di l'applicazioni chì copre tutti i cumpunenti di a suluzione, cumpresu u quadru per aiutà i sviluppatori à implementà più facilmente è in modu efficiente e so applicazioni cù SLN-TLHMI-IOT.
Per più dettagli nantu à a suluzione è i ducumenti pertinenti, visitate u web pagina di a Soluzione NXP EdgeReady Smart HMI Basata nantu à i.MX RT117H cù ML Vision, Voice, è Grafica UI. Tuttavia, ùn hè micca cusì faciule per i sviluppatori di implementà e so applicazioni HMI intelligenti in riferimentu à queste guide basi. Una seria di note d'applicazione sò previste per aiutà à studià u sviluppu nantu à u quadru passu à passu. Questa nota di l'applicazione hè basata nantu à Implementu LVGL GUI Camera Preview nantu à Framework (document AN14147). Questa nota di l'applicazione descrive cumu attivà u mudellu di l'algoritmu di visione AI&ML per u ricunniscenza facciale nantu à u quadru per implementà a funzione di ricunniscenza facciale via camera pre.view nant'à u screnu GUI cù una semplice LVGL GUI example nantu à a scheda SLN-TLHMI-IOT. In a nota di l'applicazione, l'example presenta una pantalla GUI LVGL cù una camera preview è alcuni buttoni per attivà a registrazione di a faccia, a ricunniscenza è a rimozione. I dati faccia arregistrati sò guardati in Flash via un pocu file sistema.
À un altu livellu, a nota di l'applicazione cuntene i seguenti cuntenutu:
- Attivà a funzione di ricunniscenza facciale nantu à u quadru.
- Aghjunghjite u supportu di basa di dati faccia nantu à u quadru via file sistema nantu à Flash.
- Implementa l'app LVGL GUI. Attraversu l'introduzioni sopra, stu documentu aiuta i sviluppatori à:
- Capisce u framework è u software di soluzione intelligente HMI più profondamente.
- Sviluppà a so ricunniscenza facciale AI&ML nantu à u framework cù l'app LVGL GUI.
Framework finituview
U software di suluzione hè principarmenti cuncepitu intornu à l'usu di l'architettura di u quadru chì hè cumpostu di parechje parti diffirenti:
- I gestori di i dispositi - a parte core
- Dispositivi Hardware Abstraction Layer (HAL).
- Missaghji / Avvenimenti
Comu mostra in a Figura 1, l'overview di u mecanismu di u quadru hè:
I gestori di i dispositi sò rispunsevuli di gestisce i dispositi utilizati da u sistema. Ogni tipu di dispositivu (input, output, etc.) hà u so propiu gestore di dispusitivu specificu. Cù un gestore di dispositi chì principia dopu à i dispositi chì sò registrati à questu, aspetta è verifica un missaghju per trasfiriri dati à i dispositi è à l'altri gestori dopu l'inizializazione è l'iniziu di i dispositi arregistrati. I dispusitivi HAL sò scritti sopra à u codice di u driver di livellu più bassu, aiutendu à aumentà a capiscibilità di u codice astrattendu parechji di i dettagli sottostanti.
L'avvenimenti sò un mezzu per quale l'infurmazione hè cumunicata trà e diverse dispositi via i so gestori. Quandu un avvenimentu hè attivatu, u dispositivu chì hà ricevutu prima l'avvenimentu cumunicà quellu avvenimentu à u so manager, dopu à u turnu notifica à l'altri amministratori designati per riceve l'avvenimentu.
U disignu architettonicu di u quadru era centratu nantu à trè scopi primari:
- Facilità di usu
- Flessibilità / Portabilità
- Prestazione
U quadru hè cuncepitu cù u scopu di accelerà u tempu di mercatu per a visione è altre applicazioni di apprendimentu di macchina. Per assicurà un tempu rapidu à u mercatu, hè criticu chì u software stessu hè faciule da capisce è mudificà. Mantene stu scopu in mente, l'architettura di u quadru hè faciule da mudificà senza esse restrittivi, è senza vene à u costu di u rendiment.
Per più dettagli nantu à u framework, vede Smart HMI Software Development User Guide (document MCU-SMHMI-SDUG).
Biblioteca grafica leggera è versatile (LVGL)
LVGL (Biblioteca Grafica Luce è Versatile) hè una libreria grafica libera è open-source chì furnisce tuttu ciò chì avete bisognu per creà una GUI integrata cù elementi grafichi facili da aduprà, belli effetti visuali è impronta di memoria bassa.
Guider GUI
GUI Guider hè un strumentu di sviluppu di l'interfaccia grafica di l'utilizatore da NXP chì permette un sviluppu rapidu di display di alta qualità cù a libreria grafica LVGL open-source. L'editore di drag-and-drop di GUI Guider facilita l'usu di parechje funzioni di LVGL cum'è widgets, animazioni è stili per creà una GUI cù codificazione minima o senza codificazione.
Cù u clicu di un buttone, pudete eseguisce a vostra applicazione in un ambiente simulatu o esportà à un prughjettu di destinazione. U codice generatu da GUI Guider pò esse facilmente aghjuntu à u vostru prughjettu, accelerà u prucessu di sviluppu è vi permette di aghjunghje senza saldatura una interfaccia d'utilizatore integrata à a vostra applicazione. GUI Guider hè liberu d'utilizà cù u scopu generale di NXP è MCU crossover è include mudelli di prughjettu integrati per parechje piattaforme supportate. Per sapè di più nantu à u sviluppu di LVGL è GUI in GUI Guider, verificate Light and Versatile Graphics Library è GUI Guider.
Ambiente di sviluppu
Prima, preparate è cunfigurà l'ambiente hardware è software per implementà l'example nantu à u quadru.
Ambiente hardware
L'ambiente hardware hè stallatu per verificà l'exampLe:
- U kit di sviluppu HMI intelligente basatu annantu à NXP i.MX RT117H (u kit SLN_TLHMI_IOT)
- SEGGER J-Link cù un adattatore Cortex-M 9-pin è V7.84a o una versione più nova di u driver
Ambiente Software
L'ambiente di u software hè stallatu per sviluppà l'exampLe:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 - esampu codice di a seconda applicazione nota cum'è u software di basa di u sviluppu. Per i dettagli, vede https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 - cum'è a risorsa di codice per u sviluppu.
- Software SLN-TLHMI-IOT V1.1.2 - codice fonte HMI intelligente liberatu nantu à u repository NXP GitHub cum'è a risorsa di codice per u sviluppu. Per i dettagli, vede: GitHub - NXP/mcu-smhmi à v1.1.2
Per i dettagli nantu à l'acquistu è a cunfigurazione di l'ambiente di u software, vede: Accuminciamentu cù u SLN-TLHMI-IOT.
Architettura di visione nantu à u quadru
L'architettura di visione nantu à u quadru hè mostrata in Figura 2. L'algori di visione HAL (OASIS_HAL) hà i prucessi sottu:
- Fate a registrazione di a faccia è u ricunniscenza attraversu u mudellu di l'algoritmu di visione AI&ML dopu avè ricevutu l'avvenimenti cunnessi da l'output UI HAL. Notificà i risultati di inferenza da u mudellu di l'algoritmu à l'output UI HAL.
- Accessu (aghjunghje, sguassate ...) a basa di dati di e caratteristiche di a faccia basatu nantu à u pocu file sistema chjamendu l'API di FaceDB HAL dopu avè ricevutu l'avvenimenti cunnessi da l'output UI HAL.
- Richiede u quadru di video di a camera da a camera HAL quandu fate a registrazione è u ricunniscenza facciale.
Implementà a ricunniscenza facciale nantu à u quadru
A ricunniscenza facciale LVGL GUI example (l'example hè furnitu dopu) nantu à u quadru hè implementatu basatu annantu à l'example codici di Implementa LVGL GUI Camera Preview nantu à Framework (document AN14147).
Per dimustrà u ricunniscenza facciale in l'example, a funzione basica di l'app GUI (vede a pantalla principale in a Figura 3) hè cuncepita cum'è descritta quì sottu:
- L'app GUI attiva a registrazione di faccia o l'avvenimentu di ricunniscenza à l'output UI HAL quandu cliccate nantu à u buttone Registrazione o ricunniscenza. È l'output UI HAL notifica l'avvenimentu di aghjunghje un utilizatore à l'algori di visione HAL dopu chì a registrazione faccia hè successu.
- L'app GUI attiva l'eventu di sguassà un utilizatore à l'output UI HAL quandu cliccà u buttone Elimina User dopu chì a faccia di l'utilizatore hè ricunnisciuta.
- L'app GUI attiva l'eventu di piantà l'algo di oasi in esecuzione à l'output UI HAL quandu clicchendu u screnu fora di i buttoni è l'imaghjini.
Preparate u pacchettu di software per l'implementazione di l'example.
- Clona u software di basa lvgl_gui_camera_preview_cm7. Cambia u nome di u prughjettu è u principale filenome à lvgl_gui_face_rec_cm7.
- U quadru hè necessariu esse aghjurnatu in u software cum'è i codici fonte per u core di u framework anu cuminciatu à esse publicu in GitHub da a versione 1.1.2.
- Sustituisce u cartulare di u quadru cù a copia di V1.1.2 da GitHub eccettu per u files fwk_log.h è fwk_common.h sottu inc\ cum'è sò stati mudificati per a serie di nota di l'applicazione. L'operazioni sò mostrate in Figura 4:
- Eliminate u cartulare framework_cm7 sottu u gruppu libs è sguassate a libreria framework_cm7 è a so strada di ricerca cunfigurata in Project> Properties> C/C++ Build> settings> Tool Settings> MCU C++ Linker> Libraries postu chì u codice fonte di u core hè furnitu.
Abilita a funzione di ricunniscenza facciale nantu à u framework
A funzione di ricunniscenza facciale hè custruita annantu à u mudellu di l'algoritmu di visione ML furnitu cum'è una biblioteca statica - una biblioteca di runtime oasis lite da NXP. A biblioteca hè una piccula biblioteca AI altamente efficiente, persunalizata è ottimizzata. U mudellu include a rilevazione di a faccia, a ricunniscenza di a faccia, a rilevazione di vetru è a rilevazione di vivacità. Fornisce principalmente l'API OASISLT_run_extended () per eseguisce u pipeline di ricunniscenza facciale mentre aghjurnà i risultati à u chjamante attraversu callbacks di l'avvenimenti, è aghjunghje / aghjurnà / sguassate facce in a basa di dati attraversu i callbacks di basa di dati di faccia dopu avè specificatu l'infurmazioni di u quadru di fonte, i callbacks è a memoria. pool utilizatu da a biblioteca chjamendu un altru API OASISLT_init () in l'inizializazione. A chjama di l'API è e funzioni di callback sò implementate in a visione algo HAL di u quadru.
Aghjunghjite a biblioteca di mudelli di visione algo
- Copia u cartulare oasis chì cuntene a biblioteca è l'intestazione ligata file da smart HMI\coffee_machine\cm7\libs\ in u cartulare libs di l'exampu SW.
- Aghjunghjite u percorsu di ricerca di l'intestazione file in Prughjettu> Proprietà> C/C++ Build> paràmetri> Configurazione di Strumenti> MCU C compilatore> Include è MCU C++ compilatore> Include: "${workspace_loc:/${ProjName}/libs/oasis/include}"
- Aghjunghjite a lib è u so percorsu di ricerca in Project> Properties> C/C++ Build> settings> MCU C+ + Linker> Libraries: liboasis_lite2D_DEFAULT_117f_ae.a "${workspace_loc:/${ProjName}/libs/oasis}" è a definizione macro à attivate a funzione in Prughjettu> Proprietà> C/C++ Build> paràmetri> Configurazione di strumenti> MCU C compilatore> Preprocessor è MCU C++ compilatore> Preprocessore: SMART_TLHMI_2D
Abilita a visione algo HAL
L'algo di visione HAL guida u mudellu di visione algo per travaglià è risponde à i risultati à l'output di UI HAL dopu avè ricevutu l'avvenimenti da ellu.
Per attivà, clone u driver HAL simili esistente file induve e seguenti funzioni sò implementate:
- Implementa i callbacks di l'operazioni di basa di dati di faccia è a gestione di l'avvenimenti.
- Cunduce l'algo di visione per travaglià chjamendu l'API di a biblioteca di l'oasi.
- Accessu à a basa di dati di a faccia di l'utilizatori è a basa di dati di l'app (ùn hè micca necessariu in l'example).
- Riceve l'avvenimenti da è mandà risultati à l'output UI HAL.
I travaglii maiò per implementà a HAL per l'exampsò:
- Clona u driver HAL simili esistente file è cambià i nomi rilativi.
- Eliminate i codici ligati à l'operazione di dati di l'app.
- Aghjurnate e definizione è e funzioni per a gestione di l'avvenimenti da l'output UI HAL per l'exampcuncepimentu.
- Aghjunghjite e cunfigurazioni necessarie in l'inizializazione di l'oasi.
I passi dettagliati sò cum'è quì sottu:
- Clone hal_vision_algo_oasis_coffeemachine.c. Cambia u filenomu à hal_vision_algo_oasis_guifacerec.c. È rimpiazzà tutte e corde CoffeeMachine cù GUIFaceRec in u file.
- Eliminate i codici chì cuntenenu a stringa coffeedb (micca sensitiva à u casu) in relazione à a basa di dati di l'app, per esempiuample, #include hal_sln_coffeedb.h.
- Mudificà a funzione HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify () per trattà l'avvenimenti da l'output UI HAL.
- Cambia a definizione di l'avvenimentu kEventFaceRecId_RegisterCoffeeSelection à kEventFaceRecId_RegisterUserFace è a stringa di struttura regCoffeeSelection à regGUIFaceRec per a gestione di l'avvenimentu per aghjunghje novi dati di e caratteristiche di a faccia à a basa di dati.
- Per mustrà u prucessu standard di l'azzioni di ricunniscenza faccia in l'example, mudificà a gestione in u casu di kEventFaceRecID_OasisSetState cù e definizione di i stati:
- koASISLiteState
- Registrazione koASISLiteState
- Ricunniscenza kOASISLiteState
- Fermatu
- Aghjunghjite è mudificà e definizione di l'avvenimenti citati in u passu sopra.
- Copia l'intestazione file smart_tlhmi_event_descriptor.h da smart HMI\coffee_machine \cm7\source\event_handlers\ in u cartulare fonte di l'exampu SW. Aghjurnà u file cum'è quì sottu:
- Cambia a definizione di l'avvenimentu kEventFaceRecId_RegisterCoffeeSelection à kEventFaceRecId_RegisterUserFace in u tipu enum _event_smart_tlhmi_id è a struttura di stringa regCoffeeSelection à regGUIFaceRec in a struttura _event_smart_tlhmi. Allora, cambiate a struttura register_coffee_selection_event_t per regCoffeeSelection à register_gui_facerec_event_t.
- Sguassà l'altri cuntenuti utilizati per l'app per a macchina di caffè, per esempiuample, a linea di codice nantu à a voce: #include "hal_event_descriptor_voice.h".
- Aghjunghjite i tipi kOASISLiteState_Stopped è kOASISLiteState_Running à l'enum tipu oasis_lite_state_t in hal_vision_algo.h sottu framework>hal>vision in u prugettu cum'è quì sottu:
typedef enum _oasis_lite_state {- koASISLiteState
- Corsa, kOASISLiteState
- Arrestata, kOASISLiteState
- ricunniscenza,
- koASISLiteState
- Registrazione, kOASISLiteState
- Deregistration, koASISLiteState
- RemoteRegistration, kOASISLiteState
- Conti
- Aduprate a struct aghjurnata sopra oasis_lite_state_t per raffinà a struct oasis_state_event_t in hal_event_descriptor_face_rec.h sottu framework> hal>vision in u prughjettu cum'è quì sottu: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- Cambia tutti i kEventInfo_Remote à kEventInfo_Local per mandà l'avvenimenti da l'algoritmu di visione HAL à altri HAL chì funzionanu nantu à u stessu core cum'è un core single invece di dual-core hè utilizatu in l'ex.ample.
- Aghjunghjite è mudificà e cunfigurazioni sottu per l'inizializazione di l'oasi in OASISLT_init():
- Aghjunghjite e macro definizione è e sezioni di memoria per u frame video in 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__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __attribute__((aligned(alignbytes)))
- Configurate l'assignazione di memoria à a sezione di memoria di sopra fb_sh_mem in Project> Properties> C/C++ Build> MCU Settings mostrata in Figura 5:
- Dichjarà a variabile globale g_DTCOPBuf in lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Cuntinuà à aghjunghje e definizioni utilizati in a variabile sopra:
- Definite a sezione sopra in board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC (var, alignbytes) \
- attribute__((section(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- attribute__((aligned(alignbytes)))
- Includite l'intestazione file hal_vision_algo.h chì cuntene a definizione macro DTC_OPTIMIZE_BUFFER_SIZE in app_config.h inclusa in lvgl_gui_face_rec_cm7.cpp.
- Aghjunghjite e macro definizione è e sezioni di memoria per u frame video in board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- Pone a variabile s_debugOption à vera per vede u statutu di prugressu nantu à a ricunniscenza facciale.
- Aghjunghjite u percorsu di ricerca di l'intestazione files di a visione HAL nantu à Prughjettu> Proprietà>C/C++ Build> paràmetri> Configurazione Tool> MCU C compilatore> Include è MCU C++ compilatore> Include: "${workspace_loc:/${ProjName}/framework/hal/vision}"
- Aghjunghjite a definizione sottu per attivà l'algodu di visione HAL in board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Abilita l'output UI HAL
L'output UI HAL notifica l'avvenimenti à l'algori di visione HAL è risponde à i risultati di inferenza da l'algori di visione HAL. Cù l'app GUI, l'avvenimenti sò generalmente attivati da l'app è i risultati sò mostrati nantu à l'app.
Per attivà, clone u driver HAL simili esistente file induve sò generalmente implementate e funzioni sottu:
- Notificà l'avvenimenti per u ricunniscenza facciale è l'accessu à a basa di dati.
- Implementa i callbacks per l'app GUI per attivà l'avvenimenti.
- Gestisce i risultati di inferenza da u modulu di visione algo.
- Mostra u prucessu è i risultati di a gestione di l'eventi nantu à l'UI da a barra di prugressu cuntrullata cù i timers è u rettangulu di guida di faccia.
I travaglii maiò per implementà a HAL per l'example usate in stu documentu sò:
- Clona u driver HAL simili esistente file è cambià i nomi rilativi.
- Eliminate i codici ligati à l'app.
- Aghjurnate e funzioni per a notificazione di l'avvenimenti è a risposta di i risultati per l'exampcuncepimentu.
- Aghjunghjite i callbacks per l'app GUI per attivà l'avvenimenti.
I passi dettagliati sò cum'è quì sottu:
- Clone hal_output_ui_coffee_machine.c. Cambia u filenome à hal_ output_ui_guifacerec.c.
- Sustituisce tutte e corde CoffeeMachine cù GUIFaceRec in u file.
- Eliminate i codici ligati à l'app - machine à caffè.
- Eliminate e funzioni WakeUp() è _StandBy() è i codici rilativi (pò cercà a stringa wake_up è standby per elli).
- Eliminate preview Eventi di modu chì gestiscenu i codici rilativi in HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Eliminate e funzioni UI_xxx_Callback() è i codici chì cuntenenu a stringa gui_ è a schermu ligati à a GUI di a macchina di caffè eccettu per gui_set_virtual_face () per u pre.view funziunalità di modu.
- Eliminate tutti i codici implicati cù e variàbili s_IsWaitingAnotherSelection è s_IsWaitingRegisterSelection in relazione cù l'app per a macchina di caffè.
- Eliminate i codici ligati à a voce, l'audio è a lingua. Per esampLe:
- #include "hal_voice_algo_asr_local.h",
- #include "hal_event_descriptor_voice.h"
- Per e diverse notificazioni di l'avvenimenti, implementate e funzioni novi _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), è DeregisterGUIFaceRec() riferenu à e funzioni _StopFaceRec(), _RegisterCoffeeSelection(), è DeregisterCoffeeSelection () prima di deeSelection () .
- U _OutputManagerNotify() implementa a funzione di output di l'avvenimentu di basa per mandà un avvenimentu à l'algo di visione HAL. E funzioni sottu u chjamanu per mandà i so propiu avvenimenti.
- U _SetFaceRec () manda l'avvenimentu kEventFaceRecID_OasisSetState per attivà l'algo di visione per a registrazione di a faccia, ricunniscenza, è piantà l'algo.
- U _RegisterGUIFaceRec () manda l'avvenimentu kEventFaceRecId_RegisterGUIFaceRec chì hè definitu in smart_tlhmi_event_descriptor.h per aghjunghje dati di e caratteristiche di a faccia à a basa di dati quandu a registrazione OK.
- U DeregisterGUIFaceRec () manda l'avvenimentu kEventFaceRecID_DelUser per sguassà e dati di e caratteristiche di a faccia da a basa di dati quandu passa u ricunniscenza facciale.
- Aghjurnà i codici per piglià l'azzioni currispundenti cumprese rinfriscà a GUI chjamendu l'API da l'app LVGL GUI per i risultati di inferenza di registrazione facciale è ricunniscenza in a funzione _InferComplete_Vision () per l'ex.ampu disignu. Per esample, quandu a registrazione faccia hè successu,
- Stop mustrà u prugressu chjamendu _FaceRecProcess_Stop ();
- Stop the face iscrizzione chjamendu _SetFaceRec (kOASISLiteState_Stopped);
- Mostra u risultatu successu nantu à a GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Registrate i dati di a faccia à a basa di dati: _RegisterUserFace(s_UserId);
- Aghjunghjite funzioni di callback UI per trattà l'avvenimenti: preview, registrazione di faccia, ricunniscenza è eliminazione di l'utilizatori attivati da a GUI. Per esample, u callback di registrazione faccia: void UI_Registration_Callback () { _SetFaceRec (kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- È aghjunghje e funzioni _FaceRecProcess_Start () è _FaceRecProcess_Stop () per vede u prugressu è u statutu in i diversi avvenimenti è risultati.
- Aghjurnà a funzione di callback ISR di timer _SessionTimer_Callback () per trattà u casu di time-out chjamendu: gui_show_face_rec_result (kFaceRecResult_TimeOut, s_UserId);
- Aghjunghjite e definizioni sottu per attivà l'output UI HAL in board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Avvisu:
Per prisentà megliu a funzione di ricunniscenza facciale, mantene a funzione per vede u prucessu è i risultati di a ricunniscenza facciale in l'output UI HAL. A funzione hè descritta cum'è quì sottu
- U rectangulu di a guida di a faccia mostra blu, è a barra di prugressu mostra u prugressu quandu principia a registrazione o ricunniscenza di a faccia.
- U rectangulu di a guida di a faccia mostra rossu quandu a registrazione di a faccia hè successu.
- U rectangulu di guida di a faccia mostra verde quandu u ricunniscenza di a faccia hè successu.
- U rectangulu di a guida di a faccia mantene blu, è a barra di prugressu mostra u prugressu cumpletu quandu l'azzione ùn hè micca successu dopu a scadenza di u timer. À quellu puntu, fermate a registrazione di faccia o ricunniscenza.
A barra di prugressu è u rettangulu di guida di a faccia sò presentati cum'è l'icone chì sò integrati in u binariu di risorse file per esse programatu in Flash. L'indicatori à i dati di l'icone nantu à SDRAM sò stallati in a funzione LoadIcons (APP_ICONS_BASE) chjamata nantu à l'inizializazione di u dispositivu UI HAL di output in l'output UI HAL. Deve implementà u supportu di icone per a funzione.
Implementa u supportu di l'icone
- Custruite a risorsa cumminendu l'icone cù l'imaghjini utilizati in l'app LVGL GUI:
- Clona l'intestazione di quattru icone files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, è virtual_face_red_420x426.h da smart HMI
\ macchina di caffè \ risorsa \ icons \ à i novi icone di u cartulare sottu u cartulare di risorse di l'exampu SW. - Aghjunghjite u percorsu di ricerca per i quattru icone files in camera_preview_resource.txt file in u cartulare di risorse, per esempiuample: icona ../resource/icons/process_bar_240x14.h
- Eseguite camera_preview_resource_build.bat per custruisce e risorse d'imaghjini è icone per generà u bin file camera_preview_resource.bin è l'infurmazioni file resource_information_table.txt (Vede a Figura 6).
- Clona l'intestazione di quattru icone files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, è virtual_face_red_420x426.h da smart HMI
- Definite l'indirizzu iniziale in SDRAM è a dimensione di l'icone in app_config.h. L'indirizzu principia accantu à l'imaghjini di l'app GUI. A dimensione hè generata in l'infurmazioni file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Aghjurnate a dimensione assignata di a sezione di memoria chjamata res_sh_mem à 0x200000 ridefiniscendu in app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 è a paràmetra currispondente in Project> Properties> C/C++ Build> MCU settings.
- Aghjunghjite a dimensione di l'icona à a dimensione tutale di a risorsa caricata da Flash à SDRAM in a funzione APP_LoadResource () in u principale file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Avvisu: Per compie a funzione di ricunniscenza facciale, u supportu di l'app LVGL GUI hè necessariu. E funzioni di callback UI in l'output UI HAL sò chjamati da l'app LVGL GUI per trattà l'avvenimenti da a pantalla UI. Per d 'altra banda, l'output UI HAL chjama l'API da l'app LVGL GUI per aghjurnà l'UI per vede u risultatu è u statutu. U sviluppu di l'app LVGL GUI hè relativamente indipendente è introduttu in a Sezione 4.3.
4.1.5 Avviate i dispositi HAL è i gestori per a ricunniscenza facciale
L'algori di visione attivati HAL è UI output HAL è i so gestori sò iniziati in u principale file
lvgl_gui_face_rec_cm7.cpp dopu à e cunversione di sviluppu nantu à u quadru cum'è quì sottu:
- Includite l'intestazione file in relazione cù i dui gestori HAL aghjunghjendu a linea di codice:
- #include " fwk_output_manager.h "
- #include "fwk_vision_algo_manager.h"
- Dichjarà i dispositi HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Registrate i dispositi HAL:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Inizializza i gestori:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT (OutputManager, ret);
- Cumincià i gestori:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Definisce a priorità di i travaglii di u manager:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Aghjunghjite u supportu di basa di dati di faccia nantu à u framework
I dati di e caratteristiche di a faccia registrati sò accessu in a basa di dati di a faccia almacenata in Flash via un pocu file sistema. I passi per aghjunghje u supportu di basa di dati faccia sò discrittu quì sottu.
Aggiungi driver per l'almacenamiento Flash
Copia u driver FlexSPI di l'interfaccia Flash files fsl_flexspi.c è fsl_flexspi.h, è u driver di crittografia di dati files fsl_caam.c è fsl_caam.h da u percorsu SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ à u cartulare di i drivers di l'exampu SW.
Aghjunghjite un supportu à livellu di bordu
- Aghjunghjite e definizione di FlexSPI utilizatu per u dispositivu Flash à bordu in board.h:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Copia l'operatori è e cunfigurazioni files di u dispositivu Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, è sln_flash_ops.h sottu u chjassu smart HMI\coffee_carpeta di u cartulare \coffee\ex_machine\coffee_source.ampu SW.
- Uncheck "Escludi a risorsa da a custruzzione" in C/C++ Build> Settings dopu à cliccà cù u dirittu nantu à u buttone. files' è aprendu e Pruprietà per permette di esse integrate in u prugettu.
- Cambia l'intestazione inclusa filenome sln_flash_config.h à sln_flash_config_w25q256jvs.h in sln_flash_config.c è flexspi_nor_flash_ops.h.
- Pone a fonte di clock FlexSPI1 in u file clock_config.c riferenu à l'app macchina di caffè.
Aghjunghjite l'adattatore è u supportu di livellu mediu
- Copia u files sln_flash.c, sln_flash.h, sln_encrypt.c, è sln_encrypt.h cum'è driver di adattatori per u file sistema è app da u percorsu di smart HMI \ coffee_machine \ cm7 \ source \ à u cartulare fonte di l'example. Aghjurnate u novu files:
- Uncheck "Escludi risorsa da custruisce" nantu à elli per custruisce.
- Cambia tutte l'intestazione inclusa file nome sln_flash_config.h à sln_flash_config_w25q256jvs.h.
- Copia u cartulare filesistema chì cuntene l'API per i picculi filesistema è driver HAL da smart HMI \coffee_machine\cm7\source\ à l'exampu SW. È aghjurnà per u novu cartulare:
- Uncheck "Escludi risorsa da a custruzzione" nantu à questu per a custruzione.
- Aghjunghjite a strada di include in i paràmetri di u prughjettu: "${workspace_loc:/${ProjName}/filesistema}"
- Cambia l'intestazione inclusa file nome sln_flash_config.h à sln_flash_config_w25q256jvs.h è fica_definition.h à app_config.h in u file sln_flash_littlefs.h.
- Copià u cartulare littlefs chì cuntene a media ware - little filesistema da u percorsu SDK_2_13_0_ MIMXRT1170-EVK\middleware\ à l'exampu SW. È aghjurnà u novu cartulare:
- Uncheck "Escludi risorsa da a custruzzione" nantu à questu per a custruzione.
- Aghjunghjite a strada di include in i paràmetri di u prughjettu: "${workspace_loc:/${ProjName}/littlefs}"
Aghjunghjite i driver HAL
- Ci sò dui dispusitivi HAL - file sistema è basa di dati faccia HAL supportatu per a funzione d'accessu à a basa di dati è sò digià implementati in u quadru senza alcunu cambiamentu. Attivateli aghjunghjendu e definizioni sottu in board_define.h:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
È cambia u nome di a basa di dati faccia per l'example: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"
Aghjunghjite u supportu à u livellu di l'app
- Aghjurnate u principale file lvgl_gui_face_rec_cm7.cpp:
- Includite l'intestazione file in relazione cù u Flash file gestore HAL di u sistema aghjunghjendu a linea di codice: #include "fwk_flash.h"
- Dichjarà è registrate file sistema HAL dispusitivu:
- HAL_FLASH_DEV_DECLARE (Littlefs);
- HAL_FLASH_DEV_REGISTER (Littlefs, ret);
Nota: U file U dispusitivu HAL di u sistema deve esse registratu prima chì tutti i gestori di u dispositivu sò inizializzati in a funzione APP_InitFramework ().
- Chjamate a funzione BOARD_ConfigMPU() in APP_BoardInit() per cunfigurà MPU.
- Pone u file assignazione di u sistema nantu à Flash in u file app_config.h definendu e macro definizione utilizati in 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)
Cunfigurazioni
Certi codici di Flash sò eseguiti in l'area SRAM ITC per un rendimentu abbastanza. Copia i linkscripts di u cartulare chì cuntenenu e cunfigurazioni di ligame da u percorsu smart HMI\coffee_machine\cm7\ à l'ex.ampu SW.
Implementa una app GUI LVGL
U sviluppu di una app GUI LVGL basata nantu à u framework chjama l'API da output UI HAL è furnisce l'API per output UI HAL (Vede a Sezione 4.1.3 per l'implementazione di output UI HAL).
Tuttavia, l'implementazione dettagliata di una app LVGL GUI dipende da i requisiti è u disignu di l'applicazione. L'app GUI in questu example hè cuncepitu cum'è descrittu à l'iniziu di a sezione Sezione 4.
Eccu l'introduzioni di implementazione:
- I codici persunalizati sò implementati in custom.c è custom.h datu da GUI Guider cum'è l'interfaccia trà u prughjettu GUI Guider è u prughjettu di u sistema integratu.
- Aghjunghjite e funzioni novi chjamate gui_xxx () in custom.c per ottene e funzioni sottu:
- Per l'output UI HAL è l'app GUI per aghjurnà l'UI.
- Per l'app GUI per attivà l'avvenimenti chjamendu funzioni di richiamata UI da l'output UI HAL.
Per esample, a nova funzione gui_event_face_rec_action() chjama e funzioni di callback UI per trattà unu di l'avvenimenti di registrazione facciale, ricunniscenza facciale è eliminazione di l'utilizatori attivati da l'app GUI quandu u buttone ligatu hè clicatu.
Nota: A funzione gui_set_virtual_face () chjamata in output UI HAL per preview u modu deve esse implementatu in custom.c:
- Clone funzione gui_set_virtual_face() da smart HMI\coffee_machine\cm4\custom\custom.c.
- Cambia u nome di u widget home_img_cameraPreview à screen_img_camera_preview in a funzione.
- Implementa e funzioni di callback UI cù u stessu prototipu à tutti quelli in output UI HAL sottu u cuntrollu di a macro definizione #ifndef RT_PLATFORM in custom.c per esse cumpatibili cù u prughjettu GUI Guider perchè queste funzioni in output UI HAL sò dipendente cù u piattaforma integrata. In custom.c, dipendenu da u simulatore nantu à u guidatore GUI è sò indipendenti da a piattaforma integrata. Per esample, a callback di registrazione di faccia hè implementata cum'è quì sottu per u simulatore GUI Guider in esecuzione: #ifndef RT_PLATFORM void UI_Registration_Callback () { gui_hide_del_user_btn (true); s_InAction = false; ritornu; }
Nota: Consultate u stessu prototipu di a funzione introdutta in u passu 6 di a Sezione 4.1.3
A macro definizione RT_PLATFORM hè stabilita nantu à i paràmetri di u prugettu di MCUXpresso cum'è mostra in Figura 7: - Dichjarà tutte e funzioni chjamate UI_xxx_Callback () è gui_xxx () in custom.h è aghjunghje custom.h incluse in smart_tlhmi_event_descriptor.h per sparte l'API GUI à l'UI output HAL.
- Aghjunghjite e funzioni novi chjamate gui_xxx () in custom.c per ottene e funzioni sottu:
- Sviluppà a GUI in GUI Guider:
- Clona a camera di cartulare preview chì cuntene u software di prughjettu GUI Guider in u cartulare gui_guider in u pacchettu di software di basa lvgl_gui_camera_preview_cm7. Cambia u nome relativo camera_preview à face_rec per u novu example.
- Copia l'aghjurnatu sopra custom.c è custom. h à u novu software di prughjettu GUI Guider.
- Apertura u novu prughjettu face_rec in GUI Guider. Aghjurnate cum'è quì sottu:
- Aghjunghjite u novu buttone chjamatu Elimina User. Aghjunghjite a bandiera Hidden per quessa chì u buttone serà oculatu quandu l'app GUI principia.
- Aghjunghjite a linea di codice di chjamà l'API gui_event_face_rec_action () cù un parametru d'ID di l'avvenimentu diversu nantu à u trigger "Rilasciatu" in l'Impostazione di l'Eventi di tutti i buttuni Registrazione, Ricunniscenza è Elimina User per attivà l'avvenimenti di registrazione facciale, ricunniscenza facciale è eliminazione di l'utilizatori. A Figura 8 mostra u codice per l'avvenimentu di u buttone Registrazione:
- Aghjurnate u codice generatu da GUI Guider à u prughjettu MCUXpresso.
- Sustituite u cuntenutu eccettu per l'imaghjini di u cartulare in u cartulare generatu di u prughjettu MCUXpresso SW cù i currispondenti in u cartulare generatu di u prughjettu GUI Guider SW.
Nota: Per più dettagli nantu à e mudificazioni introdutte sopra, verificate l'exampu software à https://mcuxpresso.nxp.com/appcodehub.
Verificazioni cù l'exampu prughjettu
Per piglià l'exampu pacchettu software chì cuntene e risorse è l'arnesi per questa nota di l'applicazione, visitate: https://mcuxpresso.nxp.com/appcodehub. Aprite l'exampu prughjettu nantu à MCUXpresso IDE. Custruisce è prugramma u .axf file à l'indirizzu 0x30000000 è prugramma u binariu di risorse file camera_preview_resource.bin à l'indirizzu 0x30800000.
A ricunniscenza facciale LVGL GUI example travaglia nurmale cum'è quì sottu:
- Preview: Cù l'accensione, i flussi video catturati da a camera mostranu nantu à l'area specifica di a camera preview nantu à u screnu GUI. L'etichetta di statutu mostra "Preview… ". Per i dettagli, vede a Figura 3. U buttone Elimina User hè oculatu. Quandu clicchendu u spaziu fora di i buttoni è images, si mostra u preview state cum'è quì sopra dopu chì l'azzione di registrazione o di ricunniscenza faccia finisce.
- Iscrizzione:
- tartupa: Quandu u buttone Registrazione hè clicatu, a registrazione faccia principia. L'etichetta di statutu cambia per visualizà "Registrazione ...", u rettangulu di guida di a faccia mostra blu, è a barra di prugressu cumencia à mustrà u prugressu. Assicuratevi chì a faccia di l'utilizatore si mostra in u rettangulu di guida blu per a registrazione.
- successu: L'etichetta di statutu mostra "Registrazione ... OK" è u numeru d'ID d'utilizatore registratu, u rettangulu di guida di a faccia diventa rossu se a registrazione di a faccia hè successu prima chì u prugressu si mostra pienu nantu à a barra.
- Fiascu -> Time out: L'etiqueta di statutu mostra "Registrazione ... Time out" se a registrazione di a faccia hè sempre fiascata quandu u prugressu mostra pienu nantu à a barra.
- Fiascu -> Duplicazione: L'etiqueta di statutu mostra "Registrazione ... Fiascu", u rettangulu di guida di a faccia diventa verde se a faccia registrata hè ricunnisciuta prima chì u prugressu si vede pienu nantu à a barra.
- cugnizzioni:
- Startup: Quandu u buttone di ricunniscenza hè clicatu, u ricunniscenza faccia accumincia. L'etichetta di statutu cambia per vede "Ricunniscenza...", u rettangulu di guida di a faccia mostra blu, è a barra di prugressu cumencia à mustrà u prugressu. Assicuratevi chì a faccia di l'utilizatore hè mostrata in u rettangulu di guida di a faccia blu per a registrazione.
- successu: L'etichetta di statutu mostra "Ricunniscenza ... OK" è u numeru d'ID d'utilizatore ricunnisciutu, u rettangulu di guida di a faccia diventa verde se u ricunniscenza di a faccia hè successu prima chì u prugressu si mostra pienu nantu à a barra. À u puntu, u buttone Elimina User appare. Significa chì l'utilizatore hè permessu di esse sguassatu solu quandu hè ricunnisciutu.
- ailure: L'etiqueta di statutu mostra "Ricunniscenza ... Time out" se u ricunniscenza facciale hè sempre falluta quandu u prugressu mostra pienu nantu à a barra.
- Sguassà l'Usuariu: Quandu u buttone "Sguassà l'Usuariu" hè clicatu, dopu chì a ricunniscenza di a faccia hè successu, l'etichetta di status cambia per vede "Eliminate l'Usuariu ... OK" cù u rettangulu di a guida di a faccia chì diventa blu è u prugressu chì mostra piena nantu à a barra. U buttone Elimina User hè oculatu di novu. A faccia / utilizatore ricunnisciuta hè sguassata da a basa di dati. Significa chì sta faccia / utilizatore ùn pò micca esse ricunnisciutu finu à chì hè registratu novu.
Nota nantu à u codice fonte in u documentu
Exampu codice mostratu in stu documentu hà i seguenti copyright è licenza BSD-3-Clause:
Copyright 2024 NXP A ridistribuzione è l'usu in forme binari è fonti, cù o senza mudificazione, sò permessi sempre chì e seguenti cundizioni sò cumplete:
- I redistribuzioni di u codice fonte devenu mantene l'avvisu di copyright sopra, sta lista di cundizioni è a seguente disclaimer.
- Redistribuzioni in forma binaria deve ripruduce l'avvisu di copyright sopra, sta lista di e cundizioni è a seguente disclaimer in a documentazione è / o altri materiali deve esse furnitu cù a distribuzione.
- Nè u nome di u detentore di i diritti d'autore nè i nomi di i so cuntributori ponu esse aduprati per appruvà o prumove i prudutti derivati da stu software senza un permessu scrittu specificu.
QUESTU SOFTWARE hè furnitu da i detentori di diritti d'autore è i cuntributori "cum'è" è ogni garanzia espressa o IMPLICITA, INCLUSI, MA NON LIMITATA, E GARANTIE IMPLICITE DI COMMERCIABILITÀ E IDONEITA' PER UN PUBLIC PARTICULARI SONT DISCLAIMED. IN NESSUN CASU U COPYRIGHT O CONTRIBUTORS SERÀ RESPONSABILI PER QUALSIASI DANNI DIRETTI, INDIRETTI, INCIDENTALI, SPECIALI, ESEMPLARI O CONSEGUENTI (INCLUSU, MA NON LIMITATI À, L'ACQUISSIONE DI BEN SOSTITUTI O SERVIZI, PERDITA DI PROFITTI, SERVIZI; O INTERRUPZIONE D'AFFARI) QUANTÀ CAUSATA E IN QUALSIASI TEORIA DI RESPONSABILITÀ, SIA IN CONTRATTU, STRICT RESPONSABILITÀ, O TORT (INCLUSU NELLIGENZA O ALTRE) SURGIENDU IN QUALSUNA MANIERA DA L'USU DI STESS SOFTWARE, ANCHE SE AVVISU DI A POSSIBILITÀ DI SSE.
Storia di rivisione
L'infurmazione legale
Definizioni
Draft - Un statutu di draft nantu à un documentu indica chì u cuntenutu hè sempre sottu re internuview è sottumessu à appruvazioni formale, chì pò esse risultatu in mudificazioni o aghjunte. NXP Semiconductors ùn dà alcuna rapprisintazioni o garanzie in quantu à l'accuratezza o a completezza di l'infurmazioni incluse in una versione bozza di un documentu è ùn hà micca responsabilità per e cunsequenze di l'usu di tali informazioni.
Disclaimer
- Garanzia limitata è responsabilità - L'infurmazione in stu documentu hè ritenuta precisa è affidabile. Tuttavia, NXP Semiconductors ùn dà alcuna rapprisintazioni o garanzie, espresse o implicite, in quantu à l'accuratezza o a completezza di tali informazioni è ùn anu micca responsabilità per e cunsequenze di l'usu di tali informazioni. NXP Semiconductors ùn assume micca rispunsabilità per u cuntenutu di stu documentu se furnitu da una fonte d'infurmazioni fora di NXP Semiconductors.
In nessun casu, NXP Semiconductors serà rispunsevule per danni indiretti, incidentali, punitivi, speciali o cunsequenziali (inclusi - senza limitazione - profitti persi, risparmii persi, interruzioni di l'affari, costi ligati à a rimozione o a sostituzione di qualsiasi prudutti o carichi di rilavorazione) o micca tali danni sò basati in tort (cumpresa negligenza), garanzia, violazione di cuntrattu o qualsiasi altra teoria legale.
Malgradu qualsiasi dannu chì u cliente puderia incorre per qualsiasi ragione, a responsabilità cumulativa è cumulativa di NXP Semiconductors versu u cliente per i prudutti descritti quì serà limitata in cunfurmità cù i Termini è e cundizioni di vendita cummerciale di NXP Semiconductors. - U dirittu di fà cambiamenti - NXP Semiconductors si riserva u dirittu di fà cambiamenti à l'infurmazioni publicate in stu documentu, cumprese senza limitazione specificazioni è descrizzioni di i prudutti, in ogni mumentu è senza avvisu. Stu documentu rimpiazza è rimpiazza tutte l'infurmazioni furnite prima di a publicazione di questu.
- Idoneità à l'usu - I prudutti di NXP Semiconductors ùn sò micca cuncepiti, autorizati o garantiti per esse adattati per l'utilizazione in u supportu di vita, in sistemi o equipaghji critichi per a vita o per a sicurezza, nè in applicazioni induve fallimentu o malfunzionamentu di un pruduttu NXP Semiconductors pò esse ragionevolmente attesa di risultà. ferite persunale, morte o danni gravi à a pruprietà o à l'ambiente. NXP Semiconductors è i so fornitori ùn accettanu alcuna responsabilità per l'inclusione è / o l'usu di i prudutti NXP Semiconductors in tali equipaghji o applicazioni è per quessa, tali inclusioni è / o usu sò à u risicu di u cliente.
- Applicazioni - L'applicazioni chì sò descritte quì per qualsiasi di sti prudutti sò solu per scopi illustrativi. NXP Semiconductors ùn face alcuna rappresentanza o garanzia chì tali applicazioni seranu adattate per l'usu specificatu senza più teste o mudificazione.
I clienti sò rispunsevuli di u disignu è u funziunamentu di e so applicazioni è prudutti chì utilizanu i prudutti NXP Semiconductors, è NXP Semiconductors ùn accetta micca responsabilità per qualsiasi assistenza cù applicazioni o cuncepimentu di i prudutti di i clienti. Hè a sola rispunsabilità di u cliente per determinà se u pruduttu NXP Semiconductors hè adattatu è adattatu per l'applicazioni di u cliente è i prudutti pianificati, è ancu per l'applicazione pianificata è l'usu di i clienti di terzu di u cliente. I clienti duveranu furnisce un disignu adattatu è salvaguardi operativi per minimizzà i risichi assuciati cù e so applicazioni è prudutti. NXP Semiconductors ùn accetta micca alcuna responsabilità in relazione à qualsiasi difettu, dannu, costi o prublema chì hè basatu annantu à qualsiasi debule o predefinitu in l'applicazioni o i prudutti di u cliente, o l'applicazione o l'usu da u cliente (s) terzu di u cliente. U Cliente hè rispunsevuli di fà tutte e teste necessarie per l'applicazioni è i prudutti di u cliente chì utilizanu i prudutti NXP Semiconductors per evità un difettu di l'applicazioni è i prudutti o di l'applicazione o l'utilizazione da i clienti di terze parti di u cliente. NXP ùn accetta alcuna responsabilità in questu rispettu. - Termini è cundizioni di vendita cummerciale - I prudutti di NXP Semiconductors sò venduti sottumessi à i termini è e cundizioni generali di vendita cummerciale, cum'è publicatu in https://www.nxp.com/profile/terms, salvo accordu altrimenti in un accordu individuale scrittu validu. In casu chì un accordu individuale hè cunclusu solu i termini è e cundizioni di l'accordu rispettivu sò applicati. NXP Semiconductors si oppone espressamente à applicà i termini è e cundizioni generali di u cliente in quantu à l'acquistu di i prudutti NXP Semiconductors da u cliente.
- U cuntrollu di l'esportazione - Stu ducumentu è ancu l'articulu (s) descritti quì ponu esse sottumessi à e regule di cuntrollu di l'esportazione. L'esportazione pò esse bisognu di una autorizazione previa da l'autorità competenti.
- Idoneità per l'usu in i prudutti qualificati micca di l'automobile - A menu chì stu documentu dichjara espressamente chì stu pruduttu specificu NXP Semiconductors hè qualificatu per l'automobile, u pruduttu ùn hè micca adattatu per l'usu di l'automobile. Ùn hè nè qualificatu nè testatu in cunfurmità cù e teste di l'automobile o i requisiti di l'applicazione. NXP Semiconductors ùn accetta alcuna responsabilità per l'inclusione è / o l'usu di prudutti qualificati micca di l'automobile in l'equipaggiu o l'applicazioni di l'automobile.
In l'eventu chì u cliente usa u pruduttu per u disignu è l'usu in l'applicazioni automobilistiche à e specificazioni è i standard di l'automobile, u cliente (a) utilizerà u pruduttu senza a garanzia di u pruduttu di NXP Semiconductors per tali applicazioni, usu è specificazioni automobilistiche, è ( b) ogni volta chì u cliente usa u pruduttu per l'applicazioni automobilistiche al di là di e specificazioni di NXP Semiconductors, tale usu serà solu à u risicu di u cliente, è (c) u cliente indennizza cumplettamente NXP Semiconductors per ogni responsabilità, danni o rivendicazioni di produttu falluti risultanti da u disignu è l'usu di u cliente. u pruduttu per l'applicazioni automobilistiche oltre a garanzia standard di NXP Semiconductors è e specificazioni di produttu di NXP Semiconductors. - Traduzioni - Una versione non-inglese (traduttu) di un documentu, cumprese l'infurmazioni legali in quellu documentu, hè solu per riferimentu. A versione inglese prevalerà in casu di qualsiasi discrepanza trà e versioni tradutte è inglesi.
- Sicurezza - U Cliente capisce chì tutti i prudutti NXP ponu esse sughjetti à vulnerabilità micca identificate o ponu sustene standard di sicurezza stabiliti o specificazioni cù limitazioni cunnisciute. U Cliente hè rispunsevule per u disignu è u funziunamentu di e so applicazioni è prudutti in tuttu u so ciclu di vita per riduce l'effettu di queste vulnerabilità nantu à l'applicazioni è i prudutti di u cliente. A rispunsabilità di u Cliente si estende ancu à altre tecnulugia aperte è / o proprietarie supportate da i prudutti NXP per l'usu in l'applicazioni di u cliente. NXP ùn accetta alcuna responsabilità per alcuna vulnerabilità. U Cliente deve cuntrollà regularmente l'aghjurnamenti di sicurezza da NXP è seguite in modu adattatu. U Cliente deve selezziunà i prudutti cù caratteristiche di sicurezza chì risponde megliu à e regule, i regulamenti è i normi di l'applicazione prevista è pigliate e decisioni finali di cuncepimentu riguardanti i so prudutti è hè solu rispunsevule per u rispettu di tutti i requisiti legali, regulatori è di sicurezza in quantu à i so prudutti, indipendentamente. di qualsiasi informazione o supportu chì pò esse furnitu da NXP.
NXP hà una Squadra di Risposta à Incidenti di Sicurezza di u Produttu (PSIRT) (accessibile à PSIRT@nxp.com) chì gestisce l'investigazione, i rapporti è a liberazione di soluzioni per e vulnerabilità di sicurezza di i prudutti NXP.
NXP BV - NXP BV ùn hè micca una sucietà operativa è ùn distribuisce o vende prudutti.
Marchi
Avvisu: Tutti i marchi riferiti, i nomi di i prudutti, i nomi di serviziu è i marchi sò a pruprietà di i so rispettivi pruprietarii.
NXP - u marchio è u logo sò marchi di NXP BV
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile - sò marchi è / o marchi registrati di Arm Limited (o di e so filiali o affiliate) in i Stati Uniti è / o in altrò. A tecnulugia cunnessa pò esse prutetta da qualsiasi o tutti i brevetti, copyright, disinni è secreti cummerciale. Tutti i diritti riservati.
- i.MX - hè una marca di NXP BV
- J-Link - hè una marca di SEGGER Microcontroller GmbH.
Microsoft, Azure è ThreadX - sò marchi di u gruppu di cumpagnie Microsoft.
Per piacè esse cuscenti chì avvisi impurtanti riguardanti stu documentu è u pruduttu (s) descritti quì, sò stati inclusi in a sezione "Informazioni legali".
© 2024 NXP BV
Per più infurmazione, visitate: https://www.nxp.com
- Data di liberazione: 19 d'aprile 2024
- Identificatore di documentu: AN14263
FAQ
Q: Chì ghjè u scopu principale di stu pruduttu?
A: U scopu principale hè di attivà a funzione di ricunniscenza facciale utilizendu un mudellu di algoritmu di visione AI & ML cù una GUI simplice LVGL ex.ample nantu à a scheda SLN-TLHMI-IOT.
Q: Cumu i sviluppatori ponu prufittà di sta nota di l'applicazione?
A: I sviluppatori ponu amparà cumu implementà a ricunniscenza facciale nantu à u quadru passu per passu cù l'ex furnituample è capisce i gestori di u dispusitivu, i dispusitivi HAL, è i miccanismi di l'avvenimenti implicati.
Documenti / Risorse
![]() |
NXP AN14263 Implementa LVGL GUI Face Recognition in Framewor [pdfGuida di l'utente AN14263 Implementa LVGL GUI Face Recognition in Framewor, AN14263, Implementa LVGL GUI Face Recognition in Framewor, LVGL GUI Face Recognition in Framewor, Face Recognition in Framewor, Ricunniscenza in Framewor, Framewor |