NXP AN14263 Gweithredu Cydnabod Wyneb GUI LVGL ar Ffrâm
Gwybodaeth Cynnyrch
Manylebau
- Enw Cynnyrch: Cydnabod Wyneb GUI LVGL ar Fframwaith
- Adolygu Dogfen: 1 – 19 Ebrill 2024
- Geiriau allweddol: Adnabod wynebau, GUI LVGL, Fframwaith
Cyfarwyddiadau Defnydd Cynnyrch
- Drosoddview
Mae'r cynnyrch hwn yn galluogi model algorithm gweledigaeth AI&ML ar gyfer adnabod wynebau ar fframwaith i weithredu swyddogaeth adnabod wynebau gyda GUI LVGL syml cynample ar fwrdd SLN-TLHMI-IOT. - Fframwaith drosoddview
Mae'r meddalwedd datrysiad wedi'i gynllunio o amgylch pensaernïaeth y fframwaith sy'n cynnwys rheolwyr dyfeisiau sy'n gyfrifol am reoli dyfeisiau, dyfeisiau HAL i dynnu manylion sylfaenol, a digwyddiadau ar gyfer cyfathrebu rhwng dyfeisiau gwahanol. - Nodweddion
Mae'r cynnyrch yn caniatáu gweithredu swyddogaeth adnabod wynebau trwy gamera cynview ar y sgrin GUI gyda botymau i sbarduno cofrestru wyneb, adnabod, a thynnu. Mae data wyneb cofrestredig yn cael ei storio ar Flash trwy a file system. - Cynnwys Nodyn Cais
Mae nodyn y cais yn cyflwyno sgrin GUI LVGL gyda chamera ymlaen llawview a botymau ar gyfer gweithredoedd sy'n gysylltiedig â'r wyneb. Mae'n helpu datblygwyr i ddeall y fframwaith a sut i weithredu adnabyddiaeth wyneb gan ddefnyddio'r fersiwn example.
Drosoddview
Mae NXP wedi lansio pecyn datblygu datrysiadau o'r enw SLN-TLHMI-IOT sy'n canolbwyntio ar gymwysiadau AEM craff. Mae'n galluogi AEM smart gyda gweledigaeth ML, llais, a graffeg UI wedi'i weithredu ar un MCU NXP i.MX RT117H. Yn seiliedig ar y SDK, mae'r meddalwedd datrysiad wedi'i adeiladu ar ddyluniad o'r enw fframwaith sy'n cefnogi dyluniadau hyblyg ac addasu swyddogaethau gweledigaeth a llais. Er mwyn helpu defnyddwyr i ddefnyddio'r llwyfan meddalwedd yn well, darperir rhai dogfennau sylfaenol, ar gyfer exampLe, y canllaw defnyddiwr datblygu meddalwedd. Mae'r canllaw yn cyflwyno dyluniad meddalwedd sylfaenol a phensaernïaeth y cymwysiadau sy'n cwmpasu holl gydrannau'r datrysiad gan gynnwys y fframwaith i helpu'r datblygwyr i weithredu eu cymwysiadau yn haws ac yn effeithlon gan ddefnyddio'r SLN-TLHMI-IOT.
Am ragor o fanylion am y datrysiad a dogfennau perthnasol, ewch i'r web tudalen o Ateb AEM Smart EdgeReady NXP Yn seiliedig ar i.MX RT117H gyda Gweledigaeth ML, Llais, ac UI Graffigol. Fodd bynnag, nid yw mor hawdd o hyd i'r datblygwyr weithredu eu cymwysiadau AEM craff gan gyfeirio at y canllawiau sylfaenol hyn. Mae cyfres o nodiadau cais wedi'u cynllunio i helpu i astudio'r datblygiad ar y fframwaith gam wrth gam. Mae'r nodyn cais hwn yn seiliedig ar Weithredu LVGL GUI Camera Preview ar Fframwaith (dogfen AN14147). Mae'r nodyn cais hwn yn disgrifio sut i alluogi'r model algorithm gweledigaeth AI&ML ar gyfer adnabod wynebau ar y fframwaith i weithredu'r swyddogaeth adnabod wynebau trwy gamera cynview ar y sgrin GUI gyda GUI LVGL syml cynample ar fwrdd SLN-TLHMI-IOT. Yn y nodyn cais, mae'r cynampMae le yn cyflwyno sgrin LVGL GUI gyda chamera ymlaen llawview a rhai botymau i sbarduno cofrestru wyneb, adnabod, a thynnu. Mae'r data wyneb cofrestredig yn cael ei storio ar Flash trwy ychydig file system.
Ar lefel uchel, mae nodyn y cais yn cynnwys y cynnwys isod:
- Galluogi'r nodwedd adnabod wynebau ar y fframwaith.
- Ychwanegu cymorth cronfa ddata wyneb ar y fframwaith drwy file system ar Flash.
- Gweithredu'r app LVGL GUI. Trwy'r cyflwyniadau uchod, mae'r ddogfen hon yn helpu'r datblygwyr i:
- Deall y fframwaith a meddalwedd datrysiad smart AEM yn ddyfnach.
- Datblygu eu hadnabyddiaeth wyneb AI&ML ar fframwaith gyda'r ap LVGL GUI.
Fframwaith drosoddview
Mae'r meddalwedd datrysiad wedi'i gynllunio'n bennaf o amgylch y defnydd o'r saernïaeth fframwaith sy'n cynnwys sawl rhan wahanol:
- Rheolwyr dyfeisiau – y rhan graidd
- Dyfeisiau Haen Tynnu Caledwedd (HAL).
- Negeseuon/Digwyddiadau
Fel y dangosir yn Ffigur 1, mae'r drosoddview mecanwaith y fframwaith yw:
Mae rheolwyr dyfeisiau yn gyfrifol am reoli dyfeisiau a ddefnyddir gan y system. Mae gan bob math o ddyfais (mewnbwn, allbwn, ac yn y blaen) ei reolwr dyfais math-benodol ei hun. Gyda rheolwr dyfais yn cychwyn ar ôl i'r dyfeisiau gael eu cofrestru iddo, mae'n aros ac yn gwirio neges i drosglwyddo data i'r dyfeisiau a rheolwyr eraill ar ôl cychwyn a chychwyn y dyfeisiau cofrestredig. Mae'r dyfeisiau HAL wedi'u hysgrifennu ar ben y cod gyrrwr lefel is, gan helpu i gynyddu dealladwyaeth cod trwy dynnu llawer o'r manylion sylfaenol.
Mae digwyddiadau yn fodd i gyfathrebu gwybodaeth rhwng dyfeisiau gwahanol trwy eu rheolwyr. Pan fydd digwyddiad yn cael ei sbarduno, mae'r ddyfais a dderbyniodd y digwyddiad gyntaf yn cyfathrebu'r digwyddiad hwnnw i'w reolwr, yna yn ei dro yn hysbysu rheolwyr eraill a ddynodwyd i dderbyn y digwyddiad.
Roedd dyluniad pensaernïol y fframwaith yn canolbwyntio ar dri phrif nod:
- Rhwyddineb defnydd
- Hyblygrwydd / Cludadwyedd
- Perfformiad
Mae'r fframwaith wedi'i gynllunio gyda'r nod o gyflymu'r amser i farchnata ar gyfer gweledigaeth a chymwysiadau dysgu peiriannau eraill. Er mwyn sicrhau amser cyflym i farchnata, mae'n hanfodol bod y feddalwedd ei hun yn hawdd ei deall a'i haddasu. Gan gadw'r nod hwn mewn cof, mae pensaernïaeth y fframwaith yn hawdd ei addasu heb fod yn gyfyngol, a heb ddod ar gost perfformiad.
I gael rhagor o fanylion am y fframwaith, gweler Canllaw i Ddefnyddwyr Datblygu Meddalwedd AEM Clyfar (dogfen MCU-SMHMI-SDUG).
Llyfrgell Graffeg Ysgafn ac Amlbwrpas (LVGL)
Mae LVGL (Llyfrgell Graffeg Ysgafn ac Amlbwrpas) yn llyfrgell graffeg ffynhonnell agored am ddim sy'n darparu popeth sydd ei angen arnoch i greu GUI wedi'i fewnosod gydag elfennau graffigol hawdd eu defnyddio, effeithiau gweledol hardd ac ôl troed cof isel.
Tywysydd GUI
Offeryn datblygu rhyngwyneb defnyddiwr graffigol hawdd ei ddefnyddio gan NXP yw GUI Guider sy'n galluogi datblygiad cyflym o arddangosfeydd o ansawdd uchel gyda'r llyfrgell graffeg ffynhonnell agored LVGL. Mae golygydd llusgo a gollwng GUI Guider yn ei gwneud hi'n hawdd defnyddio llawer o nodweddion LVGL fel teclynnau, animeiddiadau ac arddulliau i greu GUI heb fawr o godio neu ddim codio o gwbl.
Gyda chlicio botwm, gallwch redeg eich cais mewn amgylchedd efelychiedig neu ei allforio i brosiect targed. Mae'n hawdd ychwanegu cod a gynhyrchir gan GUI Guider at eich prosiect, gan gyflymu'r broses ddatblygu a'ch galluogi i ychwanegu rhyngwyneb defnyddiwr wedi'i fewnosod i'ch cais yn ddi-dor. Mae GUI Guider yn rhad ac am ddim i'w ddefnyddio gyda diben cyffredinol NXP a MCUs croesi drosodd ac mae'n cynnwys templedi prosiect adeiledig ar gyfer sawl platfform â chymorth. I ddysgu mwy am ddatblygiad LVGL a GUI ar GUI Guider, gwiriwch Light and Versatile Graphics Library a GUI Guider.
Amgylchedd datblygu
Yn gyntaf, paratoi a sefydlu'r amgylchedd caledwedd a meddalwedd ar gyfer gweithredu'r example ar y fframwaith.
Amgylchedd caledwedd
Mae'r amgylchedd caledwedd wedi'i sefydlu ar gyfer gwirio'r example:
- Y pecyn datblygu craff AEM yn seiliedig ar NXP i.MX RT117H (y pecyn SLN_TLHMI_IOT)
- SEGGER J-Link gydag addasydd Cortex-M 9-pin a V7.84a neu fersiwn mwy diweddar o'r gyrrwr
Amgylchedd meddalwedd
Mae'r amgylchedd meddalwedd wedi'i sefydlu ar gyfer datblygu'r cynample:
- MCUXpresso IDE V11.7.0
- Tywysydd GUI V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – example cod yr ail nodyn cais fel meddalwedd sylfaen y datblygiad. Am fanylion, gw https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – fel yr adnodd cod ar gyfer y datblygiad.
- Meddalwedd SLN-TLHMI-IOT V1.1.2 - cod ffynhonnell smart AEM wedi'i ryddhau ar ystorfa NXP GitHub fel yr adnodd cod ar gyfer y datblygiad. Am fanylion, gweler: GitHub – NXP/mcu-smhmi yn v1.1.2
I gael manylion am gaffael a gosod yr amgylchedd meddalwedd, gweler: Dechrau Arni gyda'r SLN-TLHMI-IOT.
Pensaernïaeth gweledigaeth ar fframwaith
Dangosir y saernïaeth weledigaeth ar y fframwaith yn Ffigur 2. Mae gan yr algo gweledigaeth HAL (OASIS_HAL) y prosesau isod:
- Gwnewch gofrestriad wyneb a chydnabyddiaeth trwy fodel algorithm gweledigaeth AI&ML ar ôl derbyn y digwyddiadau cysylltiedig o'r allbwn UI HAL. Hysbysu canlyniadau'r casgliad o'r model algorithm i'r allbwn UI HAL.
- Mynediad (ychwanegu, dileu ...) y gronfa ddata nodwedd wyneb yn seiliedig ar yr ychydig file system trwy ffonio APIs FaceDB HAL ar ôl derbyn y digwyddiadau cysylltiedig o'r allbwn UI HAL.
- Gofynnwch am ffrâm fideo'r camera o'r camera HAL wrth wneud cofrestriad wyneb a chydnabyddiaeth.
Gweithredu cydnabyddiaeth wyneb ar y fframwaith
Cyn adnabod wynebau GUI LVGLample (yr exampdarperir yn ddiweddarach) ar y fframwaith yn cael ei weithredu yn seiliedig ar yr example codau Gweithredu LVGL GUI Camera Cynview ar Fframwaith (dogfen AN14147).
Am ddangos y gydnabyddiaeth wyneb yn y example, mae swyddogaeth sylfaenol yr app GUI (gweler y brif sgrin yn Ffigur 3) wedi'i dylunio fel y disgrifir isod:
- Mae'r app GUI yn sbarduno'r digwyddiad cofrestru wyneb neu gydnabyddiaeth i'r allbwn UI HAL wrth glicio ar y botwm Cofrestru neu Gydnabod. Ac mae'r allbwn UI HAL yn hysbysu'r digwyddiad o ychwanegu defnyddiwr at yr algo gweledigaeth HAL ar ôl i'r cofrestriad wyneb fod yn llwyddiannus.
- Mae'r app GUI yn sbarduno'r digwyddiad o ddileu defnyddiwr i'r allbwn UI HAL wrth glicio ar y botwm Dileu Defnyddiwr ar ôl i wyneb y defnyddiwr gael ei gydnabod.
- Mae'r app GUI yn sbarduno'r digwyddiad o atal yr algo gwerddon rhag rhedeg i'r allbwn UI HAL wrth glicio ar y sgrin y tu allan i'r botymau a'r delweddau.
Paratoi'r pecyn meddalwedd ar gyfer gweithredu'r example.
- Cloniwch y meddalwedd sylfaen lvgl_gui_camera_preview_cm7. Newid enw'r prosiect a'r prif fileenw i lvgl_gui_face_rec_cm7.
- Mae angen diweddaru'r fframwaith yn y meddalwedd gan fod y codau ffynhonnell ar gyfer craidd y fframwaith wedi dechrau bod yn gyhoeddus ar GitHub o fersiwn 1.1.2.
- Disodli'r ffolder fframwaith gyda'r copi o V1.1.2 o GitHub ac eithrio'r files fwk_log.h a fwk_common.h dan inc\ gan eu bod wedi'u haddasu ar gyfer y gyfres o nodyn cais. Dangosir y gweithrediadau yn Ffigur 4:
- Dileu'r ffolder framework_cm7 o dan y grŵp libs a dileu'r fframwaith llyfrgell_cm7 a'i lwybr chwilio wedi'i ffurfweddu yn Prosiect> Priodweddau> C/C ++ Adeiladu> gosodiadau> Gosodiadau Offer> MCU C ++ Linker> Llyfrgelloedd gan fod cod ffynhonnell y craidd yn cael ei ddarparu.
Galluogi nodwedd adnabod wynebau ar y fframwaith
Mae'r nodwedd adnabod wynebau wedi'i hadeiladu ar fodel algorithm gweledigaeth ML a ddarperir fel llyfrgell sefydlog - llyfrgell amser rhedeg oasis lite gan NXP. Mae'r llyfrgell yn llyfrgell AI fach iawn, hynod effeithlon, wedi'i haddasu a'i optimeiddio. Mae'r model yn cynnwys canfod wynebau, adnabod wynebau, canfod gwydr, a chanfod bywiogrwydd. Yn bennaf mae'n darparu'r API OASISLT_run_extended() i redeg y biblinell adnabod wynebau wrth ddiweddaru canlyniadau i'r galwr trwy alwadau yn ôl o ddigwyddiadau, ac ychwanegu/diweddaru/dileu wynebau yn y gronfa ddata trwy alwadau'r gronfa ddata wynebau ar ôl nodi'r wybodaeth ffrâm ffynhonnell, galwadau'n ôl, a'r cof cronfa a ddefnyddir gan y llyfrgell trwy ffonio API arall OASISLT_init() wrth gychwyn. Mae galw'r APIs a'r swyddogaethau galw'n ôl yn cael eu gweithredu yng ngweledigaeth algo HAL y fframwaith.
Ychwanegu llyfrgell model algo gweledigaeth
- Copïo gwerddon ffolder sy'n cynnwys y llyfrgell a'r pennawd cysylltiedig file o AEM smart\coffee_machine\cm7\libs\ i mewn i libs ffolder y cynample SW.
- Ychwanegwch lwybr chwilio'r pennawd file yn Prosiect > Priodweddau > C/C++ Adeiladu > gosodiadau > Gosodiadau Offer > Crynhoydd MCU C > Yn cynnwys a chrynhoydd MCU C++ > Yn cynnwys: “${ workspace_loc:/${ProjName}/libs/oasis/include}”
- Ychwanegu'r lib a'i lwybr chwilio ar Brosiect > Priodweddau > C/C++ Adeiladu > gosodiadau > MCU C+ + Linker > Llyfrgelloedd: liboasis_lite2D_DEFAULT_117f_ae.a “${ workspace_loc:/${ProjName}/libs/oasis}” a'r diffiniad macro i galluogi'r nodwedd ar Brosiect > Priodweddau > C/C ++ Adeiladu > gosodiadau > Gosodiadau Offer > Crynhoydd MCU C > Rhagbrosesydd a chrynhoydd MCU C ++ > Rhagbrosesydd: SMART_TLHMI_2D
Galluogi gweledigaeth algo HAL
Mae'r algo gweledigaeth HAL yn gyrru'r model algo gweledigaeth i weithio ac yn ymateb i'r canlyniadau i allbwn UI HAL ar ôl derbyn y digwyddiadau ohono.
Er mwyn ei alluogi, cloniwch y gyrrwr HAL tebyg sy'n bodoli eisoes file lle mae’r swyddogaethau isod yn cael eu gweithredu:
- Gweithredu'r galwadau yn ôl o weithrediadau cronfa ddata wynebau a thrin digwyddiadau.
- Gyrrwch yr algo gweledigaeth i'r gwaith trwy ffonio APIs y llyfrgell werddon.
- Cyrchu cronfa ddata wynebau defnyddwyr a chronfa ddata apiau (nid oes ei angen yn y fersiwn flaenorolample).
- Derbyn digwyddiadau gan ac anfon canlyniadau i allbwn UI HAL.
Mae'r gwaith mawr i weithredu'r HAL ar gyfer y cynampDyma nhw:
- Cloniwch y gyrrwr HAL tebyg sy'n bodoli file a newid yr enwau perthynol.
- Tynnwch y codau sy'n ymwneud â gweithrediadau data app.
- Diweddaru'r diffiniadau a'r swyddogaethau ar gyfer trin y digwyddiadau o'r allbwn UI HAL y cynampdylunio.
- Ychwanegwch y ffurfweddiadau sydd eu hangen wrth gychwyn gwerddon.
Mae'r camau manwl fel a ganlyn:
- Clonio hal_vision_algo_oasis_coffeemachine.c. Newidiwch y fileenw i hal_vision_algo_oasis_guifacerec.c. A disodli pob llinyn CoffeeMachine gyda GUIFaceRec yn y file.
- Tynnwch y codau sy'n cynnwys y coffeedb llinynnol (ddim yn sensitif i achosion) sy'n gysylltiedig â'r gronfa ddata app, ar gyfer example, #cynnwys hal_sln_coffeedb.h.
- Addasu'r ffwythiant HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() ar gyfer trin y digwyddiadau o'r allbwn UI HAL.
- Newid diffiniad y digwyddiad kEventFaceRecId_RegisterCoffeeSelection i kEventFaceRecId_RegisterUserFace a llinyn y strwythur regCoffeeSelection i regGUIFaceRec ar gyfer trin y digwyddiad i ychwanegu data nodweddion wyneb newydd i'r gronfa ddata.
- I ddangos proses safonol y gweithredoedd adnabod wynebau yn yr example, addaswch yr ymdriniaeth yn achos kEventFaceRecID_OasisSetState gyda diffiniadau'r taleithiau:
- kOASISLiteState
- Cofrestru kOASISLiteState
- Cydnabyddiaeth kOASISLiteState
- Wedi stopio
- Ychwanegu ac addasu'r diffiniadau o'r digwyddiadau a grybwyllir yn y cam uchod.
- Copïwch y pennawd file smart_tlhmi_event_descriptor.h o AEM smart\coffee_machine \cm7\source\event_handlers\ i mewn i ffynhonnell ffolder y cynample SW. Diweddaru'r file fel isod:
- Newidiwch ddiffiniad y digwyddiad kEventFaceRecId_RegisterCoffeeSelection i kEventFaceRecId_RegisterUserFace yn y math enum _event_smart_tlhmi_id a llinyn y strwythur regCoffeeSelection i regGUIFaceRec yn y struct _event_smart_tlhmi. Felly, newidiwch y struct register_coffee_selection_event_t ar gyfer regCoffeeSelection i register_gui_facerec_event_t.
- Dileu'r cynnwys arall a ddefnyddir ar gyfer yr app peiriant coffi, ar gyfer example, y llinell cod am lais: #cynnwys “hal_event_descriptor_voice.h”.
- Ychwanegwch y mathau kOASISLiteState_Stopped a kOASISLiteState_Yn rhedeg i'r math enum oasis_lite_state_t yn hal_vision_algo.h o dan fframwaith>hal> gweledigaeth yn y prosiect fel isod:
typedef enum _oasis_lite_state {- kOASISLiteState
- Yn rhedeg, kOASISLiteState
- Wedi stopio, kOASISLiteState
- Cydnabyddiaeth,
- kOASISLiteState
- Cofrestru, kOASISLiteState
- Dadgofrestru, kOASISLiteState
- RemoteRegistration, kOASISLiteState
- Cyfri
- Defnyddiwch y strwythur diweddaredig uchod oasis_lite_state_t i fireinio'r strwythur oasis_state_event_t yn hal_event_descriptor_face_rec.h o dan fframwaith> hal> gweledigaeth yn y prosiect fel isod: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- Newid pob kEventInfo_Remote i kEventInfo_Local ar gyfer anfon digwyddiadau o'r algo gweledigaeth HAL i HALs eraill sy'n rhedeg ar yr un craidd ag un craidd yn lle craidd deuol yn cael ei ddefnyddio yn yr e-bostample.
- Ychwanegu ac addasu'r ffurfweddiadau isod ar gyfer cychwyn gwerddon yn OASISLT_init():
- Ychwanegwch y diffiniadau macro a'r adrannau cof ar gyfer y ffrâm fideo yn 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) \
- __nodwedd__((adran(“.bss.$fb_sh_mem,\"aw\",%nobits @")) var
- __nodwedd__((wedi'i alinio(alignbytes)))
- Ffurfweddwch yr aseiniad cof i'r adran cof uchod fb_sh_mem ar Brosiect > Priodweddau > C/C++ Adeiladu > Gosodiadau MCU a ddangosir yn Ffigur 5:
- Datgan y newidyn byd-eang g_DTCOPBuf yn lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Parhewch i ychwanegu'r diffiniadau a ddefnyddir yn y newidyn uchod:
- Diffiniwch yr adran uchod yn board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- priodoledd__((adran (".bs.$SRAM_DTC_cm7,\"aw\",% nobits @"))) var
- priodoledd__((alinio(alignbytes)))
- Cynhwyswch y pennawd file hal_vision_algo.h yn cynnwys y diffiniad macro DTC_OPTIMIZE_BUFFER_SIZE yn app_config.h wedi'i gynnwys yn lvgl_gui_face_rec_cm7.cpp.
- Ychwanegwch y diffiniadau macro a'r adrannau cof ar gyfer y ffrâm fideo yn board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- Gosodwch y newidyn s_debugOption yn wir ar gyfer dangos y statws cynnydd ar adnabod wynebau.
- Ychwanegwch lwybr chwilio'r pennawd files o'r weledigaeth HAL ar Brosiect > Priodweddau > C/C++ Adeiladu > gosodiadau > Gosodiadau Offer > Crynhoydd MCU C > Yn cynnwys a chrynhoydd MCU C++ > Yn cynnwys: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- Ychwanegwch y diffiniad isod i alluogi gweledigaeth algo HAL yn board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Galluogi allbwn UI HAL
Mae'r allbwn UI HAL yn hysbysu'r digwyddiadau i'r weledigaeth algo HAL ac yn ymateb i'r canlyniadau casgliad o'r algo gweledigaeth HAL. Gyda'r app GUI, mae'r digwyddiadau yn cael eu sbarduno'n gyffredinol gan yr app a dangosir y canlyniadau ar yr app.
Er mwyn ei alluogi, cloniwch y gyrrwr HAL tebyg sy'n bodoli eisoes file lle mae’r swyddogaethau isod yn cael eu rhoi ar waith yn gyffredinol:
- Hysbysu'r digwyddiadau ar gyfer adnabod wynebau a mynediad cronfa ddata.
- Gweithredu'r galwadau yn ôl ar gyfer yr app GUI i sbarduno'r digwyddiadau.
- Trin y canlyniadau casgliad o'r modiwl algo gweledigaeth.
- Dangoswch y broses a chanlyniadau'r trin digwyddiadau ar yr UI gan y bar cynnydd a reolir gyda'r amseryddion a'r petryal canllaw wyneb.
Mae'r gwaith mawr i weithredu'r HAL ar gyfer y cynampYr hyn a ddefnyddir yn y ddogfen hon yw:
- Cloniwch y gyrrwr HAL tebyg sy'n bodoli file a newid yr enwau perthynol.
- Tynnwch y codau sy'n gysylltiedig â'r app.
- Diweddaru'r swyddogaethau ar gyfer yr hysbysiad digwyddiadau a'r ymateb canlyniadau fesul unampdylunio.
- Ychwanegu'r galwadau yn ôl ar gyfer yr app GUI i sbarduno'r digwyddiadau.
Mae'r camau manwl fel a ganlyn:
- Clonio hal_output_ui_coffee_machine.c. Newidiwch y fileenw i hal_ output_ui_guifacerec.c.
- Amnewid pob llinyn CoffeeMachine gyda GUIFaceRec yn y file.
- Tynnwch y codau sy'n gysylltiedig â'r ap - peiriant coffi.
- Tynnwch y ffwythiannau WakeUp() a _StandBy() a'r codau cysylltiedig (gall chwilio'r llinyn wake_up a 'standby' amdanynt).
- Dileu cynview digwyddiadau modd trin codau cysylltiedig yn HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Tynnwch y ffwythiannau UI_xxx_Callback() a'r codau sy'n cynnwys y llinyn gui_ a'r sgrin sy'n gysylltiedig â GUI y peiriant coffi heblaw am gui_set_virtual_face() ar gyfer y cynview nodwedd modd.
- Tynnwch yr holl godau sy'n ymwneud â'r newidynnau s_IsWaitingAnotherSelection a s_IsWaitingRegisterSelection sy'n gysylltiedig â'r app peiriant coffi.
- Tynnwch y codau sy'n ymwneud â llais, sain ac iaith. Am gynample:
- #cynnwys “hal_voice_algo_asr_local.h”,
- #cynnwys “hal_event_descriptor_voice.h”
- Ar gyfer yr hysbysiad digwyddiadau amrywiol, gweithredwch y swyddogaethau newydd _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), a DeregisterGUIFaceRec() gan gyfeirio at y swyddogaethau _StopFaceRec(), _RegisterCoffeeSelection(), a DeregisterCoffeeRec() o'r blaen.
- Mae'r _OutputManagerNotify() yn gweithredu'r swyddogaeth allbwn digwyddiad sylfaenol i anfon digwyddiad i'r algo gweledigaeth HAL. Mae'r swyddogaethau isod yn ei alw i anfon eu digwyddiadau eu hunain.
- Mae'r _SetFaceRec() yn anfon y digwyddiad kEventFaceRecID_OasisSetState i sbarduno'r algo gweledigaeth ar gyfer cofrestru wynebau, adnabod, a stopio'r algo.
- Mae'r _RegisterGUIFaceRec() yn anfon y digwyddiad kEventFaceRecId_RegisterGUIFaceRec sydd wedi'i ddiffinio yn smart_tlhmi_event_descriptor.h i ychwanegu data nodwedd wyneb i'r gronfa ddata pan fydd cofrestru'n iawn.
- Mae'r DeregisterGUIFaceRec() yn anfon y digwyddiad kEventFaceRecID_DelUser i ddileu'r data nodwedd wyneb o'r gronfa ddata wrth basio'r adnabyddiaeth wyneb.
- Diweddarwch y codau i gymryd y camau cyfatebol gan gynnwys adnewyddu'r GUI trwy ffonio'r APIs o'r app LVGL GUI i gael canlyniadau casgliad o gofrestriad wynebau a chydnabyddiaeth yn y swyddogaeth _InferComplete_Vision() yr unampdylunio le. Am gynample, pan fydd cofrestriad wyneb yn llwyddiannus,
- Rhoi'r gorau i ddangos y cynnydd trwy ffonio _FaceRecProcess_Stop();
- Stopiwch y cofrestriad wynebau trwy ffonio _SetFaceRec(kOASISLiteState_Stopped);
- Dangoswch y canlyniad llwyddiannus ar y GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Cofrestrwch y data wyneb i'r gronfa ddata: _RegisterUserFace(s_UserId);
- Ychwanegu swyddogaethau galw yn ôl UI i drin y digwyddiadau: cynview, cofrestru wyneb, adnabod, a dileu defnyddiwr sbarduno o'r GUI. Am gynample, yr alwad cofrestru wyneb yn ôl: gwagle UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- Ac ychwanegwch y swyddogaethau _FaceRecProcess_Start () a _FaceRecProcess_Stop () i ddangos y cynnydd a statws yn y gwahanol ddigwyddiadau a chanlyniadau.
- Diweddarwch swyddogaeth galw'n ôl ISR yr amserydd _SessionTimer_Callback() i ymdrin â'r achos o amser allan drwy ffonio: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Ychwanegwch y diffiniadau isod i alluogi allbwn UI HAL yn board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Sylwch:
Er mwyn cyflwyno'r nodwedd adnabod wyneb yn well, cadwch y swyddogaeth i ddangos y broses a chanlyniadau adnabod wynebau yn yr allbwn UI HAL. Disgrifir y swyddogaeth fel isod
- Mae'r petryal canllaw wyneb yn dangos glas, ac mae'r bar cynnydd yn dangos y cynnydd wrth gychwyn y cofrestriad wyneb neu gydnabyddiaeth.
- Mae'r petryal canllaw wyneb yn dangos coch pan fydd cofrestru wyneb yn llwyddiannus.
- Mae'r petryal canllaw wyneb yn dangos gwyrdd pan fydd cydnabyddiaeth wyneb yn llwyddiannus.
- Mae'r petryal canllaw wyneb yn cadw glas, ac mae'r bar cynnydd yn dangos cynnydd llawn pan fydd y camau gweithredu yn aflwyddiannus ar ôl i'r amserydd ddod i ben. Ar y pwynt hwnnw, atal y cofrestriad wyneb neu gydnabyddiaeth.
Mae'r bar cynnydd a'r petryal canllaw wyneb yn cael eu cyflwyno fel yr eiconau sydd wedi'u hymgorffori yn y deuaidd adnoddau file i'w rhaglennu i Flash. Mae'r awgrymiadau i'r data eiconau ar SDRAM wedi'u gosod yn y swyddogaeth LoadIcons(APP_ICONS_BASE) a elwir ar gychwyniad dyfais allbwn UI HAL yn yr allbwn UI HAL. Rhaid iddo weithredu'r gefnogaeth eiconau ar gyfer y swyddogaeth.
Gweithredu'r gefnogaeth eiconau
- Adeiladwch yr adnodd sy'n cyfuno'r eiconau â'r delweddau a ddefnyddir yn yr app LVGL GUI:
- Cloniwch y pennawd pedwar eicon files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, a virtual_face_red_420x426.h gan AEM smart
\ peiriant coffi \resource \ icons \ i eiconau'r ffolder newydd o dan ffolder adnoddau'r example SW. - Ychwanegwch y llwybr chwilio ar gyfer y pedwar eicon files yn y camera_preview_adnodd.txt file yn y ffolder adnoddau, ar gyfer example: icon ../resource/icons/process_bar_240x14.h
- Gweithredu camera_preview_resource_build.bat i adeiladu'r adnoddau delweddau ac eiconau i gynhyrchu'r bin file camera_preview_resource.bin a'r wybodaeth file resource_information_table.txt (Gweler Ffigur 6).
- Cloniwch y pennawd pedwar eicon files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, a virtual_face_red_420x426.h gan AEM smart
- Diffiniwch y cyfeiriad cychwyn ar SDRAM a maint yr eiconau yn app_config.h. Mae'r cyfeiriad yn dechrau wrth ymyl delweddau'r app GUI. Mae'r maint yn cael ei gynhyrchu yn y wybodaeth file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Diweddarwch faint penodedig yr adran cof o'r enw res_sh_mem i 0x200000 trwy ei ailddiffinio yn app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 a'r gosodiad cyfatebol yn y gosodiadau Project> Properties> C/C++ Build> MCU.
- Ychwanegu maint yr eicon at gyfanswm maint yr adnodd a lwythwyd o Flash i SDRAM yn y ffwythiant APP_LoadResource() yn y prif file lvgl_gui_face_rec_cm7.cpp: memcpy((gwag*)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Hysbysiad: I gwblhau'r nodwedd adnabod wynebau, mae angen cefnogaeth app LVGL GUI. Mae'r swyddogaethau galw yn ôl UI yn yr allbwn UI HAL yn cael eu galw gan yr app LVGL GUI ar gyfer trin y digwyddiadau o'r sgrin UI. Ar y llaw arall, mae'r allbwn UI HAL yn galw'r APIs o'r app LVGL GUI i ddiweddaru'r UI i ddangos y canlyniad a'r statws. Mae datblygiad ap LVGL GUI yn gymharol annibynnol ac fe'i cyflwynir yn Adran 4.3.
4.1.5 Dechrau dyfeisiau HAL a rheolwyr ar gyfer adnabod wynebau
Mae'r weledigaeth galluogi algo HAL ac allbwn UI HAL a'u rheolwyr yn cael eu cychwyn yn bennaf file
lvgl_gui_face_rec_cm7.cpp yn dilyn y trawsnewidiadau datblygiad ar y fframwaith fel isod:
- Cynhwyswch y pennawd file gysylltiedig â'r ddau reolwr HAL trwy ychwanegu'r llinell cod:
- #cynnwys ” fwk_output_manager.h “
- #cynnwys “fwk_vision_algo_manager.h”
- Datgan y dyfeisiau HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Cofrestrwch y dyfeisiau HAL:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Cychwyn y rheolwyr:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(Rheolwr Allbwn, ret);
- Dechreuwch y rheolwyr:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(Rheolwr Allbwn, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Diffiniwch flaenoriaeth tasgau'r rheolwr:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Ychwanegu cefnogaeth cronfa ddata wyneb ar y fframwaith
Gellir cyrchu'r data nodweddion wyneb cofrestredig yn y gronfa ddata wynebau a gedwir ar Flash trwy ychydig file system. Disgrifir y camau i ychwanegu'r gefnogaeth cronfa ddata wynebau isod.
Ychwanegu gyrwyr ar gyfer storio Flash
Copïwch y gyrrwr FlexSPI rhyngwyneb Flash files fsl_flexspi.c a fsl_flexspi.h, a'r gyrrwr amgryptio data files fsl_caam.c a fsl_caam.h o'r llwybr SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ i ffolder gyrwyr y cynample SW.
Ychwanegu cefnogaeth lefel bwrdd
- Ychwanegwch y diffiniadau o FlexSPI a ddefnyddir ar gyfer y ddyfais Flash ar fwrdd yn board.h:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Copïwch y gweithredwyr a'r ffurfweddiadau files o'r ddyfais fflach flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, asln_flash_flash_ops.h o dan y ffynhonnell \ \ coffi \ coffi \ coffi \ coffi_machine \ coffi \ coffi_machine \ coffi_machineample SW.
- Dad-diciwch “Gwahardd adnodd o'r adeilad” yn C/C ++ Adeiladu > Gosodiadau ar ôl clicio ar y dde ar y files' enw ac agor y Priodweddau er mwyn eu galluogi i gael eu cynnwys yn y prosiect.
- Newidiwch y pennawd sydd wedi'i gynnwys fileenw sln_flash_config.h i sln_flash_config_w25q256jvs.h yn sln_flash_config.c a flexspi_nor_flash_ops.h.
- Gosodwch ffynhonnell cloc FlexSPI1 yn y file clock_config.c gan gyfeirio at yr app peiriant coffi.
Ychwanegu addasydd a chefnogaeth lefel ganol
- Copïwch y files sln_flash.c, sln_flash.h, sln_encrypt.c, a sln_encrypt.h fel gyrwyr addasydd ar gyfer y file system ac ap o lwybr craff AEM\coffi_machine\cm7\source\ i ffynhonnell ffolder y cynample. Diweddaru'r newydd files:
- Dad-diciwch “Gwahardd adnodd rhag adeiladu” arnynt ar gyfer adeiladu.
- Newidiwch yr holl bennawd sydd wedi'i gynnwys file enw sln_flash_config.h i sln_flash_config_w25q256jvs.h.
- Copïwch y ffolder filesystem sy'n cynnwys yr APIs ar gyfer yr ychydig filesystem a gyrrwr HAL o AEM smart \coffee_machine\cm7\source\ i'r cynample SW. A diweddariad ar gyfer y ffolder newydd:
- Dad-diciwch “Gwahardd adnodd rhag adeiladu” arno ar gyfer adeiladu.
- Ychwanegwch y llwybr cynnwys ar ei gyfer yng ngosodiadau'r prosiect: “${ workspace_loc:/${ProjName}/filesystem}”
- Newidiwch y pennawd sydd wedi'i gynnwys file enw sln_flash_config.h i sln_flash_config_w25q256jvs.h a fica_definition.h i app_config.h yn y file sln_flash_littlefs.h.
- Copïwch y ffolder littlefs sy'n cynnwys y nwyddau canol - ychydig filesystem o'r llwybr SDK_2_13_0_ MIMXRT1170-EVK\middleware\ i'r cynample SW. A diweddarwch y ffolder newydd:
- Dad-diciwch “Gwahardd adnodd rhag adeiladu” arno ar gyfer adeiladu.
- Ychwanegwch y llwybr cynnwys ar ei gyfer yng ngosodiadau'r prosiect: “${ workspace_loc:/${ProjName}/littlefs}”
Ychwanegu gyrwyr HAL
- Mae dwy ddyfais HAL - file cronfa ddata system a wyneb Cefnogir HAL ar gyfer y nodwedd mynediad i'r gronfa ddata ac maent eisoes wedi'u gweithredu yn y fframwaith heb unrhyw newid. Galluogwch nhw trwy ychwanegu'r diffiniadau isod yn board_define.h:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
A newid enw cronfa ddata wynebau ar gyfer y cynample: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”
Ychwanegu cefnogaeth lefel app
- Diweddaru'r prif file lvgl_gui_face_rec_cm7.cpp:
- Cynhwyswch y pennawd file gysylltiedig â'r Flash file rheolwr system HAL trwy ychwanegu'r llinell god: #cynnwys “fwk_flash.h”
- Datgan a chofrestru file dyfais HAL system:
- HAL_FLASH_DEV_DECLARE(Bychain);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Nodyn: yr file Rhaid cofrestru dyfais HAL system cyn cychwyn pob rheolwr dyfais yn y swyddogaeth APP_InitFramework().
- Ffoniwch y swyddogaeth BOARD_ConfigMPU() yn APP_BoardInit () i ffurfweddu MPU.
- Gosodwch y file aseiniad system ar Flash yn y file app_config.h drwy ddiffinio'r diffiniadau macro a ddefnyddir yn y file sln_flash_littlefs.h:
- #diffinio FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #diffinio FICA_FILE_SYS_SIZE (0x280000)
Cyfluniadau
Mae rhai codau sy'n gysylltiedig â Flash yn cael eu gweithredu yn ardal SRAM ITC ar gyfer digon o berfformiad. Copïwch y sgriptiau cyswllt ffolder sy'n cynnwys y ffurfweddiadau cysylltydd o'r llwybr smart HMI\coffee_machine\cm7\ i'r henample SW.
Gweithredu ap LVGL GUI
Mae datblygu ap LVGL GUI yn seiliedig ar fframwaith yn galw'r APIs o allbwn UI HAL ac yn darparu'r APIs i allbwn UI HAL (Gweler Adran 4.1.3 ar gyfer gweithredu allbwn UI HAL).
Fodd bynnag, mae gweithrediad manwl app LVGL GUI yn dibynnu ar ofynion a dyluniad y cais. Mae'r ap GUI yn y cynampmae le wedi’i gynllunio fel y disgrifir ar ddechrau’r adran Adran 4.
Isod mae'r cyflwyniadau gweithredu:
- Mae'r codau addasu yn cael eu gweithredu yn y custom.c a custom.h a roddir gan GUI Guider fel y rhyngwyneb rhwng y prosiect GUI Guider a'r prosiect system fewnosodedig.
- Ychwanegwch y swyddogaethau newydd o'r enw gui_xxx() yn custom.c i gyflawni'r swyddogaethau isod:
- Ar gyfer allbwn UI HAL a GUI ap i ddiweddaru UI.
- Er mwyn i ap GUI sbarduno digwyddiadau trwy ffonio swyddogaethau galw'n ôl UI o allbwn UI HAL.
Am gynample, mae'r swyddogaeth newydd gui_event_face_rec_action() yn galw swyddogaethau galw'n ôl UI i drin un o'r digwyddiadau o gofrestru wynebau, adnabod wynebau a dileu defnyddiwr sy'n cael ei sbarduno o'r app GUI pan fydd y botwm cysylltiedig yn cael ei glicio.
Nodyn: Y swyddogaeth gui_set_virtual_face() a elwir yn allbwn UI HAL ar gyfer cynview mae angen gweithredu modd yn custom.c:
- Swyddogaeth clonio gui_set_virtual_face() o AEM smart\coffee_machine\cm4\custom \custom.c.
- Newid enw'r teclyn home_img_cameraPreview i screen_img_camera_preview yn y swyddogaeth.
- Gweithredu'r swyddogaethau galw'n ôl UI gyda'r un prototeip i'r holl rai yn allbwn UI HAL o dan reolaeth y diffiniad macro #ifndef RT_PLATFORM yn custom.c am fod yn gydnaws â'r prosiect GUI Guider oherwydd bod y swyddogaethau hyn yn allbwn UI HAL yn dibynnu ar y llwyfan gwreiddio. Yn custom.c, maent yn dibynnu ar yr efelychydd ar GUI guider ac maent yn annibynnol ar y platfform wedi'i fewnosod. Am gynample, gweithredir yr alwad yn ôl cofrestru wyneb fel isod ar gyfer yr efelychydd GUI Guider sy'n rhedeg: #ifndef RT_PLATFORM gwag UI_Registration_Callback() { gui_hide_del_user_btn(gwir); s_InAction = ffug; dychwelyd; }
Nodyn: Cyfeiriwch at yr un prototeip o'r swyddogaeth a gyflwynwyd yng ngham 6 o Adran 4.1.3
Mae'r diffiniad macro RT_PLATFORM wedi'i osod ar osodiadau prosiect MCUXpresso fel y dangosir yn Ffigur 7: - Datgan yr holl swyddogaethau a enwir UI_xxx_Callback() a gui_xxx() yn custom.h ac ychwanegu custom.h sydd wedi'i gynnwys yn smart_tlhmi_event_descriptor.h i rannu'r APIs GUI i allbwn UI HAL.
- Ychwanegwch y swyddogaethau newydd o'r enw gui_xxx() yn custom.c i gyflawni'r swyddogaethau isod:
- Datblygu'r GUI ar GUI Guider:
- Cloniwch y camera ffolder cynview yn cynnwys meddalwedd prosiect GUI Guider yn y ffolder gui_guider yn y pecyn meddalwedd sylfaenol lvgl_gui_camera_preview_cm7. Newidiwch yr enw cysylltiedig camera_preview i face_rec am y cyn newyddample.
- Copïwch y custom.c diweddaru uchod ac arferiad. h i feddalwedd prosiect newydd GUI Guider.
- Agorwch y prosiect face_rec newydd ar GUI Guider. Diweddaru fel isod:
- Ychwanegwch y botwm newydd wedi'i labelu Dileu Defnyddiwr. Ychwanegwch y faner Gudd iddo fel y bydd y botwm yn cael ei guddio pan fydd yr app GUI yn cychwyn.
- Ychwanegwch y llinell god o alw'r API gui_event_face_rec_action() gyda pharamedr ID digwyddiad gwahanol ar y sbardun “Rhyddhawyd” yn y Gosodiad Digwyddiad o'r holl fotymau Cofrestru, Cydnabod a Dileu Defnyddiwr ar gyfer sbarduno digwyddiadau cofrestru wyneb, adnabod wynebau a dileu defnyddiwr. Mae Ffigur 8 yn dangos y cod ar gyfer digwyddiad y botwm Cofrestru:
- Diweddarwch y cod a gynhyrchir gan GUI Guider i'r prosiect MCUXpresso.
- Amnewid y cynnwys ac eithrio'r delweddau ffolder yn y ffolder a gynhyrchir o brosiect MCUXpresso SW gyda'r rhai cyfatebol yn y ffolder a gynhyrchir gan brosiect GUI Guider SW.
Nodyn: Am ragor o fanylion am yr addasiadau a gyflwynwyd uchod, gwiriwch y exampgyda meddalwedd yn https://mcuxpresso.nxp.com/appcodehub.
Gwiriadau gyda'r cynampgyda prosiect
I gael y cynampLe pecyn meddalwedd yn cynnwys yr adnoddau a'r offer ar gyfer y nodyn cais hwn, ewch i: https://mcuxpresso.nxp.com/appcodehub. Agorwch y cynample prosiect ar MCUXpresso IDE. Adeiladu a rhaglennu'r .axf file i'r cyfeiriad 0x30000000 a rhaglennu'r bin adnoddau file camera_preview_resource.bin i'r cyfeiriad 0x30800000.
Cyn adnabod wynebau GUI LVGLampMae le yn gweithio fel arfer fel isod:
- Cynview: Gyda phŵer i fyny, mae'r ffrydiau fideo a ddaliwyd gan y camera yn dangos ar yr ardal benodol o gamera cynview ar y sgrin GUI. Mae'r label statws yn dangos “Preview…”. Am fanylion, gweler Ffigur 3. Mae'r botwm Dileu Defnyddiwr wedi'i guddio. Wrth glicio ar yr ardal y tu allan i'r botymau a'r delweddau, mae'n dangos y cynview datgan fel yr uchod ar ôl i'r cam cofrestru wyneb neu gydnabyddiaeth ddod i ben.
- Cofrestru:
- tartup: Pan fydd y botwm Cofrestru yn cael ei glicio, mae'r cofrestriad wyneb yn dechrau. Mae'r label statws yn newid i arddangos “Cofrestru…”, mae'r petryal canllaw wyneb yn dangos glas, ac mae'r bar cynnydd yn dechrau dangos y cynnydd. Gwnewch yn siŵr bod wyneb y defnyddiwr yn dangos i'r petryal canllaw wyneb glas ar gyfer cofrestru.
- llwyddiant: Mae'r label statws yn dangos “Cofrestru…OK” a'r rhif ID defnyddiwr cofrestredig, mae'r petryal canllaw wyneb yn dod yn goch os yw'r cofrestriad wyneb yn llwyddiannus cyn i'r cynnydd ddangos yn llawn ar y bar.
- Methiant -> Amser allan: Mae'r label statws yn dangos “Cofrestru… Amser allan” os yw'r cofrestriad wyneb yn dal i fethu pan fydd y cynnydd yn llawn ar y bar.
- Methiant -> Dyblygu: Mae'r label statws yn dangos “Cofrestru…Methu”, mae'r petryal canllaw wyneb yn dod yn wyrdd os yw'r wyneb cofrestredig yn cael ei gydnabod cyn i'r cynnydd ddangos yn llawn ar y bar.
- adnabyddiaeth:
- Cychwyn: Pan fydd y botwm Cydnabod yn cael ei glicio, mae'r adnabyddiaeth wyneb yn dechrau. Mae'r label statws yn newid i arddangos “Cydnabod…”, mae'r petryal canllaw wyneb yn dangos glas, ac mae'r bar cynnydd yn dechrau dangos y cynnydd. Gwnewch yn siŵr bod wyneb y defnyddiwr yn cael ei ddangos yn y petryal canllaw wyneb glas ar gyfer cofrestru.
- llwyddiant: Mae'r label statws yn dangos “Cydnabod…OK” a'r rhif adnabod defnyddiwr cydnabyddedig, mae'r petryal canllaw wyneb yn dod yn wyrdd os yw'r adnabyddiaeth wyneb yn llwyddiannus cyn i'r cynnydd ddangos yn llawn ar y bar. Ar y pwynt, mae'r botwm Dileu Defnyddiwr yn ymddangos. Mae'n golygu y caniateir i'r defnyddiwr gael ei ddileu dim ond pan gaiff ei gydnabod.
- anhwylder: Mae'r label statws yn dangos "Cydnabod... Amser allan" os yw'r gydnabyddiaeth wyneb yn dal i fethu pan fydd y cynnydd yn dangos yn llawn ar y bar.
- Dileu Defnyddiwr: Pan fydd y botwm “Dileu Defnyddiwr” yn cael ei glicio, ar ôl i'r gydnabyddiaeth wyneb fod yn llwyddiannus, mae'r label statws yn newid i arddangos “Dileu Defnyddiwr…OK” gyda'r petryal canllaw wyneb yn dod yn las a'r cynnydd yn dangos yn llawn ar y bar. Mae'r botwm Dileu Defnyddiwr wedi'i guddio eto. Mae'r wyneb/defnyddiwr cydnabyddedig yn cael ei ddileu o'r gronfa ddata. Mae'n golygu na ellir adnabod yr wyneb/defnyddiwr hwn nes ei fod wedi'i gofrestru eto.
Nodyn am y cod ffynhonnell yn y ddogfen
Exampmae gan y cod a ddangosir yn y ddogfen hon yr hawlfraint a'r drwydded BSD-3-Clause a ganlyn:
Hawlfraint 2024 NXP Caniateir ailddosbarthu a defnyddio ar ffurf ffynhonnell a ffurflenni deuaidd, gydag addasiadau neu hebddynt, ar yr amod bod yr amodau a ganlyn yn cael eu bodloni:
- Rhaid i ailddosbarthiadau cod ffynhonnell gadw'r hysbysiad hawlfraint uchod, y rhestr amodau hon a'r ymwadiad canlynol.
- Rhaid i ailddosbarthiadau ar ffurf ddeuaidd atgynhyrchu'r hysbysiad hawlfraint uchod, rhaid darparu'r rhestr amodau hon a'r ymwadiad canlynol yn y ddogfennaeth a/neu ddeunyddiau eraill gyda'r dosbarthiad.
- Ni ellir defnyddio enw deiliad yr hawlfraint nac enwau ei gyfranwyr i arnodi neu hyrwyddo cynhyrchion sy'n deillio o'r feddalwedd hon heb ganiatâd ysgrifenedig penodol ymlaen llaw.
DARPARU'R FEDDALWEDD HWN GAN Y DEILIAID HAWLFRAINT A CHYFRANWYR “FEL Y MAE” AC UNRHYW WARANTAU MYNEGOL NEU WEDI'U GOBLYGIADAU, GAN GYNNWYS, OND NID YN GYFYNGEDIG I, Y GWARANTAU GOBLYGEDIG O DIBENIAETH A FFITRWYDD AT DDIBEN ARBENNIG. NI FYDD DEILIAID HAWLFRAINT NEU GYFRANWYR YN ATEBOL AM UNRHYW DDIFROD UNIONGYRCHOL, ANUNIONGYRCHOL, ARBENNIG, ENGHREIFFTIOL, NEU GANLYNIADOL (GAN GYNNWYS, OND NID YN GYFYNGEDIG I, GAFFAEL NWYDDAU, COLLI NWYDDAU, NWYDDAU NEU DEFNYDDIO; NEU AFLONYDD BUSNES) FODD WEDI ACHOSI AC AR UNRHYW Damcaniaeth O ATEBOLRWYDD, P'un ai WRTH GYTUNDEB, ATEBOLRWYDD DYNOL, NEU GAEAF (GAN GYNNWYS Esgeulustod NEU FEL ARALL) SY'N CODI MEWN UNRHYW FFORDD ALLAN O DDEFNYDDIO'R FEDDALWEDD HWN, HYD YN OED O ' R BO MODD YN EI GYNGHORI.
Hanes adolygu
Gwybodaeth gyfreithiol
Diffiniadau
Drafft — Mae statws drafft ar ddogfen yn nodi bod y cynnwys yn dal i fod dan review ac yn amodol ar gymeradwyaeth ffurfiol, a allai arwain at addasiadau neu ychwanegiadau. Nid yw NXP Semiconductors yn rhoi unrhyw sylwadau na gwarantau ynghylch cywirdeb neu gyflawnrwydd y wybodaeth sydd wedi’i chynnwys mewn fersiwn drafft o ddogfen ac ni fyddant yn atebol am ganlyniadau defnyddio gwybodaeth o’r fath.
Ymwadiad
- Gwarant ac atebolrwydd cyfyngedig — Credir bod y wybodaeth yn y ddogfen hon yn gywir ac yn ddibynadwy. Fodd bynnag, nid yw NXP Semiconductors yn rhoi unrhyw sylwadau na gwarantau, wedi’u mynegi neu eu hawgrymu, ynghylch cywirdeb neu gyflawnrwydd gwybodaeth o’r fath ac ni fyddant yn atebol am ganlyniadau defnyddio gwybodaeth o’r fath. Nid yw NXP Semiconductors yn cymryd unrhyw gyfrifoldeb am gynnwys y ddogfen hon os caiff ei ddarparu gan ffynhonnell wybodaeth y tu allan i NXP Semiconductors.
Ni fydd NXP Semiconductors mewn unrhyw achos yn atebol am unrhyw iawndal anuniongyrchol, damweiniol, cosbol, arbennig neu ganlyniadol (gan gynnwys - heb gyfyngiad - elw a gollwyd, arbedion a gollwyd, tarfu ar fusnes, costau sy'n ymwneud â thynnu neu amnewid unrhyw gynhyrchion neu daliadau ail-waith) p'un ai neu nid yw iawndal o'r fath yn seiliedig ar gamwedd (gan gynnwys esgeulustod), gwarant, tor-cytundeb neu unrhyw ddamcaniaeth gyfreithiol arall.
Er gwaethaf unrhyw iawndal y gallai cwsmer ei achosi am unrhyw reswm o gwbl, bydd atebolrwydd cyfanredol a chronnus NXP Semiconductors tuag at y cwsmer am y cynhyrchion a ddisgrifir yma yn cael ei gyfyngu yn unol â Thelerau ac amodau gwerthu NXP Semiconductors yn fasnachol. - Hawl i wneud newidiadau — Mae NXP Semiconductors yn cadw'r hawl i wneud newidiadau i'r wybodaeth a gyhoeddir yn y ddogfen hon, gan gynnwys heb gyfyngiad manylebau a disgrifiadau cynnyrch, ar unrhyw adeg a heb rybudd. Mae'r ddogfen hon yn disodli ac yn disodli'r holl wybodaeth a ddarparwyd cyn cyhoeddi'r ddogfen hon.
- Addasrwydd ar gyfer defnydd — Nid yw cynhyrchion Lled-ddargludyddion NXP wedi’u dylunio, eu hawdurdodi na’u gwarantu i fod yn addas i’w defnyddio mewn systemau neu offer cynnal bywyd, sy’n hanfodol i fywyd neu sy’n hanfodol i ddiogelwch, nac mewn cymwysiadau lle y gellir disgwyl yn rhesymol i gynnyrch Lled-ddargludyddion NXP fethu neu fethu â gweithredu. anaf personol, marwolaeth neu eiddo difrifol neu ddifrod amgylcheddol. Nid yw NXP Semiconductors a’i gyflenwyr yn derbyn unrhyw atebolrwydd am gynnwys a/neu ddefnyddio cynhyrchion NXP Semiconductors mewn offer neu gymwysiadau o’r fath ac felly mae cynnwys a/neu ddefnydd o’r fath ar risg y cwsmer ei hun.
- Ceisiadau — Mae ceisiadau a ddisgrifir yma ar gyfer unrhyw un o'r cynhyrchion hyn at ddibenion enghreifftiol yn unig. Nid yw NXP Semiconductors yn gwneud unrhyw gynrychiolaeth na gwarant y bydd cymwysiadau o'r fath yn addas ar gyfer y defnydd penodedig heb eu profi neu eu haddasu ymhellach.
Mae cwsmeriaid yn gyfrifol am ddylunio a gweithredu eu cymwysiadau a'u cynhyrchion gan ddefnyddio cynhyrchion NXP Semiconductors, ac nid yw NXP Semiconductors yn derbyn unrhyw atebolrwydd am unrhyw gymorth gyda cheisiadau neu ddylunio cynnyrch cwsmeriaid. Cyfrifoldeb y cwsmer yn unig yw penderfynu a yw'r cynnyrch NXP Semiconductors yn addas ac yn addas ar gyfer cymwysiadau a chynhyrchion arfaethedig y cwsmer, yn ogystal ag ar gyfer cais a defnydd arfaethedig cwsmer(iaid) trydydd parti'r cwsmer. Dylai cwsmeriaid ddarparu diogelwch dylunio a gweithredu priodol i leihau'r risgiau sy'n gysylltiedig â'u cymwysiadau a'u cynhyrchion. Nid yw NXP Semiconductors yn derbyn unrhyw atebolrwydd sy'n ymwneud ag unrhyw ddiffyg, difrod, costau neu broblem sy'n seiliedig ar unrhyw wendid neu ddiffyg yng ngheisiadau neu gynhyrchion y cwsmer, neu gais neu ddefnydd cwsmer(iaid) trydydd parti'r cwsmer. Mae'r cwsmer yn gyfrifol am wneud yr holl brofion angenrheidiol ar gyfer cymwysiadau a chynhyrchion y cwsmer gan ddefnyddio cynhyrchion NXP Semiconductors er mwyn osgoi rhagosodiad o'r cymwysiadau a'r cynhyrchion neu'r cymhwysiad neu ddefnydd gan gwsmer(iaid) trydydd parti'r cwsmer. Nid yw NXP yn derbyn unrhyw atebolrwydd yn hyn o beth. - Telerau ac amodau gwerthu masnachol — Gwerthir cynhyrchion NXP Semiconductors yn amodol ar delerau ac amodau cyffredinol gwerthu masnachol, fel y'u cyhoeddir yn https://www.nxp.com/profile/telerau, oni bai y cytunir yn wahanol mewn cytundeb unigol ysgrifenedig dilys. Rhag ofn i gytundeb unigol ddod i ben dim ond telerau ac amodau'r cytundeb priodol fydd yn berthnasol. Mae NXP Semiconductors drwy hyn yn gwrthwynebu'n benodol i gymhwyso telerau ac amodau cyffredinol y cwsmer o ran prynu cynhyrchion NXP Semiconductors gan gwsmer.
- Rheoli allforio — Gall y ddogfen hon yn ogystal â'r eitem(au) a ddisgrifir yma fod yn ddarostyngedig i reoliadau rheoli allforio. Efallai y bydd angen awdurdodiad ymlaen llaw gan awdurdodau cymwys i allforio.
- Addasrwydd i'w ddefnyddio mewn cynhyrchion cymwys nad ydynt yn rhai modurol — Oni bai bod y ddogfen hon yn nodi'n benodol bod gan y cynnyrch Lled-ddargludyddion NXP penodol hwn gymwysterau modurol, nid yw'r cynnyrch yn addas ar gyfer defnydd modurol. Nid yw wedi'i gymhwyso na'i brofi yn unol â gofynion profi modurol neu gais. Nid yw NXP Semiconductors yn derbyn unrhyw atebolrwydd am gynnwys a/neu ddefnyddio cynhyrchion cymwys nad ydynt yn rhai modurol mewn offer neu gymwysiadau modurol.
Os bydd cwsmer yn defnyddio'r cynnyrch i'w ddylunio i mewn a'i ddefnyddio mewn cymwysiadau modurol yn unol â manylebau a safonau modurol, rhaid i gwsmer (a) ddefnyddio'r cynnyrch heb warant NXP Semiconductors o'r cynnyrch ar gyfer cymwysiadau, defnydd a manylebau modurol o'r fath, a ( b) pryd bynnag y bydd cwsmer yn defnyddio'r cynnyrch ar gyfer cymwysiadau modurol y tu hwnt i fanylebau Lled-ddargludyddion NXP, bydd defnydd o'r fath ar risg y cwsmer ei hun yn unig, a (c) cwsmer yn indemnio Lled-ddargludyddion NXP yn llawn am unrhyw atebolrwydd, iawndal neu hawliadau cynnyrch a fethwyd o ganlyniad i ddyluniad y cwsmer a'r defnydd o y cynnyrch ar gyfer cymwysiadau modurol y tu hwnt i warant safonol NXP Semiconductors a manylebau cynnyrch NXP Semiconductors. - Cyfieithiadau — Mae fersiwn heblaw Saesneg (wedi'i chyfieithu) o ddogfen, gan gynnwys y wybodaeth gyfreithiol yn y ddogfen honno, at ddefnydd cyfeirio yn unig. Y fersiwn Saesneg fydd drechaf rhag ofn y bydd unrhyw anghysondeb rhwng y fersiwn a gyfieithwyd a'r fersiwn Saesneg.
- Diogelwch — Mae'r cwsmer yn deall y gall holl gynhyrchion NXP fod yn agored i wendidau anhysbys neu gallant gefnogi safonau neu fanylebau diogelwch sefydledig gyda chyfyngiadau hysbys. Mae'r cwsmer yn gyfrifol am ddylunio a gweithredu ei gymwysiadau a'i gynhyrchion trwy gydol eu cylch bywyd i leihau effaith y gwendidau hyn ar gymwysiadau a chynhyrchion cwsmeriaid. Mae cyfrifoldeb y cwsmer hefyd yn ymestyn i dechnolegau agored a / neu berchnogol eraill a gefnogir gan gynhyrchion NXP i'w defnyddio mewn cymwysiadau cwsmeriaid. Nid yw NXP yn derbyn unrhyw atebolrwydd am unrhyw fregusrwydd. Dylai cwsmeriaid wirio diweddariadau diogelwch gan NXP yn rheolaidd a dilyn i fyny yn briodol. Rhaid i'r cwsmer ddewis cynhyrchion â nodweddion diogelwch sy'n cwrdd orau â rheolau, rheoliadau a safonau'r cais arfaethedig a gwneud y penderfyniadau dylunio terfynol ynghylch ei gynhyrchion ac sy'n llwyr gyfrifol am gydymffurfio â'r holl ofynion cyfreithiol, rheoleiddiol a diogelwch sy'n ymwneud â'i gynhyrchion, waeth beth fo'i unrhyw wybodaeth neu gefnogaeth y gall NXP ei darparu.
Mae gan NXP Dîm Ymateb i Ddigwyddiad Diogelwch Cynnyrch (PSIRT) (y gellir ei gyrraedd yn PSIRT@nxp.com) sy'n rheoli ymchwilio, adrodd a rhyddhau datrysiadau i wendidau diogelwch cynhyrchion NXP.
NXP BV - Nid yw NXP BV yn gwmni gweithredu ac nid yw'n dosbarthu nac yn gwerthu cynhyrchion.
Nodau masnach
Hysbysiad: Mae'r holl frandiau y cyfeirir atynt, enwau cynnyrch, enwau gwasanaethau, a nodau masnach yn eiddo i'w perchnogion priodol.
NXP — mae nod geiriau a logo yn nodau masnach NXP BV
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Galluogi, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile - yn nodau masnach a/neu nodau masnach cofrestredig Arm Limited (neu ei is-gwmnïau neu gysylltiadau) yn yr UD a/neu mewn man arall. Gall y dechnoleg gysylltiedig gael ei diogelu gan unrhyw un neu bob un o'r patentau, hawlfreintiau, dyluniadau a chyfrinachau masnach. Cedwir pob hawl.
- i.MX — yn nod masnach NXP BV
- J-Cyswllt — yn nod masnach SEGGER Microcontroller GmbH.
Mae Microsoft, Azure, a ThreadX - yn nodau masnach grŵp cwmnïau Microsoft.
Sylwch fod hysbysiadau pwysig ynghylch y ddogfen hon a'r cynnyrch(cynhyrchion) a ddisgrifir yma, wedi'u cynnwys yn yr adran 'Gwybodaeth gyfreithiol'.
© 2024 NXP BV
Am fwy o wybodaeth, ewch i: https://www.nxp.com
- Dyddiad rhyddhau: 19 Ebrill 2024
- Dynodwr dogfen: AN14263
FAQ
C: Beth yw prif bwrpas y cynnyrch hwn?
A: Y prif bwrpas yw galluogi swyddogaeth adnabod wynebau gan ddefnyddio model algorithm gweledigaeth AI&ML gyda GUI LVGL syml cynample ar fwrdd SLN-TLHMI-IOT.
C: Sut gall datblygwyr elwa o'r nodyn cais hwn?
A: Gall datblygwyr ddysgu sut i weithredu adnabyddiaeth wyneb ar y fframwaith gam wrth gam gan ddefnyddio'r fersiwn exampyn deall y rheolwyr dyfeisiau, dyfeisiau HAL, a'r mecanweithiau digwyddiadau dan sylw.
Dogfennau / Adnoddau
![]() |
NXP AN14263 Gweithredu Cydnabod Wyneb GUI LVGL ar Ffrâm [pdfCanllaw Defnyddiwr AN14263 Gweithredu Cydnabyddiaeth Wyneb GUI LVGL ar Ffrâm, AN14263, Gweithredu Cydnabyddiaeth Wyneb GUI LVGL ar Ffrâm, Cydnabod Wyneb GUI LVGL ar Ffrâm, Cydnabod Wyneb ar Ffrâm, Cydnabod ar Ffrâm, Ffrâm |