NXP AN14263 Tekeleza Utambuzi wa Uso wa LVGL GUI kwenye Framewor
Taarifa ya Bidhaa
Vipimo
- Jina la Bidhaa: Utambuzi wa Uso wa LVGL GUI kwenye Mfumo
- Marekebisho ya Hati: 1 - 19 Aprili 2024
- Maneno muhimu: Utambuzi wa uso, LVGL GUI, Mfumo
Maagizo ya Matumizi ya Bidhaa
- Zaidiview
Bidhaa hii huwezesha muundo wa algoriti ya maono ya AI&ML kwa utambuzi wa uso kwenye mfumo wa kutekeleza utendakazi wa utambuzi wa uso kwa kutumia GUI rahisi ya zamani ya LVGL.ampkwenye ubao wa SLN-TLHMI-IOT. - Mfumo Umeishaview
Programu ya suluhisho imeundwa kuzunguka muundo wa usanifu unaojumuisha wasimamizi wa vifaa wanaohusika na udhibiti wa vifaa, vifaa vya HAL ili kupata maelezo ya kimsingi, na matukio ya mawasiliano kati ya vifaa tofauti. - Vipengele
Bidhaa inaruhusu utekelezaji wa kazi ya utambuzi wa uso kupitia kamera ya awaliview kwenye skrini ya GUI yenye vitufe vya kuanzisha usajili wa nyuso, utambuzi na uondoaji. Data ya uso iliyosajiliwa huhifadhiwa kwenye Flash kupitia a file mfumo. - Maudhui ya Kumbuka ya Programu
Kidokezo cha programu kinawasilisha skrini ya LVGL GUI iliyo na kamera kablaview na vitufe vya vitendo vinavyohusiana na uso. Husaidia wasanidi programu kuelewa mfumo na jinsi ya kutekeleza utambuzi wa uso kwa kutumia ex iliyotolewaample.
Zaidiview
NXP imezindua kifaa cha kutengeneza suluhisho kinachoitwa SLN-TLHMI-IOT ambacho kinaangazia programu mahiri za HMI. Huwasha HMI mahiri yenye uwezo wa kuona wa ML, sauti, na kiolesura cha michoro kinachotekelezwa kwenye NXP i.MX RT117H MCU moja. Kulingana na SDK, programu ya suluhu imeundwa kwa muundo unaoitwa mfumo ambao unaauni miundo inayonyumbulika na kubinafsisha utendaji wa maono na sauti. Ili kuwasaidia watumiaji kutumia jukwaa la programu vyema, baadhi ya hati za kimsingi hutolewa, kwa mfanoample, mwongozo wa mtumiaji wa ukuzaji programu. Mwongozo huo unatanguliza muundo wa msingi wa programu na usanifu wa programu zinazofunika vipengele vyote vya suluhisho ikiwa ni pamoja na mfumo wa kuwasaidia wasanidi programu kwa urahisi na kwa ufanisi zaidi kutekeleza programu zao kwa kutumia SLN-TLHMI-IOT.
Kwa maelezo zaidi kuhusu suluhisho na nyaraka husika, tembelea web ukurasa wa NXP EdgeReady Smart HMI Solution Kulingana na i.MX RT117H yenye ML Vision, Voice, na Graphical UI. Hata hivyo, bado si rahisi kwa wasanidi programu kutekeleza programu zao mahiri za HMI zinazorejelea miongozo hii ya kimsingi. Msururu wa madokezo ya programu umepangwa kusaidia kusoma maendeleo kwenye mfumo hatua kwa hatua. Dokezo hili la programu linatokana na Tekeleza LVGL GUI Camera Preview kwenye Mfumo (hati AN14147). Dokezo hili la programu linafafanua jinsi ya kuwezesha muundo wa algoriti ya maono ya AI&ML kwa utambuzi wa uso kwenye mfumo wa kutekeleza kitendakazi cha utambuzi wa uso kupitia kamera kabla.view kwenye skrini ya GUI na GUI rahisi ya zamani ya LVGLampkwenye ubao wa SLN-TLHMI-IOT. Katika barua ya maombi, example inawasilisha skrini ya LVGL GUI iliyo na kamera ya awaliview na baadhi ya vitufe vya kuanzisha usajili wa nyuso, utambuzi na kuondolewa. Data ya uso iliyosajiliwa huhifadhiwa kwenye Flash kupitia kidogo file mfumo.
Katika kiwango cha juu, noti ya programu ina yaliyomo hapa chini:
- Washa kipengele cha utambuzi wa uso kwenye mfumo.
- Ongeza usaidizi wa hifadhidata ya uso kwenye mfumo kupitia file mfumo kwenye Flash.
- Tekeleza programu ya LVGL GUI. Kupitia utangulizi ulio hapo juu, hati hii inasaidia watengenezaji:
- Fahamu mfumo na programu mahiri ya suluhisho la HMI kwa undani zaidi.
- Boresha utambuzi wao wa uso wa AI&ML kwenye mfumo na programu ya LVGL GUI.
Mfumo umekwishaview
Programu ya suluhisho imeundwa kimsingi karibu na utumiaji wa usanifu wa mfumo ambao unajumuisha sehemu kadhaa tofauti:
- Wasimamizi wa kifaa - sehemu kuu
- Vifaa vya Tabaka la Uondoaji wa Vifaa (HAL).
- Ujumbe/Matukio
Kama inavyoonyeshwa kwenye Mchoro 1, zaidiview ya utaratibu wa mfumo ni:
Wasimamizi wa vifaa wana jukumu la kudhibiti vifaa vinavyotumiwa na mfumo. Kila aina ya kifaa (ingizo, pato, na kadhalika) ina kidhibiti cha kifaa chake cha aina mahususi. Kwa kidhibiti cha kifaa kinachoanza baada ya kusajiliwa kwa vifaa, husubiri na kuangalia ujumbe ili kuhamisha data kwa vifaa na wasimamizi wengine baada ya kuanzisha na kuanzisha vifaa vilivyosajiliwa. Vifaa vya HAL vimeandikwa juu ya nambari ya dereva ya kiwango cha chini, na hivyo kusaidia kuongeza uelewa wa msimbo kwa kuondoa maelezo mengi ya msingi.
Matukio ni njia ambayo habari hupitishwa kati ya vifaa tofauti kupitia wasimamizi wao. Tukio linapoanzishwa, kifaa kilichopokea tukio mara ya kwanza huwasilisha tukio hilo kwa msimamizi wake, kisha kinawaarifu wasimamizi wengine walioteuliwa kupokea tukio hilo.
Muundo wa usanifu wa mfumo ulizingatia malengo matatu ya msingi:
- Urahisi wa kutumia
- Kubadilika/Kubebeka
- Utendaji
Mfumo huo umeundwa kwa lengo la kuharakisha muda wa soko kwa maono na matumizi mengine ya kujifunza mashine. Ili kuhakikisha muda wa haraka wa soko, ni muhimu kwamba programu yenyewe ni rahisi kuelewa na kurekebisha. Kuzingatia lengo hili, usanifu wa mfumo ni rahisi kurekebisha bila kuwa na vikwazo, na bila kuja kwa gharama ya utendaji.
Kwa maelezo zaidi kuhusu mfumo, angalia Mwongozo wa Mtumiaji wa Ukuzaji wa Programu ya Smart HMI (hati MCU-SMHMI-SDUG).
Maktaba ya Picha Nyepesi na Inayotumika Mbalimbali (LVGL)
LVGL (Maktaba ya Michoro Nyepesi na Mengi) ni maktaba ya michoro isiyolipishwa na ya chanzo huria inayotoa kila kitu unachohitaji ili kuunda GUI iliyopachikwa yenye vipengele vya picha vilivyo rahisi kutumia, madoido mazuri ya kuona na kumbukumbu ya chini.
Mwongozo wa GUI
GUI Guider ni zana ya uundaji wa kiolesura cha mtumiaji inayoweza kutumiwa na mtumiaji kutoka NXP inayowezesha uundaji wa haraka wa maonyesho ya ubora wa juu na maktaba ya picha huria ya LVGL. Kihariri cha kuvuta na kudondosha cha GUI Guider hurahisisha kutumia vipengele vingi vya LVGL kama vile wijeti, uhuishaji na mitindo ili kuunda GUI bila usimbaji mdogo au bila kabisa.
Kwa kubofya kitufe, unaweza kuendesha programu yako katika mazingira iliyoiga au kuisafirisha kwa mradi lengwa. Msimbo uliozalishwa kutoka kwa Mwongozo wa GUI unaweza kuongezwa kwa mradi wako kwa urahisi, kuharakisha mchakato wa usanidi na kukuruhusu kuongeza kiolesura kilichopachikwa kwenye programu yako. Kielekezi cha GUI kinatumika bila malipo pamoja na madhumuni ya jumla ya NXP na MCU mbalimbali na inajumuisha violezo vya mradi vilivyojengewa ndani kwa mifumo kadhaa inayotumika. Ili kupata maelezo zaidi kuhusu uundaji wa LVGL na GUI kwenye Kielekezi cha GUI, angalia Maktaba ya Michoro Nyepesi na Inayotumika Mbalimbali na Kielekezi cha GUI.
Mazingira ya maendeleo
Kwanza, jitayarisha na usanidi mazingira ya vifaa na programu kwa ajili ya kutekeleza exampkwenye mfumo.
Mazingira ya vifaa
Mazingira ya maunzi yamewekwa kwa ajili ya kuthibitisha ya zamaniample:
- Seti mahiri ya ukuzaji ya HMI kulingana na NXP i.MX RT117H (saha ya SLN_TLHMI_IOT)
- SEGGER J-Link yenye adapta ya Cortex-M ya pini 9 na V7.84a au toleo jipya zaidi la kiendeshi.
Mazingira ya programu
Mazingira ya programu yamewekwa kwa ajili ya kuendeleza example:
- MCUXpresso IDE V11.7.0
- Mwongozo wa GUI V1.6.1-GA
- lvgl_gui_camera_preview_cm7 - mfanoample msimbo wa noti ya pili ya programu kama msingi wa programu ya ukuzaji. Kwa maelezo, tazama https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 - kama nyenzo ya msimbo ya maendeleo.
- Programu ya SLN-TLHMI-IOT V1.1.2 - msimbo mahiri wa chanzo cha HMI iliyotolewa kwenye hazina ya NXP GitHub kama nyenzo ya msimbo ya usanidi. Kwa maelezo, angalia: GitHub - NXP/mcu-smhmi katika v1.1.2
Kwa maelezo kuhusu upataji na usanidi wa mazingira ya programu, angalia: Kuanza na SLN-TLHMI-IOT.
Usanifu wa maono kwenye mfumo
Usanifu wa maono kwenye kiunzi umeonyeshwa kwenye Mchoro 2. Maono ya awali ya HAL (OASIS_HAL) yana michakato ifuatayo:
- Fanya usajili na utambuzi kupitia muundo wa algoriti ya maono ya AI&ML baada ya kupokea matukio yanayohusiana kutoka kwa toleo la UI HAL. Arifu matokeo ya uelekezaji kutoka kwa muundo wa algorithm hadi towe la UI HAL.
- Hufikia (ongeza, futa...) hifadhidata ya kipengele cha uso kulingana na kidogo file mfumo kwa kupiga API za FaceDB HAL baada ya kupokea matukio yanayohusiana kutoka kwa pato la UI HAL.
- Omba fremu ya video ya kamera kutoka kwa kamera ya HAL unapofanya usajili wa uso na utambuzi.
Tekeleza utambuzi wa uso kwenye mfumo
LVGL GUI ya zamani ya utambuzi wa usoample (mfample hutolewa baadaye) kwenye mfumo unatekelezwa kulingana na example misimbo ya Tekeleza Kamera ya LVGL GUI Preview kwenye Mfumo (hati AN14147).
Kwa ajili ya kuonyesha utambuzi wa uso katika exampna, utendakazi wa kimsingi wa programu ya GUI (tazama skrini kuu kwenye Mchoro 3) umeundwa kama ilivyoelezwa hapa chini:
- Programu ya GUI huanzisha usajili wa nyuso au tukio la utambuzi kwa utoaji wa UI HAL unapobofya kitufe cha Usajili au Utambuzi. Na toleo la UI HAL huarifu tukio la kuongeza mtumiaji kwenye maono algo HAL baada ya usajili wa nyuso kufanikiwa.
- Programu ya GUI huanzisha tukio la kufuta mtumiaji kwenye towe la UI HAL wakati wa kubofya kitufe cha Futa Mtumiaji baada ya uso wa mtumiaji kutambuliwa.
- Programu ya GUI huanzisha tukio la kusimamisha oasis algo kukimbia hadi UI HAL ya pato wakati wa kubofya skrini nje ya vitufe na picha.
Tayarisha kifurushi cha programu kwa ajili ya utekelezaji wa example.
- Funga programu ya msingi lvgl_gui_camera_preview_cm7. Badilisha jina la mradi na kuu filejina kwa lvgl_gui_face_rec_cm7.
- Mfumo unahitajika kusasishwa katika programu kwani misimbo ya chanzo ya msingi wa mfumo imeanza kuonekana hadharani kwenye GitHub kutoka toleo la 1.1.2.
- Badilisha folda ya mfumo na nakala ya V1.1.2 kutoka GitHub isipokuwa kwa files fwk_log.h na fwk_common.h under inc\ kwani yamebadilishwa kwa mfululizo wa dokezo la programu. Shughuli zinaonyeshwa kwenye Mchoro 4:
- Futa folda framework_cm7 chini ya kikundi cha libs na uondoe framework_cm7 ya maktaba na njia yake ya utafutaji iliyosanidiwa katika Mradi > Sifa > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Maktaba kwani msimbo wa chanzo wa msingi umetolewa.
Washa kipengele cha utambuzi wa uso kwenye mfumo
Kipengele cha utambuzi wa uso kimeundwa kwenye muundo wa algoriti ya maono ya ML iliyotolewa kama maktaba tuli - maktaba ya wakati wa utekelezaji wa oasis lite na NXP. Maktaba ni maktaba ndogo, yenye ufanisi mkubwa, iliyoboreshwa na iliyoboreshwa ya AI. Muundo huu unajumuisha utambuzi wa uso, utambuzi wa uso, ugunduzi wa vioo na utambuzi wa uhai. Hasa hutoa API OASISLT_run_extended() kuendesha bomba la utambuzi wa uso huku ikisasisha matokeo kwa mpigaji simu kupitia simu za nyuma za tukio, na kuongeza/sasisha/kufuta nyuso kwenye hifadhidata kupitia upigaji simu wa hifadhidata ya uso baada ya kubainisha habari ya fremu ya chanzo, virudishio nyuma na kumbukumbu. bwawa linalotumiwa na maktaba kwa kupiga API nyingine OASISLT_init() wakati wa kuanzishwa. Wito wa API na utendakazi wa kurudisha nyuma unatekelezwa katika maono ya algo HAL ya mfumo.
Ongeza maktaba ya vision algo model
- Nakili oasis ya folda iliyo na maktaba na kichwa kinachohusiana file kutoka kwa HMI\coffee_machine mahiri\cm7\libs\ hadi kwenye libs za folda za zamaniampna SW.
- Ongeza njia ya utafutaji ya kichwa file katika Mradi > Sifa > C/C++ Build > mipangilio > Mipangilio ya Zana > Kikusanyaji cha MCU C > Inajumuisha na kikusanya MCU C++ > Inajumuisha: “${workspace_loc:/${ProjName}/libs/oasis/include}”
- Ongeza lib na njia yake ya utafutaji kwenye Mradi > Sifa > C/C++ Build > settings > MCU C+ + Linker > Maktaba: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” na ufafanuzi mkuu wa wezesha kipengele kwenye Mradi > Sifa > C/C++ Jenga > mipangilio > Mipangilio ya Zana > Kikusanyaji cha MCU C > Kitayarisha awali na Kikusanyaji cha MCU C++ > Kichakataji awali: SMART_TLHMI_2D
Washa uwezo wa kuona HAL
Maono ya algo HAL huendesha modeli ya maono ya algo kufanya kazi na kujibu matokeo kwa matokeo ya UI HAL baada ya kupokea matukio kutoka kwayo.
Ili kuiwasha, linganisha kiendeshi sawa cha HAL file ambapo kazi zifuatazo zinatekelezwa:
- Tekeleza mwito wa uendeshaji wa hifadhidata ya uso na utunzaji wa matukio.
- Endesha maono yafanye kazi kwa kupiga API za maktaba ya oasis.
- Fikia hifadhidata ya uso wa mtumiaji na hifadhidata ya programu (haihitajiki katika example).
- Pokea matukio kutoka na kutuma matokeo kwa towe UI HAL.
Kazi kuu za kutekeleza HAL kwa wa zamaniamphizi ni:
- Funga kiendeshi sawa cha HAL file na ubadilishe majina yanayohusiana.
- Ondoa misimbo inayohusiana na shughuli za data ya programu.
- Sasisha ufafanuzi na chaguo za kukokotoa za kushughulikia matukio kutoka kwa towe la UI HAL kwa kila exampna kubuni.
- Ongeza usanidi unaohitajika katika uanzishaji wa oasis.
Hatua za kina ni kama zifuatazo:
- Clone hal_vision_algo_oasis_coffeemachine.c. Badilisha filejina la hal_vision_algo_oasis_guifacerec.c. Na ubadilishe kamba zote CoffeeMachine na GUIFaceRec kwenye file.
- Ondoa misimbo iliyo na kamba coffeedb (si nyeti kwa ukubwa) inayohusiana na hifadhidata ya programu, kwa mfanoample, #pamoja na hal_sln_coffeedb.h.
- Rekebisha chaguo za kukokotoa HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() kwa ajili ya kushughulikia matukio kutoka kwa towe la UI HAL.
- Badilisha ufafanuzi wa tukio kEventFaceRecId_RegisterCoffeeSelection kuwa kEventFaceRecId_RegisterUserFace na mfuatano wa muundo wa regCoffeeSelection uwe regGUIFaceRec kwa ajili ya kushughulikia tukio ili kuongeza data ya kipengele kipya cha uso kwenye hifadhidata.
- Kuonyesha mchakato wa kawaida wa vitendo vya utambuzi wa uso katika example, rekebisha ushughulikiaji katika kesi ya kEventFaceRecID_OasisSetState na ufafanuzi wa majimbo:
- kOASISLiteState
- Usajili wa kOASISLiteState
- Utambuzi wa kOASISLiteState
- Imesimamishwa
- Ongeza na urekebishe ufafanuzi wa matukio yaliyotajwa katika hatua iliyo hapo juu.
- Nakili kichwa file smart_tlhmi_event_descriptor.h kutoka kwa HMI\coffee_machine mahiri \cm7\source\event_handlers\ hadi kwenye chanzo cha folda cha ex.ampna SW. Sasisha file kama ilivyo hapo chini:
- Badilisha ufafanuzi wa tukio kEventFaceRecId_RegisterCoffeeSelection kuwa kEventFaceRecId_RegisterUserFace katika aina ya enum _event_smart_tlhmi_id na mfuatano wa muundo regCoffeeSelection hadi regGUIFaceRec katika muundo _event_smart_tlhmi. Kwa hivyo, badilisha muundo register_coffee_selection_event_t kwa regCoffeeSelection hadi register_gui_facerec_event_t.
- Futa maudhui mengine yanayotumika kwa programu ya mashine ya kahawa, kwa mfanoample, mstari wa msimbo kuhusu sauti: #jumuisha "hal_event_descriptor_voice.h".
- Ongeza aina za kOASISLiteState_Stopped na kOASISLiteState_Running kwa aina ya enum oasis_lite_state_t katika hal_vision_algo.h chini ya framework>hal>vision katika mradi kama ilivyo hapo chini:
typedef enum _oasis_lite_state {- kOASISLiteState
- Inaendesha, kOASISLiteState
- Imesimamishwa, kOASISLiteState
- Kutambuliwa,
- kOASISLiteState
- Usajili, kOASISLiteState
- Kufuta Usajili, kOASISLiteState
- RemoteRegistration, kOASISLiteState
- Hesabu
- Tumia muundo uliosasishwa wa oasis_lite_state_t ili kuboresha muundo oasis_state_event_t katika hal_event_descriptor_face_rec.h chini ya framework>hal>maono katika mradi kama hapa chini: typedef struct _oasis_state_event_t {oasis_lite_state_t state; } oasis_state_tukio_t;
- Badilisha kEventInfo_Remote yote kuwa kEventInfo_Local kwa kutuma matukio kutoka kwa maono HAL hadi HAL zingine zinazoendeshwa kwa msingi sawa na msingi mmoja badala ya dual-core inatumika katika zamani.ample.
- Ongeza na urekebishe usanidi ulio hapa chini wa uanzishaji wa oasis katika OASISLT_init():
- Ongeza ufafanuzi mkuu na sehemu za kumbukumbu za fremu ya video katika board_define.h: #fafanua OASIS_RGB_FRAME_WIDTH 800
- #fafanua OASIS_RGB_FRAME_HEIGHT 600
- #fafanua OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
- #fafanua OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
- #fafanua AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __attribute__((sehemu(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __sifa__((iliyopangwa(alignbytes)))
- Sanidi mgawo wa kumbukumbu kwa sehemu ya kumbukumbu iliyo hapo juu fb_sh_mem kwenye Mradi > Sifa > C/C++ Build > Mipangilio ya MCU iliyoonyeshwa kwenye Mchoro 5:
- Tangaza utofauti wa kimataifa g_DTCOPBuf katika lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Endelea kuongeza ufafanuzi unaotumika katika utofauti ulio hapo juu:
- Bainisha sehemu iliyo hapo juu katika board_define.h:
- #fafanua AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- sifa__((sehemu(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- sifa__((iliyopangwa(alignbytes)))
- Jumuisha kichwa file hal_vision_algo.h iliyo na ufafanuzi mkuu DTC_OPTIMIZE_BUFFER_SIZE katika app_config.h iliyojumuishwa katika lvgl_gui_face_rec_cm7.cpp.
- Ongeza ufafanuzi mkuu na sehemu za kumbukumbu za fremu ya video katika board_define.h: #fafanua OASIS_RGB_FRAME_WIDTH 800
- Weka s_debugOption tofauti kuwa kweli kwa kuonyesha hali ya maendeleo kwenye utambuzi wa uso.
- Ongeza njia ya utafutaji ya kichwa files ya maono ya HAL kwenye Mradi > Sifa > C/C++ Build > mipangilio > Mipangilio ya Zana > Kikusanyaji cha MCU C > Inajumuisha na kikusanyaji cha C++ cha MCU > Inajumuisha: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- Ongeza ufafanuzi ulio hapa chini ili kuwezesha vision algo HAL kwenye board_define.h: #fafanua ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Washa UI HAL ya kutoa
Toleo la UI HAL huarifu matukio kwa maono algo HAL na hujibu matokeo ya makisio kutoka kwa maono algo HAL. Kwa programu ya GUI, matukio kwa ujumla husababishwa na programu na matokeo huonyeshwa kwenye programu.
Ili kuiwasha, linganisha kiendeshi sawa cha HAL file ambapo kwa ujumla kazi zilizo hapa chini zinatekelezwa:
- Arifu matukio kwa utambuzi wa uso na ufikiaji wa hifadhidata.
- Tekeleza upigaji simu kwa programu ya GUI ili kuanzisha matukio.
- Shughulikia matokeo ya uelekezaji kutoka kwa moduli ya maono ya algo.
- Onyesha mchakato na matokeo ya kushughulikia matukio kwenye UI kwa upau wa maendeleo unaodhibitiwa na vipima muda na mstatili wa mwongozo wa uso.
Kazi kuu za kutekeleza HAL kwa wa zamaniampzilizotumika katika hati hii ni:
- Funga kiendeshi sawa cha HAL file na ubadilishe majina yanayohusiana.
- Ondoa misimbo inayohusiana na programu.
- Sasisha chaguo za kukokotoa za arifa ya matukio na majibu ya matokeo kulingana na exampna kubuni.
- Ongeza nambari za simu za programu ya GUI ili kuanzisha matukio.
Hatua za kina ni kama zifuatazo:
- Clone hal_output_ui_coffee_machine.c. Badilisha filejina kwa hal_ output_ui_guifacerec.c.
- Badilisha kamba zote CoffeeMachine na GUIFaceRec kwenye file.
- Ondoa misimbo inayohusiana na programu - mashine ya kahawa.
- Ondoa vitendakazi WakeUp() na _StandBy() na misimbo inayohusiana (inaweza kutafuta kamba yake_up na kusubiri).
- Ondoa kablaview matukio ya hali ya kushughulikia misimbo inayohusiana katika HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Ondoa utendakazi UI_xxx_Callback() na misimbo iliyo na kamba gui_ na skrini inayohusiana na GUI ya mashine ya kahawa isipokuwa gui_set_virtual_face() kwa awaliview kipengele cha mode.
- Ondoa misimbo yote inayohusika na vigeu s_IsWaitingAnotherSelection na s_IsWaitingRegisterSelection inayohusiana na programu ya mashine ya kahawa.
- Ondoa misimbo inayohusiana na sauti, sauti na lugha. Kwa mfanoample:
- #pamoja na "hal_voice_algo_asr_local.h",
- #pamoja na "hal_event_descriptor_voice.h"
- Kwa arifa ya matukio mbalimbali, tekeleza chaguo mpya za kukokotoa _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), na DeregisterGUIFaceRec() ukirejelea utendakazi _StopFaceRec(), _RegisterCoffeeSelection(), na Kufuta Usajili(Kahawa).
- _OutputManagerNotify() hutekelezea kipengele cha msingi cha kutoa tukio kutuma tukio kwa maono algo HAL. Vipengele vilivyo hapa chini vinaiita kutuma matukio yao wenyewe.
- _SetFaceRec() hutuma tukio kEventFaceRecID_OasisSetState ili kuanzisha maono ya awali kwa usajili wa nyuso, utambuzi na kusimamisha algo.
- _RegisterGUIFaceRec() hutuma tukio kEventFaceRecId_RegisterGUIFaceRec ambalo limefafanuliwa katika smart_tlhmi_event_descriptor.h ili kuongeza data ya kipengele cha uso kwenye hifadhidata wakati usajili ni SAWA.
- DeregisterGUIFaceRec() hutuma tukio kEventFaceRecID_DelUser kufuta data ya kipengele cha uso kutoka kwa hifadhidata wakati wa kupitisha utambuzi wa uso.
- Sasisha misimbo ili kuchukua hatua zinazolingana ikiwa ni pamoja na kuonyesha upya GUI kwa kupiga API kutoka kwa programu ya LVGL GUI ili kupata matokeo ya makisio ya usajili wa nyuso na utambuzi katika chaguo za kukokotoa _InferComplete_Vision() kwa kila zamani.amptubuni. Kwa mfanoampna, wakati usajili wa uso unafanikiwa,
- Acha kuonyesha maendeleo kwa kupiga simu _FaceRecProcess_Stop();
- Komesha usajili wa uso kwa kupiga simu _SetFaceRec(kOASISLiteState_Stopped);
- Onyesha matokeo yaliyofaulu kwenye GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Sajili data ya uso kwenye hifadhidata: _RegisterUserFace(s_UserId);
- Ongeza vitendaji vya kurejesha simu vya UI ili kushughulikia matukio: kablaview, usajili wa nyuso, utambuzi, na ufutaji wa mtumiaji ulioanzishwa kutoka kwa GUI. Kwa mfanoample, upigaji simu wa usajili wa uso: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- Na uongeze chaguo za kukokotoa _FaceRecProcess_Start() na _FaceRecProcess_Stop() ili kuonyesha maendeleo na hali katika matukio na matokeo tofauti.
- Sasisha kitendakazi cha kipima muda cha ISR _SessionTimer_Callback() ili kushughulikia kesi ya kuisha kwa kupiga simu: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Ongeza ufafanuzi ulio hapa chini ili kuwezesha pato la UI HAL kwenye board_define.h: #fafanua ENABLE_OUTPUT_DEV_UiGUIFaceRec
Notisi:
Ili kuwasilisha kipengele cha utambuzi wa uso vizuri zaidi, weka chaguo la kukokotoa ili kuonyesha mchakato na matokeo ya utambuzi wa uso katika towe la UI HAL. Kitendaji kimefafanuliwa kama hapa chini
- Mstatili wa mwongozo wa uso unaonyesha bluu, na upau wa maendeleo unaonyesha maendeleo wakati wa kuanzisha usajili au utambuzi wa nyuso.
- Mstatili wa mwongozo wa uso unaonyesha nyekundu wakati usajili wa nyuso umefaulu.
- Mstatili wa mwongozo wa uso unaonyesha kijani wakati utambuzi wa uso umefaulu.
- Mstatili wa mwongozo wa uso huhifadhi samawati, na upau wa maendeleo huonyesha maendeleo kamili wakati kitendo hakijafaulu baada ya kipima muda kuisha. Wakati huo, acha usajili wa uso au utambuzi.
Upau wa maendeleo na mstatili wa mwongozo wa uso huwasilishwa kama aikoni ambazo zimeundwa kwenye mfumo wa jozi ya nyenzo file kupangwa katika Flash. Vielelezo vya data ya aikoni kwenye SDRAM huwekwa katika chaguo za kukokotoa LoadIcons(APP_ICONS_BASE) inayoitwa uanzishaji wa kifaa cha UI HAL katika towe UI HAL. Ni lazima itekeleze usaidizi wa ikoni kwa chaguo za kukokotoa.
Tekeleza usaidizi wa ikoni
- Unda rasilimali inayochanganya aikoni na picha zinazotumiwa katika programu ya LVGL GUI:
- Funga kichwa cha ikoni nne files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, na virtual_face_red_420x426.h kutoka HMI mahiri
\mashine ya kahawa\rasilimali\ikoni\ kwa ikoni za folda mpya chini ya folda ya rasilimali ya zamaniampna SW. - Ongeza njia ya utafutaji kwa ikoni nne files kwenye camera_preview_resource.txt file kwenye folda ya rasilimali, kwa mfanoample: ikoni ../resource/icons/process_bar_240x14.h
- Tekeleza camera_preview_resource_build.bat kuunda rasilimali za picha na ikoni ili kutengeneza pipa file kamera_preview_resource.bin na habari file resource_information_table.txt (Ona Mchoro 6).
- Funga kichwa cha ikoni nne files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, na virtual_face_red_420x426.h kutoka HMI mahiri
- Bainisha anwani ya kuanzia kwenye SDRAM na saizi ya aikoni katika app_config.h. Anwani huanza karibu na picha za programu ya GUI. Ukubwa hutolewa katika maelezo file. #fafanua APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #fafanua APP_ICONS_SIZE 0x107c40
- Sasisha ukubwa uliokabidhiwa wa sehemu ya kumbukumbu iitwayo res_sh_mem hadi 0x200000 kwa kuifafanua upya katika app_config.h: #fafanua RES_SHMEM_TOTAL_SIZE 0x200000 na mipangilio inayolingana katika Mradi > Sifa > C/C++ Build > mipangilio ya MCU.
- Ongeza saizi ya ikoni kwa saizi ya jumla ya rasilimali iliyopakiwa kutoka Flash hadi SDRAM katika chaguo la kukokotoa APP_LoadResource() katika sehemu kuu. file lvgl_gui_face_rec_cm7.cpp: memcpy((batili *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Taarifa: Ili kukamilisha kipengele cha utambuzi wa uso, usaidizi wa programu ya LVGL GUI unahitajika. Vitendaji vya urejeshaji simu vya UI katika pato la UI HAL huitwa na programu ya LVGL GUI kwa kushughulikia matukio kutoka skrini ya UI. Kwa upande mwingine, UI HAL ya pato huita API kutoka kwa programu ya LVGL GUI kusasisha UI ili kuonyesha matokeo na hali. Uundaji wa programu ya LVGL GUI ni huru na ulianzishwa katika Sehemu ya 4.3.
4.1.5 Anzisha vifaa vya HAL na wasimamizi kwa utambuzi wa uso
Maono yaliyowezeshwa awali ya HAL na UI pato la HAL na wasimamizi wao huanzishwa kimsingi file
lvgl_gui_face_rec_cm7.cpp kufuatia mabadiliko ya maendeleo kwenye mfumo kama hapa chini:
- Jumuisha kichwa file inayohusiana na wasimamizi wawili wa HAL kwa kuongeza nambari ya nambari:
- #jumuisha ” fwk_output_manager.h “
- #pamoja na "fwk_vision_algo_manager.h"
- Tangaza vifaa vya HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Sajili vifaa vya HAL:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Anzisha wasimamizi:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputMeneja, ret);
- Anza wasimamizi:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputMeneja, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Bainisha kipaumbele cha kazi za msimamizi:
- #fafanua MAONO_ALGO_MENEJA_KAZI_KIPAUMBELE 3
- #fafanua_KIPAUMBELE_ CHA_MENEJA_KUTOKA_1
Ongeza usaidizi wa hifadhidata ya uso kwenye mfumo
Data ya kipengele cha uso iliyosajiliwa inafikiwa katika hifadhidata ya uso iliyohifadhiwa kwenye Flash kupitia kidogo file mfumo. Hatua za kuongeza usaidizi wa hifadhidata ya uso zimeelezewa hapa chini.
Ongeza viendeshaji kwa hifadhi ya Flash
Nakili kiendeshi cha Flash interface FlexSPI files fsl_flexspi.c na fsl_flexspi.h, na kiendeshi cha usimbaji data files fsl_caam.c na fsl_caam.h kutoka kwa njia SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ hadi folda ya viendeshi ya zamaniampna SW.
Ongeza usaidizi wa kiwango cha bodi
- Ongeza ufafanuzi wa FlexSPI inayotumika kwa kifaa cha Flash kwenye ubao.h:
- #fafanua BOARD_FLEXSPI FLEXSPI1
- #fafanua BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #fafanua BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Nakili waendeshaji na usanidi files ya kifaa cha Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h chini ya njia mahiri ya HMI\coffee_machine\cmsh_source\chanzo cha folda ya kahawa\cm7ampna SW.
- Ondoa uteuzi wa "Tenga rasilimali kutoka kwa muundo" katika C/C++ Jenga > Mipangilio baada ya kubofya kulia kwenye files' jina na kufungua Sifa kwa ajili ya kuziwezesha kujengwa katika mradi.
- Badilisha kichwa kilichojumuishwa filejina sln_flash_config.h hadi sln_flash_config_w25q256jvs.h katika sln_flash_config.c na flexspi_nor_flash_ops.h.
- Weka chanzo cha saa ya FlexSPI1 kwenye faili ya file clock_config.c ikirejelea programu ya mashine ya kahawa.
Ongeza adapta na usaidizi wa kiwango cha kati
- Nakili ya files sln_flash.c, sln_flash.h, sln_encrypt.c, na sln_encrypt.h kama viendeshi vya adapta ya file mfumo na programu kutoka kwa njia ya smart HMI\coffee_machine\cm7\source\ hadi chanzo cha folda ya ex.ample. Sasisha mpya files:
- Ondoa uteuzi "Tenga rasilimali kutoka kwa muundo" juu yake kwa ujenzi.
- Badilisha vichwa vyote vilivyojumuishwa file jina sln_flash_config.h hadi sln_flash_config_w25q256jvs.h.
- Nakili folda filemfumo ulio na API kwa kidogo filemfumo na kiendesha HAL kutoka HMI \coffee_machine\cm7\source\ mahiri hadi ya zamaniampna SW. Na sasisha kwa folda mpya:
- Ondoa uteuzi "Tenga rasilimali kutoka kwa muundo" juu yake kwa ujenzi.
- Ongeza njia yake katika mipangilio ya mradi: “${workspace_loc:/${ProjName}/filemfumo}"
- Badilisha kichwa kilichojumuishwa file jina sln_flash_config.h hadi sln_flash_config_w25q256jvs.h na fica_definition.h hadi app_config.h katika file sln_flash_littlefs.h.
- Nakili folda ndogo zilizo na ware ya kati - kidogo filemfumo kutoka kwa njia SDK_2_13_0_ MIMXRT1170-EVK\middleware\ hadi ya zamaniampna SW. Na sasisha folda mpya:
- Ondoa uteuzi "Tenga rasilimali kutoka kwa muundo" juu yake kwa ujenzi.
- Ongeza njia yake katika mipangilio ya mradi: “${workspace_loc:/${ProjName}/littlefs}”
Ongeza viendeshaji HAL
- Kuna vifaa viwili vya HAL - file mfumo na hifadhidata ya uso HAL inayotumika kwa kipengele cha ufikiaji wa hifadhidata na tayari zinatekelezwa katika mfumo bila mabadiliko yoyote. Wawezeshe kwa kuongeza ufafanuzi ulio hapa chini katika board_define.h:
- #fafanua WEZESHA_FLASH_DEV_Vidogo
- #fafanua WEZESHA_FACEDB
Na ubadilishe jina la hifadhidata ya uso kwa example: #fafanua OASIS_FACE_DB_DIR "oasis_gui_face_rec"
Ongeza usaidizi wa kiwango cha programu
- Sasisha kuu file lvgl_gui_face_rec_cm7.cpp:
- Jumuisha kichwa file kuhusiana na Flash file meneja wa mfumo wa HAL kwa kuongeza mstari wa msimbo: #jumuisha "fwk_flash.h"
- Tangaza na ujiandikishe file kifaa cha HAL:
- HAL_FLASH_DEV_DECLARE(Littlefs);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Kumbuka:The file kifaa cha HAL cha mfumo lazima kisajiliwe kabla ya vidhibiti vyote vya kifaa kuanzishwa katika chaguo la kukokotoa la APP_InitFramework().
- Piga simu kitendakazi BOARD_ConfigMPU() katika APP_BoardInit() ili kusanidi MPU.
- Weka file mgawo wa mfumo kwenye Flash katika file app_config.h kwa kufafanua ufafanuzi mkuu unaotumika katika faili ya file sln_flash_littlefs.h:
- #fafanua FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #fafanua FICA_FILE_SYS_SIZE (0x280000)
Mipangilio
Baadhi ya misimbo inayohusiana na Flash hutekelezwa katika eneo la SRAM ITC kwa utendakazi wa kutosha. Nakili hati za kiunganishi za folda zilizo na usanidi wa kiunganishi kutoka kwa njia mahiri ya HMI\coffee_machine\cm7\ hadi ya zamaniampna SW.
Tekeleza programu ya LVGL GUI
Uundaji wa programu ya LVGL GUI kulingana na mfumo huita API kutoka kwa UI HAL ya pato na hutoa API za kutoa UI HAL (Angalia Sehemu ya 4.1.3 ya utekelezaji wa UI HAL ya pato).
Hata hivyo, utekelezaji wa kina wa programu ya LVGL GUI inategemea mahitaji na muundo wa programu. Programu ya GUI katika example imeundwa kama ilivyoelezwa mwanzoni mwa Sehemu ya 4.
Ifuatayo ni utangulizi wa utekelezaji:
- Misimbo iliyobinafsishwa inatekelezwa katika custom.c na custom.h iliyotolewa na GUI Guider kama kiolesura kati ya mradi wa GUI Guider na mradi wa mfumo uliopachikwa.
- Ongeza vitendakazi vipya vinavyoitwa gui_xxx() katika custom.c ili kufikia kazi zifuatazo:
- Kwa pato la UI HAL na programu ya GUI kusasisha UI.
- Ili programu ya GUI ianzishe matukio kwa kupiga simu za kitendaji za UI kutoka kwa towe la UI HAL.
Kwa mfanoample, chaguo mpya la kukokotoa gui_event_face_rec_action() huita vitendaji vya kupiga simu vya UI ili kushughulikia mojawapo ya matukio ya usajili wa nyuso, utambuzi wa uso na kufuta mtumiaji ulioanzishwa kwenye programu ya GUI wakati kitufe kinachohusiana kinapobofya.
Kumbuka: Chaguo za kukokotoa gui_set_virtual_face() zinazoitwa katika towe UI HAL kwa preview hali inahitaji kutekelezwa katika custom.c:
- Chaguo za kukokotoa gui_set_virtual_face() kutoka mahiri HMI\coffee_machine\cm4\custom \custom.c.
- Badilisha jina la wijeti home_img_cameraPreview kwa screen_img_camera_preview katika utendaji.
- Tekeleza vitendaji vya urejeshaji simu vya UI kwa mfano sawa kwa wote walio katika toleo la UI HAL chini ya udhibiti wa ufafanuzi mkuu #ifndef RT_PLATFORM kwa desturi.c kwa kuendana na mradi wa Kielekezi cha GUI kwa sababu utendakazi hizi katika towe UI HAL zinategemea jukwaa lililopachikwa. Katika custom.c, zinategemea kiigaji kwenye kielekezi cha GUI na zinajitegemea kwa jukwaa lililopachikwa. Kwa mfanoampna, urejeshaji wito wa usajili wa uso unatekelezwa kama ilivyo hapa chini kwa kiigaji cha Kielekezi cha GUI kinachoendesha: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = uongo; kurudi; }
Kumbuka: Rejelea mfano sawa wa chaguo za kukokotoa zilizoletwa katika hatua ya 6 ya Sehemu ya 4.1.3
Ufafanuzi mkuu RT_PLATFORM umewekwa kwenye mipangilio ya mradi wa MCUXpresso kama inavyoonyeshwa kwenye Mchoro 7: - Tangaza utendakazi wote unaoitwa UI_xxx_Callback() na gui_xxx() katika custom.h na uongeze custom.h iliyojumuishwa katika smart_tlhmi_event_descriptor.h ili kushiriki API za GUI kwenye toleo la UI HAL.
- Ongeza vitendakazi vipya vinavyoitwa gui_xxx() katika custom.c ili kufikia kazi zifuatazo:
- Tengeneza GUI kwenye Mwongozo wa GUI:
- Sambaza kamera ya folda mapemaview iliyo na programu ya mradi wa GUI Guider kwenye folda gui_guider katika kifurushi cha msingi cha programu lvgl_gui_camera_preview_cm7. Badilisha jina linalohusiana camera_preview face_rec kwa ex mpyaample.
- Nakili custom.c na desturi iliyosasishwa hapo juu. h kwa programu mpya ya mradi wa GUI Guider.
- Fungua mradi mpya wa face_rec kwenye Kielekezi cha GUI. Sasisha kama hapa chini:
- Ongeza kitufe kipya kinachoitwa Futa Mtumiaji. Ongeza bendera Iliyofichwa kwake ili kitufe kitafichwa wakati programu ya GUI itaanza.
- Ongeza mstari wa msimbo wa kupiga API gui_event_face_rec_action() yenye kigezo tofauti cha kitambulisho cha tukio kwenye kichochezi cha "Iliyotolewa" katika Mipangilio ya Tukio ya vitufe vyote vya Usajili, Utambuzi na Futa Mtumiaji kwa kuanzisha matukio ya usajili wa nyuso, utambuzi wa nyuso na kufuta mtumiaji. Kielelezo 8 kinaonyesha msimbo wa tukio la Usajili wa kitufe:
- Sasisha nambari iliyotengenezwa kutoka kwa Mwongozo wa GUI hadi mradi wa MCUXpresso.
- Badilisha yaliyomo isipokuwa kwa picha za folda kwenye folda iliyotengenezwa na mradi wa MCUXpresso SW na zile zinazolingana kwenye folda iliyotengenezwa na mradi wa GUI Guider SW.
Kumbuka: Kwa maelezo zaidi kuhusu marekebisho yaliyoletwa hapo juu, angalia exampprogramu kwenye https://mcuxpresso.nxp.com/appcodehub.
Uthibitishaji na exampmradi le
Ili kupata example kifurushi cha programu kilicho na rasilimali na zana za dokezo hili la programu, tembelea: https://mcuxpresso.nxp.com/appcodehub. Fungua example mradi kwenye MCUXpresso IDE. Jenga na upange .axf file kwa anwani 0x30000000 na upange pipa la rasilimali file kamera_preview_resource.bin kwa anwani 0x30800000.
LVGL GUI ya zamani ya utambuzi wa usoample hufanya kazi kawaida kama ilivyo hapo chini:
- Kablaview: Kwa kuwasha, mitiririko ya video iliyonaswa na kamera inaonyesha kwenye eneo mahususi la kabla ya kameraview kwenye skrini ya GUI. Lebo ya hali inaonyesha "Preview…”. Kwa maelezo, angalia Mchoro 3. Kitufe cha Futa Mtumiaji kimefichwa. Unapobofya eneo nje ya vifungo na picha, inaonyesha kablaview taja kama yaliyo hapo juu baada ya usajili wa uso au hatua ya utambuzi kuisha.
- Usajili:
- tartup: Wakati kitufe cha Usajili kinapobofya, usajili wa uso huanza. Lebo ya hali inabadilika ili kuonyesha "Usajili...", mstatili wa mwongozo wa uso unaonyesha bluu, na upau wa maendeleo huanza kuonyesha maendeleo. Hakikisha uso wa mtumiaji unaonekana kwenye mstatili wa mwongozo wa uso wa samawati kwa usajili.
- uccess: Lebo ya hali inaonyesha “Usajili…Sawa” na nambari ya kitambulisho cha mtumiaji aliyesajiliwa, mstatili wa mwongozo wa uso unakuwa mwekundu ikiwa usajili wa uso utafaulu kabla ya hatua kuonyesha kamili kwenye upau.
- Imeshindwa -> Muda umeisha: Lebo ya hali inaonyesha "Usajili...Muda umekwisha" ikiwa usajili wa nyuso bado haujafaulu wakati maendeleo yanaonyesha kamili kwenye upau.
- Imeshindwa -> Urudiaji: Lebo ya hali inaonyesha "Usajili...Imeshindwa", mstatili wa mwongozo wa uso unakuwa kijani ikiwa uso uliosajiliwa utatambuliwa kabla ya maendeleo kuonekana kamili kwenye upau.
- utambuzi:
- Kuanzisha: Wakati kitufe cha Utambuzi kinapobofya, utambuzi wa uso unaanza. Lebo ya hali inabadilika ili kuonyesha "Utambuzi...", mstatili wa mwongozo wa uso unaonyesha bluu, na upau wa maendeleo huanza kuonyesha maendeleo. Hakikisha uso wa mtumiaji umeonyeshwa kwenye mstatili wa mwongozo wa uso wa samawati kwa usajili.
- uccess: Lebo ya hali inaonyesha "Utambuzi... SAWA" na nambari ya kitambulisho cha mtumiaji inayotambuliwa, mstatili wa mwongozo wa uso unakuwa kijani kibichi ikiwa utambuzi wa uso utafaulu kabla ya maendeleo kuonekana kamili kwenye upau. Katika hatua, kifungo Futa Mtumiaji inaonekana. Inamaanisha kuwa mtumiaji anaruhusiwa kufutwa tu wakati inatambuliwa.
- ailure: Lebo ya hali inaonyesha "Utambuzi...Muda umekwisha" ikiwa utambuzi wa uso bado haujafaulu wakati maendeleo yanaonyesha kamili kwenye upau.
- Futa Mtumiaji: Wakati kitufe cha "Futa Mtumiaji" kinapobofya, baada ya utambuzi wa uso kufanikiwa, lebo ya hali inabadilika ili kuonyesha "Futa Mtumiaji... SAWA" na mstatili wa mwongozo wa uso kuwa bluu na maendeleo kuonyesha kamili kwenye upau. Kitufe cha Futa Mtumiaji kimefichwa tena. Uso/mtumiaji anayetambuliwa hufutwa kutoka kwa hifadhidata. Inamaanisha kuwa uso/mtumiaji huyu hawezi kutambuliwa hadi asajiliwe tena.
Kumbuka kuhusu msimbo wa chanzo katika hati
Exampmsimbo ulioonyeshwa katika hati hii una hakimiliki ifuatayo na leseni ya Kifungu cha BSD-3:
Hakimiliki 2024 NXP Ugawaji na matumizi katika aina chanzo na mfumo wa jozi, pamoja na au bila marekebisho, inaruhusiwa mradi masharti yafuatayo yametimizwa:
- Ugawaji upya wa msimbo wa chanzo lazima uhifadhi notisi ya hakimiliki iliyo hapo juu, orodha hii ya masharti na kanusho lifuatalo.
- Ugawaji upya katika mfumo wa mfumo wa jozi lazima uzalishe notisi ya hakimiliki iliyo hapo juu, orodha hii ya masharti na kanusho lifuatalo katika hati na/au nyenzo zingine lazima zitolewe kwa usambazaji.
- Si jina la mwenye hakimiliki wala majina ya wachangiaji wake yanayoweza kutumika kuidhinisha au kukuza bidhaa zinazotokana na programu hii bila ruhusa mahususi iliyoandikwa hapo awali.
SOFTWARE HII IMETOLEWA NA WENYE HAKI NA WACHANGIAJI "KAMA ILIVYO" NA DHAMANA ZOZOTE ZILIZOONEKANA AU ZILIZODHANISHWA, IKIWEMO, LAKINI SI KIKOMO, DHAMANA ILIYOHUSIKA YA UUZAJI NA KUFAA KWA MADHUMUNI MAALUM. KWA MATUKIO YOYOTE MWENYE HAKI YA HAKI AU WACHANGIAJI ATAWAJIBIKA KWA MOJA KWA MOJA, MOJA KWA MOJA, TUKIO, MAALUM, MIFANO, AU UHARIBIFU WOWOTE (pamoja na, LAKINI SI KIKOMO, UNUNUZI WA HUDUMA, HUDUMA, HUDUMA, HASARA; FAIDA ; UHARIBIFU.
Historia ya marekebisho
Taarifa za kisheria
Ufafanuzi
Rasimu - Hali ya rasimu kwenye hati inaonyesha kuwa maudhui bado yako chini ya urekebishaji wa ndaniview na kulingana na idhini rasmi, ambayo inaweza kusababisha marekebisho au nyongeza. NXP Semiconductors haitoi uwakilishi au dhamana yoyote kuhusu usahihi au ukamilifu wa taarifa iliyojumuishwa katika toleo la rasimu ya hati na haitakuwa na dhima kwa matokeo ya matumizi ya habari kama hiyo.
Kanusho
- Udhamini mdogo na dhima - Taarifa katika hati hii inaaminika kuwa sahihi na ya kuaminika. Hata hivyo, NXP Semiconductors haitoi uwakilishi wowote au dhamana, iliyoelezwa au kudokezwa, kuhusu usahihi au ukamilifu wa taarifa kama hizo na haitakuwa na dhima kwa matokeo ya matumizi ya habari kama hiyo. NXP Semiconductors haiwajibikii maudhui katika hati hii ikiwa yametolewa na chanzo cha habari nje ya NXP Semiconductors.
Kwa hali yoyote, Semiconductors za NXP hazitawajibika kwa uharibifu wowote usio wa moja kwa moja, wa bahati mbaya, wa adhabu, maalum au wa matokeo (pamoja na - bila kikomo - faida iliyopotea, akiba iliyopotea, usumbufu wa biashara, gharama zinazohusiana na kuondolewa au uingizwaji wa bidhaa zozote au malipo ya kutengeneza upya) iwe au sio uharibifu kama huo unatokana na tort (ikiwa ni pamoja na uzembe), dhamana, uvunjaji wa mkataba au nadharia nyingine yoyote ya kisheria.
Bila kujali uharibifu wowote ambao mteja anaweza kupata kwa sababu yoyote ile, jumla ya Waendeshaji Semiconductors wa NXP na dhima limbikizi kwa mteja kwa bidhaa zilizofafanuliwa hapa zitapunguzwa kwa mujibu wa Sheria na Masharti ya uuzaji wa kibiashara wa Semiconductors za NXP. - Haki ya kufanya mabadiliko - Semiconductors ya NXP inahifadhi haki ya kufanya mabadiliko kwa taarifa iliyochapishwa katika hati hii, ikiwa ni pamoja na bila vikwazo vya vipimo na maelezo ya bidhaa, wakati wowote na bila taarifa. Hati hii inachukua nafasi na kuchukua nafasi ya maelezo yote yaliyotolewa kabla ya kuchapishwa kwake.
- Kufaa kwa matumizi - Bidhaa za NXP za Semiconductors hazijaundwa, kuidhinishwa au kuthibitishwa kuwa zinafaa kwa matumizi katika usaidizi wa maisha, mifumo au vifaa muhimu vya maisha au usalama, wala katika matumizi ambapo kushindwa au kutofanya kazi kwa bidhaa ya NXP Semiconductors inaweza kutarajiwa kusababisha matokeo. kuumia binafsi, kifo au uharibifu mkubwa wa mali au mazingira. NXP Semiconductors na wasambazaji wake hawakubali dhima yoyote ya kujumuishwa na/au matumizi ya bidhaa za NXP Semiconductors katika vifaa au programu kama hizo na kwa hivyo kujumuishwa na/au matumizi ni kwa hatari ya mteja mwenyewe.
- Maombi - Maombi ambayo yamefafanuliwa humu kwa yoyote ya bidhaa hizi ni kwa madhumuni ya kielelezo pekee. NXP Semiconductors haitoi uwakilishi au dhamana kwamba programu kama hizo zitafaa kwa matumizi maalum bila majaribio zaidi au marekebisho.
Wateja wanawajibika kwa muundo na uendeshaji wa programu na bidhaa zao kwa kutumia bidhaa za NXP Semiconductors, na NXP Semiconductors haikubali dhima yoyote kwa usaidizi wowote wa programu au muundo wa bidhaa za mteja. Ni jukumu la mteja pekee kubainisha ikiwa bidhaa ya NXP Semiconductors inafaa na inafaa kwa programu na bidhaa zilizopangwa za mteja, na pia kwa programu iliyopangwa na matumizi ya mteja(wateja wengine). Wateja wanapaswa kutoa muundo unaofaa na ulinzi wa uendeshaji ili kupunguza hatari zinazohusiana na programu na bidhaa zao. NXP Semiconductors haikubali dhima yoyote inayohusiana na chaguo-msingi, uharibifu, gharama au tatizo lolote ambalo linatokana na udhaifu wowote au chaguo-msingi katika programu au bidhaa za mteja, au maombi au matumizi ya mteja/wateja wengine. Mteja ana wajibu wa kufanya majaribio yote yanayohitajika kwa ajili ya maombi na bidhaa za mteja kwa kutumia bidhaa za NXP Semiconductors ili kuepuka chaguo-msingi la programu na bidhaa au programu au matumizi ya mteja/watu wengine. NXP haikubali dhima yoyote katika suala hili. - Sheria na masharti ya uuzaji wa kibiashara - Bidhaa za NXP Semiconductors zinauzwa kulingana na sheria na masharti ya jumla ya uuzaji wa kibiashara, kama ilivyochapishwa katika https://www.nxp.com/profile/masharti, isipokuwa ikiwa imekubaliwa vinginevyo katika makubaliano halali ya maandishi ya mtu binafsi. Ikiwa makubaliano ya mtu binafsi yamehitimishwa tu sheria na masharti ya makubaliano husika yatatumika. NXP Semiconductors inapinga waziwazi kutumia sheria na masharti ya jumla ya mteja kuhusu ununuzi wa bidhaa za NXP Semiconductors na mteja.
- Udhibiti wa kuuza nje - Hati hii pamoja na bidhaa zilizoelezwa humu zinaweza kuwa chini ya kanuni za udhibiti wa usafirishaji nje. Usafirishaji unaweza kuhitaji idhini ya awali kutoka kwa mamlaka husika.
- Kufaa kwa matumizi katika bidhaa zisizo na sifa za magari - Isipokuwa waraka huu unasema waziwazi kuwa bidhaa hii mahususi ya NXP Semiconductors ina sifa za ugari, bidhaa hiyo haifai kwa matumizi ya magari. Haijahitimu wala kujaribiwa kwa mujibu wa majaribio ya magari au mahitaji ya maombi. NXP Semiconductors haikubali dhima ya kujumuishwa na/au matumizi ya bidhaa zisizo za kigari zilizohitimu katika vifaa vya magari au programu.
Iwapo mteja atatumia bidhaa kwa ajili ya kubuni na kutumia katika programu za magari kwa vipimo na viwango vya magari, mteja (a) atatumia bidhaa bila dhamana ya NXP ya Semiconductors ya bidhaa kwa ajili ya maombi hayo ya magari, matumizi na vipimo, na ( b) wakati wowote mteja anapotumia bidhaa kwa ajili ya maombi ya magari zaidi ya vipimo vya NXP Semiconductors matumizi kama hayo yatakuwa kwa hatari ya mteja mwenyewe, na (c) mteja anafidia kikamilifu Semiconductors za NXP kwa dhima yoyote, uharibifu au madai ya bidhaa yaliyofeli kutokana na muundo na matumizi ya mteja. bidhaa kwa ajili ya maombi ya magari zaidi ya udhamini wa kiwango cha NXP Semiconductors na vipimo vya bidhaa vya NXP Semiconductors. - Tafsiri - Toleo lisilo la Kiingereza (lililotafsiriwa) la hati, pamoja na maelezo ya kisheria katika waraka huo, ni kwa ajili ya marejeleo pekee. Toleo la Kiingereza litatumika iwapo kutatokea hitilafu yoyote kati ya matoleo yaliyotafsiriwa na ya Kiingereza.
- Usalama - Mteja anaelewa kuwa bidhaa zote za NXP zinaweza kuwa chini ya udhaifu usiojulikana au zinaweza kusaidia viwango vilivyowekwa vya usalama au vipimo vilivyo na vikwazo vinavyojulikana. Mteja anawajibika kwa muundo na uendeshaji wa programu na bidhaa zake katika maisha yake yote ili kupunguza athari za udhaifu huu kwenye programu na bidhaa za mteja. Wajibu wa Mteja pia unaenea hadi kwa teknolojia zingine huria na/au za umiliki zinazoungwa mkono na bidhaa za NXP kwa matumizi katika programu za mteja. NXP haikubali dhima yoyote ya athari yoyote. Mteja anapaswa kuangalia mara kwa mara masasisho ya usalama kutoka NXP na kufuatilia ipasavyo. Mteja atachagua bidhaa zilizo na vipengele vya usalama ambavyo vinakidhi vyema sheria, kanuni na viwango vya matumizi yaliyokusudiwa na kufanya maamuzi ya mwisho ya muundo kuhusu bidhaa zake na anawajibika kikamilifu kwa kufuata mahitaji yote ya kisheria, udhibiti na usalama yanayohusiana na bidhaa zake, bila kujali. habari au usaidizi wowote ambao unaweza kutolewa na NXP.
NXP ina Timu ya Kujibu Matukio ya Usalama wa Bidhaa (PSIRT) (inayoweza kufikiwa katika PSIRT@nxp.com) ambayo inadhibiti uchunguzi, kuripoti na kutolewa kwa suluhisho kwa udhaifu wa usalama wa bidhaa za NXP.
NXP BV — NXP BV si kampuni inayofanya kazi na haisambazi au kuuza bidhaa.
Alama za biashara
Taarifa: Chapa zote zilizorejelewa, majina ya bidhaa, majina ya huduma na chapa za biashara ni mali ya wamiliki husika.
NXP - neno na nembo ni alama za biashara za NXP BV
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Imewezeshwa, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile - ni alama za biashara na/au alama za biashara zilizosajiliwa za Arm Limited (au kampuni zake tanzu au washirika) nchini Marekani na/au mahali pengine. Teknolojia inayohusiana inaweza kulindwa na hataza zozote au zote, hakimiliki, miundo na siri za biashara. Haki zote zimehifadhiwa.
- i.MX - ni alama ya biashara ya NXP BV
- J-Kiungo - ni chapa ya biashara ya SEGGER Microcontroller GmbH.
Microsoft, Azure, na ThreadX - ni alama za biashara za kundi la kampuni za Microsoft.
Tafadhali fahamu kwamba arifa muhimu kuhusu hati hii na bidhaa/bidhaa zilizofafanuliwa hapa, zimejumuishwa katika sehemu ya 'Maelezo ya Kisheria'.
© 2024 NXP BV
Kwa habari zaidi, tafadhali tembelea: https://www.nxp.com
- Tarehe ya kutolewa: 19 Aprili 2024
- Kitambulisho cha hatiAN14263
Maswali Yanayoulizwa Mara kwa Mara
Swali: Kusudi kuu la bidhaa hii ni nini?
J: Kusudi kuu ni kuwezesha utendakazi wa utambuzi wa uso kwa kutumia modeli ya algoriti ya maono ya AI&ML iliyo na toleo la zamani la LVGL GUI.ampkwenye ubao wa SLN-TLHMI-IOT.
Swali: Je, wasanidi wanaweza kunufaikaje na dokezo hili la programu?
J: Wasanidi wanaweza kujifunza jinsi ya kutekeleza utambuzi wa uso kwenye mfumo hatua kwa hatua kwa kutumia ex iliyotolewaample na kuelewa wasimamizi wa vifaa, vifaa vya HAL, na mbinu za matukio zinazohusika.
Nyaraka / Rasilimali
![]() |
NXP AN14263 Tekeleza Utambuzi wa Uso wa LVGL GUI kwenye Framewor [pdf] Mwongozo wa Mtumiaji AN14263 Tekeleza Utambuzi wa Uso wa LVGL GUI kwenye Framewor, AN14263, Tekeleza Utambuzi wa Uso wa LVGL GUI kwenye Framewor, Utambuzi wa Uso wa LVGL GUI kwenye Mfumo, Utambuzi wa Uso kwenye Mfumo, Utambuzi kwenye Framewor. |