NXP AN14263 Implimenta LVGL GUI Face Recognition fuq Framewor
Informazzjoni dwar il-Prodott
Speċifikazzjonijiet
- Isem tal-Prodott: LVGL GUI Rikonoxximent tal-Faċi fuq il-Qafas
- Reviżjoni tad-Dokument: 1 – 19 ta’ April 2024
- Kliem ewlieni: Rikonoxximent tal-wiċċ, LVGL GUI, Qafas
Istruzzjonijiet għall-Użu tal-Prodott
- Fuqview
Dan il-prodott jippermetti mudell tal-algoritmu tal-viżjoni AI&ML għar-rikonoxximent tal-wiċċ fuq qafas biex jimplimenta funzjoni ta 'rikonoxximent tal-wiċċ b'GUI LVGL sempliċi example fuq il-bord SLN-TLHMI-IOT. - Qafas Overview
Is-softwer tas-soluzzjoni huwa ddisinjat madwar l-arkitettura tal-qafas li tinkludi maniġers tal-apparat responsabbli għall-ġestjoni tal-apparati, apparati HAL biex jastractaw id-dettalji sottostanti, u avvenimenti għall-komunikazzjoni bejn apparati differenti. - Karatteristiċi
Il-prodott jippermetti l-implimentazzjoni tal-funzjoni ta 'rikonoxximent tal-wiċċ permezz tal-kamera preview fuq l-iskrin tal-GUI b'buttuni biex tiskatta r-reġistrazzjoni tal-wiċċ, ir-rikonoxximent, u t-tneħħija. Id-dejta tal-wiċċ irreġistrata tinħażen fuq Flash permezz ta' a file sistema. - Applikazzjoni Nota Kontenut
In-nota tal-applikazzjoni tippreżenta skrin GUI LVGL b'kamera minn qabelview u buttuni għal azzjonijiet relatati mal-wiċċ. Jgħin lill-iżviluppaturi jifhmu l-qafas u kif jimplimentaw ir-rikonoxximent tal-wiċċ bl-użu tal-ex ipprovdutample.
Fuqview
NXP nediet kit ta 'żvilupp ta' soluzzjoni bl-isem SLN-TLHMI-IOT li jiffoka fuq applikazzjonijiet HMI intelliġenti. Jippermetti l-HMI intelliġenti b'UI ML viżjoni, vuċi, u grafika implimentati fuq MCU wieħed NXP i.MX RT117H. Ibbażat fuq l-SDK, is-softwer tas-soluzzjoni huwa mibni fuq disinn imsejjaħ qafas li jappoġġja disinji flessibbli u customization tal-funzjonijiet tal-viżjoni u tal-vuċi. Biex tgħin lill-utenti jużaw il-pjattaforma tas-softwer aħjar, xi dokumenti bażiċi huma pprovduti, pereżempjuample, il-gwida għall-utent għall-iżvilupp tas-softwer. Il-gwida tintroduċi d-disinn bażiku tas-softwer u l-arkitettura tal-applikazzjonijiet li jkopru l-komponenti kollha tas-soluzzjoni inkluż il-qafas biex jgħin lill-iżviluppaturi jimplimentaw l-applikazzjonijiet tagħhom b'mod aktar faċli u effiċjenti bl-użu ta 'SLN-TLHMI-IOT.
Għal aktar dettalji dwar is-soluzzjoni u d-dokumenti rilevanti, żur il- web paġna tas-Soluzzjoni NXP EdgeReady Smart HMI Ibbażata fuq i.MX RT117H b'ML Vision, Voice, u Grafika UI. Madankollu, għadu mhux daqshekk faċli għall-iżviluppaturi li jimplimentaw l-applikazzjonijiet smart HMI tagħhom billi jirreferu għal dawn il-gwidi bażiċi. Serje ta' noti ta' applikazzjoni huma ppjanati biex jgħinu fl-istudju tal-iżvilupp fuq il-qafas pass pass. Din in-nota tal-applikazzjoni hija bbażata fuq Implimenta LVGL GUI Camera Preview dwar il-Qafas (dokument AN14147). Din in-nota tal-applikazzjoni tiddeskrivi kif tippermetti l-mudell tal-algoritmu tal-viżjoni AI&ML għar-rikonoxximent tal-wiċċ fuq il-qafas biex timplimenta l-funzjoni tar-rikonoxximent tal-wiċċ permezz tal-kamera preview fuq l-iskrin GUI b'GUI LVGL sempliċi example fuq il-bord SLN-TLHMI-IOT. Fin-nota ta’ applikazzjoni, l-eżample tippreżenta skrin GUI LVGL b'kamera preview u xi buttuni biex jibdew ir-reġistrazzjoni, ir-rikonoxximent u t-tneħħija tal-wiċċ. Id-dejta tal-wiċċ irreġistrata tinħażen fuq Flash permezz ta 'ftit file sistema.
F'livell għoli, in-nota tal-applikazzjoni fiha l-kontenut hawn taħt:
- Ippermetti l-karatteristika ta 'rikonoxximent tal-wiċċ fuq il-qafas.
- Żid l-appoġġ tad-database tal-wiċċ fuq il-qafas permezz file sistema fuq Flash.
- Implimenta l-app LVGL GUI. Permezz tal-introduzzjonijiet ta’ hawn fuq, dan id-dokument jgħin lill-iżviluppaturi biex:
- Ifhem il-qafas u s-softwer tas-soluzzjoni smart HMI aktar fil-fond.
- Żviluppa r-rikonoxximent tal-wiċċ AI&ML tagħhom fuq qafas bl-app LVGL GUI.
Il-qafas spiċċaview
Is-softwer tas-soluzzjoni huwa primarjament iddisinjat madwar l-użu tal-arkitettura tal-qafas li hija magħmula minn diversi partijiet differenti:
- Maniġers tal-apparat - il-parti ċentrali
- Apparati ta' Saff ta' Astrazzjoni tal-Ħardwer (HAL).
- Messaġġi/Avvenimenti
Kif muri fil-Figura 1, l-overview tal-mekkaniżmu tal-qafas huwa:
Il-maniġers tal-apparat huma responsabbli għall-ġestjoni tal-apparat użat mis-sistema. Kull tip ta 'apparat (input, output, eċċ) għandu l-maniġer tat-tagħmir tat-tip speċifiku tiegħu stess. Bil-maniġer tal-apparat li jibda wara li l-apparati jiġu rreġistrati miegħu, jistenna u jiċċekkja messaġġ biex jittrasferixxi d-data lill-apparati u maniġers oħra wara li jinizjalizza u jibda l-apparati reġistrati. L-apparati HAL huma miktuba fuq il-kodiċi tas-sewwieq ta 'livell aktar baxx, u jgħinu biex tiżdied il-fehim tal-kodiċi billi jiġu astratti ħafna mid-dettalji sottostanti.
L-avvenimenti huma mezz li bih l-informazzjoni tiġi kkomunikata bejn apparati differenti permezz tal-maniġers tagħhom. Meta jiġi attivat avveniment, l-apparat li l-ewwel irċieva l-avveniment jikkomunika dak l-avveniment lill-maniġer tiegħu, imbagħad min-naħa tiegħu jinnotifika maniġers oħra maħtura biex jirċievu l-avveniment.
Id-disinn arkitettoniku tal-qafas kien iċċentrat fuq tliet għanijiet primarji:
- Faċilità ta 'użu
- Flessibilità/Portabilità
- Prestazzjoni
Il-qafas huwa ddisinjat bil-għan li jitħaffef iż-żmien tas-suq għall-viżjoni u applikazzjonijiet oħra ta 'tagħlim bil-magni. Biex jiġi żgurat żmien ta 'malajr fis-suq, huwa kritiku li s-softwer innifsu huwa faċli biex jinftiehem u jiġi mmodifikat. Meta wieħed iżomm f'moħħu dan l-għan, l-arkitettura tal-qafas hija faċli biex tiġi modifikata mingħajr ma tkun restrittiva, u mingħajr ma tiġi għall-ispiża tal-prestazzjoni.
Għal aktar dettalji dwar il-qafas, ara Gwida għall-Utent għall-Iżvilupp tas-Software Smart HMI (dokument MCU-SMHMI-SDUG).
Librerija tal-Grafika Ħfief u Versatili (LVGL)
LVGL (Librerija tal-Grafika Dawl u Versatili) hija librerija tal-grafika b'xejn u b'sors miftuħ li tipprovdi dak kollu li għandek bżonn biex toħloq GUI inkorporata b'elementi grafiċi faċli biex jintużaw, effetti viżwali sbieħ u footprint tal-memorja baxxa.
GUI Guider
GUI Guider hija għodda ta 'żvilupp ta' interface grafiku għall-utent faċli għall-utent minn NXP li tippermetti żvilupp rapidu ta 'displejs ta' kwalità għolja bil-librerija tal-grafika LVGL open-source. L-editur drag-and-drop ta' GUI Guider jagħmilha faċli biex tuża ħafna karatteristiċi ta' LVGL bħal widgets, animazzjonijiet, u stili biex toħloq GUI b'kodifikazzjoni minima jew bl-ebda kodifikazzjoni.
Bil-ikklikkja ta 'buttuna, tista' tmexxi l-applikazzjoni tiegħek f'ambjent simulat jew tesportaha għal proġett fil-mira. Kodiċi iġġenerat minn GUI Guider jista 'faċilment jiġi miżjud mal-proġett tiegħek, jaċċellera l-proċess ta' żvilupp u jippermettilek li żżid bla xkiel user interface inkorporat fl-applikazzjoni tiegħek. GUI Guider huwa liberu li juża l-għan ġenerali u l-MCUs crossover ta 'NXP u jinkludi mudelli ta' proġett integrati għal diversi pjattaformi appoġġjati. Biex titgħallem aktar dwar l-iżvilupp LVGL u GUI fuq GUI Guider, iċċekkja Light and Versatile Graphics Library u GUI Guider.
Ambjent ta 'żvilupp
L-ewwel, ipprepara u waqqaf l-ambjent tal-ħardwer u tas-softwer għall-implimentazzjoni tal-example fuq il-qafas.
Ambjent tal-ħardwer
L-ambjent tal-ħardwer huwa stabbilit għall-verifika tal-example:
- Il-kit ta' żvilupp HMI intelliġenti bbażat fuq NXP i.MX RT117H (il-kit SLN_TLHMI_IOT)
- SEGGER J-Link b'adapter Cortex-M 9-pin u V7.84a jew verżjoni aktar ġdida tas-sewwieq
L-ambjent tas-software
L-ambjent tas-softwer huwa stabbilit għall-iżvilupp tal-example:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – example kodiċi tat-tieni applikazzjoni nota bħala s-softwer bażi tal-iżvilupp. Għad-dettalji, ara https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 - bħala r-riżors tal-kodiċi għall-iżvilupp.
- Softwer SLN-TLHMI-IOT V1.1.2 - kodiċi tas-sors tal-HMI intelliġenti rilaxxat fuq ir-repożitorju tal-NXP GitHub bħala r-riżors tal-kodiċi għall-iżvilupp. Għad-dettalji, ara: GitHub – NXP/mcu-smhmi fi v1.1.2
Għal dettalji dwar l-akkwist u s-setup tal-ambjent tas-softwer, ara: Nibdew bl-SLN-TLHMI-IOT.
Arkitettura tal-viżjoni fuq qafas
L-arkitettura tal-viżjoni fuq il-qafas tidher fil-Figura 2. L-algo tal-viżjoni HAL (OASIS_HAL) għandu l-proċessi hawn taħt:
- Tiffaċċja r-reġistrazzjoni u r-rikonoxximent permezz tal-mudell tal-algoritmu tal-viżjoni AI&ML wara li tirċievi l-avvenimenti relatati mill-output UI HAL. Avża r-riżultati tal-inferenza mill-mudell tal-algoritmu għall-output UI HAL.
- Jaċċessa (żid, ħassar...) id-database tal-karatteristiċi tal-wiċċ ibbażat fuq il-ftit file sistema billi ċċempel l-APIs ta 'FaceDB HAL wara li tirċievi l-avvenimenti relatati mill-output UI HAL.
- Itlob il-qafas tal-vidjo tal-kamera mill-kamera HAL meta tagħmel ir-reġistrazzjoni u r-rikonoxximent tal-wiċċ.
Timplimenta rikonoxximent tal-wiċċ fuq il-qafas
L-LVGL GUI rikonoxximent tal-wiċċ example (l-eżample huwa pprovdut aktar tard) fuq il-qafas huwa implimentat ibbażat fuq l-example kodiċijiet ta' Implimenta LVGL GUI Camera Preview dwar il-Qafas (dokument AN14147).
Għall-wiri tar-rikonoxximent tal-wiċċ fl-example, il-funzjoni bażika tal-app GUI (ara l-iskrin prinċipali fil-Figura 3) hija mfassla kif deskritt hawn taħt:
- L-app GUI tixpruna r-reġistrazzjoni tal-wiċċ jew l-avveniment ta 'rikonoxximent għall-output UI HAL meta tikklikkja l-buttuna Reġistrazzjoni jew Rikonoxximent. U l-output UI HAL jinnotifika l-avveniment li żżid utent mal-viżjoni algo HAL wara li r-reġistrazzjoni tal-wiċċ tirnexxi.
- L-app GUI tixpruna l-avveniment li tħassar utent għall-output UI HAL meta tikklikkja l-buttuna Ħassar Utent wara li l-wiċċ tal-utent jiġi rikonoxxut.
- L-app GUI tixpruna l-avveniment li twaqqaf l-algo tal-oasis għaddej għall-output UI HAL meta tikklikkja l-iskrin barra l-buttuni u l-immaġini.
Ipprepara l-pakkett tas-softwer għall-implimentazzjoni tal-example.
- Ikklona s-softwer bażi lvgl_gui_camera_preview_cm7. Ibdel l-isem tal-proġett u l-prinċipali fileisem għal lvgl_gui_face_rec_cm7.
- Il-qafas huwa meħtieġ li jiġi aġġornat fis-softwer peress li l-kodiċi tas-sors għall-qalba tal-qafas bdew ikunu pubbliċi fuq GitHub mill-verżjoni 1.1.2.
- Ibdel il-folder tal-qafas bil-kopja ta 'V1.1.2 minn GitHub ħlief għall- files fwk_log.h u fwk_common.h taħt inc\ kif ġew modifikati għas-serje ta 'nota ta' applikazzjoni. L-operazzjonijiet huma murija fil-Figura 4:
- Ħassar il-folder framework_cm7 taħt il-grupp libs u neħħi l-librerija framework_cm7 u l-mogħdija tat-tfittxija tagħha kkonfigurata fi Proġett > Proprjetajiet > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libreriji peress li l-kodiċi sors tal-qalba huwa pprovdut.
Ippermetti l-karatteristika ta 'rikonoxximent tal-wiċċ fuq il-qafas
Il-karatteristika ta 'rikonoxximent tal-wiċċ hija mibnija fuq il-mudell tal-algoritmu tal-viżjoni ML ipprovdut bħala librerija statika - librerija ta' runtime oasis lite minn NXP. Il-librerija hija librerija AI ċkejkna, effiċjenti ħafna, personalizzata u ottimizzata. Il-mudell jinkludi skoperta tal-wiċċ, rikonoxximent tal-wiċċ, skoperta tal-ħġieġ, u skoperta tal-ħajja. Jipprovdi prinċipalment l-API OASISLT_run_extended() biex imexxi l-pipeline ta 'rikonoxximent tal-wiċċ waqt li jaġġorna r-riżultati lil min iċempel permezz ta' callbacks tal-avvenimenti, u żid/aġġorna/tħassar uċuħ fid-database permezz tal-callbacks tad-database tal-wiċċ wara li tispeċifika l-informazzjoni tal-qafas tas-sors, callbacks, u memorja pool użat mil-librerija billi ssejjaħ API oħra OASISLT_init() fuq l-inizjalizzazzjoni. Is-sejħa tal-APIs u l-funzjonijiet callback huma implimentati fil-viżjoni algo HAL tal-qafas.
Żid librerija mudell viżjoni algo
- Kopja folder oasis li jkun fih il-librerija u l-header relatat file minn smart HMI\coffee_machine\cm7\libs\ fil-folder libs tal-example SW.
- Żid il-mogħdija tat-tfittxija tal-header file fi Proġett > Proprjetajiet > C/C++ Build > settings > Tool Settings > MCU C kompilatur > Jinkludi u MCU C++ kompilatur > Jinkludi: "${workspace_loc:/${ProjName}/libs/oasis/include}"
- Żid il-lib u l-mogħdija tat-tfittxija tagħha fuq Proġett > Proprjetajiet > C/C++ Build > settings > MCU C+ + Linker > Libreriji: liboasis_lite2D_DEFAULT_117f_ae.a "${workspace_loc:/${ProjName}/libs/oasis}" u d-definizzjoni makro għal ppermettiet il-karatteristika fuq Proġett> Proprjetajiet> C/C++ Build> settings> Tool Settings> MCU C kompilatur> Preproċessur u MCU C++ kompilatur> Preproċessur: SMART_TLHMI_2D
Ippermetti l-viżjoni algo HAL
L-algo tal-viżjoni HAL imexxi l-mudell tal-algo tal-viżjoni biex jaħdem u jwieġeb ir-riżultati għall-output tal-UI HAL wara li jirċievi l-avvenimenti minnu.
Biex tkun tista', kklona s-sewwieq HAL simili li kien jeżisti file fejn il-funzjonijiet hawn taħt huma implimentati:
- Implimenta r-callbacks tal-operazzjonijiet tad-database tal-wiċċ u l-immaniġġjar tal-avvenimenti.
- Drive l-algo tal-viżjoni biex jaħdem billi ċċempel l-APIs tal-librerija oasis.
- Aċċessa database tal-wiċċ tal-utent u database tal-app (mhux meħtieġ fl-example).
- Irċievi avvenimenti minn u tibgħat ir-riżultati lill-output UI HAL.
Ix-xogħlijiet ewlenin biex tiġi implimentata l-HAL għall-eżample huma:
- Ikklona s-sewwieq HAL simili li kien jeżisti file u ibdel l-ismijiet relatati.
- Neħħi l-kodiċijiet relatati mal-operazzjonijiet tad-dejta tal-app.
- Aġġorna d-definizzjonijiet u l-funzjonijiet għall-immaniġġjar tal-avvenimenti mill-output UI HAL skont l-eżampdisinn.
- Żid il-konfigurazzjonijiet meħtieġa fl-inizjalizzazzjoni tal-oasis.
Il-passi dettaljati huma kif hawn taħt:
- Klonu hal_vision_algo_oasis_coffeemachine.c. Ibdel il- fileisem lil hal_vision_algo_oasis_guifacerec.c. U ibdel il-kordi kollha CoffeeMachine b'GUIFaceRec fil- file.
- Neħħi l-kodiċi li fihom is-sekwenza coffeedb (mhux sensittiv għall-każ) relatat mad-database tal-app, pereżempjuample, #include hal_sln_coffeedb.h.
- Immodifika l-funzjoni HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() għall-immaniġġjar tal-avvenimenti mill-output UI HAL.
- Ibdel id-definizzjoni tal-avveniment kEventFaceRecId_RegisterCoffeeSelection għal kEventFaceRecId_RegisterUserFace u s-sekwenza tal-istruttura regCoffeeSelection għal regGUIFaceRec għall-immaniġġjar tal-avvenimenti biex iżżid dejta ġdida dwar il-karatteristiċi tal-wiċċ fid-database.
- Biex turi l-proċess standard tal-azzjonijiet ta 'rikonoxximent tal-wiċċ fl-example, immodifika l-immaniġġjar fil-każ ta 'kEventFaceRecID_OasisSetState bid-definizzjonijiet tal-istati:
- koASISLiteState
- Reġistrazzjoni koASISLiteState
- Rikonoxximent kOASISLiteState
- Waqqaf
- Żid u mmodifika d-definizzjonijiet tal-avvenimenti msemmija fil-pass t'hawn fuq.
- Ikkopja l-header file smart_tlhmi_event_descriptor.h minn smart HMI\coffee_machine \cm7\source\event_handlers\ fis-sors tal-folder tal-example SW. Aġġorna l- file kif hawn taħt:
- Ibdel id-definizzjoni tal-avveniment kEventFaceRecId_RegisterCoffeeSelection għal kEventFaceRecId_RegisterUserFace fl-enum tat-tip _event_smart_tlhmi_id u s-sekwenza tal-istruttura regCoffeeSelection għal regGUIFaceRec fl-istruttura _event_smart_tlhmi. Allura, ibdel l-istruttura register_coffee_selection_event_t għal regCoffeeSelection għal register_gui_facerec_event_t.
- Ħassar il-kontenut ieħor użat għall-app tal-magna tal-kafè, pereżempjuample, il-linja tal-kodiċi dwar il-vuċi: #include “hal_event_descriptor_voice.h”.
- Żid it-tipi kOASISLiteState_Stopped u kOASISLiteState_Running mat-tip enum oasis_lite_state_t f'hal_vision_algo.h taħt framework>hal>vision fil-proġett kif hawn taħt:
typedef enum _oasis_lite_state {- koASISLiteState
- Running, kOASISLiteState
- Waqqaf, kOASISLiteState
- Rikonoxximent,
- koASISLiteState
- Reġistrazzjoni, koASISLiteState
- DeRegistration, kOASISLiteState
- RemoteRegistration, kOASISLiteState
- Għadd
- Uża l-istruttura aġġornata hawn fuq oasis_lite_state_t biex tirfina l-struct oasis_state_event_t f'hal_event_descriptor_face_rec.h taħt framework>hal>vision fil-proġett kif hawn taħt: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- Ibdel il-kEventInfo_Remote kollu għal kEventInfo_Local biex jintbagħtu avvenimenti mill-algo viżjoni HAL għal HALs oħra li jaħdmu fuq l-istess qalba bħal single core minflok dual-core tintuża fl-ex.ample.
- Żid u mmodifika l-konfigurazzjonijiet ta' hawn taħt għall-inizjalizzazzjoni tal-oasis f'OASISLT_init():
- Żid id-definizzjonijiet makro u s-sezzjonijiet tal-memorja għall-frejm tal-vidjo f'board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- #define OASIS_RGB_FRAME_HEIGHT 600
- #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
- #define OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
- #define AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __attribut__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __attribut__((allinjat(alignbytes)))
- Ikkonfigura l-assenjazzjoni tal-memorja fis-sezzjoni tal-memorja ta 'hawn fuq fb_sh_mem fuq Proġett> Proprjetajiet> C/C++ Build> MCU Settings murija fil-Figura 5:
- Iddikjara l-varjabbli globali g_DTCOPBuf f'lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Kompli żid id-definizzjonijiet użati fil-varjabbli ta' hawn fuq:
- Iddefinixxi t-taqsima ta' hawn fuq f'board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- attribut__((sezzjoni(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- attribut__((allinjat(alignbytes)))
- Inkludi l-header file hal_vision_algo.h li fih id-definizzjoni makro DTC_OPTIMIZE_BUFFER_SIZE f'app_config.h inkluża f'lvgl_gui_face_rec_cm7.cpp.
- Żid id-definizzjonijiet makro u s-sezzjonijiet tal-memorja għall-frejm tal-vidjo f'board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- Issettja l-varjabbli s_debugOption għal vera biex turi l-istatus tal-progress fir-rikonoxximent tal-wiċċ.
- Żid il-mogħdija tat-tfittxija tal-header files tal-viżjoni HAL fuq Proġett > Proprjetajiet > C/C++ Ibni > settings > Għodda Settings > MCU C kompilatur > Jinkludi u MCU C++ kompilatur > Jinkludi: "${workspace_loc:/${ProjName}/framework/hal/vision}"
- Żid id-definizzjoni ta' hawn taħt biex tippermetti l-algo viżjoni HAL f'board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Ippermetti output UI HAL
L-output UI HAL jinnotifika l-avvenimenti lill-algo tal-viżjoni HAL u jirrispondi għar-riżultati tal-inferenza mill-algo tal-viżjoni HAL. Bl-app GUI, l-avvenimenti ġeneralment jiġu attivati mill-app u r-riżultati jintwerew fuq l-app.
Biex tkun tista', kklona s-sewwieq HAL simili li kien jeżisti file fejn ġeneralment jiġu implimentati l-funzjonijiet ta' hawn taħt:
- Avża l-avvenimenti għal rikonoxximent tal-wiċċ u aċċess għal database.
- Implimenta s-callbacks għall-app GUI biex tiskatta l-avvenimenti.
- Immaniġġja r-riżultati tal-inferenza mill-modulu algo tal-viżjoni.
- Uri l-proċess u r-riżultati tal-immaniġġjar tal-avvenimenti fuq l-UI mill-bar tal-progress ikkontrollat bit-tajmers u r-rettangolu tal-gwida tal-wiċċ.
Ix-xogħlijiet ewlenin biex tiġi implimentata l-HAL għall-eżample użati f'dan id-dokument huma:
- Ikklona s-sewwieq HAL simili li kien jeżisti file u ibdel l-ismijiet relatati.
- Neħħi l-kodiċijiet relatati mal-app.
- Aġġorna l-funzjonijiet għan-notifika tal-avvenimenti u r-rispons tar-riżultati skont l-eżampdisinn.
- Żid is-sejħa lura għall-app GUI biex tiskatta l-avvenimenti.
Il-passi dettaljati huma kif hawn taħt:
- Klonu hal_output_ui_coffee_machine.c. Ibdel il- fileisem għal hal_ output_ui_guifacerec.c.
- Ibdel il-kordi kollha CoffeeMachine b'GUIFaceRec fil- file.
- Neħħi l-kodiċijiet relatati mal-app – magna tal-kafè.
- Neħħi l-funzjonijiet WakeUp() u _StandBy() u l-kodiċijiet relatati (jistgħu jfittxu l-istring wake_up u standby għalihom).
- Neħħi minn qabelview avvenimenti tal-modalità li jimmaniġġjaw kodiċijiet relatati f'HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Neħħi l-funzjonijiet UI_xxx_Callback() u l-kodiċi li fihom is-sekwenza gui_ u l-iskrin relatati mal-GUI tal-magna tal-kafè ħlief għal gui_set_virtual_face() għall-preview karatteristika tal-modalità.
- Neħħi l-kodiċijiet kollha involuti mal-varjabbli s_IsWaitingAnotherSelection u s_IsWaitingRegisterSelection relatati mal-app tal-magni tal-kafè.
- Neħħi l-kodiċijiet relatati mal-vuċi, l-awdjo u l-lingwa. Per example:
- #include “hal_voice_algo_asr_local.h”,
- #inkludi “hal_event_descriptor_voice.h”
- Għan-notifika tal-avvenimenti varji, implimenta l-funzjonijiet il-ġodda _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), u DeregisterGUIFaceRec() li jirreferu għall-funzjonijiet _StopFaceRec(), _RegisterCoffeeSelection(), u DeregisterCoffeeSelection() qabel deeSelection().
- Il-_OutputManagerNotify() jimplimenta l-funzjoni bażika tal-output tal-avveniment biex jibgħat avveniment lill-algo viżjoni HAL. Il-funzjonijiet ta 'hawn taħt isejħulu biex jibagħtu l-avvenimenti tagħhom stess.
- Il-_SetFaceRec() jibgħat l-avveniment kEventFaceRecID_OasisSetState biex tiskatta l-algo tal-viżjoni għar-reġistrazzjoni tal-wiċċ, ir-rikonoxximent, u twaqqaf l-algo.
- Il-_RegisterGUIFaceRec() jibgħat l-avveniment kEventFaceRecId_RegisterGUIFaceRec li huwa definit fi smart_tlhmi_event_descriptor.h biex iżżid data tal-karatteristiċi tal-wiċċ mad-database meta r-reġistrazzjoni tkun OK.
- Id-DeregisterGUIFaceRec() jibgħat l-avveniment kEventFaceRecID_DelUser biex iħassar id-dejta tal-karatteristika tal-wiċċ mid-database meta jgħaddi r-rikonoxximent tal-wiċċ.
- Aġġorna l-kodiċijiet biex tieħu l-azzjonijiet korrispondenti inkluż l-aġġornament tal-GUI billi ċċempel l-APIs mill-app LVGL GUI għar-riżultati tal-inferenza tar-reġistrazzjoni tal-wiċċ u r-rikonoxximent fil-funzjoni _InferComplete_Vision() skont l-example's disinn. Per example, meta r-reġistrazzjoni tal-wiċċ tirnexxi,
- Waqqaf turi l-progress billi ċċempel _FaceRecProcess_Stop();
- Waqqaf ir-reġistrazzjoni tal-wiċċ billi ċċempel _SetFaceRec(kOASISLiteState_Stopped);
- Uri r-riżultat b'suċċess fuq il-GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Irreġistra d-dejta tal-wiċċ fid-database: _RegisterUserFace(s_UserId);
- Żid funzjonijiet callback UI biex timmaniġġja l-avvenimenti: preview, reġistrazzjoni tal-wiċċ, rikonoxximent, u tħassir tal-utent attivat mill-GUI. Per example, il-callback tar-reġistrazzjoni tal-wiċċ: null UI_Registration_Callback (){ _SetFaceRec (kOASISLiteState_Registration); _FaceRecProcess_Start (); }
- U żid il-funzjonijiet _FaceRecProcess_Start() u _FaceRecProcess_Stop() biex turi l-progress u l-istatus fl-avvenimenti u r-riżultati differenti.
- Aġġorna l-funzjoni ta 'callback ISR tat-tajmer _SessionTimer_Callback() biex timmaniġġja l-każ ta' time-out billi ċċempel: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Żid id-definizzjonijiet ta' hawn taħt biex tippermetti l-output tal-UI HAL f'board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Avviż:
Biex tippreżenta aħjar il-karatteristika tar-rikonoxximent tal-wiċċ, żomm il-funzjoni biex turi l-proċess u r-riżultati tar-rikonoxximent tal-wiċċ fl-output UI HAL. Il-funzjoni hija deskritta kif hawn taħt
- Ir-rettangolu tal-gwida tal-wiċċ juri blu, u l-istrixxa tal-progress turi l-progress meta tibda r-reġistrazzjoni jew ir-rikonoxximent tal-wiċċ.
- Ir-rettangolu tal-gwida tal-wiċċ juri aħmar meta r-reġistrazzjoni tal-wiċċ tirnexxi.
- Ir-rettangolu tal-gwida tal-wiċċ juri aħdar meta r-rikonoxximent tal-wiċċ jirnexxi.
- Ir-rettangolu tal-gwida tal-wiċċ iżomm blu, u l-istrixxa tal-progress turi progress sħiħ meta l-azzjoni ma tirnexxix wara l-iskadenza tat-tajmer. F'dak il-punt, waqqaf ir-reġistrazzjoni jew ir-rikonoxximent tal-wiċċ.
L-istrixxa tal-progress u r-rettangolu tal-gwida tal-wiċċ huma ppreżentati bħala l-ikoni li huma mibnija fil-binarju tar-riżorsi file biex jiġi pprogrammat fi Flash. Il-pointers għad-dejta tal-ikoni fuq SDRAM huma stabbiliti fil-funzjoni LoadIcons(APP_ICONS_BASE) imsejħa fuq l-inizjalizzazzjoni tal-apparat UI HAL tal-output fl-output UI HAL. Għandu jimplimenta l-appoġġ tal-ikoni għall-funzjoni.
Implimenta l-appoġġ tal-ikoni
- Ibni r-riżors billi tgħaqqad l-ikoni mal-immaġini użati fl-app LVGL GUI:
- Ikklona l-erba' header tal-ikoni files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, u virtual_face_red_420x426.h minn smart HMI
\ magna tal-kafè \ riżorsi \ ikoni \ għall-ikoni folder ġodda taħt il-folder tar-riżorsi tal-example SW. - Żid il-mogħdija tat-tfittxija għall-erba 'ikona files fil-camera_preview_resource.txt file fil-folder tar-riżorsi, pereżempjuample: icon ../resource/icons/process_bar_240x14.h
- Esegwi camera_preview_resource_build.bat biex tibni l-immaġini u r-riżorsi tal-ikoni biex tiġġenera l-bin file camera_preview_resource.bin u l-informazzjoni file resource_information_table.txt (Ara l-Figura 6).
- Ikklona l-erba' header tal-ikoni files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, u virtual_face_red_420x426.h minn smart HMI
- Iddefinixxi l-indirizz tal-bidu fuq SDRAM u d-daqs tal-ikoni f'app_config.h. L-indirizz jibda ħdejn l-immaġini tal-app GUI. Id-daqs huwa ġġenerat fl-informazzjoni file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Aġġorna d-daqs assenjat tas-sezzjoni tal-memorja msejħa res_sh_mem għal 0x200000 billi tiddefinixxiha mill-ġdid f'app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 u l-issettjar korrispondenti fi Proġett> Proprjetajiet> C/C++ Build> MCU settings.
- Żid id-daqs tal-ikona mad-daqs totali tar-riżors mgħobbi minn Flash għal SDRAM fil-funzjoni APP_LoadResource () fil-prinċipali file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Avviż: Biex tlesti l-karatteristika ta 'rikonoxximent tal-wiċċ, l-appoġġ tal-app LVGL GUI huwa meħtieġ. Il-funzjonijiet callback UI fl-output UI HAL jissejħu mill-app LVGL GUI għall-immaniġġjar tal-avvenimenti mill-iskrin UI. Min-naħa l-oħra, l-output UI HAL isejjaħ l-APIs mill-app LVGL GUI biex taġġorna l-UI biex turi r-riżultat u l-istatus. L-iżvilupp tal-app LVGL GUI huwa relattivament indipendenti u introdott fit-Taqsima 4.3.
4.1.5 Ibda l-apparati u l-maniġers HAL għar-rikonoxximent tal-wiċċ
L-algo tal-viżjoni attivata HAL u l-output tal-UI HAL u l-maniġers tagħhom jinbdew fil-biċċa l-kbira file
lvgl_gui_face_rec_cm7.cpp wara l-konverżjonijiet tal-iżvilupp fuq il-qafas kif hawn taħt:
- Inkludi l-header file relatati maż-żewġ maniġers HAL billi żżid il-linja tal-kodiċi:
- #include ” fwk_output_manager.h “
- #inkludi “fwk_vision_algo_manager.h”
- Iddikjara l-apparati HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Irreġistra l-apparati HAL:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Inizjalizza l-maniġers:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- Ibda l-maniġers:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Iddefinixxi l-prijorità tal-kompiti tal-maniġer:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Żid l-appoġġ tad-database tal-wiċċ fuq il-qafas
Id-dejta tal-karatteristika tal-wiċċ irreġistrata hija aċċessata fid-database tal-wiċċ maħżuna fuq Flash permezz ta 'ftit file sistema. Il-passi biex iżżid l-appoġġ tad-database tal-wiċċ huma deskritti hawn taħt.
Żid sewwieqa għall-ħażna Flash
Ikkopja s-sewwieq tal-Flash interface FlexSPI files fsl_flexspi.c u fsl_flexspi.h, u s-sewwieq tal-kriptaġġ tad-dejta files fsl_caam.c u fsl_caam.h mill-mogħdija SDK_2_13_0_MIMXRT1170-EVK\devices\MIMRX1176\drivers\ għall-folder tas-sewwieqa tal-example SW.
Żid appoġġ fil-livell tal-bord
- Żid id-definizzjonijiet ta' FlexSPI użati għall-apparat Flash abbord f'board.h:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Ikkopja l-operaturi u l-konfigurazzjonijiet files tal-apparat Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h taħt il-mogħdija smart HMI\coffee_fowlder\coffee_machinef\cm7\fig_sourcef\cmXNUMX_machinefample SW.
- Iċċekkja "Eskludi r-riżorsi mill-bini" f'C/C++ Ibni > Settings wara li tikklikkja bil-lemin fuq il- files' isem u l-ftuħ tal-Properties biex ikunu jistgħu jinbnew fil-proġett.
- Ibdel l-header inkluż fileisem sln_flash_config.h għal sln_flash_config_w25q256jvs.h fi sln_flash_config.c u flexspi_nor_flash_ops.h.
- Issettja s-sors tal-arloġġ FlexSPI1 fil- file clock_config.c li tirreferi għall-app tal-magni tal-kafè.
Żid l-adapter u l-appoġġ tal-livell tan-nofs
- Ikkopja l- files sln_flash.c, sln_flash.h, sln_encrypt.c, u sln_encrypt.h bħala sewwieqa tal-adapter għall- file sistema u app mill-mogħdija ta 'smart HMI\coffee_machine\cm7\source\ għas-sors tal-folder tal-example. Aġġorna l-ġdid files:
- Iċċekkja "Eskludi r-riżorsi mill-bini" fuqhom għall-bini.
- Ibdel l-header inkluż kollu file isem sln_flash_config.h għal sln_flash_config_w25q256jvs.h.
- Ikkopja l-folder filesistema li fiha l-APIs għall-ftit filesistema u sewwieq HAL minn smart HMI \coffee_machine\cm7\source\ għall-example SW. U aġġorna għall-folder il-ġdid:
- Neħħi l-marka "Eskludi r-riżorsi mill-bini" fuqha għall-bini.
- Żid it-triq tal-inklużjoni għaliha fis-settings tal-proġett: “${workspace_loc:/${ProjName}/filesistema}”
- Ibdel l-header inkluż file isem sln_flash_config.h għal sln_flash_config_w25q256jvs.h u fica_definition.h għal app_config.h fil- file sln_flash_littlefs.h.
- Ikkopja l-folder littlefs li jkun fih l-oġġetti tan-nofs - ftit filesistema mill-mogħdija SDK_2_13_0_ MIMXRT1170-EVK\middleware\ sal-example SW. U aġġorna l-folder il-ġdid:
- Neħħi l-marka "Eskludi r-riżorsi mill-bini" fuqha għall-bini.
- Żid it-triq tal-inklużjoni għaliha fis-settings tal-proġett: “${workspace_loc:/${ProjName}/littlefs}”
Żid sewwieqa HAL
- Hemm żewġ apparati HAL - file sistema u database tal-wiċċ HAL appoġġjati għall-karatteristika ta 'aċċess għad-database u huma diġà implimentati fil-qafas mingħajr ebda bidla. Ippermettihom billi żżid id-definizzjonijiet ta' hawn taħt f'board_define.h:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
U ibdel l-isem tad-database tal-wiċċ għall-example: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”
Żid appoġġ fil-livell tal-app
- Aġġorna l-prinċipali file lvgl_gui_face_rec_cm7.cpp:
- Inkludi l-header file relatati mal-Flash file maniġer HAL tas-sistema billi żżid il-linja tal-kodiċi: #include "fwk_flash.h"
- Iddikjara u reġistra file apparat HAL tas-sistema:
- HAL_FLASH_DEV_DECLARE(Littlefs);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Nota: Il- file L-apparat HAL tas-sistema għandu jiġi rreġistrat qabel ma l-maniġers tal-apparat kollha jiġu inizjalizzati fil-funzjoni APP_InitFramework().
- Sejħa l-funzjoni BOARD_ConfigMPU() f'APP_BoardInit() biex tikkonfigura l-MPU.
- Issettja l- file assenjazzjoni tas-sistema fuq Flash fil- file app_config.h billi tiddefinixxi d-definizzjonijiet makro użati fil- file sln_flash_littlefs.h:
- #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #define FICA_FILE_SYS_SIZE (0x280000)
Konfigurazzjonijiet
Xi kodiċijiet relatati mal-Flash huma esegwiti fiż-żona SRAM ITC għal prestazzjoni biżżejjed. Ikkopja l-linkscripts tal-folder li fihom il-konfigurazzjonijiet tal-linker mill-mogħdija smart HMI\coffee_machine\cm7\ għall-example SW.
Implimenta app GUI LVGL
L-iżvilupp ta' app GUI LVGL ibbażata fuq qafas isejjaħ l-APIs mill-output UI HAL u jipprovdi l-APIs għall-output UI HAL (Ara t-Taqsima 4.1.3 għall-implimentazzjoni tal-output UI HAL).
Madankollu, l-implimentazzjoni dettaljata ta 'app GUI LVGL tiddependi fuq ir-rekwiżiti u d-disinn tal-applikazzjoni. L-app GUI f'dan example hija mfassla kif deskritt fil-bidu tat-taqsima Taqsima 4.
Hawn taħt hawn l-introduzzjonijiet tal-implimentazzjoni:
- Il-kodiċijiet personalizzati huma implimentati fil-custom.c u custom.h mogħtija minn GUI Guider bħala l-interface bejn il-proġett GUI Guider u l-proġett tas-sistema inkorporata.
- Żid il-funzjonijiet il-ġodda bl-isem gui_xxx() f'custom.c biex tikseb il-funzjonijiet hawn taħt:
- Għall-output UI HAL u GUI app biex taġġorna l-UI.
- Għall-app GUI biex tiskatta avvenimenti billi ċċempel funzjonijiet callback UI mill-output UI HAL.
Per example, il-funzjoni l-ġdida gui_event_face_rec_action() sejħiet funzjonijiet callback UI biex jimmaniġġjaw wieħed mill-avvenimenti ta 'reġistrazzjoni tal-wiċċ, rikonoxximent tal-wiċċ u tħassir tal-utent attivat mill-app GUI meta l-buttuna relatata hija kklikkjata.
Nota: Il-funzjoni gui_set_virtual_face() imsejħa fl-output UI HAL għal preview mod jeħtieġ li jiġi implimentat f'custom.c:
- Il-funzjoni tal-klonu gui_set_virtual_face() minn smart HMI\coffee_machine\cm4\custom \custom.c.
- Ibdel l-isem tal-widget home_img_cameraPreview to screen_img_camera_preview fil-funzjoni.
- Implimenta l-funzjonijiet callback UI bl-istess prototip għal dawk kollha fl-output UI HAL taħt il-kontroll tad-definizzjoni makro #ifndef RT_PLATFORM f'custom.c biex ikunu kompatibbli mal-proġett GUI Guider minħabba li dawn il-funzjonijiet fl-output UI HAL huma dipendenti mal- pjattaforma inkorporata. Fil custom.c, jiddependu fuq is-simulatur fuq GUI guider u huma indipendenti għall-pjattaforma inkorporata. Per example, is-sejħa lura tar-reġistrazzjoni tal-wiċċ hija implimentata kif hawn taħt għas-simulatur GUI Guider li qed jaħdem: #ifndef RT_PLATFORM void UI_Registration_Callback () { gui_hide_del_user_btn (true); s_InAction = falza; ritorn; }
Nota: Irreferi għall-istess prototip tal-funzjoni introdotta fil-pass 6 tat-Taqsima 4.1.3
Id-definizzjoni makro RT_PLATFORM hija ssettjata fuq is-settings tal-proġett ta' MCUXpresso kif muri fil-Figura 7: - Iddikjara l-funzjonijiet kollha msemmija UI_xxx_Callback() u gui_xxx() f'custom.h u żid custom.h inkluż fi smart_tlhmi_event_descriptor.h biex taqsam l-APIs tal-GUI mal-output tal-UI HAL.
- Żid il-funzjonijiet il-ġodda bl-isem gui_xxx() f'custom.c biex tikseb il-funzjonijiet hawn taħt:
- Żviluppa l-GUI fuq GUI Guider:
- Ikklona l-kamera folder qabelview li fih is-softwer tal-proġett GUI Guider fil-folder gui_guider fil-pakkett tas-software bażi lvgl_gui_camera_preview_cm7. Ibdel l-isem relatat camera_preview to face_rec għall-ex ġdidample.
- Ikkopja l-custom.c u custom aġġornat hawn fuq. h għas-softwer il-ġdid tal-proġett GUI Guider.
- Iftaħ il-proġett il-ġdid ta' face_rec fuq GUI Guider. Aġġorna kif hawn taħt:
- Żid il-buttuna ġdida bit-tikketta Ħassar Utent. Żid il-bandiera Hidden magħha sabiex il-buttuna tkun moħbija meta tibda l-app GUI.
- Żid il-linja tal-kodiċi tas-sejħa tal-API gui_event_face_rec_action() b'parametru tal-ID tal-avveniment differenti fuq il-grillu "Rilaxxjat" fl-Issettjar tal-Avveniment tal-buttuni kollha Reġistrazzjoni, Rikonoxximent u Ħassar Utent biex jiġu attivati l-avvenimenti ta 'reġistrazzjoni tal-wiċċ, rikonoxximent tal-wiċċ u tħassir tal-utent. Figura 8 turi l-kodiċi għall-avveniment tal-buttuna Reġistrazzjoni:
- Aġġorna l-kodiċi ġġenerat minn GUI Guider għall-proġett MCUXpresso.
- Ibdel il-kontenut ħlief għall-immaġini tal-folder fil-folder iġġenerat tal-proġett MCUXpresso SW ma 'dawk korrispondenti fil-folder iġġenerat tal-proġett GUI Guider SW.
Nota: Għal aktar dettalji dwar il-modifiki introdotti hawn fuq, iċċekkja l-example software fuq https://mcuxpresso.nxp.com/appcodehub.
Verifiki mal-example proġett
Biex tikseb l-exampil-pakkett tas-softwer li fih ir-riżorsi u l-għodod għal din in-nota tal-applikazzjoni, żur: https://mcuxpresso.nxp.com/appcodehub. Iftaħ l-example proġett fuq MCUXpresso IDE. Ibni u pprogramma l-.axf file għall-indirizz 0x30000000 u pprogramma l-bin tar-riżorsi file camera_preview_resource.bin għall-indirizz 0x30800000.
L-LVGL GUI rikonoxximent tal-wiċċ example taħdem normalment kif hawn taħt:
- Preview: Bil-power up, il-flussi tal-vidjo maqbuda mill-kamera juri fuq iż-żona speċifika tal-kamera preview fuq l-iskrin GUI. It-tikketta tal-istatus turi “Preview…”. Għad-dettalji, ara Figura 3. Il-buttuna Ħassar Utent hija moħbija. Meta tikklikkja ż-żona barra l-buttuni u l-immaġini, turi l-preview tiddikjara kif hawn fuq wara li tintemm ir-reġistrazzjoni tal-wiċċ jew l-azzjoni ta’ rikonoxximent.
- Reġistrazzjoni:
- tartup: Meta tiġi kklikkjata l-buttuna Reġistrazzjoni, tibda r-reġistrazzjoni tal-wiċċ. It-tikketta tal-istatus tinbidel biex turi "Reġistrazzjoni...", ir-rettangolu tal-gwida tal-wiċċ juri blu, u l-istrixxa tal-progress tibda turi l-progress. Kun żgur li l-wiċċ tal-utent jidher fir-rettangolu tal-gwida tal-wiċċ blu għar-reġistrazzjoni.
- suċċess: It-tikketta tal-istatus turi "Reġistrazzjoni...OK" u n-numru tal-ID tal-utent irreġistrat, ir-rettangolu tal-gwida tal-wiċċ isir aħmar jekk ir-reġistrazzjoni tal-wiċċ tirnexxi qabel ma l-progress jidher sħiħ fuq il-bar.
- Falliment -> Time out: It-tikketta tal-istatus turi "Reġistrazzjoni... Time out" jekk ir-reġistrazzjoni tal-wiċċ tkun għadha falluta meta l-progress juri sħiħ fuq il-bar.
- Falliment -> Duplikazzjoni: It-tikketta tal-istatus turi "Reġistrazzjoni... Falliet", ir-rettangolu tal-gwida tal-wiċċ isir aħdar jekk il-wiċċ irreġistrat jiġi rikonoxxut qabel ma l-progress juri sħiħ fuq il-bar.
- konjizzjoni:
- Istartjar: Meta l-buttuna Rikonoxximent hija kklikkjata, ir-rikonoxximent tal-wiċċ jibda. It-tikketta tal-istatus tinbidel biex turi "Rikonoxximent...", ir-rettangolu tal-gwida tal-wiċċ juri blu, u l-istrixxa tal-progress tibda turi l-progress. Kun żgur li l-wiċċ tal-utent huwa muri fir-rettangolu blu gwida wiċċ għar-reġistrazzjoni.
- suċċess: It-tikketta tal-istatus turi "Rikonoxximent...OK" u n-numru tal-ID tal-utent rikonoxxut, ir-rettangolu tal-gwida tal-wiċċ isir aħdar jekk ir-rikonoxximent tal-wiċċ jirnexxi qabel ma l-progress juri sħiħ fuq il-bar. Fil-punt, il-buttuna Ħassar Utent tidher. Dan ifisser li l-utent huwa permess li jitħassar biss meta jkun rikonoxxut.
- ailure: It-tikketta tal-istatus turi "Rikonoxximent... Time out" jekk ir-rikonoxximent tal-wiċċ ikun għadu falla meta l-progress juri sħiħ fuq il-bar.
- Ħassar Utent: Meta l-buttuna "Ħassar Utent" tiġi kklikkjata, wara li r-rikonoxximent tal-wiċċ ikun suċċess, it-tikketta tal-istatus tinbidel biex turi "Ħassar Utent...OK" bir-rettangolu tal-gwida tal-wiċċ isir blu u l-progress jidher sħiħ fuq il-bar. Il-buttuna Ħassar Utent hija moħbija mill-ġdid. Il-wiċċ/utent rikonoxxut huwa mħassar mid-database. Dan ifisser li dan il-wiċċ/utent ma jistax jiġi rikonoxxut sakemm jerġa' jiġi rreġistrat.
Nota dwar il-kodiċi tas-sors fid-dokument
Exampil-kodiċi muri f'dan id-dokument għandu l-copyright u l-liċenzja BSD-3-Clause li ġejjin:
Copyright 2024 NXP Id-distribuzzjoni mill-ġdid u l-użu f'forom sors u binarji, bi jew mingħajr modifika, huma permessi sakemm jiġu sodisfatti l-kundizzjonijiet li ġejjin:
- Id-distribuzzjonijiet mill-ġdid tal-kodiċi tas-sors għandhom iżommu l-avviż tal-awtur ta’ hawn fuq, din il-lista ta’ kundizzjonijiet u ċ-ċaħda ta’ responsabbiltà li ġejja.
- Distribuzzjonijiet mill-ġdid f'forma binarja għandhom jirriproduċu l-avviż ta 'awtur ta' hawn fuq, din il-lista ta 'kundizzjonijiet u ċ-ċaħda ta' responsabbiltà li ġejja fid-dokumentazzjoni u/jew materjali oħra għandhom jiġu pprovduti mad-distribuzzjoni.
- La l-isem tad-detentur tad-drittijiet tal-awtur u lanqas l-ismijiet tal-kontributuri tiegħu ma jistgħu jintużaw biex japprovaw jew jippromwovu prodotti derivati minn dan is-software mingħajr permess speċifiku bil-miktub minn qabel
DAN IS-SOFTWARE JIĠI PROVDUTI MID-DETENTURURI U L-KONTRIBUTURI TA’ COPYRIGHT “KIF INHI” U KULL GARANZIJA ESPRESSA JEW IMPLIKATI, INKLUŻI, IMMA MHUX LIMITATI GĦAL, IL-GARANZIJI IMPLICITI TA’ KUMMERĊJABILITÀ U ADATTAZZJONI GĦAL GĦAN PARTIKOLARI MHIJA ĊAĦĦATA. FL-EBDA KAŻ ID-DETENTUR JEW IL-KONTRIBUTURI TA' COPYRIGHT M'GĦANDU JKUNU RESPONSABBLI GĦAL KWALUNKWE DANNI DIRETTI, INDIRETTI, INĊIDENTALI, SPEĊJALI, EŻEMPLARI, JEW KONSEKWENZJALI (INKLUŻI, IMMA MHUX LIMITATI GĦAL, AKKWIST TA' OĠĠETTI JEW SERVIZZI SOSTITUTI, TELF, TELF TA' PROFITT TA' SERVIZZ; JEW INTERRUZZJONI NEGOZJU) MA KAWŻATA U FUQ KWALUNKWE TEORIA TA’ RESPONSABBILTÀ, KEMM B’KUNTRATT, RESPONSABBILTÀ STRETTA, JEW DElitt (INKLUŻA NEGLIĠENZA JEW MOD IEĦOR) LI JKOLLU B’XI MOD MILL-UŻU TA’ DAN is-SOFTWARE, ANKE JEKK AVVIŻAT BIL-POSSIBILITÀ TA’ DAL DALI.
Storja tar-reviżjoni
Informazzjoni legali
Definizzjonijiet
Abbozz — Status ta' abbozz fuq dokument jindika li l-kontenut għadu taħt rieżami internview u soġġett għal approvazzjoni formali, li tista' tirriżulta f'modifiki jew żidiet. NXP Semiconductors ma jagħti l-ebda rappreżentazzjoni jew garanzija dwar l-eżattezza jew il-kompletezza tal-informazzjoni inkluża f'verżjoni abbozz ta' dokument u m'għandu jkollha l-ebda responsabbiltà għall-konsegwenzi tal-użu ta' tali informazzjoni.
Ċaħda
- Garanzija limitata u responsabbiltà — L-informazzjoni f'dan id-dokument hija maħsuba li hija preċiża u affidabbli. Madankollu, NXP Semiconductors ma tagħti l-ebda rappreżentanza jew garanzija, espressa jew impliċita, dwar l-eżattezza jew il-kompletezza ta 'din l-informazzjoni u m'għandu jkollha l-ebda responsabbiltà għall-konsegwenzi tal-użu ta' tali informazzjoni. NXP Semiconductors ma jieħu l-ebda responsabbiltà għall-kontenut f'dan id-dokument jekk ipprovdut minn sors ta' informazzjoni barra minn NXP Semiconductors.
Fl-ebda każ NXP Semiconductors m'għandu jkun responsabbli għal kwalunkwe ħsara indiretta, inċidentali, punittiva, speċjali jew konsegwenzjali (inklużi – mingħajr limitazzjoni – profitti mitlufa, iffrankar mitluf, interruzzjoni tan-negozju, spejjeż relatati mat-tneħħija jew is-sostituzzjoni ta' kwalunkwe prodott jew ħlas mill-ġdid) kemm jekk jew le tali danni huma bbażati fuq tort (inkluża negliġenza), garanzija, ksur ta 'kuntratt jew kwalunkwe teorija legali oħra.
Minkejja kwalunkwe danni li l-klijent jista 'jġarrab għal kwalunkwe raġuni tkun xi tkun, ir-responsabbiltà aggregata u kumulattiva ta' NXP Semiconductors lejn il-klijent għall-prodotti deskritti hawnhekk għandha tkun limitata skont it-Termini u l-kundizzjonijiet tal-bejgħ kummerċjali ta 'NXP Semiconductors. - Dritt li jsiru bidliet — NXP Semiconductors jirriserva d-dritt li jagħmel bidliet fl-informazzjoni ppubblikata f'dan id-dokument, inklużi mingħajr limitazzjoni speċifikazzjonijiet u deskrizzjonijiet tal-prodott, fi kwalunkwe ħin u mingħajr avviż. Dan id-dokument jieħu post u jissostitwixxi l-informazzjoni kollha pprovduta qabel il-pubblikazzjoni tiegħu.
- Adattat għall-użu — Il-prodotti NXP Semiconductors mhumiex iddisinjati, awtorizzati jew iggarantiti biex ikunu adattati għall-użu f'sistemi jew tagħmir ta' sostenn tal-ħajja, kritiċi għall-ħajja jew kritiċi għas-sikurezza, u lanqas f'applikazzjonijiet fejn falliment jew mal-funzjonament ħażin ta' prodott NXP Semiconductors jista' jkun raġonevolment mistenni li jirriżulta f' korriment personali, mewt jew proprjetà severa jew ħsara ambjentali. NXP Semiconductors u l-fornituri tagħha ma jaċċettaw l-ebda responsabbiltà għall-inklużjoni u/jew l-użu ta 'prodotti NXP Semiconductors f'tali tagħmir jew applikazzjonijiet u għalhekk tali inklużjoni u/jew użu huwa għar-riskju tal-klijent stess.
- Applikazzjonijiet — Applikazzjonijiet li huma deskritti hawnhekk għal kwalunkwe minn dawn il-prodotti huma għal skopijiet illustrattivi biss. NXP Semiconductors ma jagħmel l-ebda rappreżentazzjoni jew garanzija li tali applikazzjonijiet se jkunu adattati għall-użu speċifikat mingħajr aktar ittestjar jew modifika.
Il-klijenti huma responsabbli għad-disinn u t-tħaddim tal-applikazzjonijiet u l-prodotti tagħhom li jużaw il-prodotti NXP Semiconductors, u NXP Semiconductors ma jaċċetta l-ebda responsabbiltà għal kwalunkwe assistenza bl-applikazzjonijiet jew id-disinn tal-prodott tal-klijent. Hija r-responsabbiltà unika tal-klijent li jiddetermina jekk il-prodott NXP Semiconductors huwiex adattat u adattat għall-applikazzjonijiet u l-prodotti ppjanati tal-klijent, kif ukoll għall-applikazzjoni ppjanata u l-użu tal-klijent(i) ta 'parti terza tal-klijent. Il-klijenti għandhom jipprovdu disinn xieraq u salvagwardji operattivi biex jimminimizzaw ir-riskji assoċjati mal-applikazzjonijiet u l-prodotti tagħhom. NXP Semiconductors ma jaċċetta l-ebda responsabbiltà relatata ma 'kwalunkwe inadempjenza, ħsara, spejjeż jew problema li hija bbażata fuq kwalunkwe dgħjufija jew inadempjenza fl-applikazzjonijiet jew il-prodotti tal-klijent, jew l-applikazzjoni jew l-użu mill-klijent(i) parti terza tal-klijent. Il-Klijent huwa responsabbli biex jagħmel l-ittestjar kollu meħtieġ għall-applikazzjonijiet u l-prodotti tal-klijent bl-użu tal-prodotti NXP Semiconductors sabiex jiġi evitat nuqqas ta 'l-applikazzjonijiet u l-prodotti jew ta' l-applikazzjoni jew l-użu mill-klijent(i) parti terza tal-klijent. NXP ma jaċċetta ebda responsabbiltà f'dan ir-rigward. - Termini u kondizzjonijiet ta' bejgħ kummerċjali — Il-prodotti NXP Semiconductors jinbiegħu soġġetti għat-termini u l-kundizzjonijiet ġenerali tal-bejgħ kummerċjali, kif ippubblikati fuq https://www.nxp.com/profile/termini, sakemm ma jkunx miftiehem mod ieħor fi ftehim individwali validu bil-miktub. F'każ li jiġi konkluż ftehim individwali għandhom japplikaw biss it-termini u l-kundizzjonijiet tal-ftehim rispettiv. NXP Semiconductors b'dan joġġezzjona espressament għall-applikazzjoni tat-termini u l-kundizzjonijiet ġenerali tal-klijent fir-rigward tax-xiri tal-prodotti NXP Semiconductors mill-klijent.
- Kontroll tal-esportazzjoni — Dan id-dokument kif ukoll l-oġġett(i) deskritt(i) hawnhekk jistgħu jkunu soġġetti għal regolamenti tal-kontroll tal-esportazzjoni. L-esportazzjoni tista' teħtieġ awtorizzazzjoni minn qabel mill-awtoritajiet kompetenti.
- Idoneità għall-użu fi prodotti kwalifikati mhux awtomotivi — Sakemm dan id-dokument ma jiddikjarax espressament li dan il-prodott speċifiku NXP Semiconductors huwa kwalifikat għall-karozzi, il-prodott mhuwiex adattat għall-użu tal-karozzi. La hija kwalifikata u lanqas ittestjata skont l-ittestjar tal-karozzi jew ir-rekwiżiti tal-applikazzjoni. NXP Semiconductors ma jaċċetta l-ebda responsabbiltà għall-inklużjoni u/jew l-użu ta 'prodotti kwalifikati mhux awtomotivi f'tagħmir jew applikazzjonijiet tal-karozzi.
Fil-każ li l-klijent juża l-prodott għad-disinn u l-użu f’applikazzjonijiet awtomotivi għal speċifikazzjonijiet u standards tal-karozzi, il-klijent (a) għandu juża l-prodott mingħajr il-garanzija ta’ NXP Semiconductors tal-prodott għal tali applikazzjonijiet, użu u speċifikazzjonijiet tal-karozzi, u ( b) kull meta l-klijent juża l-prodott għal applikazzjonijiet awtomotivi lil hinn mill-ispeċifikazzjonijiet ta’ NXP Semiconductors, dan l-użu għandu jkun biss għar-riskju tal-klijent, u (c) il-klijent jindennizza bis-sħiħ lil NXP Semiconductors għal kwalunkwe responsabbiltà, danni jew pretensjonijiet tal-prodott falluti li jirriżultaw mid-disinn tal-klijent u l-użu tal-prodott. il-prodott għall-applikazzjonijiet tal-karozzi lil hinn mill-garanzija standard ta 'NXP Semiconductors u l-ispeċifikazzjonijiet tal-prodott ta' NXP Semiconductors. - Traduzzjonijiet — Verżjoni mhux bl-Ingliż (tradotta) ta’ dokument, inkluża l-informazzjoni legali f’dak id-dokument, hija għal referenza biss. Il-verżjoni bl-Ingliż għandha tipprevali f'każ ta' kwalunkwe diskrepanza bejn il-verżjoni tradotta u dik bl-Ingliż.
- Sigurtà — Il-Klijent jifhem li l-prodotti NXP kollha jistgħu jkunu soġġetti għal vulnerabbiltajiet mhux identifikati jew jistgħu jappoġġjaw standards jew speċifikazzjonijiet ta’ sigurtà stabbiliti b’limitazzjonijiet magħrufa. Il-Klijent huwa responsabbli għad-disinn u l-operat tal-applikazzjonijiet u l-prodotti tiegħu matul iċ-ċiklu tal-ħajja tagħhom biex inaqqas l-effett ta 'dawn il-vulnerabbiltajiet fuq l-applikazzjonijiet u l-prodotti tal-klijent. Ir-responsabbiltà tal-klijent testendi wkoll għal teknoloġiji oħra miftuħa u/jew proprjetarji appoġġjati minn prodotti NXP għall-użu fl-applikazzjonijiet tal-klijent. NXP ma jaċċetta l-ebda responsabbiltà għal xi vulnerabbiltà. Il-klijent għandu jiċċekkja regolarment l-aġġornamenti tas-sigurtà minn NXP u jsegwi b'mod xieraq. Il-Klijent għandu jagħżel prodotti b'karatteristiċi ta' sigurtà li jissodisfaw l-aħjar ir-regoli, ir-regolamenti u l-istandards tal-applikazzjoni maħsuba u jieħu d-deċiżjonijiet finali tad-disinn dwar il-prodotti tiegħu u huwa biss responsabbli għall-konformità mar-rekwiżiti legali, regolatorji u relatati mas-sigurtà kollha dwar il-prodotti tiegħu, irrispettivament. ta’ kwalunkwe informazzjoni jew appoġġ li jista’ jingħata minn NXP.
NXP għandu Tim ta' Rispons għall-Inċidenti tas-Sigurtà tal-Prodott (PSIRT) (li jista' jintlaħaq fuq PSIRT@nxp.com) li jamministra l-investigazzjoni, ir-rappurtar u r-rilaxx tas-soluzzjoni għall-vulnerabbiltajiet tas-sigurtà tal-prodotti NXP.
NXP BV — NXP BV mhix kumpanija operattiva u ma tqassamx jew tbigħ prodotti.
Trademarks
Avviż: Il-marki kollha referenzjati, l-ismijiet tal-prodotti, l-ismijiet tas-servizz, u t-trademarks huma l-proprjetà tas-sidien rispettivi tagħhom.
NXP — wordmark u logo huma trademarks ta' 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 — huma trademarks u/jew trademarks reġistrati ta’ Arm Limited (jew is-sussidjarji jew l-affiljati tagħha) fl-Istati Uniti u/jew x'imkien ieħor. It-teknoloġija relatata tista' tkun protetta minn kwalunkwe privattiva, drittijiet tal-awtur, disinni u sigrieti kummerċjali jew kollha. Id-drittijiet kollha riżervati.
- i.MX — hija trademark ta' NXP BV
- J-Link — hija trademark ta' SEGGER Microcontroller GmbH.
Microsoft, Azure, u ThreadX — huma trademarks tal-grupp ta’ kumpaniji Microsoft.
Jekk jogħġbok kun konxju li avviżi importanti dwar dan id-dokument u l-prodott(i) deskritt(i) hawnhekk, ġew inklużi fit-taqsima 'Informazzjoni legali'.
© 2024 NXP BV
Għal aktar informazzjoni, jekk jogħġbok żur: https://www.nxp.com
- Data tar-rilaxx: 19 ta’ April 2024
- Identifikatur tad-dokument: AN14263
FAQ
Q: X'inhu l-għan ewlieni ta 'dan il-prodott?
A: L-għan ewlieni huwa li tippermetti l-funzjoni ta 'rikonoxximent tal-wiċċ bl-użu ta' mudell ta 'algoritmu ta' viżjoni AI&ML b'GUI LVGL sempliċi example fuq il-bord SLN-TLHMI-IOT.
Q: Kif jistgħu l-iżviluppaturi jibbenefikaw minn din in-nota tal-applikazzjoni?
A: L-iżviluppaturi jistgħu jitgħallmu kif jimplimentaw ir-rikonoxximent tal-wiċċ fuq il-qafas pass pass billi jużaw l-eż ipprovdutample u tifhem il-maniġers tal-apparat, l-apparati HAL, u l-mekkaniżmi tal-avvenimenti involuti.
Dokumenti / Riżorsi
![]() |
NXP AN14263 Implimenta LVGL GUI Face Recognition fuq Framewor [pdfGwida għall-Utent AN14263 Implimenta LVGL GUI Face Recognition fuq Framewor, AN14263, Implimenta LVGL GUI Face Recognition fuq Framewor, LVGL GUI Face Recognition fuq Framewor, Face Recognition fuq Framewor, Rikonoxximent fuq Framewor, Framewor |