NXP AN14263 Implementeer LVGL GUI-gesigherkenning op Framewor
Produk inligting
Spesifikasies
- Produk Naam: LVGL GUI Gesigherkenning op Raamwerk
- Dokumenthersiening: 1 – 19 April 2024
- Sleutelwoorde: Gesigherkenning, LVGL GUI, Raamwerk
Produkgebruiksinstruksies
- verbyview
Hierdie produk stel AI&ML visie-algoritmemodel vir gesigherkenning moontlik op 'n raamwerk om gesigherkenningsfunksie te implementeer met 'n eenvoudige LVGL GUI example op die SLN-TLHMI-IOT-bord. - Raamwerk verbyview
Die oplossingsagteware is ontwerp rondom die raamwerkargitektuur wat toestelbestuurders insluit wat verantwoordelik is vir die bestuur van toestelle, HAL-toestelle om onderliggende besonderhede te abstraheer, en gebeure vir kommunikasie tussen verskillende toestelle. - Kenmerke
Die produk maak voorsiening vir die implementering van gesigherkenningsfunksie via kamera preview op die GUI-skerm met knoppies om gesigregistrasie, -herkenning en -verwydering te aktiveer. Geregistreerde gesigdata word op Flash gestoor via 'n file stelsel. - Aansoeknota-inhoud
Die toepassingsnota bied 'n LVGL GUI-skerm met kamera preview en knoppies vir gesigverwante aksies. Dit help ontwikkelaars om die raamwerk te verstaan en hoe om gesigherkenning te implementeer met behulp van die verskafde eksample.
verbyview
NXP het 'n oplossingsontwikkelingskit genaamd SLN-TLHMI-IOT bekendgestel wat op slim HMI-toepassings fokus. Dit maak slim HMI moontlik met ML-visie, stem en grafiese UI wat op een NXP i.MX RT117H MCU geïmplementeer is. Gebaseer op die SDK, is die oplossingsagteware gebou op 'n ontwerp genaamd raamwerk wat buigsame ontwerpe en aanpassing van visie- en stemfunksies ondersteun. Om gebruikers te help om die sagtewareplatform beter te gebruik, word sommige basiese dokumente verskaf, bvample, die sagteware-ontwikkeling gebruikersgids. Die gids stel die basiese sagteware-ontwerp en -argitektuur van die toepassings bekend wat alle komponente van die oplossing dek, insluitend die raamwerk om die ontwikkelaars te help om hul toepassings makliker en doeltreffender te implementeer deur die SLN-TLHMI-IOT te gebruik.
Vir meer besonderhede oor die oplossing en relevante dokumente, besoek die web bladsy van die NXP EdgeReady Smart HMI-oplossing gebaseer op i.MX RT117H met ML Vision, Voice en Grafiese UI. Dit is egter steeds nie so maklik vir die ontwikkelaars om hul slim HMI-toepassings te implementeer met verwysing na hierdie basiese gidse nie. 'n Reeks aansoeknotas word beplan om die ontwikkeling van die raamwerk stap vir stap te help bestudeer. Hierdie toepassingsnota is gebaseer op Implement LVGL GUI Camera Preview op Raamwerk (dokument AN14147). Hierdie toepassingsnota beskryf hoe om die AI&ML-visiealgoritmemodel vir gesigherkenning op die raamwerk in staat te stel om die gesigherkenningsfunksie via kameravoor te implementeerview op die GUI-skerm met 'n eenvoudige LVGL GUI bvample op die SLN-TLHMI-IOT-bord. In die aansoeknota het die example bied 'n LVGL GUI skerm met 'n kamera preview en 'n paar knoppies om gesigregistrasie, -herkenning en -verwydering te aktiveer. Die geregistreerde gesigdata word via 'n bietjie op Flash gestoor file stelsel.
Op 'n hoë vlak bevat die aansoeknota die onderstaande inhoud:
- Aktiveer die gesigherkenningsfunksie op die raamwerk.
- Voeg gesigdatabasisondersteuning by op die raamwerk via file stelsel op Flash.
- Implementeer die LVGL GUI-toepassing. Deur die bogenoemde inleidings help hierdie dokument die ontwikkelaars om:
- Verstaan die raamwerk en die slim HMI-oplossingsagteware dieper.
- Ontwikkel hul AI&ML-gesigherkenning op raamwerk met die LVGL GUI-toepassing.
Raamwerk verbyview
Die oplossingsagteware is hoofsaaklik ontwerp rondom die gebruik van die raamwerkargitektuur wat uit verskeie verskillende dele bestaan:
- Toestelbestuurders – die kerndeel
- Hardware Abstraksielaag (HAL) toestelle
- Boodskappe/Gebeure
Soos getoon in Figuur 1, die oorview van die meganisme van die raamwerk is:
Toestelbestuurders is verantwoordelik vir die bestuur van toestelle wat deur die stelsel gebruik word. Elke toesteltipe (invoer, uitvoer, ensovoorts) het sy eie tipe-spesifieke toestelbestuurder. Met 'n toestelbestuurder wat begin nadat die toestelle daarop geregistreer is, wag dit en kontroleer 'n boodskap om data na die toestelle en ander bestuurders oor te dra nadat die geregistreerde toestelle geïnisialiseer en begin word. Die HAL-toestelle is bo-op die laervlak-bestuurderkode geskryf, wat help om die verstaanbaarheid van kode te verhoog deur baie van die onderliggende besonderhede te abstraheer.
Gebeurtenisse is 'n manier waarop inligting tussen verskillende toestelle via hul bestuurders gekommunikeer word. Wanneer 'n gebeurtenis geaktiveer word, kommunikeer die toestel wat die gebeurtenis eerste ontvang het daardie gebeurtenis aan sy bestuurder, en dan stel dit op sy beurt ander bestuurders in kennis wat aangewys is om die gebeurtenis te ontvang.
Die argitektoniese ontwerp van die raamwerk was gesentreer op drie primêre doelwitte:
- Gemak van gebruik
- Buigsaamheid/draagbaarheid
- Prestasie
Die raamwerk is ontwerp met die doel om die tyd tot mark vir visie en ander masjienleertoepassings te versnel. Om 'n vinnige tyd om te bemark te verseker, is dit van kritieke belang dat die sagteware self maklik is om te verstaan en te verander. Met hierdie doel in gedagte, is die argitektuur van die raamwerk maklik om te verander sonder om beperkend te wees, en sonder om ten koste van prestasie te kom.
Vir meer besonderhede oor die raamwerk, sien Smart HMI Software Development User Guide (dokument MCU-SMHMI-SDUG).
Ligte en veelsydige grafiese biblioteek (LVGL)
LVGL (Light and Versatile Graphics Library) is 'n gratis en oopbron grafiese biblioteek wat alles verskaf wat jy nodig het om 'n ingebedde GUI te skep met maklik-om-te gebruik grafiese elemente, pragtige visuele effekte en lae geheue voetspoor.
GUI gids
GUI Guider is 'n gebruikersvriendelike grafiese gebruikerskoppelvlak-ontwikkelingshulpmiddel van NXP wat vinnige ontwikkeling van hoë kwaliteit skerms moontlik maak met die oopbron LVGL grafiese biblioteek. GUI Guider se sleep-en-drop-redigeerder maak dit maklik om baie kenmerke van LVGL soos legstukke, animasies en style te gebruik om 'n GUI met minimale of geen kodering te skep nie.
Met die klik van 'n knoppie kan jy jou toepassing in 'n gesimuleerde omgewing laat loop of dit na 'n teikenprojek uitvoer. Gegenereerde kode van GUI Guider kan maklik by u projek gevoeg word, wat die ontwikkelingsproses versnel en u in staat stel om 'n ingeboude gebruikerskoppelvlak naatloos by u toepassing te voeg. GUI Guider is gratis om te gebruik met NXP se algemene doel en oorkruis MCU's en sluit ingeboude projeksjablone vir verskeie ondersteunde platforms in. Om meer te wete te kom oor LVGL- en GUI-ontwikkeling op GUI Guider, kyk na Light and Veelsydige Graphics Library en GUI Guider.
Ontwikkelingsomgewing
Eerstens, berei en stel die hardeware- en sagteware-omgewing op vir die implementering van die eksample op die raamwerk.
Hardeware omgewing
Die hardeware-omgewing is opgestel om die example:
- Die slim HMI-ontwikkelingskit gebaseer op NXP i.MX RT117H (die SLN_TLHMI_IOT-stel)
- SEGGER J-Link met 'n 9-pen Cortex-M-adapter en V7.84a of 'n nuwer weergawe van die drywer
sagteware omgewing
Die sagteware-omgewing is opgestel vir die ontwikkeling van die example:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – bvample kode van die tweede toepassing nota as die basis sagteware van die ontwikkeling. Vir besonderhede, sien https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – as die kodehulpbron vir die ontwikkeling.
- SLN-TLHMI-IOT-sagteware V1.1.2 – slim HMI-bronkode vrygestel op die NXP GitHub-bewaarplek as die kodehulpbron vir die ontwikkeling. Vir besonderhede, sien: GitHub – NXP/mcu-smhmi by v1.1.2
Vir besonderhede oor die verkryging en opstelling van die sagteware-omgewing, sien: Aan die gang met die SLN-TLHMI-IOT.
Visie argitektuur op raamwerk
Die visie-argitektuur op die raamwerk word in Figuur 2 getoon. Die visie-algo HAL (OASIS_HAL) het die onderstaande prosesse:
- Doen gesigregistrasie en -herkenning deur die AI&ML-visiealgoritmemodel nadat jy die verwante gebeurtenisse vanaf die uitset-UI HAL ontvang het. Stel die afleidingsresultate van die algoritmemodel in kennis na die uitvoer-UI HAL.
- Verkry toegang (voeg by, vee uit ...) die databasis van gesigkenmerke gebaseer op die klein file stelsel deur die API's van FaceDB HAL te roep na ontvangs van die verwante gebeurtenisse vanaf die uitset UI HAL.
- Versoek die kamera-videoraam van die kamera-HAL wanneer jy gesigregistrasie en -herkenning doen.
Implementeer gesigsherkenning op die raamwerk
Die LVGL GUI gesigherkenning example (die example word later verskaf) op die raamwerk word geïmplementeer op grond van die example kodes van Implementeer LVGL GUI Camera Preview op Raamwerk (dokument AN14147).
Vir die demonstrasie van die gesigherkenning in die eksample, die basiese funksie van die GUI-toepassing (sien die hoofskerm in Figuur 3) is ontwerp soos hieronder beskryf:
- Die GUI-toepassing aktiveer die gesigregistrasie of herkenningsgebeurtenis na die uitvoer-UI HAL wanneer die knoppie Registrasie of Herkenning geklik word. En die uitset UI HAL stel die gebeurtenis in kennis van die toevoeging van 'n gebruiker by die visie algo HAL nadat die gesigregistrasie suksesvol is.
- Die GUI-toepassing lei tot die uitvee van 'n gebruiker na die uitvoer-UI HAL wanneer die knoppie Verwyder gebruiker geklik word nadat die gesig van die gebruiker herken is.
- Die GUI-toepassing veroorsaak die gebeurtenis om te stop dat die oase algo na die uitvoer-UI HAL loop wanneer die skerm buite die knoppies en beelde geklik word.
Berei die sagtewarepakket voor vir die implementering van die example.
- Kloon die basissagteware lvgl_gui_camera_preview_cm7. Verander die projeknaam en die hoof filenaam na lvgl_gui_face_rec_cm7.
- Die raamwerk moet in die sagteware opgedateer word aangesien die bronkodes vir die raamwerkkern vanaf die weergawe 1.1.2 publiek op GitHub begin wees het.
- Vervang die raamwerklêergids met die kopie van V1.1.2 vanaf GitHub behalwe vir die files fwk_log.h en fwk_common.h onder inc\ aangesien hulle gewysig is vir die reeks toepassingsnota. Die bewerkings word in Figuur 4 getoon:
- Vee die vouer framework_cm7 onder die libs-groep uit en verwyder die biblioteek framework_cm7 en sy soekpad wat in Projek > Eienskappe > C/C++ Bou > instellings > Gereedskapinstellings > MCU C++ Linker > Biblioteke opgestel is, aangesien die bronkode van die kern verskaf word.
Aktiveer gesigherkenningsfunksie op raamwerk
Die gesigherkenningsfunksie is gebou op die ML-visie-algoritmemodel wat as 'n statiese biblioteek verskaf word - 'n oasis lite-looptydbiblioteek deur NXP. Die biblioteek is 'n klein, hoogs doeltreffende, pasgemaakte en geoptimaliseerde KI-biblioteek. Die model sluit gesigbespeuring, gesigherkenning, glasbespeuring en lewendheidsbespeuring in. Dit verskaf hoofsaaklik die API OASISLT_run_extended() om die gesigherkenningspyplyn te laat loop terwyl resultate aan die oproeper opgedateer word deur gebeurtenisterugroepe, en gesigte in die databasis by te voeg/by te werk/vee uit deur die gesigdatabasis-terugroepe nadat die bronraaminligting, terugbelopings en geheue gespesifiseer is. poel wat deur die biblioteek gebruik word deur 'n ander API OASISLT_init() te roep tydens inisialisering. Die oproep van die API's en die terugbelfunksies word in die visie algo HAL van die raamwerk geïmplementeer.
Voeg vision algo model biblioteek by
- Kopieer vouer-oase wat die biblioteek en die verwante opskrif bevat file van smart HMI\coffee_machine\cm7\libs\ na die gids libs van die exampdie SW.
- Voeg die soekpad van die kopskrif by file in Projek > Eienskappe > C/C++ Bou > instellings > Gereedskapinstellings > MCU C samesteller > Sluit in en MCU C++ samesteller > Sluit in: “${workspace_loc:/${ProjName}/libs/oasis/include}”
- Voeg die lib en sy soekpad by Projek > Eienskappe > C/C++ Bou > instellings > MCU C+ + Linker > Biblioteke: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” en die makro-definisie na aktiveer die kenmerk op Projek > Eienskappe > C/C++ Bou > instellings > Gereedskapinstellings > MCU C samesteller > Voorverwerker en MCU C++ samesteller > Voorverwerker: SMART_TLHMI_2D
Aktiveer visie algo HAL
Die visie-algo-HAL dryf die visie-algo-model om te werk en reageer die resultate op die UI-uitset HAL nadat die gebeure daaruit ontvang is.
Om dit te aktiveer, kloon die bestaande soortgelyke HAL-bestuurder file waar die onderstaande funksies geïmplementeer word:
- Implementeer die terugroepe van gesigdatabasisbedrywighede en gebeurtenishantering.
- Dryf die visie algo aan die werk deur die API's van die oase-biblioteek te skakel.
- Toegang tot gebruikergesigdatabasis en toepassingdatabasis (dit is nie nodig in die example).
- Ontvang gebeurtenisse van en stuur resultate na uitvoer UI HAL.
Die belangrikste werke om die HAL vir die exampdie is:
- Kloon die bestaande soortgelyke HAL-bestuurder file en verander die verwante name.
- Verwyder die kodes wat verband hou met die toepassingsdatabedrywighede.
- Dateer die definisies en funksies op vir die hantering van die gebeure vanaf die uitset UI HAL per die exampontwerp.
- Voeg die konfigurasies by wat nodig is in oasis-inisialisering.
Die gedetailleerde stappe is soos hieronder:
- Kloon hal_vision_algo_oasis_koffiemasjien.c. Verander die filenaam na hal_vision_algo_oasis_guifacerec.c. En vervang alle snare CoffeeMachine met GUIFaceRec in die file.
- Verwyder die kodes wat die string coffeedb bevat (nie hooflettersensitief nie) wat verband hou met die programdatabasis, bvample, #sluit hal_sln_koffieb.h in.
- Verander die funksie HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() vir die hantering van die gebeure vanaf die uitvoer-UI HAL.
- Verander die gebeurtenisdefinisie kEventFaceRecId_RegisterCoffeeSelection na kEventFaceRecId_RegisterUserFace en die struktuurstring regCoffeeSelection na regGUIFaceRec vir die gebeurtenishantering om nuwe gesigkenmerkdata by die databasis te voeg.
- Om die standaardproses van die gesigherkenningsaksies in die example, verander die hantering in die geval van kEventFaceRecID_OasisSetState met die definisies van die state:
- kOASISLiteState
- Registrasie kOASISLiteState
- Erkenning kOASISLiteState
- Gestop
- Voeg by en wysig die definisies van die gebeure wat in die bogenoemde stap genoem word.
- Kopieer die kop file smart_tlhmi_event_descriptor.h vanaf smart HMI\coffee_machine \cm7\source\event_handlers\ in die gidsbron van die exampdie SW. Dateer die op file soos hieronder:
- Verander die gebeurtenisdefinisie kEventFaceRecId_RegisterCoffeeSelection na kEventFaceRecId_RegisterUserFace in die enum-tipe _event_smart_tlhmi_id en die struktuurstring regCoffeeSelection na regGUIFaceRec in die struct _eventhmi_tl. Verander dus die struktuur register_coffee_selection_event_t vir regCoffeeSelection na register_gui_facerec_event_t.
- Vee die ander inhoud uit wat vir die koffiemasjientoepassing gebruik word, bvample, die kodereël oor stem: #include "hal_event_descriptor_voice.h".
- Voeg die tipes kOASISLiteState_Stopped en kOASISLiteState_Running by die enum tipe oasis_lite_state_t in hal_vision_algo.h onder framework>hal>vision in die projek soos hieronder:
typedef enum _oasis_lite_state {- kOASISLiteState
- Aan die gang, kOASISLiteState
- Gestop, kOASISLiteState
- Erkenning,
- kOASISLiteState
- Registrasie, kOASISLiteState
- Deregistrasie, kOASISLiteState
- Afstandregistrasie, kOASISLiteState
- Tel
- Gebruik die bogenoemde opgedateerde struct oasis_lite_state_t om die struct oasis_state_event_t in hal_event_descriptor_face_rec.h onder framework>hal>vision in die projek te verfyn soos hieronder: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oase_state_event_t;
- Verander alle kEventInfo_Remote na kEventInfo_Local vir die stuur van gebeurtenisse vanaf die visie algo HAL na ander HAL's wat op dieselfde kern loop as enkelkern in plaas van dubbelkern word in die ex gebruikample.
- Voeg en wysig die onderstaande konfigurasies vir oase-inisialisering in OASISLT_init():
- Voeg die makro definisies en geheue afdelings vir die video raam in board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- #definieer OASIS_RGB_FRAME_HEIGHT 600
- #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
- #definieer OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
- #define AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __kenmerk__((afdeling(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __kenmerk__((belyn(belynbytes)))
- Stel die geheue-toewysing op na die geheue-afdeling hierbo fb_sh_mem op Projek > Eienskappe > C/C++ Bou > MCU-instellings wat in Figuur 5 gewys word:
- Verklaar die globale veranderlike g_DTCOPBuf in lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Gaan voort om die definisies wat in die bogenoemde veranderlike gebruik word by te voeg:
- Definieer die bogenoemde afdeling in board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- kenmerk__((afdeling(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- kenmerk__((belyn(alignbytes)))
- Sluit die kopskrif in file hal_vision_algo.h wat die makro-definisie DTC_OPTIMIZE_BUFFER_SIZE in app_config.h bevat ingesluit in lvgl_gui_face_rec_cm7.cpp.
- Voeg die makro definisies en geheue afdelings vir die video raam in board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- Stel die veranderlike s_debugOption op waar om die vorderingstatus op gesigsherkenning te wys.
- Voeg die soekpad van die kopskrif by files van die visie HAL op Projek > Eienskappe >C/C++ Bou > instellings > Gereedskapinstellings > MCU C samesteller > Sluit in en MCU C++ samesteller > Sluit in: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- Voeg die onderstaande definisie by om visie algo HAL in board_define.h te aktiveer: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Aktiveer uitvoer UI HAL
Die uitset UI HAL stel die gebeure in kennis van die visie algo HAL en reageer op die afleiding resultate van die visie algo HAL. Met die GUI-toepassing word die gebeure gewoonlik deur die toepassing veroorsaak en die resultate word op die toepassing gewys.
Om dit te aktiveer, kloon die bestaande soortgelyke HAL-bestuurder file waar oor die algemeen die onderstaande funksies geïmplementeer word:
- Stel die gebeure in kennis vir gesigherkenning en databasistoegang.
- Implementeer die terugroepe vir die GUI-toepassing om die gebeure te aktiveer.
- Hanteer die afleidingsresultate van die visie-algo-module.
- Wys die proses en resultate van die gebeurtenisse wat op die UI hanteer word deur die vorderingsbalk wat met die tydtellers en gesiggids-reghoek beheer word.
Die belangrikste werke om die HAL vir die exampDie gebruike in hierdie dokument is:
- Kloon die bestaande soortgelyke HAL-bestuurder file en verander die verwante name.
- Verwyder die kodes wat met die toepassing verband hou.
- Dateer die funksies vir die gebeurteniskennisgewing en resultate-reaksie op volgens die exampontwerp.
- Voeg die terugbelopings vir die GUI-toepassing by om die gebeure te aktiveer.
Die gedetailleerde stappe is soos hieronder:
- Kloon hal_output_ui_coffee_machine.c. Verander die filenaam na hal_ output_ui_guifacerec.c.
- Vervang alle snare CoffeeMachine met GUIFaceRec in die file.
- Verwyder die kodes wat met die toepassing verband hou – koffiemasjien.
- Verwyder die funksies WakeUp() en _StandBy() en die verwante kodes (kan die string wake_up en standby daarvoor soek).
- Verwyder preview modusgebeurtenisse wat verwante kodes in HAL_OutputDev_UiGUIFaceRec_Input Notify() hanteer.
- Verwyder die funksies UI_xxx_Callback() en die kodes wat die string gui_ en skerm bevat wat verband hou met die GUI van die koffiemasjien behalwe vir gui_set_virtual_face() vir die preview modus funksie.
- Verwyder alle kodes wat betrokke is by die veranderlikes s_IsWaitingAnotherSelection en s_IsWaitingRegisterSelection wat met die koffiemasjientoepassing verband hou.
- Verwyder die kodes wat verband hou met stem, oudio en taal. Byvoorbeeldample:
- #sluit “hal_voice_algo_asr_local.h” in,
- #sluit "hal_event_descriptor_voice.h" in
- Vir die verskillende gebeurteniskennisgewing, implementeer die nuwe funksies _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), en DeregisterGUIFaceRec() met verwysing na die funksies _StopFaceRec(), _RegisterCoffeeSelection(), en DeregisterCoffeeSelection() voordat hulle uitgevee word.
- Die _OutputManagerNotify() implementeer die basiese gebeurtenisuitsetfunksie om 'n gebeurtenis na die visie-algo HAL te stuur. Die onderstaande funksies noem dit om hul eie gebeurtenisse te stuur.
- Die _SetFaceRec() stuur die gebeurtenis kEventFaceRecID_OasisSetState om die visie-algo te aktiveer vir gesigregistrasie, -herkenning en die algo te stop.
- Die _RegisterGUIFaceRec() stuur die gebeurtenis kEventFaceRecId_RegisterGUIFaceRec wat in smart_tlhmi_event_descriptor.h gedefinieer is om gesigkenmerkdata by die databasis te voeg wanneer registrasie OK is.
- Die DeregisterGUIFaceRec() stuur die gebeurtenis kEventFaceRecID_DelUser om die gesigkenmerkdata uit die databasis te verwyder wanneer die gesigherkenning geslaag word.
- Dateer die kodes op om die ooreenstemmende aksies te neem, insluitend die verfris van die GUI deur die API's vanaf die LVGL GUI-toepassing te roep vir die afleidingsresultate van gesigregistrasie en -herkenning in die funksie _InferComplete_Vision() per die example se ontwerp. Byvoorbeeldample, wanneer gesigregistrasie suksesvol is,
- Hou op om die vordering te wys deur _FaceRecProcess_Stop();
- Stop die gesigregistrasie deur _SetFaceRec(kOASISLiteState_Stopped) te bel;
- Wys die suksesvolle resultaat op die GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Registreer die gesigdata op die databasis: _RegisterUserFace(s_UserId);
- Voeg UI-terugbelfunksies by om die gebeure te hanteer: preview, gesigregistrasie, herkenning en verwydering van gebruiker wat vanaf die GUI geaktiveer is. Byvoorbeeldample, die gesig registrasie terugbel: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- En voeg die funksies _FaceRecProcess_Start() en _FaceRecProcess_Stop() by om die vordering en status in die verskillende gebeurtenisse en resultate te wys.
- Dateer die timer ISR-terugbelfunksie _SessionTimer_Callback() op om die geval van time-out te hanteer deur te bel: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Voeg die onderstaande definisies by om UI-uitvoer HAL in board_define.h te aktiveer: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Kennisgewing:
Om die gesigherkenningsfunksie beter aan te bied, hou die funksie om die proses en resultate van gesigherkenning in die uitvoer UI HAL te wys. Die funksie word soos hieronder beskryf
- Die reghoek van die gesiggids wys blou, en die vorderingsbalk wys die vordering wanneer die gesigregistrasie of -herkenning begin word.
- Die gesiggidsreghoek wys rooi wanneer gesigregistrasie suksesvol is.
- Die gesiggidsreghoek wys groen wanneer gesigherkenning suksesvol is.
- Die gesiggidsreghoek bly blou, en die vorderingsbalk wys volle vordering wanneer die aksie onsuksesvol is ná die tydteller se verstryking. Op daardie stadium, stop die gesigregistrasie of -herkenning.
Die vorderingsbalk en gesiggidsreghoek word aangebied as die ikone wat in die hulpbronbinêre ingebou is file om in Flash geprogrammeer te word. Die wysers na die ikonedata op SDRAM word opgestel in die funksie LoadIcons(APP_ICONS_BASE) wat op die uitset UI HAL toestelinisialisering in die uitvoer UI HAL genoem word. Dit moet die ikone-ondersteuning vir die funksie implementeer.
Implementeer die ikone ondersteuning
- Bou die hulpbron deur die ikone te kombineer met die beelde wat in die LVGL GUI-toepassing gebruik word:
- Kloon die vier ikoonopskrif files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, en virtual_face_red_420x426.h van slim HMI
\koffiemasjien\resource\icons\ na die nuwe gidsikone onder die hulpbronlêergids van die exampdie SW. - Voeg die soekpad vir die vier-ikoon by files in die camera_preview_hulpbron.txt file in die hulpbronlêergids, bvample: ikoon ../resource/icons/process_bar_240x14.h
- Voer camera_preview_resource_build.bat om die beelde en ikone hulpbronne te bou om die asblik te genereer file camera_preview_resource.bin en die inligting file resource_information_table.txt (Sien Figuur 6).
- Kloon die vier ikoonopskrif files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, en virtual_face_red_420x426.h van slim HMI
- Definieer die beginadres op SDRAM en die grootte van die ikone in app_config.h. Die adres begin langs die beelde van die GUI-toepassing. Die grootte word in die inligting gegenereer file. #definieer APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #definieer APP_ICONS_SIZE 0x107c40
- Dateer die toegekende grootte van die geheue-afdeling genaamd res_sh_mem op na 0x200000 deur dit te herdefinieer in app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 en die ooreenstemmende instelling in Projek > Eienskappe > C/C++ Bou > MCU-instellings.
- Voeg die ikoongrootte by die totale grootte van die hulpbron wat van Flash na SDRAM gelaai is in die hooffunksie APP_LoadResource() file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Kennisgewing: Om die gesigherkenningsfunksie te voltooi, is die LVGL GUI-toepassingsondersteuning nodig. Die UI-terugbelfunksies in die uitvoer-UI HAL word deur die LVGL GUI-toepassing geroep om die gebeure vanaf die UI-skerm te hanteer. Aan die ander kant roep die uitvoer-UI HAL die API's vanaf die LVGL GUI-toepassing om die UI op te dateer om die resultaat en status te wys. Die ontwikkeling van die LVGL GUI-toepassing is relatief onafhanklik en word in Afdeling 4.3 bekendgestel.
4.1.5 Begin HAL-toestelle en bestuurders vir gesigherkenning
Die geaktiveerde visie algo HAL en UI uitvoer HAL en hul bestuurders word in die hoof begin file
lvgl_gui_face_rec_cm7.cpp na aanleiding van die omskakelings van ontwikkeling op die raamwerk soos hieronder:
- Sluit die kopskrif in file verband hou met die twee HAL-bestuurders deur die kodelyn by te voeg:
- #sluit in " fwk_output_manager.h "
- #sluit “fwk_vision_algo_manager.h” in
- Verklaar die HAL-toestelle:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Registreer die HAL-toestelle:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Inisialiseer die bestuurders:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- Begin die bestuurders:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Definieer die prioriteit van die bestuurdertake:
- #definieer VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #definieer OUTPUT_MANAGER_TASK_PRIORITY 1
Voeg gesigdatabasisondersteuning by raamwerk
Die geregistreerde gesigkenmerkdata word via 'n bietjie in die gesigdatabasis wat op Flash gestoor is, verkry file stelsel. Die stappe om die gesigdatabasisondersteuning by te voeg, word hieronder beskryf.
Voeg drywers by vir Flash-berging
Kopieer die Flash-koppelvlak FlexSPI-bestuurder files fsl_flexspi.c en fsl_flexspi.h, en die data-enkripsiebestuurder files fsl_caam.c en fsl_caam.h vanaf die pad SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ na die bestuurders-lêergids van die exampdie SW.
Voeg ondersteuning op raadvlak by
- Voeg die definisies van FlexSPI wat gebruik word vir die Flash-toestel aan boord in board.h by:
- #definieer BOARD_FLEXSPI FLEXSPI1
- #definieer BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #definieer BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Kopieer die operateurs en konfigurasies files van die Flash-toestel flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, ensln_flash_ops.h onder die pad smart HMI_7\coffeesource_igfcm na die gids van die exemplaar-masjienampdie SW.
- Ontmerk "Sluit hulpbron uit van bou" in C/C++ Bou > Instellings nadat u met die rechtermuisknop op die filese naam en die opening van die eiendomme sodat dit in die projek ingebou kan word.
- Verander die ingesluit kopskrif filenoem sln_flash_config.h na sln_flash_config_w25q256jvs.h in sln_flash_config.c en flexspi_nor_flash_ops.h.
- Stel die FlexSPI1-klokbron in die file clock_config.c wat verwys na die koffiemasjien-toepassing.
Voeg adapter en middelvlak ondersteuning by
- Kopieer die files sln_flash.c, sln_flash.h, sln_encrypt.c en sln_encrypt.h as adapterbestuurders vir die file stelsel en toepassing vanaf die pad van slim HMI\coffee_machine\cm7\source\ na die gidsbron van die example. Dateer die nuwe op files:
- Ontmerk "Sluit hulpbron uit van bou" op hulle vir bou.
- Verander al die ingesluit opskrif file noem sln_flash_config.h na sln_flash_config_w25q256jvs.h.
- Kopieer die gids filestelsel wat die API's vir die kleintjies bevat filestelsel en HAL bestuurder van slim HMI \ koffiemasjien \ cm7 \ bron \ tot die exampdie SW. En werk op vir die nuwe gids:
- Ontmerk "Sluit hulpbron uit van bou" daarop om te bou.
- Voeg die insluitpad daarvoor by in projekinstellings: "${workspace_loc:/${ProjName}/filestelsel}"
- Verander die ingesluit kopskrif file noem sln_flash_config.h na sln_flash_config_w25q256jvs.h en fica_definition.h na app_config.h in die file sln_flash_littlefs.h.
- Kopieer die vouer littlefs wat die middelware bevat – min filestelsel vanaf die pad SDK_2_13_0_ MIMXRT1170-EVK\middleware\ na die exampdie SW. En werk die nuwe gids op:
- Ontmerk "Sluit hulpbron uit van bou" daarop om te bou.
- Voeg die insluitpad daarvoor by in projekinstellings: "${workspace_loc:/${ProjName}/littlefs}"
Voeg HAL-bestuurders by
- Daar is twee HAL-toestelle – file stelsel en gesig databasis HAL ondersteun vir die databasis toegang funksie en hulle is reeds geïmplementeer in die raamwerk sonder enige verandering. Aktiveer hulle deur die onderstaande definisies in board_define.h by te voeg:
- #definieer ENABLE_FLASH_DEV_Littlefs
- #definieer ENABLE_FACEDB
En verander die naam van die gesigdatabasis vir die eksample: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"
Voeg ondersteuning op toepassingsvlak by
- Dateer die hoof op file lvgl_gui_face_rec_cm7.cpp:
- Sluit die kopskrif in file verband hou met die Flash file stelsel HAL bestuurder deur die kodelyn by te voeg: #include "fwk_flash.h"
- Verklaar en registreer file stelsel HAL toestel:
- HAL_FLASH_DEV_DECLARE(Littlefs);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Let wel: Die file stelsel HAL-toestel moet geregistreer word voordat alle toestelbestuurders in die funksie APP_InitFramework() geïnisialiseer word.
- Roep die funksie BOARD_ConfigMPU() in APP_BoardInit() om MPU te konfigureer.
- Stel die file stelselopdrag op Flash in die file app_config.h deur die makro-definisies wat in die file sln_flash_littlefs.h:
- #definieer FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #definieer FICA_FILE_SYS_SIZE (0x280000)
Konfigurasies
Sommige Flash-verwante kodes word in die SRAM ITC-area uitgevoer vir genoeg prestasie. Kopieer die vouer-skakelskrifte wat die koppelkonfigurasies bevat van die pad smart HMI\coffee_machine\cm7\ na die exampdie SW.
Implementeer 'n LVGL GUI-toepassing
Die ontwikkeling van 'n LVGL GUI-toepassing gebaseer op raamwerk roep die API's vanaf uitset UI HAL en verskaf die API's om UI HAL uit te voer (Sien Afdeling 4.1.3 vir die implementering van uitset UI HAL).
Die gedetailleerde implementering van 'n LVGL GUI-toepassing hang egter af van die vereistes en ontwerp van die toepassing. Die GUI-toepassing in hierdie example is ontwerp soos beskryf aan die begin van die afdeling Afdeling 4.
Hieronder is die implementeringsinleidings:
- Die pasgemaakte kodes word geïmplementeer in die custom.c en custom.h wat deur GUI Guider gegee word as die koppelvlak tussen die GUI Guider-projek en die ingebedde stelselprojek.
- Voeg die nuwe funksies genaamd gui_xxx() in custom.c by om die onderstaande funksies te bereik:
- Vir uitvoer UI HAL en GUI app om UI op te dateer.
- Vir GUI-toepassing om gebeurtenisse te aktiveer deur UI-terugbelfunksies vanaf uitvoer UI HAL te bel.
Byvoorbeeldample, die nuwe funksie gui_event_face_rec_action() roep UI-terugbelfunksies om een van die gebeurtenisse van gesigregistrasie, gesigherkenning en uitvee van gebruiker te hanteer wat vanaf die GUI-toepassing geaktiveer word wanneer die verwante knoppie geklik word.
Let wel: Die funksie gui_set_virtual_face() het in uitvoer UI HAL vir preview modus moet geïmplementeer word in custom.c:
- Kloon funksie gui_set_virtual_face() vanaf slim HMI\koffiemasjien\cm4\custom \custom.c.
- Verander die legstuk se naam home_img_cameraPreview na screen_img_camera_preview in die funksie.
- Implementeer die UI-terugbelfunksies met dieselfde prototipe na almal in uitvoer-UI HAL onder beheer van die makrodefinisie #ifndef RT_PLATFORM in custom.c om versoenbaar te wees met die GUI Guider-projek omdat hierdie funksies in uitvoer-UI HAL afhanklik is van die ingebedde platform. In custom.c is hulle afhanklik van die simulator op GUI-gids en is onafhanklik van die ingebedde platform. Byvoorbeeldample, die gesigregistrasie-terugoproep word soos hieronder geïmplementeer vir die GUI Guider-simulator wat loop: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = vals; terugkeer; }
Let wel: Verwys na dieselfde prototipe van die funksie wat in stap 6 van Afdeling 4.1.3 bekendgestel is
Die makro-definisie RT_PLATFORM is ingestel op die projekinstellings van MCUXpresso soos in Figuur 7 getoon: - Verklaar al die funksies genaamd UI_xxx_Callback() en gui_xxx() in custom.h en voeg custom.h by wat in smart_tlhmi_event_descriptor.h ingesluit is om die GUI API's na UI-uitvoer HAL te deel.
- Voeg die nuwe funksies genaamd gui_xxx() in custom.c by om die onderstaande funksies te bereik:
- Ontwikkel die GUI op GUI Guider:
- Kloon die vouer kamera preview wat die GUI Guider-projeksagteware in die gids gui_guider in die basissagtewarepakket bevat lvgl_gui_camera_preview_cm7. Verander die verwante naam camera_preview to face_rec vir die nuwe eksample.
- Kopieer die bogenoemde opgedateerde custom.c en custom. h na die nuwe GUI Guider-projeksagteware.
- Maak die nuwe face_rec-projek op GUI Guider oop. Opdateer soos hieronder:
- Voeg die nuwe knoppie gemerk Verwyder gebruiker by. Voeg die vlag Hidden daarby sodat die knoppie versteek sal word wanneer die GUI-toepassing begin.
- Voeg die kodelyn by van die oproep van die API gui_event_face_rec_action() met 'n ander gebeurtenis-ID-parameter op die "Vrygestel"-sneller in die gebeurtenisinstelling van al die knoppies Registrasie, Herkenning en Verwyder gebruiker om die gebeurtenisse van gesigregistrasie, gesigherkenning en die verwydering van gebruiker te aktiveer. Figuur 8 toon die kode vir die gebeurtenis van die knoppie Registrasie:
- Dateer die gegenereerde kode van GUI Guider op na die MCUXpresso-projek.
- Vervang die inhoud behalwe vir die vouerbeelde in die vouer wat van die MCUXpresso-projek SW gegenereer is met die ooreenstemmendes in die vouer wat van GUI Guider-projek SW gegenereer is.
Let wel: Vir meer besonderhede oor die wysigings wat hierbo ingestel is, gaan na die example sagteware by https://mcuxpresso.nxp.com/appcodehub.
Verifikasies met die exampdie projek
Om die example sagtewarepakket wat die hulpbronne en gereedskap vir hierdie toepassingsnota bevat, besoek: https://mcuxpresso.nxp.com/appcodehub. Maak die ex oopampdie projek op MCUXpresso IDE. Bou en programmeer die .axf file na die adres 0x30000000 en programmeer die hulpbronbak file camera_preview_resource.bin na die adres 0x30800000.
Die LVGL GUI gesigherkenning example werk normaalweg soos hieronder:
- Preview: Met aanskakeling wys die videostrome wat deur die kamera vasgevang is op die spesifieke area van kamera voorview op die GUI-skerm. Die statusetiket vertoon "Preview…”. Vir besonderhede, sien Figuur 3. Die knoppie Verwyder gebruiker is versteek. As u op die area buite die knoppies en beelde klik, wys dit die preview meld soos bogenoemde nadat die gesigregistrasie of herkenningsaksie beëindig is.
- Registrasie:
- tartup: Wanneer die Registrasie-knoppie geklik word, begin die gesigregistrasie. Die statusetiket verander om "Registrasie ..." te vertoon, die gesiggidsreghoek wys blou, en die vorderingsbalk begin die vordering wys. Maak seker dat die gebruiker se gesig in die blou gesiggids reghoek wys vir registrasie.
- sukses: Die statusetiket wys “Registrasie…OK” en die geregistreerde gebruiker-ID-nommer, die gesiggidsreghoek word rooi as die gesigregistrasie suksesvol is voordat die vordering vol op die balk wys.
- Mislukking -> Time-out: Die statusetiket wys "Registrasie...Time-out" as die gesigregistrasie steeds misluk het wanneer die vordering vol op die balk wys.
- Mislukking -> Duplisering: Die statusetiket wys "Registrasie...Misluk", die gesiggidsreghoek word groen as die geregistreerde gesig herken word voordat die vordering vol op die balk wys.
- erkenning:
- Opstart: Wanneer die Herkenning-knoppie geklik word, begin die gesigherkenning. Die statusetiket verander om "Herkenning ..." te vertoon, die gesiggidsreghoek wys blou, en die vorderingsbalk begin die vordering wys. Maak seker dat die gebruiker se gesig in die blou gesiggidsreghoek gewys word vir registrasie.
- sukses: Die statusetiket wys “Herkenning…OK” en die herkende gebruiker-ID-nommer, die gesiggidsreghoek word groen as die gesigherkenning suksesvol is voordat die vordering vol op die balk wys. Op die punt verskyn die knoppie Verwyder gebruiker. Dit beteken dat die gebruiker slegs toegelaat word om uitgevee te word wanneer dit herken word.
- ailure: Die statusetiket wys "Herkenning...Tyd uit" as die gesigherkenning steeds misluk het wanneer die vordering vol op die balk wys.
- Vee gebruiker uit: Wanneer die knoppie "Verwyder gebruiker" geklik word, nadat die gesigherkenning suksesvol is, verander die statusetiket om "Verwyder gebruiker ... OK" te vertoon met die gesiggids reghoek wat blou word en die vordering wat vol op die balk wys. Die knoppie Verwyder gebruiker is weer versteek. Die herkende gesig/gebruiker word van die databasis verwyder. Dit beteken dat hierdie gesig/gebruiker nie herken kan word voordat dit weer geregistreer is nie.
Let op oor die bronkode in die dokument
ExampDie kode wat in hierdie dokument gewys word, het die volgende kopiereg- en BSD-3-klousule-lisensie:
Kopiereg 2024 NXP Herverspreiding en gebruik in bron- en binêre vorms, met of sonder wysiging, word toegelaat mits aan die volgende voorwaardes voldoen word:
- Herverspreidings van bronkode moet die bogenoemde kopieregkennisgewing, hierdie lys voorwaardes en die volgende vrywaring behou.
- Herverspreidings in binêre vorm moet die bogenoemde kopieregkennisgewing weergee, hierdie lys voorwaardes en die volgende vrywaring in die dokumentasie en/of ander materiaal moet saam met die verspreiding voorsien word.
- Nóg die naam van die kopiereghouer nóg die name van sy bydraers mag gebruik word om produkte wat van hierdie sagteware afgelei is te onderskryf of te bevorder sonder spesifieke vooraf skriftelike toestemming
HIERDIE SAGTEWARE WORD VERSKAF DEUR DIE KOPIEREGHOUERS EN BYDRAERS "SOOS IS" EN ENIGE UITDRUKLIKE OF GEÏSPLISEERDE WAARBORGE, INSLUITEND, MAAR NIE BEPERK TOT, DIE GEÏSPLISEERDE WAARBORGE VAN VERHANDELBAARHEID EN GESKIKTHEID VIR 'N OORDEELLIKHEID. IN GEEN GEVAL SAL DIE KOPIEREGHOUER OF BYDRAERS AANSPREEKLIK WEES VIR ENIGE DIREKTE, INDIREKTE, TOEVALLE, SPESIALE, VOORBEELDIGE OF GEVOLLIKE SKADE (INSLUITEND, MAAR NIE BEPERK TOT, VERKRYGING VAN PLAASVERVANGERS DIENSTE GOED, DEUR ONS; OF WINSTE OF BESIGHEID ONDERBREKING) HOOF VEROORSAAK EN OP ENIGE TEORIE VAN AANSPREEKLIKHEID, HETsy IN KONTRAK, STRENG AANSPREEKLIKHEID, OF DRAAD (INSLUITEND NALATIGHEID OF ANDERS) WAT OP ENIGE MANIER UIT DIE GEBRUIK VOORTSTAAN, OF DAARVAN. MOONTLIKHEID VAN SO SKADE.
Hersieningsgeskiedenis
Regsinligting
Definisies
Konsep - 'n Konsepstatus op 'n dokument dui aan dat die inhoud steeds onder interne hersiening isview en onderhewig aan formele goedkeuring, wat kan lei tot wysigings of byvoegings. NXP Semiconductors gee geen voorstellings of waarborge oor die akkuraatheid of volledigheid van inligting wat in 'n konsepweergawe van 'n dokument ingesluit is nie en sal geen aanspreeklikheid hê vir die gevolge van die gebruik van sulke inligting nie.
Disclaimer
- Beperkte waarborg en aanspreeklikheid — Daar word geglo dat inligting in hierdie dokument akkuraat en betroubaar is. NXP Semiconductors gee egter geen voorstellings of waarborge, uitdruklik of geïmpliseer, oor die akkuraatheid of volledigheid van sodanige inligting nie en sal geen aanspreeklikheid hê vir die gevolge van die gebruik van sodanige inligting nie. NXP Semiconductors neem geen verantwoordelikheid vir die inhoud in hierdie dokument as dit deur 'n inligtingsbron buite NXP Semiconductors verskaf word nie.
In geen geval sal NXP Semiconductors aanspreeklik wees vir enige indirekte, toevallige, bestraffende, spesiale of gevolglike skade (insluitend – sonder beperking – verlore winste, verlore besparings, besigheidsonderbreking, koste wat verband hou met die verwydering of vervanging van enige produkte of herbewerkingskoste nie) of nie sulke skadevergoeding is gebaseer op onregmatige daad (insluitend nalatigheid), waarborg, kontrakbreuk of enige ander regsteorie.
Nieteenstaande enige skade wat die kliënt om enige rede hoegenaamd mag aangaan, sal NXP Semiconductors se totale en kumulatiewe aanspreeklikheid teenoor die klant vir die produkte wat hierin beskryf word, beperk word in ooreenstemming met die bepalings en voorwaardes van kommersiële verkoop van NXP Semiconductors. - Reg om veranderinge aan te bring — NXP Semiconductors behou die reg voor om enige tyd en sonder kennisgewing veranderinge aan inligting wat in hierdie dokument gepubliseer is, insluitend sonder beperking spesifikasies en produkbeskrywings, te maak. Hierdie dokument vervang en vervang alle inligting wat verskaf is voor die publikasie hiervan.
- Geskik vir gebruik — NXP Semiconductors-produkte is nie ontwerp, gemagtig of gewaarborg om geskik te wees vir gebruik in lewensondersteunende, lewenskritiese of veiligheidskritieke stelsels of toerusting nie, en ook nie in toepassings waar daar redelikerwys verwag kan word dat mislukking of wanfunksionering van 'n NXP Semiconductors-produk tot gevolg het persoonlike besering, dood of ernstige skade aan eiendom of omgewing. NXP Semiconductors en sy verskaffers aanvaar geen aanspreeklikheid vir die insluiting en/of gebruik van NXP Semiconductors-produkte in sulke toerusting of toepassings nie en daarom is sodanige insluiting en/of gebruik op die kliënt se eie risiko.
- Aansoeke — Toepassings wat hierin beskryf word vir enige van hierdie produkte is slegs vir illustratiewe doeleindes. NXP Semiconductors maak geen voorstelling of waarborg dat sulke toepassings geskik sal wees vir die gespesifiseerde gebruik sonder verdere toetsing of wysiging nie.
Kliënte is verantwoordelik vir die ontwerp en werking van hul toepassings en produkte deur NXP Semiconductors-produkte te gebruik, en NXP Semiconductors aanvaar geen aanspreeklikheid vir enige bystand met toepassings of kliëntprodukontwerp nie. Dit is die kliënt se uitsluitlike verantwoordelikheid om te bepaal of die NXP Semiconductors-produk geskik en geskik is vir die kliënt se toepassings en produkte wat beplan word, sowel as vir die beplande toepassing en gebruik van kliënt se derdeparty-kliënt(e). Kliënte moet toepaslike ontwerp- en bedryfsvoorsorgmaatreëls verskaf om die risiko's wat met hul toepassings en produkte geassosieer word, te verminder. NXP Semiconductors aanvaar geen aanspreeklikheid wat verband hou met enige wanbetaling, skade, koste of probleem wat gebaseer is op enige swakheid of wanbetaling in die kliënt se toepassings of produkte, of die toepassing of gebruik deur die kliënt se derdeparty-kliënt(e nie). Kliënt is verantwoordelik om alle nodige toetse vir die kliënt se toepassings en produkte te doen deur NXP Semiconductors-produkte te gebruik om 'n wanbetaling van die toepassings en die produkte of van die toepassing of gebruik deur kliënt se derdeparty-kliënt(e) te vermy. NXP aanvaar geen aanspreeklikheid in hierdie opsig nie. - Bepalings en voorwaardes van kommersiële verkoop — NXP Semiconductors-produkte word verkoop onderhewig aan die algemene bepalings en voorwaardes van kommersiële verkoop, soos gepubliseer by https://www.nxp.com/profile/bepalings, tensy anders ooreengekom in 'n geldige skriftelike individuele ooreenkoms. In die geval dat 'n individuele ooreenkoms gesluit word, is slegs die bepalings en voorwaardes van die onderskeie ooreenkoms van toepassing. NXP Semiconductors maak hiermee uitdruklik beswaar teen die toepassing van die kliënt se algemene bepalings en voorwaardes met betrekking tot die aankoop van NXP Semiconductors-produkte deur klant.
- Uitvoerbeheer — Hierdie dokument sowel as die item(s) wat hierin beskryf word, kan onderhewig wees aan uitvoerbeheerregulasies. Uitvoer kan 'n voorafmagtiging van bevoegde owerhede vereis.
- Geskiktheid vir gebruik in nie-motor gekwalifiseerde produkte — Tensy hierdie dokument uitdruklik sê dat hierdie spesifieke NXP Semiconductors-produk motorgekwalifiseerd is, is die produk nie geskik vir motorgebruik nie. Dit is nie gekwalifiseer of getoets in ooreenstemming met motortoets- of toepassingsvereistes nie. NXP Semiconductors aanvaar geen aanspreeklikheid vir die insluiting en/of gebruik van nie-motorgekwalifiseerde produkte in motortoerusting of toepassings nie.
In die geval dat klant die produk gebruik vir ontwerp-in en gebruik in motortoepassings volgens motorspesifikasies en -standaarde, sal klant (a) die produk sonder NXP Semiconductors se waarborg van die produk vir sodanige motortoepassings, gebruik en spesifikasies gebruik, en ( b) wanneer klante die produk vir motortoepassings buite NXP Semiconductors se spesifikasies gebruik, sal sodanige gebruik uitsluitlik op die kliënt se eie risiko wees, en (c) kliënt vrywaar NXP Semiconductors ten volle vir enige aanspreeklikheid, skade of mislukte produkeise wat voortspruit uit klantontwerp en gebruik van die produk vir motortoepassings buite NXP Semiconductors se standaardwaarborg en NXP Semiconductors se produkspesifikasies. - Vertalings — 'n Nie-Engelse (vertaalde) weergawe van 'n dokument, insluitend die regsinligting in daardie dokument, is slegs vir verwysing. Die Engelse weergawe sal geld in die geval van enige teenstrydigheid tussen die vertaalde en Engelse weergawes.
- Sekuriteit — Kliënt verstaan dat alle NXP-produkte onderhewig kan wees aan ongeïdentifiseerde kwesbaarhede of gevestigde sekuriteitstandaarde of spesifikasies met bekende beperkings kan ondersteun. Kliënt is verantwoordelik vir die ontwerp en werking van sy toepassings en produkte regdeur hul lewensiklus om die effek van hierdie kwesbaarhede op klante se toepassings en produkte te verminder. Kliënt se verantwoordelikheid strek ook uit na ander oop en/of eie tegnologieë wat deur NXP-produkte ondersteun word vir gebruik in klante se toepassings. NXP aanvaar geen aanspreeklikheid vir enige kwesbaarheid nie. Kliënt moet gereeld sekuriteitsopdaterings van NXP nagaan en toepaslik opvolg. Kliënt sal produkte kies met sekuriteitskenmerke wat die beste aan reëls, regulasies en standaarde van die beoogde toepassing voldoen en die uiteindelike ontwerpbesluite neem oor sy produkte en is alleen verantwoordelik vir voldoening aan alle wetlike, regulatoriese en sekuriteitsverwante vereistes rakende sy produkte, ongeag van enige inligting of ondersteuning wat deur NXP verskaf kan word.
NXP het 'n produksekuriteitsvoorvalreaksiespan (PSIRT) (bereikbaar by PSIRT@nxp.com) wat die ondersoek, verslagdoening en oplossingvrystelling vir sekuriteitskwesbaarhede van NXP-produkte bestuur.
NXP B.V. — NXP B.V. is nie 'n bedryfsmaatskappy nie en dit versprei of verkoop nie produkte nie.
Handelsmerke
Kennisgewing: Alle handelsmerke, produkname, diensname en handelsmerke waarna verwys word, is die eiendom van hul onderskeie eienaars.
NXP — woordmerk en logo is handelsmerke van 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 — is handelsmerke en/of geregistreerde handelsmerke van Arm Limited (of sy filiale of affiliasies) in die VSA en/of elders. Die verwante tegnologie kan beskerm word deur enige of alle patente, kopiereg, ontwerpe en handelsgeheime. Alle regte voorbehou.
- i.MX — is 'n handelsmerk van NXP BV
- J-skakel — is 'n handelsmerk van SEGGER Microcontroller GmbH.
Microsoft, Azure en ThreadX - is handelsmerke van die Microsoft-groep van maatskappye.
Neem asseblief kennis dat belangrike kennisgewings rakende hierdie dokument en die produk(te) wat hierin beskryf word, ingesluit is in die afdeling 'Regsinligting'.
© 2024 NXP BV
Vir meer inligting, besoek asseblief: https://www.nxp.com
- Datum van vrystelling: 19 April 2024
- Dokument identifiseerder: AN14263
Gereelde vrae
V: Wat is die hoofdoel van hierdie produk?
A: Die hoofdoel is om gesigherkenningsfunksie moontlik te maak deur gebruik te maak van 'n AI&ML visie-algoritmemodel met 'n eenvoudige LVGL GUI example op die SLN-TLHMI-IOT-bord.
V: Hoe kan ontwikkelaars voordeel trek uit hierdie toepassingsnota?
A: Ontwikkelaars kan stap vir stap leer hoe om gesigherkenning op die raamwerk te implementeer deur die verskafde eksample en die betrokke toestelbestuurders, HAL-toestelle en gebeurtenismeganismes te verstaan.
Dokumente / Hulpbronne
![]() |
NXP AN14263 Implementeer LVGL GUI-gesigherkenning op Framewor [pdf] Gebruikersgids AN14263 Implementeer LVGL GUI-gesigherkenning op Framewor, AN14263, Implementeer LVGL GUI Face Recognition op Framewor, LVGL GUI Face Recognition on Framewor, Face Recognition on Framewor, Recognition on Framewor, Framewor |