NXP AN14263 Rakendage raamis LVGL GUI näotuvastus
Tooteteave
Tehnilised andmed
- Toote nimi: LVGL GUI näotuvastus raamistikus
- Dokumendi läbivaatamine: 1. – 19. aprill 2024
- Märksõnad: Näotuvastus, LVGL GUI, raamistik
Toote kasutusjuhised
- Läbiview
See toode võimaldab AI&ML nägemisalgoritmi mudelit näotuvastuseks raamistikus, et rakendada näotuvastusfunktsiooni lihtsa LVGL GUI-ga, näiteksample SLN-TLHMI-IOT plaadil. - Raamistik läbiview
Lahenduse tarkvara on loodud raamistiku arhitektuuri ümber, mis hõlmab seadmehaldureid, kes vastutavad seadmete haldamise eest, HAL-seadmeid aluseks olevate üksikasjade abstrakteerimiseks ja sündmusi erinevate seadmete vahel suhtlemiseks. - Omadused
Toode võimaldab rakendada näotuvastusfunktsiooni läbi kaamera eelview GUI ekraanil nuppudega, mis käivitavad näo registreerimise, tuvastamise ja eemaldamise. Registreeritud näoandmed salvestatakse Flashi kaudu a file süsteem. - Rakenduse märkuse sisu
Rakenduse märkuses on LVGL GUI ekraan koos kaamera eelview ja nupud näoga seotud toimingute jaoks. See aitab arendajatel mõista raamistikku ja näotuvastuse rakendamist, kasutades pakutavat example.
Läbiview
NXP on käivitanud lahenduste arenduskomplekti nimega SLN-TLHMI-IOT, mis keskendub nutikatele HMI rakendustele. See võimaldab nutikat HMI-d koos ML-nägemise, hääle ja graafika kasutajaliidesega, mis on rakendatud ühes NXP i.MX RT117H MCU-s. SDK-l põhinev lahendustarkvara on üles ehitatud raamistikule, mis toetab paindlikku kujundust ning nägemis- ja häälefunktsioonide kohandamist. Et aidata kasutajatel tarkvaraplatvormi paremini kasutada, on kaasas mõned põhidokumendid, ntample, tarkvaraarenduse kasutusjuhend. Juhend tutvustab põhitarkvara disaini ja rakenduste arhitektuuri, mis hõlmab kõiki lahenduse komponente, sealhulgas raamistikku, et aidata arendajatel hõlpsamini ja tõhusamalt oma rakendusi SLN-TLHMI-IOT abil juurutada.
Lisateavet lahenduse ja asjakohaste dokumentide kohta leiate aadressilt web NXP EdgeReady nutika HMI-lahenduse leht Põhineb i.MX RT117H-l koos ML-nägemise, hääle ja graafilise kasutajaliidesega. Siiski ei ole arendajatel endiselt nii lihtne nendele põhijuhenditele viidates oma nutikaid HMI rakendusi juurutada. Kavas on rida rakendusmärkmeid, mis aitavad raamistiku arengut samm-sammult uurida. See rakenduse märkus põhineb rakendusel Implement LVGL GUI Camera Preview raamistikus (dokument AN14147). See rakenduse märkus kirjeldab, kuidas lubada raamistikus näotuvastuse AI&ML nägemisalgoritmi mudelit, et rakendada näotuvastusfunktsiooni kaamera eel.view GUI ekraanil lihtsa LVGL GUI ntample SLN-TLHMI-IOT plaadil. Taotluse märkuses on endineample esitleb LVGL GUI ekraani koos kaamera eelview ja mõned nupud näo registreerimise, tuvastamise ja eemaldamise käivitamiseks. Registreeritud näoandmed salvestatakse Flashi väikese kaudu file süsteem.
Kõrgel tasemel sisaldab rakendusmärkus järgmist sisu:
- Lubage raamistikus näotuvastusfunktsioon.
- Lisage raamistikule nägude andmebaasi tugi kaudu file süsteem Flashis.
- Rakendage LVGL GUI rakendus. Ülaltoodud sissejuhatuste kaudu aitab see dokument arendajatel:
- Mõistke raamistikku ja nutikat HMI-lahenduse tarkvara sügavamalt.
- Arendage nende AI&ML näotuvastust raamistikus LVGL GUI rakendusega.
Raamistik läbiview
Lahenduse tarkvara on peamiselt loodud raamistiku arhitektuuri kasutamiseks, mis koosneb mitmest erinevast osast:
- Seadmehaldurid – põhiosa
- Riistvara abstraktsioonikihi (HAL) seadmed
- Sõnumid/sündmused
Nagu on näidatud joonisel 1, on üleview raamistiku mehhanism on järgmine:
Seadmehaldurid vastutavad süsteemis kasutatavate seadmete haldamise eest. Igal seadmetüübil (sisend, väljund ja nii edasi) on oma tüübispetsiifiline seadmehaldur. Kui seadmehaldur käivitub pärast seadmete registreerimist, ootab ja kontrollib see sõnumit andmete edastamiseks seadmetele ja teistele halduritele pärast registreeritud seadmete lähtestamist ja käivitamist. HAL-seadmed on kirjutatud madalama taseme draiverikoodi peale, mis aitab parandada koodi arusaadavust, võttes abstraheerides paljusid aluseks olevaid üksikasju.
Sündmused on vahend, mille abil edastatakse teavet erinevate seadmete vahel nende haldurite kaudu. Kui sündmus käivitatakse, edastab sündmuse esmalt vastu võtnud seade selle sündmuse oma haldurile, seejärel teavitab see omakorda teisi sündmuse vastuvõtmiseks määratud haldureid.
Raamistiku arhitektuurne disain keskendus kolmele peamisele eesmärgile:
- Kasutusmugavus
- Paindlikkus/kaasaskantavus
- Esitus
Raamistik on loodud eesmärgiga kiirendada nägemise ja muude masinõpperakenduste turuletulekut. Kiire turustamise tagamiseks on oluline, et tarkvara ise oleks kergesti mõistetav ja muudetav. Seda eesmärki silmas pidades on raamistiku arhitektuuri lihtne muuta, ilma piiranguteta ja jõudlust maksmata.
Raamistiku kohta lisateabe saamiseks vaadake Smart HMI tarkvaraarenduse kasutusjuhendit (dokument MCU-SMHMI-SDUG).
Kerge ja mitmekülgne graafikateek (LVGL)
LVGL (Light and Versatile Graphics Library) on tasuta avatud lähtekoodiga graafikateek, mis pakub kõike, mida vajate hõlpsasti kasutatavate graafiliste elementide, kaunite visuaalsete efektide ja vähese mälumahuga manustatud GUI loomiseks.
GUI juht
GUI Guider on kasutajasõbralik NXP graafilise kasutajaliidese arendustööriist, mis võimaldab avatud lähtekoodiga LVGL-i graafikateegiga kõrgekvaliteedilisi kuvareid kiiresti arendada. GUI Guideri pukseerimisredaktor muudab LVGL-i paljude funktsioonide (nt vidinad, animatsioonid ja stiilid) kasutamise lihtsaks, et luua GUI minimaalse kodeerimisega või üldse mitte.
Ühe nupuvajutusega saate käivitada oma rakenduse simuleeritud keskkonnas või eksportida selle sihtprojekti. GUI Guideri genereeritud koodi saab hõlpsasti oma projekti lisada, kiirendades arendusprotsessi ja võimaldades teil oma rakendusele sujuvalt lisada manustatud kasutajaliidese. GUI Guiderit saab tasuta kasutada koos NXP üldotstarbeliste ja ristuvate MCU-dega ning see sisaldab sisseehitatud projektimalle mitme toetatud platvormi jaoks. Lisateabe saamiseks LVGL-i ja GUI arendamise kohta GUI Guideris vaadake Light and Versatile Graphics Library ja GUI Guider.
Arenduskeskkond
Esmalt valmistage ette ja seadistage riist- ja tarkvarakeskkond example raamistikule.
Riistvara keskkond
Riistvarakeskkond on seadistatud eksample:
- Nutikas HMI arenduskomplekt, mis põhineb NXP i.MX RT117H-l (komplekt SLN_TLHMI_IOT)
- SEGGER J-Link 9-pin Cortex-M adapteri ja V7.84a või uuema draiveri versiooniga
Tarkvarakeskkond
Tarkvarakeskkond on loodud eksample:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – ntamparenduse alustarkvarana teise rakendusmärkme le kood. Üksikasju vt https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – arenduse koodiressursina.
- SLN-TLHMI-IOT tarkvara V1.1.2 – nutikas HMI lähtekood, mis on välja antud arenduse koodiressursina NXP GitHubi hoidlas. Üksikasju vaadake: GitHub – NXP/mcu-smhmi versioonis 1.1.2
Lisateavet tarkvarakeskkonna hankimise ja seadistamise kohta leiate jaotisest SLN-TLHMI-IOT-iga alustamine.
Visiooniarhitektuur raamistikul
Visiooniarhitektuur raamistikul on näidatud joonisel 2. Visioonialgo HAL (OASIS_HAL) sisaldab järgmisi protsesse:
- Registreerige ja tuvastage nägusid AI&ML-i nägemisalgoritmi mudeli abil pärast seotud sündmuste saamist väljundliidese HAL-ist. Teatage algoritmimudeli järeldustulemustest väljundliidese HAL-i.
- Juurdepääs (lisa, kustuta…) näofunktsioonide andmebaasile, mis põhineb vähesel määral file süsteemi kutsudes FaceDB HAL-i API-sid pärast väljundi kasutajaliidese HAL-ist seotud sündmuste saamist.
- Näo registreerimisel ja tuvastamisel taotlege kaamera HAL-ilt kaamera videokaadrit.
Rakendage raamistikus näotuvastus
LVGL GUI näotuvastus example (endineample esitatakse hiljem) raamistikul rakendatakse exampImplement LVGL GUI Camera Preview raamistikus (dokument AN14147).
Endise näotuvastuse demonstreerimise eestampGUI rakenduse põhifunktsioon (vt põhiekraani joonisel 3) on kujundatud nii, nagu allpool kirjeldatud:
- GUI rakendus käivitab väljundi kasutajaliidese HAL näo registreerimise või tuvastamise sündmuse, kui klõpsate nupul Registreerimine või tuvastamine. Ja väljund kasutajaliidese HAL teavitab kasutaja lisamisest nägemisalgosse HAL pärast näo registreerimise õnnestumist.
- GUI rakendus käivitab kasutaja kustutamise sündmuse kasutajaliidese HAL-i väljundis, kui klõpsate nuppu Kustuta kasutaja pärast kasutaja näo tuvastamist.
- GUI-rakendus käivitab väljundi kasutajaliidese HAL-i käivitamise oaasi algo peatamise sündmuse, kui klõpsate ekraanil väljaspool nuppe ja pilte.
Valmistage ette tarkvarapakett eksemplari rakendamiseksample.
- Kloonige baastarkvara lvgl_gui_camera_preview_cm7. Muutke projekti nime ja peamist filenimi lvgl_gui_face_rec_cm7-le.
- Raamistikut on vaja tarkvaras värskendada, kuna raamistiku tuuma lähtekoodid on GitHubis alates versioonist 1.1.2 avalikud.
- Asendage raamistiku kaust GitHubi versiooni V1.1.2 koopiaga, välja arvatud files fwk_log.h ja fwk_common.h inc\ all, kuna neid on rakenduse märkuse seeria jaoks muudetud. Toimingud on näidatud joonisel 4:
- Kustutage libsirühma all kaust framework_cm7 ja eemaldage teek framework_cm7 ja selle otsingutee, mis on konfigureeritud jaotises Projekt > Atribuudid > C/C++ ehitamine > sätted > Tööriista sätted > MCU C++ Linker > Teegid, kuna tuuma lähtekood on olemas.
Lubage raamistikus näotuvastusfunktsioon
Näotuvastusfunktsioon põhineb ML-nägemisalgoritmi mudelil, mis on saadaval staatilise raamatukoguna – NXP oasis lite käitusaegse raamatukoguna. Teek on väike, väga tõhus, kohandatud ja optimeeritud AI raamatukogu. Mudel sisaldab näotuvastust, näotuvastust, klaasituvastust ja elavuse tuvastamist. Peamiselt pakub see API OASISLT_run_extended() näotuvastuskonveieri käitamiseks, värskendades samal ajal tulemusi helistajale sündmuste tagasikutsumiste kaudu ja nägude lisamiseks/värskendamiseks/kustutamiseks andmebaasis nägude andmebaasi tagasikutsumiste kaudu pärast lähtekaadri teabe, tagasihelistamiste ja mälu täpsustamist. bassein, mida teegi kasutab, kutsudes lähtestamisel välja teise API OASISLT_init(). API-de kutsumine ja tagasihelistamise funktsioonid on realiseeritud raamistiku visioonialgo HAL-is.
Lisa visiooni algo mudeliteek
- Kopeeri kausta oaas, mis sisaldab teeki ja sellega seotud päist file kaustast smart HMI\coffee_machine\cm7\libs\ endise kasutaja kausta libsample SW.
- Lisage päise otsingutee file jaotises Projekt > Atribuudid > C/C++ ehitus > seaded > Tööriista sätted > MCU C-kompilaator > Sisaldab ja MCU C++ kompilaator > Sisaldab: „${workspace_loc:/${ProjName}/libs/oasis/include}”
- Lisage lib ja selle otsingutee jaotises Project > Properties > C/C++ Build > Settings > MCU C+ + Linker > Libraries: liboasis_lite2D_DEFAULT_117f_ae.a "${workspace_loc:/${ProjName}/libs/oasis}" ja makro definitsioon lubage funktsioon jaotises Projekt > Atribuudid > C/C++ ehitamine > sätted > Tööriista sätted > MCU C kompilaator > Eelprotsessor ja MCU C++ kompilaator > Eelprotsessor: SMART_TLHMI_2D
Luba nägemisalgo HAL
Nägemisalgo HAL käivitab nägemisalgo mudeli tööle ja reageerib tulemustele kasutajaliidese väljundile HAL pärast sellelt sündmuste saamist.
Selle lubamiseks kloonige olemasolev sarnane HAL-draiver file kus rakendatakse järgmisi funktsioone:
- Rakendage nägude andmebaasi toimingute ja sündmuste käsitlemise tagasihelistamised.
- Viige visioonialgo tööle, helistades oaasi teegi API-dele.
- Juurdepääs kasutaja nägude andmebaasile ja rakenduste andmebaasile (seda pole vaja näiteksample).
- Võtke vastu sündmusi ja saatke tulemused UI HAL-i väljundisse.
Peamised tööd HAL-i rakendamiseks endise jaoksampneed on:
- Kloonige olemasolev sarnane HAL-draiver file ja muutke seotud nimesid.
- Eemaldage rakenduse andmetoimingutega seotud koodid.
- Värskendage väljundi kasutajaliidese HAL-i sündmuste haldamise määratlusi ja funktsioone eksampdisain.
- Lisage oaasi lähtestamiseks vajalikud konfiguratsioonid.
Üksikasjalikud sammud on järgmised:
- Kloonige hal_vision_algo_oasis_coffeemachine.c. Muuda filenimi hal_vision_algo_oasis_guifacerec.c-le. Ja asendage kõik CoffeeMachine'i stringid GUIFaceReciga file.
- Eemaldage koodid, mis sisaldavad stringi coffeedb (mitte tõstutundlik), mis on seotud rakenduste andmebaasiga, ntample, #include hal_sln_coffeedb.h.
- Muutke funktsiooni HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() väljundi kasutajaliidese HAL-i sündmuste käsitlemiseks.
- Muutke sündmuste haldamise jaoks sündmuse definitsiooni kEventFaceRecId_RegisterCoffeeSelection väärtuseks kEventFaceRecId_RegisterUserFace ja struktuuristringiks regCoffeeSelection väärtuseks regGUIFaceRec, et lisada andmebaasi uued näofunktsiooni andmed.
- Näidata näotuvastustoimingute standardprotsessi ntample, muutke kEventFaceRecID_OasisSetState puhul käsitlemist olekute määratlustega:
- kOASISLiteState
- Registreerimine kOASISLiteState
- Tunnustus kOASISLiteState
- Peatatud
- Lisage ja muutke ülaltoodud sammus mainitud sündmuste määratlusi.
- Kopeerige päis file smart_tlhmi_event_descriptor.h nutikast HMI\coffee_machine'ist \cm7\source\event_handlers\ endise kausta allikasseample SW. Värskendage file nagu allpool:
- Muutke sündmuse definitsioon kEventFaceRecId_RegisterCoffeeSelection väärtuseks kEventFaceRecId_RegisterUserFace enumi tüübis _event_smart_tlhmi_id ja struktuuristring regCoffeeSelection väärtuseks regGUIFaceRec struktuuris _event_smart_t. Seega muutke regCoffeeSelectioni struktur register_coffee_selection_event_t väärtuseks register_gui_facerec_event_t.
- Kustutage muu kohvimasina rakenduses kasutatud sisu, ntample, hääle koodirida: #include "hal_event_descriptor_voice.h".
- Lisage tüübid kOASISLiteState_Stopped ja kOASISLiteState_Running loendi tüübile oasis_lite_state_t faili hal_vision_algo.h jaotises framework>hal>vision projektis järgmiselt:
typedef enum _oasis_lite_state {- kOASISLiteState
- Töötab, kOASISLiteState
- Peatatud, kOASISLiteState
- tunnustus,
- kOASISLiteState
- Registreerimine, kOASISLiteState
- Registreerimise tühistamine, kOASISLiteState
- RemoteRegistration, kOASISLiteState
- Count
- Kasutage ülaltoodud uuendatud struct oasis_lite_state_t, et täpsustada faili hal_event_descriptor_face_rec.h struktur oasis_state_event_t raamistiku framework>hal>vision all projektis järgmiselt: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- Muutke kõik kEventInfo_Remote väärtuseks kEventInfo_Local, et saata nägemusalgo HAL-i teistele HAL-idele, mis töötavad samas tuumas kui ühetuumalist, mitte kahetuumalist.ample.
- Lisage ja muutke allolevaid konfiguratsioone oaasi lähtestamiseks OASISLT_init():
- Lisage faili board_define.h videokaadri makrodefinitsioonid ja mälujaotised: #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, joondusbaitid) \
- __attribute__((section(.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __attribute__((joondatud(joonbaidid)))
- Konfigureerige mälu määramine ülaltoodud mälujaotisele fb_sh_mem jaotises Project > Properties > C/C++ Build > MCU Settings, mis on näidatud joonisel 5:
- Deklareerige globaalne muutuja g_DTCOPBuf failis lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Jätkake ülaltoodud muutujas kasutatud määratluste lisamist:
- Määratlege ülaltoodud jaotis saidil board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, joondusbaitid) \
- atribuut__((section(.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- atribuut__((joondatud(joonbaidid)))
- Kaasake päis file hal_vision_algo.h, mis sisaldab makrodefinitsiooni DTC_OPTIMIZE_BUFFER_SIZE failis app_config.h, mis sisaldub failis lvgl_gui_face_rec_cm7.cpp.
- Lisage faili board_define.h videokaadri makrodefinitsioonid ja mälujaotised: #define OASIS_RGB_FRAME_WIDTH 800
- Näotuvastuse edenemise oleku kuvamiseks määrake muutuja s_debugOption väärtuseks Tõene.
- Lisage päise otsingutee filevisiooni HAL s projektis > Atribuudid > C/C++ järg > sätted > Tööriista sätted > MCU C kompilaator > Sisaldab ja MCU C++ kompilaatorit > Sisaldab: „${workspace_loc:/${ProjName}/framework/hal/vision}”
- Lisage allolev definitsioon, et lubada vision algo HAL saidil board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Luba väljund kasutajaliidese HAL
Väljundliides HAL teavitab sündmustest nägemisalgo HAL-i ja reageerib nägemisalgo HAL-i järeldustulemustele. GUI rakenduse puhul käivitab sündmused üldiselt rakendus ja tulemusi kuvatakse rakenduses.
Selle lubamiseks kloonige olemasolev sarnane HAL-draiver file kus üldiselt rakendatakse järgmisi funktsioone:
- Teatage sündmustest näotuvastuse ja andmebaasi juurdepääsu saamiseks.
- Rakendage sündmuste käivitamiseks GUI-rakenduse tagasihelistamised.
- Käsitsege nägemisalgomooduli järelduste tulemusi.
- Näidake kasutajaliideses sündmuste käitlemise protsessi ja tulemusi taimerite ja näojuhiku ristküliku abil juhitava edenemisriba abil.
Peamised tööd HAL-i rakendamiseks endise jaoksampSelles dokumendis on kasutatud järgmist:
- Kloonige olemasolev sarnane HAL-draiver file ja muutke seotud nimesid.
- Eemaldage rakendusega seotud koodid.
- Värskendage sündmuste teavituse ja tulemuste vastuse funktsioone vastavalt ntampdisain.
- Lisage sündmuste käivitamiseks GUI-rakenduse tagasihelistamised.
Üksikasjalikud sammud on järgmised:
- Kloonige hal_output_ui_coffee_machine.c. Muuda filenimi failile hal_ output_ui_guifacerec.c.
- Asendage kõik CoffeeMachine'i stringid GUIFaceReciga file.
- Eemalda rakendusega – kohvimasinaga seotud koodid.
- Eemaldage funktsioonid WakeUp() ja _StandBy() ning nendega seotud koodid (võib otsida neid stringist wake_up ja standby).
- Eemalda eelview režiimi sündmused, mis käsitlevad seotud koode rakenduses HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Eemaldage funktsioonid UI_xxx_Callback() ja koodid, mis sisaldavad stringi gui_ ja kohvimasina GUI-ga seotud ekraani, välja arvatud gui_set_virtual_face()view režiimi funktsioon.
- Eemaldage kõik koodid, mis on seotud kohvimasina rakendusega seotud muutujatega s_IsWaitingAnotherSelection ja s_IsWaitingRegisterSelection.
- Eemaldage hääle, heli ja keelega seotud koodid. Näiteksample:
- #include "hal_voice_algo_asr_local.h",
- #include "hal_event_descriptor_voice.h"
- Rakendage erinevate sündmuste teavituse jaoks uued funktsioonid _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() ja DeregisterGUIFaceRec(), mis viitavad funktsioonidele _StopFaceRec(), _RegisterCoffeeSelection() ja DeregisterCoffe enne.Sdeleting(Coffe)ee.
- _OutputManagerNotify() rakendab põhisündmuse väljundfunktsiooni, et saata sündmus nägemisalgo HAL-ile. Allolevad funktsioonid kutsuvad seda oma sündmuste saatmiseks.
- _SetFaceRec() saadab sündmuse kEventFaceRecID_OasisSetState, et käivitada nägemisalgo näo registreerimiseks, tuvastamiseks ja algo peatamiseks.
- _RegisterGUIFaceRec() saadab sündmuse kEventFaceRecId_RegisterGUIFaceRec, mis on määratletud failis smart_tlhmi_event_descriptor.h, et lisada andmebaasi näoomaduste andmed, kui registreerimine on OK.
- DeregisterGUIFaceRec() saadab näotuvastuse läbimisel näofunktsiooni andmete andmebaasist kustutamiseks sündmuse kEventFaceRecID_DelUser.
- Värskendage koode, et teha vastavaid toiminguid, sealhulgas värskendada GUI-d, kutsudes LVGL GUI rakendusest API-sid, et teha järeldusi näo registreerimise ja tuvastamise tulemustest funktsioonis _InferComplete_Vision() eks.ample kujundus. Näiteksampkui näo registreerimine on edukas,
- Lõpetage edenemise näitamine, kutsudes välja _FaceRecProcess_Stop();
- Peatage näo registreerimine, helistades _SetFaceRec(kOASISLiteState_Stopped);
- Näita edukat tulemust GUI-s: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Registreerige näoandmed andmebaasi: _RegisterUserFace(s_UserId);
- Lisage sündmuste käsitlemiseks kasutajaliidese tagasihelistamisfunktsioonid: eelview, näo registreerimine, tuvastamine ja kasutaja kustutamine GUI-st. Näiteksample, näo registreerimise tagasikutse: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- Ja lisage funktsioonid _FaceRecProcess_Start() ja _FaceRecProcess_Stop(), et näidata erinevate sündmuste ja tulemuste edenemist ja olekut.
- Värskendage taimeri ISR-i tagasihelistamisfunktsiooni _SessionTimer_Callback(), et käsitleda ajalõpu juhtumeid, helistades: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Lisage allolevad määratlused, et lubada kasutajaliidese väljund HAL failis board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Märkus:
Näotuvastusfunktsiooni paremaks esitlemiseks säilitage funktsioon näotuvastuse protsessi ja tulemuste kuvamiseks väljundliideses HAL. Funktsiooni kirjeldatakse järgmiselt
- Näojuhiste ristkülik näitab sinist värvi ja edenemisriba näitab näo registreerimise või tuvastamise käivitamise edenemist.
- Näojuhiku ristkülik näitab punast, kui näo registreerimine on edukas.
- Näojuhiste ristkülik kuvatakse roheliselt, kui näotuvastus on edukas.
- Näojuhiku ristkülik jääb siniseks ja edenemisriba näitab täielikku edenemist, kui toiming pärast taimeri aegumist ebaõnnestub. Sel hetkel peatage näo registreerimine või tuvastamine.
Edenemisriba ja näojuhise ristkülik kuvatakse ikoonidena, mis on ressursi binaarfaili sisse ehitatud file programmeerida Flashi. Osutajad SDRAM-i ikoonide andmetele on seadistatud funktsioonis LoadIcons(APP_ICONS_BASE), mida kutsutakse välja väljundi UI HAL-i seadme lähtestamisel väljundi UI HAL-is. See peab rakendama funktsiooni ikoonide tuge.
Rakendage ikoonide tugi
- Looge ressurss, kombineerides ikoone LVGL GUI rakenduses kasutatud piltidega:
- Kloonige nelja ikooni päis files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h ja virtual_face_red_420x426.h nutikast HMI-st
\kohvimasin\ressurss\ikoonid\ uutele kaustaikoonidele endise ressursikausta allample SW. - Lisage nelja ikooni otsingutee files kaamera_eelview_resource.txt file ressursside kaustas, ntample: ikoon ../resource/icons/process_bar_240x14.h
- Käivitage camera_preview_resource_build.bat, et luua prügikasti loomiseks piltide ja ikoonide ressursse file camera_preview_resource.bin ja teave file resource_information_table.txt (vt joonis 6).
- Kloonige nelja ikooni päis files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h ja virtual_face_red_420x426.h nutikast HMI-st
- Määrake SDRAM-i algusaadress ja failis app_config.h ikoonide suurus. Aadress algab GUI-rakenduse piltide kõrval. Suurus genereeritakse infos file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Värskendage mälusektsiooni nimega res_sh_mem määratud suuruseks 0x200000, määrates selle uuesti failis app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 ja vastav säte jaotises Projekt > Atribuudid > C/C++ ehitamine > MCU sätted.
- Lisage ikooni suurus Flashist SDRAM-i laaditud ressursi kogumahule põhifunktsiooni APP_LoadResource() abil file lvgl_gui_face_rec_cm7.cpp: memcpy((kehtetu *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Märkus: näotuvastusfunktsiooni lõpuleviimiseks on vaja LVGL GUI rakenduse tuge. Kasutajaliidese HAL-i väljundis olevad kasutajaliidese tagasihelistamise funktsioonid kutsub välja LVGL GUI rakendus kasutajaliidese ekraanilt sündmuste käsitlemiseks. Teisest küljest kutsub väljund kasutajaliides HAL LVGL GUI rakenduse API-sid, et värskendada kasutajaliidest, et näidata tulemust ja olekut. LVGL GUI rakenduse arendus on suhteliselt sõltumatu ja seda tutvustatakse jaotises 4.3.
4.1.5 Käivitage näotuvastuse jaoks HAL-seadmed ja -haldurid
Lubatud visioonialgo HAL ja UI väljund HAL ja nende haldurid käivitatakse peamises file
lvgl_gui_face_rec_cm7.cpp, järgides raamistiku arenduse teisendusi järgmiselt:
- Kaasake päis file seotud kahe HAL-i halduriga, lisades koodirea:
- #include ” fwk_output_manager.h ”
- #include "fwk_vision_algo_manager.h"
- Deklareerige HAL-seadmed:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Registreerige HAL-seadmed:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Initsialiseerige juhid:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- Käivitage juhid:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Määrake juhi ülesannete prioriteet:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Lisage raamistikule nägude andmebaasi tugi
Registreeritud näoomaduste andmetele pääseb juurde Flashi salvestatud näoandmebaasis väikese kaudu file süsteem. Nägude andmebaasi toe lisamise samme kirjeldatakse allpool.
Lisage Flash-mäluseadme draiverid
Kopeerige Flash-liidese FlexSPI draiver files fsl_flexspi.c ja fsl_flexspi.h ning andmete krüptimise draiver files fsl_caam.c ja fsl_caam.h teest SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ endise draiverite kaustaample SW.
Lisage tahvli tasemel tugi
- Lisage saidil board.h pardal oleva Flash-seadme jaoks kasutatud FlexSPI määratlused:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Kopeerige operaatorid ja konfiguratsioonid fileFlash-seadme s-id flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h ja sln_flash_ops.h kausta the smart HMI_flash_cm\coffe_cm\\ample SW.
- Tühjendage märkeruut „Välista ressurss järgust” jaotises C/C++ Build > Seaded pärast paremklõpsamist files'i nimi ja atribuutide avamine, et võimaldada need projekti sisse ehitada.
- Muutke kaasasolevat päist filenimi sln_flash_config.h kuni sln_flash_config_w25q256jvs.h failides sln_flash_config.c ja flexspi_nor_flash_ops.h.
- Seadistage FlexSPI1 kella allikas file clock_config.c, mis viitab kohvimasina rakendusele.
Lisage adapter ja keskmise taseme tugi
- Kopeerige files sln_flash.c, sln_flash.h, sln_encrypt.c ja sln_encrypt.h kui adapteri draiverid file süsteem ja rakendus nutika HMI\coffee_machine\cm7\source\ teelt endise kaustaallikasseample. Värskendage uut files:
- Tühjendage nende ehitamiseks märkeruut „Välista ressurss konstruktsioonist”.
- Muutke kogu kaasatud päist file nimi sln_flash_config.h kuni sln_flash_config_w25q256jvs.h.
- Kopeerige kaust filesüsteem, mis sisaldab väikestele mõeldud API-sid filesüsteem ja HAL-draiver nutikast HMI-st \coffee_machine\cm7\source\ eksample SW. Ja värskendus uue kausta jaoks:
- Tühjendage ehitamiseks märkeruut „Välista ressurss konstruktsioonist”.
- Lisage projekti seadetesse selle kaasamise tee: „${workspace_loc:/${ProjName}/filesüsteem}”
- Muutke kaasasolevat päist file nimi sln_flash_config.h väärtuseks sln_flash_config_w25q256jvs.h ja fica_definition.h failiks app_config.h file sln_flash_littlefs.h.
- Kopeerige keskvara sisaldav kaust littlefs – little filesüsteem teelt SDK_2_13_0_ MIMXRT1170-EVK\keskvara\ kuni endiseample SW. Ja värskendage uut kausta:
- Tühjendage ehitamiseks märkeruut „Välista ressurss konstruktsioonist”.
- Lisage projekti seadetesse selle kaasamise tee: „${workspace_loc:/${ProjName}/littlefs}”
Lisage HAL-draiverid
- Seal on kaks HAL-seadet – file süsteemi ja näoandmebaasi HAL toetatakse andmebaasi juurdepääsu funktsiooni jaoks ja need on raamistikus juba ilma muudatusteta rakendatud. Lubage need, lisades saidile board_define.h järgmised definitsioonid:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
Ja muutke endise näo andmebaasi nimeample: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"
Lisage rakenduse tasemel tugi
- Värskendage peamist file lvgl_gui_face_rec_cm7.cpp:
- Kaasake päis file Flashiga seotud file süsteemi HAL haldur, lisades koodirea: #include "fwk_flash.h"
- Deklareerige ja registreerige file süsteemi HAL seade:
- HAL_FLASH_DEV_DECLARE(väikesed);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Märkus: file süsteemi HAL-seade tuleb registreerida enne, kui kõik seadmehaldurid lähtestatakse funktsioonis APP_InitFramework().
- MPU konfigureerimiseks helistage rakenduses APP_BoardInit() funktsioonile BOARD_ConfigMPU().
- Määrake file süsteemi määramine Flashis file app_config.h, määratledes makrode määratlused, mida kasutatakse file sln_flash_littlefs.h:
- #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #define FICA_FILE_SYS_SIZE (0x280000)
Konfiguratsioonid
Mõned Flashiga seotud koodid käivitatakse piisava jõudluse tagamiseks SRAM ITC piirkonnas. Kopeerige linkeri konfiguratsioone sisaldavad kausta linkskriptid teest smart HMI\coffee_machine\cm7\ endisesseample SW.
Rakendage LVGL GUI rakendus
Raamistikul põhineva LVGL-i GUI-rakenduse arendus kutsub API-sid väljundi UI HAL-ist ja pakub API-sid UI HAL-i väljundiks (Väljundliidese HAL-i rakendamise kohta vt jaotist 4.1.3).
LVGL GUI rakenduse üksikasjalik juurutamine sõltub aga rakenduse nõuetest ja kujundusest. GUI rakendus selles eksample on kujundatud nii, nagu on kirjeldatud jaotise 4. jao alguses.
Allpool on juurutamise tutvustused:
- Kohandatud koodid on rakendatud failides custom.c ja custom.h, mille GUI Guider annab GUI Guideri projekti ja manustatud süsteemi projekti vahelise liidesena.
- Lisage saidile custom.c uued funktsioonid nimega gui_xxx(), et saavutada järgmised funktsioonid:
- UI väljundiks HAL ja GUI rakendus kasutajaliidese värskendamiseks.
- GUI-rakenduse jaoks sündmuste käivitamiseks, kutsudes kasutajaliidese tagasihelistamise funktsioone väljundist UI HAL.
Näiteksample, uus funktsioon gui_event_face_rec_action() kutsub kasutajaliidese tagasihelistamisfunktsioone, et käsitleda üht näo registreerimise, näotuvastuse ja kasutaja kustutamise sündmust, mis käivitub GUI rakendusest, kui vastaval nupul klõpsate.
Märkus. Funktsioon gui_set_virtual_face() kutsutakse välja UI HAL jaoks preview režiim tuleb rakenduses custom.c rakendada:
- Kloonige funktsioon gui_set_virtual_face() nutikast HMI-st\coffee_machine\cm4\custom \custom.c.
- Muutke vidina nime home_img_cameraPreview ekraanile_img_camera_preview funktsioonis.
- Rakendage kasutajaliidese tagasihelistamisfunktsioonid sama prototüübiga kõigis UI HAL-i väljundis olevatele funktsioonidele kohandatud.c makrodefinitsiooni #ifndef RT_PLATFORM juhtimisel, et need ühilduksid projektiga GUI Guider, kuna need väljundi UI HAL-i funktsioonid sõltuvad sisseehitatud platvorm. Custom.c-s sõltuvad need GUI juhis olevast simulaatorist ja on manustatud platvormist sõltumatud. Näiteksample, näo registreerimise tagasikutse rakendatakse töötava GUI Guideri simulaatori jaoks järgmiselt: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = vale; tagastamine; }
Märkus: vaadake jaotise 6 4.1.3. sammus tutvustatud funktsiooni sama prototüüpi
Makro definitsioon RT_PLATFORM on seatud MCUXpresso projekti sätetele, nagu on näidatud joonisel 7: - Deklareerige failis custom.h kõik funktsioonid nimega UI_xxx_Callback() ja gui_xxx() ning lisage failis smart_tlhmi_event_descriptor.h sisalduv custom.h, et jagada GUI API-sid kasutajaliidese väljundiga HAL.
- Lisage saidile custom.c uued funktsioonid nimega gui_xxx(), et saavutada järgmised funktsioonid:
- GUI juhises GUI arendamine:
- Kloonige kausta kaamera eelview mis sisaldab GUI Guideri projektitarkvara põhitarkvarapaketi lvgl_gui_camera_pre kaustas gui_guiderview_cm7. Muutke seotud nime camera_preview uue endise jaoks face_recample.
- Kopeerige ülaltoodud värskendatud custom.c ja custom. h uuele GUI Guideri projektitarkvarale.
- Avage GUI Guideris uus face_rec projekt. Värskendage järgmiselt:
- Lisage uus nupp nimega Kustuta kasutaja. Lisage sellele lipp Peidetud, et nupp oleks peidetud, kui GUI rakendus käivitub.
- Lisage koodirida API kutsumiseks gui_event_face_rec_action() erineva sündmuse ID parameetriga kõigi nuppude Registreerimine, Tuvastamine ja Kustuta kasutaja sündmuste sätte päästikule „Vabastatud”, et käivitada näo registreerimise, näotuvastuse ja kasutaja kustutamise sündmused. Joonisel 8 on näidatud nupu Registreerumine sündmuse kood:
- Värskendage GUI Guideri loodud koodi MCUXpresso projektile.
- Asendage MCUXpresso projekti SW loodud kausta sisu, välja arvatud kaustapildid, vastavate kaustadega GUI Guideri projekti SW loodud kaustas.
Märkus: ülaltoodud muudatuste kohta lisateabe saamiseks vaadake examptarkvara aadressil https://mcuxpresso.nxp.com/appcodehub.
Kinnitused eksample projekt
Et saada endineampSelle rakenduse märkuse jaoks vajalikke ressursse ja tööriistu sisaldavat tarkvarapaketti külastage: https://mcuxpresso.nxp.com/appcodehub. Ava endineample projekt MCUXpresso IDE-l. Ehitage ja programmeerige fail .axf file aadressile 0x30000000 ja programmeerige ressursisalv file camera_preview_resource.bin aadressile 0x30800000.
LVGL GUI näotuvastus example töötab tavaliselt järgmiselt:
- Preview: Toite sisselülitamisel kuvatakse kaamera poolt jäädvustatud videovooge kaamera eelrežiimi konkreetses piirkonnasview GUI ekraanil. Olekusildil kuvatakse „Preview…”. Üksikasju vt Joonis 3. Nupp Kustuta kasutaja on peidetud. Kui klõpsate nuppudest ja piltidest väljaspool asuvat ala, kuvatakse see eelview pärast näo registreerimise või tuvastamise toimingu lõppu.
- Registreerimine:
- tartup: Kui klõpsate nuppu Registreerimine, algab näo registreerimine. Olekusildil kuvatakse „Registreerimine…”, näojuhise ristkülik on sinine ja edenemise riba hakkab näitama edenemist. Registreerimisel veenduge, et kasutaja nägu oleks sinise näojuhiku ristküliku sisse lülitatud.
- edu: Olekusildil kuvatakse “Registration…OK” ja registreeritud kasutaja ID-number, näojuhise ristkülik muutub punaseks, kui näo registreerimine õnnestub enne, kui edenemine on ribal täielik.
- Ebaõnnestumine -> Time out: olekusildil kuvatakse "Registration… Time out", kui näo registreerimine ebaõnnestub, kui edenemine on ribal täis.
- Ebaõnnestumine -> Dubleerimine: olekusildil on kirjas "Registration...Failed", näojuhiku ristkülik muutub roheliseks, kui registreeritud nägu tuvastatakse enne, kui edenemine on ribal täis.
- ökognitsioon:
- Käivitamine: kui klõpsate nupul Tuvastamine, käivitub näotuvastus. Olekusilt muutub kuvaks „Tuvastamine…”, näojuhise ristkülik on sinine ja edenemisriba hakkab näitama edenemist. Veenduge, et kasutaja nägu oleks registreerimiseks näidatud sinise näojuhiku ristkülikuna.
- edu: Olekusildil kuvatakse “Tuvastamine…OK” ja tuvastatud kasutaja ID-number, näojuhise ristkülik muutub roheliseks, kui näotuvastus õnnestub enne, kui edenemine on ribal täielik. Sel hetkel kuvatakse nupp Kustuta kasutaja. See tähendab, et kasutajat lubatakse kustutada ainult siis, kui see tuvastatakse.
- vaevused: Olekusildil kuvatakse „Tuvastamine…Aeg, kui näotuvastus ebaõnnestub ikka veel, kui edenemine on ribal täis.
- Kustuta kasutaja: Kui klõpsate nupul „Kustuta kasutaja”, muutub pärast näotuvastuse õnnestumist olekusilt kuvaks „Kustuta kasutaja… OK”, näojuhise ristkülik muutub siniseks ja edenemist kuvatakse ribal täielikult. Nupp Kustuta kasutaja on jälle peidetud. Tuvastatud nägu/kasutaja kustutatakse andmebaasist. See tähendab, et seda nägu/kasutajat ei saa ära tunda enne, kui see on uuesti registreeritud.
Märkus dokumendi lähtekoodi kohta
ExampSelles dokumendis näidatud koodil on järgmised autoriõigused ja BSD-3-klausli litsents:
Autoriõigus 2024 NXP Edasilevitamine ja kasutamine lähte- ja kahendvormingus, muudatustega või ilma, on lubatud, kui on täidetud järgmised tingimused.
- Lähtekoodi edasilevitamisel tuleb säilitada ülaltoodud autoriõiguse teatis, käesolev tingimuste loend ja järgmine lahtiütlus.
- Binaarses vormis levitamisel tuleb reprodutseerida ülaltoodud autoriõiguse teatis, käesolev tingimuste loend ja järgmine dokumentatsioonis ja/või muudes materjalides sisalduv lahtiütlemine tuleb levitamisega kaasas olla.
- Sellest tarkvarast tuletatud toodete toetamiseks või reklaamimiseks ei tohi ilma eelneva kirjaliku loata kasutada ei autoriõiguste omaniku ega selle kaastöötajate nimesid.
SELLE TARKVARA PAKKUAVAD AUTORIÕIGUSE OMAJAD JA KAASAJAD „NAGU ON” NING MIS TAHES OTSESELT VÕI KAUDSE GARANTIID, KAASAALSETE, KUID MITTE PIIRATUD, KAUBANDUSVÕIME JA KAUBANDUSVAHENDUSE SOOVITUSE GARANTIID. MITTE JUHUL EI VASTUTA AUTORIÕIGUSE OMAJA VÕI KAASAJAD MISGI OTSESE, KAUDSE, JUHUSLIKU, ERI-, EESMÄRGISTE VÕI JÄLJENDUSLIKU KAHJU EEST (SEALHULGAS, KUID MITTE PIIRATUD, TEENUSED, KASUTAMISED; KAUPADE ASENDUSTE HANKED; VÕI KASUM; VÕI ÄRITEGEVUSE KATKESTUS), MIS PÕHJUSINUD JA MIS TAHES VASTUTUSE TEOORIA, KAS LEPINGU, RANGE VASTUTUS VÕI DEKTASTUS (KAASA arvatud HOOLETUS VÕI MUUL MUUL), MIS ON TEKINUD MIS TAHES SELLEST KASUTAMISEKS SELLISTE KAHJUSTUSTE VÕIMALUS.
Läbivaatamise ajalugu
Juriidiline teave
Definitsioonid
Mustand – dokumendi mustandi olek näitab, et sisu on endiselt sisemise ümberkorraldamise allview ja see tuleb ametlikult heaks kiita, mis võib kaasa tuua muudatusi või täiendusi. NXP Semiconductors ei anna mingeid kinnitusi ega garantiisid dokumendi mustandi versioonis sisalduva teabe täpsuse või täielikkuse kohta ega vastuta sellise teabe kasutamise tagajärgede eest.
Vastutusest loobumine
- Piiratud garantii ja vastutus — Selles dokumendis sisalduvat teavet peetakse täpseks ja usaldusväärseks. Siiski ei anna NXP Semiconductors mingeid otseseid ega kaudseid kinnitusi ega garantiisid sellise teabe täpsuse või täielikkuse kohta ega vastuta sellise teabe kasutamise tagajärgede eest. NXP Semiconductors ei vastuta selle dokumendi sisu eest, kui see on pärit NXP Semiconductori-välisest teabeallikast.
NXP Semiconductors ei vastuta ühelgi juhul kaudsete, juhuslike, karistuslike, eri- ega kaudsete kahjude eest (sealhulgas – ilma piiranguteta – saamata jäänud kasum, saamata jäänud säästud, ärikatkestused, mis tahes toodete eemaldamise või asendamisega seotud kulud või ümbertöötlemistasud). või ei põhine sellised kahjud deliktil (sh hooletus), garantiil, lepingu rikkumisel või mis tahes muul õiguslikul teoorial.
Olenemata kahjudest, mida klient võib mis tahes põhjusel kanda, on NXP Semiconductorsi koond- ja kumulatiivne vastutus kliendi ees siin kirjeldatud toodete eest piiratud vastavalt NXP Semiconductorsi kaubandusliku müügi tingimuste ja tingimustega. - Õigus teha muudatusi — NXP Semiconductors jätab endale õiguse muuta käesolevas dokumendis avaldatud teavet, sealhulgas ilma piiranguteta tehnilisi andmeid ja tootekirjeldusi, igal ajal ja ette teatamata. See dokument asendab ja asendab kogu teabe, mis on esitatud enne selle avaldamist.
- Sobivus kasutamiseks — NXP Semiconductors tooted ei ole kavandatud, volitatud ega garanteeritud nii, et need sobiksid kasutamiseks elu toetavates, elutähtsates või ohutuskriitilistes süsteemides või seadmetes ega rakendustes, kus NXP Semiconductorsi toote rike või talitlushäire võib põhjustada kehavigastused, surm või raske vara- või keskkonnakahjustus. Ettevõte NXP Semiconductors ja selle tarnijad ei vastuta NXP Semiconductorsi toodete lisamise ja/või kasutamise eest sellistesse seadmetesse või rakendustesse ning seetõttu toimub lisamine ja/või kasutamine kliendi enda riisikol.
- Rakendused — Siin kirjeldatud mis tahes nende toodete rakendused on ainult illustratiivsed. NXP Semiconductors ei kinnita ega garanteeri, et sellised rakendused sobivad kindlaksmääratud kasutuseks ilma täiendava testimise või muutmiseta.
Kliendid vastutavad oma NXP Semiconductorsi tooteid kasutavate rakenduste ja toodete disaini ja toimimise eest ning NXP Semiconductors ei vastuta mis tahes abi eest, mis on seotud rakenduste või kliendi tootekujundusega. Klient vastutab ainuisikuliselt selle eest, kas NXP Semiconductors toode sobib ja sobib kliendi rakenduste ja kavandatud toodete jaoks, samuti kliendi kolmandast isikust kliendi(te) kavandatud rakenduseks ja kasutamiseks. Kliendid peaksid oma rakenduste ja toodetega seotud riskide minimeerimiseks pakkuma asjakohaseid projekteerimis- ja töökaitsemeetmeid. NXP Semiconductors ei võta endale vastutust mis tahes vaikete, kahjustuste, kulude või probleemidega, mis põhinevad kliendi rakenduste või toodete või kliendi kolmandast isikust kliendi(te) rakenduse või kasutuse nõrkustel või vaiketel. Klient vastutab NXP Semiconductorsi tooteid kasutavate kliendi rakenduste ja toodete jaoks kõigi vajalike testimiste tegemise eest, et vältida rakenduste ja toodete või rakenduse või kliendi kolmandast isikust kliendi(te) poolt kasutuse vaikimisi. NXP ei võta sellega seoses mingit vastutust. - Kaubandusliku müügi tingimused — NXP Semiconductors tooteid müüakse kommertsmüügi üldtingimuste alusel, mis on avaldatud aadressil https://www.nxp.com/profile/tingimused, kui kehtivas kirjalikus individuaallepingus ei ole kokku lepitud teisiti. Individuaalse lepingu sõlmimisel kehtivad ainult vastava lepingu tingimused. NXP Semiconductors on käesolevaga sõnaselgelt vastu kliendi üldiste tingimuste kohaldamisele seoses NXP Semiconductorsi toodete ostmisega kliendi poolt.
- Ekspordi kontroll — Selle dokumendi ja siin kirjeldatud kauba(de) suhtes võivad kehtida ekspordikontrolli eeskirjad. Eksport võib nõuda pädevate asutuste eelnevat luba.
- Sobivus kasutamiseks mitte-autotööstuses kvalifitseeritud toodetes — Toode ei sobi autotööstuses kasutamiseks, välja arvatud juhul, kui selles dokumendis on sõnaselgelt öeldud, et see konkreetne NXP Semiconductors toode on autotööstuse jaoks kvalifitseeritud. See ei ole kvalifitseeritud ega testitud vastavalt autode testimise või rakenduse nõuetele. NXP Semiconductors ei vastuta mootorsõidukitööstusele mittevastavate toodete lisamise ja/või kasutamise eest autotööstuse seadmetesse või rakendustesse.
Juhul, kui klient kasutab toodet autotööstuses kasutatavate rakenduste projekteerimiseks ja kasutamiseks autotööstuse spetsifikatsioonide ja standardite kohaselt, peab klient (a) kasutama toodet ilma NXP Semiconductors'i garantiita tootele selliste autotööstuse rakenduste, kasutuse ja spetsifikatsioonide jaoks ning ( b) kui klient kasutab toodet autotööstuses väljaspool NXP Semiconductorsi spetsifikatsioone, toimub selline kasutamine ainult kliendi enda riisikol ja (c) klient hüvitab NXP Semiconductorsile täielikult mis tahes vastutuse, kahjud või ebaõnnestunud tootenõuded, mis tulenevad kliendi disainist ja kasutamisest toode autotööstuses kasutamiseks väljaspool NXP Semiconductorsi standardgarantii ja NXP Semiconductorsi toote spetsifikatsioone. - Tõlked — Dokumendi mitteingliskeelne (tõlgitud) versioon, sealhulgas selles dokumendis sisalduv juriidiline teave, on ainult viitamiseks. Ingliskeelne versioon on ülimuslik, kui tõlgitud ja ingliskeelse versiooni vahel esineb lahknevusi.
- Turvalisus — Klient mõistab, et kõikides NXP toodetes võivad esineda tuvastamata haavatavused või need võivad toetada kehtestatud turvastandardeid või spetsifikatsioone teadaolevate piirangutega. Klient vastutab oma rakenduste ja toodete kavandamise ja töötamise eest kogu nende elutsükli jooksul, et vähendada nende haavatavuste mõju kliendi rakendustele ja toodetele. Kliendi vastutus laieneb ka muudele avatud ja/või patenteeritud tehnoloogiatele, mida NXP tooted toetavad kliendi rakendustes kasutamiseks. NXP ei vastuta haavatavuse eest. Klient peaks regulaarselt kontrollima NXP turvavärskendusi ja võtma asjakohaseid järelmeetmeid. Klient valib välja turvafunktsioonidega tooted, mis vastavad kõige paremini kavandatud rakenduse reeglitele, määrustele ja standarditele ning teeb oma toodete osas lõplikud disainiotsused ning vastutab ainuisikuliselt kõigi oma tooteid puudutavate juriidiliste, regulatiivsete ja turvalisusega seotud nõuete järgimise eest, olenemata mis tahes teabe või toe kohta, mida NXP võib pakkuda.
NXP-l on tooteturbe intsidentidele reageerimise meeskond (PSIRT) (saadaval aadressil PSIRT@nxp.com), mis haldab NXP toodete turvaaukude uurimist, aruandlust ja lahenduste väljalaskmist.
NXP BV — NXP BV ei ole tegutsev ettevõte ning ta ei levita ega müü tooteid.
Kaubamärgid
Märkus: kõik viidatud kaubamärgid, tootenimed, teenuste nimed ja kaubamärgid on nende vastavate omanike omand.
NXP — sõnamärk ja logo on NXP BV kaubamärgid
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 – on Arm Limitedi (või selle tütarettevõtete või sidusettevõtete) kaubamärgid ja/või registreeritud kaubamärgid USA-s ja/või mujal. Seotud tehnoloogia võib olla kaitstud mis tahes või kõigi patendi, autoriõiguste, disainilahenduste ja ärisaladusega. Kõik õigused kaitstud.
- i.MX — on NXP BV kaubamärk
- J-Link — on ettevõtte SEGGER Microcontroller GmbH kaubamärk.
Microsoft, Azure ja ThreadX on Microsofti ettevõtete grupi kaubamärgid.
Pidage meeles, et olulised märkused selle dokumendi ja siin kirjeldatud toote(de) kohta on lisatud jaotisesse „Juriidiline teave”.
© 2024 NXP BV
Lisateabe saamiseks külastage: https://www.nxp.com
- Väljalaskmise kuupäev: 19. aprill 2024
- Dokumendi identifikaator: AN14263
KKK
K: Mis on selle toote peamine eesmärk?
V: Peamine eesmärk on lubada näotuvastusfunktsiooni, kasutades AI&ML nägemisalgoritmi mudelit lihtsa LVGL GUI ex.ample SLN-TLHMI-IOT plaadil.
K: Kuidas saavad arendajad sellest rakenduse märkusest kasu saada?
V: Arendajad saavad õppida, kuidas rakendada raamistikus näotuvastust samm-sammult, kasutades pakutavat näitample ja mõista kaasatud seadmehaldureid, HAL-seadmeid ja sündmuste mehhanisme.
Dokumendid / Ressursid
![]() |
NXP AN14263 Rakendage raamis LVGL GUI näotuvastus [pdfKasutusjuhend AN14263 Rakendage LVGL GUI näotuvastus raamis, AN14263, rakendage LVGL GUI näotuvastust raamis, LVGL GUI näotuvastust raamis, näotuvastust raamis, tuvastamist raamis, raamis |