NXP AN14263 Татбиқи LVGL GUI Шинохти чеҳра дар Framewor
Маълумот оид ба маҳсулот
Мушаххасоти
- Номи маҳсулот: LVGL GUI Шинохти чеҳра дар чаҳорчӯба
- Баррасии ҳуҷҷат: 1-19 апрели 2024
- Калидвожаҳо: Шинохти чеҳра, LVGL GUI, Framework
Дастурҳои истифодаи маҳсулот
- Барview
Ин маҳсулот ба модели алгоритми рӯъёи AI ва ML барои шинохти чеҳра дар чаҳорчӯба имкон медиҳад, ки функсияи шинохти чеҳра бо собиқ LVGL GUI-ро амалӣ кунад.ampле дар тахтаи SLN-TLHMI-IOT. - Чорчӯба тамом шудview
Нармафзори ҳалли он дар атрофи меъмории чаҳорчӯба тарҳрезӣ шудааст, ки менеҷерони дастгоҳҳои масъули идоракунии дастгоҳҳо, дастгоҳҳои HAL барои абстраксияи тафсилоти асосӣ ва рӯйдодҳоро барои иртибот байни дастгоҳҳои гуногун дар бар мегирад. - Вижагиҳо
Маҳсулот имкон медиҳад, ки функсияи шинохти чеҳра тавассути камераи пешакӣ амалӣ карда шавадview дар экрани GUI бо тугмаҳо барои бақайдгирии чеҳра, шинохтан ва нест кардан. Маълумоти чеҳраи ба қайд гирифташуда дар Flash тавассути a file система. - Мазмуни ёддошти ариза
Дар ёддошти барнома экрани LVGL GUI бо камераи пешакӣ пешниҳод карда мешавадview ва тугмаҳо барои амалҳои марбут ба чеҳра. Он ба таҳиягарон дар фаҳмидани чаҳорчӯба ва чӣ гуна татбиқи шинохти чеҳра бо истифода аз собиқ пешниҳодшуда кӯмак мекунадampле.
Барview
NXP маҷмӯаи таҳияи ҳалли худро бо номи SLN-TLHMI-IOT оғоз кард, ки ба барномаҳои интеллектуалии HMI тамаркуз мекунад. Он имкон медиҳад, ки HMI-и интеллектуалӣ бо биниши ML, садо ва графикаи интерфейси дар як NXP i.MX RT117H MCU амалӣ карда шавад. Дар асоси SDK, нармафзори ҳалли он дар тарҳе сохта шудааст, ки чаҳорчӯба ном дорад, ки тарҳҳои чандир ва мутобиқсозии функсияҳои биниш ва садоро дастгирӣ мекунад. Барои кӯмак ба корбарон барои беҳтар истифода бурдани платформаи нармафзор, баъзе ҳуҷҷатҳои асосӣ пешниҳод карда мешаванд, масаланample, дастури корбари таҳияи нармафзор. Дастур тарҳи асосии нармафзор ва меъмории барномаҳоро, ки тамоми ҷузъҳои ҳалли онро дар бар мегирад, муаррифӣ мекунад, аз ҷумла чаҳорчӯба барои кӯмак расонидан ба таҳиягарон дар татбиқи осонтар ва самараноки барномаҳои худ бо истифода аз SLN-TLHMI-IOT.
Барои тафсилоти бештар дар бораи ҳалли ва ҳуҷҷатҳои дахлдор, боздид кунед web саҳифаи NXP EdgeReady Smart HMI Solution дар асоси i.MX RT117H бо ML Vision, Voice ва графикӣ UI. Бо вуҷуди ин, барои таҳиягарон татбиқи барномаҳои интеллектуалии HMI бо истинод ба ин дастурҳои асосӣ он қадар осон нест. Як қатор ёддоштҳои барномавӣ ба нақша гирифта шудаанд, ки барои омӯзиши рушд дар чаҳорчӯба зина ба зина кӯмак расонанд. Ин ёддошти барнома ба Implement LVGL GUI Camera Pre асос ёфтаастview дар бораи Framework (ҳуҷҷати AN14147). Ин ёддошти барнома тавсиф мекунад, ки чӣ гуна имкон додани модели алгоритми рӯъёи AI ва ML барои шинохти чеҳра дар чаҳорчӯба барои амалӣ кардани функсияи шинохти чеҳра тавассути камераи пешакӣview дар экрани GUI бо як оддӣ LVGL GUI собиқampле дар тахтаи SLN-TLHMI-IOT. Дар ёддошти ариза, собиқample як экрани LVGL GUI бо камераи пешакӣ пешкаш мекунадview ва баъзе тугмаҳо барои бақайдгирии чеҳра, шинохтан ва нест кардани чеҳра. Маълумоти чеҳраи ба қайд гирифташуда дар Flash тавассути каме нигоҳ дошта мешавад file система.
Дар сатҳи баланд, қайди барнома дорои мундариҷаи зерин аст:
- Хусусияти шинохти чеҳраро дар чаҳорчӯба фаъол созед.
- Дастгирии махзани рӯи рӯи чаҳорчӯба тавассути file система дар Flash.
- Барномаи LVGL GUI-ро амалӣ кунед. Тавассути муқаддимаҳои дар боло овардашуда, ин ҳуҷҷат ба таҳиягарон кӯмак мекунад, ки:
- Чаҳорчӯба ва нармафзори ҳалли оқилонаи HMI амиқтар фаҳмед.
- Шинохти чеҳраи AI ва ML-и онҳоро дар чаҳорчӯба бо барномаи LVGL GUI таҳия кунед.
Чаҳорчӯба ба охир расидview
Нармафзори ҳалли пеш аз ҳама дар атрофи истифодаи меъмории чаҳорчӯба тарҳрезӣ шудааст, ки аз якчанд қисмҳои гуногун иборат аст:
- Менеҷерони дастгоҳ - қисми асосӣ
- Дастгоҳҳои қабати абстраксияи сахтафзор (HAL).
- Паёмҳо / Ҳодисаҳо
Тавре ки дар расми 1 нишон дода шудааст, барview механизми чаҳорчӯба инҳоянд:
Менеҷерони дастгоҳ барои идоракунии дастгоҳҳое, ки система истифода мебаранд, масъуланд. Ҳар як намуди дастгоҳ (ворид, баромад ва ғайра) дорои менеҷери дастгоҳи мушаххаси навъи худ мебошад. Бо менеҷери дастгоҳ пас аз бақайдгирии дастгоҳҳо дар он оғоз мешавад, пас аз оғоз ва оғоз кардани дастгоҳҳои ба қайд гирифташуда паёмеро интизор мешавад ва месанҷад, то маълумот ба дастгоҳҳо ва дигар мудирони интиқол дода шавад. Дастгоҳҳои HAL дар болои рамзи драйвери сатҳи поёнӣ навишта шудаанд, ки ба баланд бардоштани фаҳмиши код тавассути абстракт кардани бисёре аз ҷузъиёти аслӣ кӯмак мекунанд.
Ҳодисаҳо василае мебошанд, ки тавассути онҳо маълумот байни дастгоҳҳои гуногун тавассути менеҷерони онҳо иртибот мешаванд. Вақте ки ҳодиса оғоз мешавад, дастгоҳе, ки аввалин ҳодисаро қабул кардааст, ин ҳодисаро ба менеҷери худ мерасонад ва дар навбати худ он менеҷерони дигареро, ки барои қабули ҳодиса таъин шудаанд, огоҳ мекунад.
Тарҳрезии меъмории чаҳорчӯба ба се ҳадафи асосӣ нигаронида шудааст:
- Осонии истифода
- Фасеҳӣ/Интиқолпазирӣ
- Намоиш
Чаҳорчӯба бо мақсади суръат бахшидан ба бозор барои биниш ва дигар барномаҳои омӯзиши мошинсозӣ тарҳрезӣ шудааст. Барои зудтар ба бозор баромадан муҳим аст, ки худи нармафзор фаҳмидан ва тағир додан осон аст. Бо дарназардошти ин ҳадаф, меъмории чаҳорчӯба бидуни маҳдудият ва бе арзиши иҷроиш тағир додан осон аст.
Барои тафсилоти бештар дар бораи чаҳорчӯба, ба дастури корбари таҳияи нармафзори Smart HMI нигаред (ҳуҷҷати MCU-SMHMI-SDUG).
Китобхонаи графикаи сабук ва бисёрҷониба (LVGL)
LVGL (Китобхонаи Графикаи сабук ва бисёрҷониба) як китобхонаи графикии ройгон ва кушодаасос мебошад, ки ҳама чизро барои сохтани GUI дарунсохташуда бо унсурҳои графикии ба осонӣ истифодашаванда, эффектҳои зебои визуалӣ ва изофаи хотираи кам таъмин мекунад.
Роҳнамои GUI
GUI Guider як абзори таҳияи интерфейси графикии корбар аз NXP мебошад, ки барои рушди босуръати дисплейҳои баландсифат бо китобхонаи графикаи кушодаи LVGL имкон медиҳад. Муҳаррири кашола ва тарки GUI Guider истифодаи бисёр хусусиятҳои LVGL ба монанди виджетҳо, аниматсияҳо ва услубҳоро барои сохтани GUI бо ҳадди ақал ё тамоман рамзгузорӣ осон мекунад.
Бо пахш кардани тугма, шумо метавонед барномаи худро дар муҳити симулятсия иҷро кунед ё онро ба лоиҳаи мақсаднок содир кунед. Рамзи тавлидшуда аз GUI Guider метавонад ба осонӣ ба лоиҳаи шумо илова карда шавад, ки раванди таҳияро суръат мебахшад ва ба шумо имкон медиҳад, ки интерфейси корбарии дарунсохташударо ба замимаи худ бефосила илова кунед. GUI Guider барои истифодаи умумии NXP ва MCU-ҳои кроссовер ройгон аст ва қолабҳои дарунсохташудаи лоиҳаро барои якчанд платформаҳои дастгирӣшаванда дар бар мегирад. Барои гирифтани маълумоти бештар дар бораи таҳияи LVGL ва GUI дар GUI Guider, Китобхонаи графикаи сабук ва универсалӣ ва роҳнамои GUI-ро тафтиш кунед.
Муҳити рушд
Аввалан, муҳити сахтафзор ва нармафзорро барои татбиқи собиқ омода ва насб кунедampдар чаҳорчӯба.
Муҳити сахтафзор
Муҳити сахтафзор барои санҷиши собиқ муқаррар карда шудаастampле:
- Маҷмӯи интеллектуалии таҳияи HMI дар асоси NXP i.MX RT117H (маҷмӯаи SLN_TLHMI_IOT)
- SEGGER J-Link бо адаптери 9-pin Cortex-M ва V7.84a ё версияи навтари драйвер
Муҳити нармафзор
Муҳити нармафзор барои таҳияи собиқampле:
- MCUXpresso IDE V11.7.0
- Роҳнамои GUI V1.6.1-GA
- lvgl_gui_camera_preview_cm7 - масаланample рамзи ёддошти дархости дуюм ҳамчун нармафзори асосии таҳия. Барои тафсилот, нигаред https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 - ҳамчун манбаи рамз барои таҳия.
- Нармафзори SLN-TLHMI-IOT V1.1.2 - рамзи сарчашмаи интеллектуалии HMI, ки дар анбори NXP GitHub ҳамчун манбаи код барои таҳия нашр шудааст. Барои тафсилот, нигаред: GitHub – NXP/mcu-smhmi дар v1.1.2
Барои тафсилот дар бораи ба даст овардан ва насб кардани муҳити нармафзор, нигаред: Оғози кор бо SLN-TLHMI-IOT.
Меъмории рӯъё дар чаҳорчӯба
Меъмории биниш дар чаҳорчӯба дар расми 2 нишон дода шудааст. Algo vision HAL (OASIS_HAL) дорои равандҳои зерин аст:
- Пас аз гирифтани рӯйдодҳои марбут аз баромади UI HAL, бақайдгирӣ ва шинохти чеҳраро тавассути модели алгоритми рӯъёи AI&ML анҷом диҳед. Натиҷаҳои хулосаро аз модели алгоритм ба баромади UI HAL хабар диҳед.
- Ба махзани хусусиятҳои чеҳра дар асоси каме дастрасӣ пайдо мекунад (илова кардан, нест кардан…). file система тавассути занг задан ба API-ҳои FaceDB HAL пас аз гирифтани рӯйдодҳои марбут аз баромади UI HAL.
- Ҳангоми сабти ном ва шинохти чеҳра чаҳорчӯбаи видеоии камераро аз камераи HAL дархост кунед.
Шинохти чеҳраро дар чаҳорчӯба амалӣ кунед
LVGL GUI шинохти чеҳраи собиқampле (собиқample баъдтар дода мешавад) дар чаҳорчӯба дар асоси собиқ амалӣ карда мешавадample рамзҳои Implement LVGL GUI Camera Preview дар бораи Framework (ҳуҷҷати AN14147).
Барои намоиш додани шинохти чеҳра дар собиқample, вазифаи асосии барномаи GUI (ба экрани асосӣ дар расми 3 нигаред) тавре тарҳрезӣ шудааст, ки дар зер тавсиф шудааст:
- Замимаи GUI ҳангоми клик кардани тугмаи Бақайдгирӣ ё Шинохтан ҳодисаи бақайдгирии чеҳра ё шинохти рӯйдодро ба баромади UI HAL бармеангезад. Ва баромади UI HAL пас аз бомуваффақият бақайдгирии чеҳра дар бораи илова кардани корбар ба биниши algo HAL хабар медиҳад.
- Барномаи GUI ҳодисаи ҳазфи корбарро ба баромади UI HAL ҳангоми пахши тугмаи Нобудкунии корбар пас аз шинохтани чеҳраи корбар ба вуҷуд меорад.
- Замимаи GUI ҳодисаи қатъ кардани algo oasis ба баромади UI HAL ҳангоми пахш кардани экран берун аз тугмаҳо ва тасвирҳо бармеангезад.
Маҷмӯи нармафзорро барои татбиқи собиқ омода кунедampле.
- Нармафзори асосиро lvgl_gui_camera_pre клон кунедview_cm7. Номи лоиҳа ва асосиро тағир диҳед fileном ба lvgl_gui_face_rec_cm7.
- Чаҳорчӯба бояд дар нармафзор нав карда шавад, зеро кодҳои сарчашмаи асосии чаҳорчӯба дар GitHub аз версияи 1.1.2 оммавӣ шуданд.
- Ҷузвдони чаҳорчӯбаро бо нусхаи V1.1.2 аз GitHub иваз кунед, ба истиснои files fwk_log.h ва fwk_common.h зери inc\, зеро онҳо барои силсилаи ёддошти ариза тағир дода шудаанд. Амалиёт дар расми 4 нишон дода шудааст:
- Папкаи framework_cm7-ро дар зери гурӯҳи libs нест кунед ва китобхонаи framework_cm7 ва роҳи ҷустуҷӯи онро, ки дар Лоиҳа > Хусусиятҳо > C/C++ Сохта > танзимот > Танзимоти асбобҳо > Linker MCU C++ > Китобхонаҳо танзим карда шудаанд, хориҷ кунед, зеро рамзи сарчашмаи аслӣ таъмин карда шудааст.
Хусусияти шинохти чеҳраро дар чаҳорчӯба фаъол созед
Хусусияти шинохти чеҳра дар модели алгоритми рӯъёи ML сохта шудааст, ки ҳамчун китобхонаи статикӣ пешниҳод шудааст - китобхонаи вақти корӣ Oasis lite аз ҷониби NXP. Китобхона як китобхонаи хурд, хеле самаранок, фармоишӣ ва оптимизатсияшудаи AI мебошад. Модел муайянкунии чеҳра, шинохти чеҳра, муайянкунии шиша ва муайянкунии зиндаро дар бар мегирад. Он асосан API OASISLT_run_extended()-ро барои иҷро кардани лӯлаи шинохти чеҳра ҳангоми навсозии натиҷаҳо ба зангзананда тавассути зангҳои рӯйдодҳо таъмин мекунад ва чеҳраҳо дар пойгоҳи додаҳо тавассути зангҳои бозпаси махзани чеҳра пас аз муайян кардани чаҳорчӯбаи сарчашма, зангҳо ва хотираро илова/навсозӣ/нест мекунад. ҳавзе, ки аз ҷониби китобхона бо занги дигар API OASISLT_init () ҳангоми оғозёбӣ истифода мешавад. Даъвати API-ҳо ва функсияҳои бозгашт дар визуалии algo HAL чаҳорчӯба амалӣ карда мешаванд.
Китобхонаи модели vision algo илова кунед
- Оазиси ҷузвдони дорои китобхона ва сарлавҳаи марбутро нусхабардорӣ кунед file аз интеллектуалии HMI\coffee_machine\cm7\libs\ ба ҷузвдони libs-и собиқample SW.
- Роҳи ҷустуҷӯи сарлавҳаро илова кунед file дар Лоиҳа > Хусусиятҳо > Сохтани C/C++ > Танзимотҳо > Танзимоти асбоб > Компилятори MCU C > Дарбар мегирад ва компилятори MCU C++ > Дар бар мегирад: "${workspace_loc:/${ProjName}/libs/oasis/include}"
- Либ ва роҳи ҷустуҷӯи онро дар Лоиҳа > Хусусиятҳо > Сохтани C/C++ > Танзимот > MCU C+ + Linker > Китобхонаҳо: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” ва таърифи макросро ба хусусиятро дар Лоиҳа > Хусусиятҳо > Сохтани C/C++ > Танзимотҳо > Танзимоти асбобҳо > Компилятори MCU C > Препросессор ва компилятори MCU C++ > Процессор: SMART_TLHMI_2D
Биниш algo HAL-ро фаъол созед
Algo vision HAL модели vision algo-ро ба кор бармеангезад ва натиҷаҳоро ба баромади UI HAL пас аз гирифтани рӯйдодҳо аз он ҷавоб медиҳад.
Барои фаъол кардани он, драйвери шабеҳи HAL-ро клон кунед file ки дар он вазифаҳои зерин амалӣ карда мешаванд:
- Татбиқи зангҳои бозгашти амалиёти махзани рӯи рӯй ва коркарди рӯйдодҳо.
- Бо занг задан ба API-ҳои китобхонаи oasis algo визуалиро ба кор баред.
- Ба махзани чеҳраи корбар ва махзани барномаҳо дастрасӣ пайдо кунед (ин дар собиқampле).
- Аз рӯйдодҳоро қабул кунед ва натиҷаҳоро ба баромади UI HAL фиристед.
Корҳои асосӣ барои татбиқи HAL барои собиқampинҳоянд:
- Драйвери шабеҳи HAL-ро клон кунед file ва номҳои алоқамандро иваз кунед.
- Рамзҳои марбут ба амалиёти додаҳои барномаро хориҷ кунед.
- Мафҳумҳо ва функсияҳоро барои коркарди рӯйдодҳо аз баромади UI HAL ба як собиқ навсозӣ кунедampтарҳрезӣ.
- Илова кардани конфигуратсияҳое, ки дар оғозкунии oasis лозиманд.
Қадамҳои муфассал инҳоянд:
- Clone hal_vision_algo_oasis_coffeemachine.c. -ро иваз кунед fileном ба hal_vision_algo_oasis_guifacerec.c. Ва ҳама сатрҳои CoffeeMachine -ро бо GUIFaceRec дар file.
- Рамзҳои дорои сатри coffeedb (на ҳассос ба ҳарф)-ро, ки ба пойгоҳи додаҳои барнома алоқаманданд, хориҷ кунед, масаланampле, #дохил кардани hal_sln_coffeedb.h.
- Функсияи HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() -ро барои коркарди рӯйдодҳо аз баромади UI HAL тағир диҳед.
- Таърифи ҳодисаро kEventFaceRecId_RegisterCoffeeSelection ба kEventFaceRecId_RegisterUserFace ва сатри сохтори regCoffeeSelection ба regGUIFaceRec барои коркарди ҳодиса барои илова кардани маълумоти нави хусусияти чеҳра ба пойгоҳи додаҳо иваз кунед.
- Барои нишон додани раванди стандартии амалҳои шинохти чеҳра дар собиқample, коркардро дар ҳолати kEventFaceRecID_OasisSetState бо таърифҳои иёлот тағир диҳед:
- kOASISLiteState
- Бақайдгирии kOASISLiteState
- Эътироф кардани kOASISLiteState
- Истед
- Таърифҳои рӯйдодҳои дар қадами боло зикршударо илова ва тағир диҳед.
- Сарлавҳаро нусхабардорӣ кунед file smart_tlhmi_event_descriptor.h аз Smart HMI\coffee_machine \cm7\source\event_handlers\ ба манбаи ҷузвдони собиқample SW. Навсозии file чунон ки дар зер:
- Таърифи ҳодисаро kEventFaceRecId_RegisterCoffeeSelection ба kEventFaceRecId_RegisterUserFace дар навъи enum _event_smart_tlhmi_id ва сатри сохтори regCoffeeSelection ба regGUIFaceRec дар сохтори _event_smart_tlhmi.tlhmi тағйир диҳед. Ҳамин тавр, сохтори register_coffee_selection_event_t барои regCoffeeSelection -ро ба register_gui_facerec_event_t иваз кунед.
- Мундариҷаи дигареро, ки барои барномаи мошини қаҳва истифода мешавад, нест кунед, масаланample, хати рамз дар бораи овоз: #include "hal_event_descriptor_voice.h".
- Навъҳои kOASISLiteState_Stopped ва kOASISLiteState_Running -ро ба навъи enum oasis_lite_state_t дар hal_vision_algo.h дар доираи framework>hal>vision дар лоиҳа ба таври зерин илова кунед:
typedef enum _oasis_lite_state {- kOASISLiteState
- Давида, kOASISLiteState
- Қатъ карда шуд, kOASISLiteState
- Эътироф,
- kOASISLiteState
- Бақайдгирӣ, kOASISLiteState
- Бекор кардани бақайдгирӣ, kOASISLiteState
- RemoteRegistration, kOASISLiteState
- Ҳисоб
- Сохтори дар боло навшудаи oasis_lite_state_t-ро барои такмил додани сохтори oasis_state_event_t дар hal_event_descriptor_face_rec.h дар доираи framework>hal>vision дар лоиҳа ба таври зерин истифода баред: typedef struct _oasis_state_event_t { oasis_lite_state_t; } oasis_state_event_t;
- Ҳама kEventInfo_Remote-ро ба kEventInfo_Local барои фиристодани рӯйдодҳо аз algo vision HAL ба дигар HAL-ҳо, ки дар як ядро кор мекунанд, иваз кунед, зеро дар собиқ ба ҷои як ядрои дугона истифода мешавад.ampле.
- Дар OASISLT_init() конфигуратсияҳои зеринро барои оғозкунии oasis илова ва тағир диҳед:
- Таърифҳои макрос ва қисмҳои хотираро барои чаҳорчӯбаи видео дар board_define.h илова кунед: #define OASIS_RGB_FRAME_WIDTH 800
- #OASIS_RGB_FRAME_HEIGHT 600-ро муайян кунед
- #муайян кардани OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
- #муайян кардани OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
- #муайян кардани AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __attribute__((бахш(“.bss.$fb_sh_mem,\”aw\",%nobits @”))) var
- __аттрибут__((мувофиқ карда шудааст(байтҳо)))
- Танзимоти хотираро ба бахши хотираи боло fb_sh_mem дар Лоиҳа > Хусусиятҳо > Сохтани C/C++ > Танзимоти MCU, ки дар расми 5 нишон дода шудааст, танзим кунед:
- Тағйирёбандаи глобалии g_DTCOPBuf дар lvgl_gui_face_rec_cm7.cpp эълон кунед: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Илова кардани таърифҳои дар тағирёбандаи боло истифодашударо идома диҳед:
- Қисми болоро дар board_define.h муайян кунед:
- #муайян кардани AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- атрибут__((қисм(".bss.$SRAM_DTC_cm7,\"aw\",%nobits @"))) var
- атрибут__((ҳамоҳанг карда шудааст(байтҳо)))
- Сарлавҳаро дохил кунед file hal_vision_algo.h дорои таърифи макросҳои DTC_OPTIMIZE_BUFFER_SIZE дар app_config.h дар lvgl_gui_face_rec_cm7.cpp дохил карда шудааст.
- Таърифҳои макрос ва қисмҳои хотираро барои чаҳорчӯбаи видео дар board_define.h илова кунед: #define OASIS_RGB_FRAME_WIDTH 800
- Барои нишон додани ҳолати пешрафт дар шинохти чеҳра тағирёбандаи s_debugOption-ро ба true муқаррар кунед.
- Роҳи ҷустуҷӯи сарлавҳаро илова кунед files-и биниши HAL дар Лоиҳа > Хусусиятҳо > Хосиятҳо > Сохтани C/C++ > Танзимотҳо > Танзимоти абзор > Компилятори MCU C > Дарбар мегирад ва компилятори MCU C++ > Дар бар мегирад: "${workspace_loc:/${ProjName}/framework/hal/vision}"
- Барои фаъол кардани vision algo HAL дар board_define.h таърифи зерро илова кунед: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Натиҷаи UI HAL-ро фаъол созед
Натиҷаи UI HAL рӯйдодҳоро ба биниш algo HAL хабар медиҳад ва ба натиҷаҳои хулосаи algo HAL вокуниш медиҳад. Бо барномаи GUI, воқеаҳо одатан аз ҷониби барнома оғоз карда мешаванд ва натиҷаҳо дар барнома нишон дода мешаванд.
Барои фаъол кардани он, драйвери шабеҳи HAL-ро клон кунед file Дар он ҷо умуман вазифаҳои зерин амалӣ карда мешаванд:
- Воқеаҳоро барои шинохти чеҳра ва дастрасӣ ба пойгоҳи додаҳо огоҳ кунед.
- Татбиқи зангҳои бозгашт барои барномаи GUI барои ангезиши рӯйдодҳо.
- Натиҷаҳои хулосаро аз модули algo vision идора кунед.
- Раванд ва натиҷаҳои коркарди рӯйдодҳоро дар UI тавассути сатри пешрафт, ки бо таймерҳо ва росткунҷаи роҳнамои рӯй идора мешавад, нишон диҳед.
Корҳои асосӣ барои татбиқи HAL барои собиқampдар ин ҳуҷҷат истифода мешаванд:
- Драйвери шабеҳи HAL-ро клон кунед file ва номҳои алоқамандро иваз кунед.
- Рамзҳои марбут ба барномаро хориҷ кунед.
- Функсияҳои огоҳинома дар бораи рӯйдодҳо ва вокуниши натиҷаҳоро дар як собиқ навсозӣ кунедampтарҳрезӣ.
- Зангҳои бозгаштро барои барномаи GUI илова кунед, то рӯйдодҳоро оғоз кунад.
Қадамҳои муфассал инҳоянд:
- Clone hal_output_ui_coffee_machine.c. -ро иваз кунед fileном ба hal_ output_ui_guifacerec.c.
- Ҳама сатрҳои CoffeeMachine-ро бо GUIFaceRec дар file.
- Рамзҳои марбут ба барномаро хориҷ кунед - мошини қаҳва.
- Функсияҳои WakeUp() ва _StandBy() ва рамзҳои марбутро хориҷ кунед (метавонад сатри wake_up ва standby-ро барои онҳо ҷустуҷӯ кунад).
- Пеш аз хориҷ кунедview рӯйдодҳои реҷаи коркарди рамзҳои алоқаманд дар HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Функсияҳои UI_xxx_Callback() ва рамзҳои дорои сатри gui_ ва экрани марбут ба GUI-и мошини қаҳваро хориҷ кунед, ба истиснои gui_set_virtual_face() бароиview хусусияти режим.
- Ҳама рамзҳои марбут ба тағирёбандаҳои s_IsWaitingAnotherSelection ва s_IsWaitingRegisterSelection-ро, ки ба барномаи мошини қаҳва алоқаманданд, хориҷ кунед.
- Рамзҳои марбут ба овоз, аудио ва забонро хориҷ кунед. Барои мисолampле:
- #дарбар кунед "hal_voice_algo_asr_local.h",
- #дарбар кунед "hal_event_descriptor_voice.h"
- Барои огоҳии рӯйдодҳои гуногун, функсияҳои нави _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() ва DeregisterGUIFaceRec()-ро бо истинод ба функсияҳои _StopFaceRec(), _RegisterCoffeeSelection() ва DeregisterCoffee() пеш аз Селкунӣ, амалӣ кунед.
- _OutputManagerNotify() функсияи асосии баромади рӯйдодро барои ирсол кардани ҳодиса ба algo HAL-и биниш амалӣ мекунад. Функсияҳои дар поён овардашуда онро барои фиристодани рӯйдодҳои худ даъват мекунанд.
- _SetFaceRec() ҳодисаи kEventFaceRecID_OasisSetState-ро мефиристад, то алгои бинишро барои бақайдгирии чеҳра, шинохти чеҳра ва қатъи алго оғоз кунад.
- _RegisterGUIFaceRec() ҳодисаи kEventFaceRecId_RegisterGUIFaceRec-ро мефиристад, ки дар smart_tlhmi_event_descriptor.h муайян карда шудааст, то ҳангоми бақайдгирии OK ба махзани маълумот маълумоти хусусияти чеҳра илова карда шавад.
- DeregisterGUIFaceRec() ҳодисаи kEventFaceRecID_DelUser-ро мефиристад, то маълумоти хусусияти чеҳраро аз пойгоҳи додаҳо ҳангоми гузаштан аз шинохти чеҳра нест кунад.
- Рамзҳоро барои андешидани амалҳои мувофиқ навсозӣ кунед, аз ҷумла GUI-ро бо занг задан ба API-ҳо аз барномаи LVGL GUI барои натиҷаҳои хулосабарории сабти чеҳра ва шинохти чеҳра дар функсияи _InferComplete_Vision() барои пеш.ampтарҳи Ле. Барои мисолample, вақте ки сабти рӯйхат муваффақ аст,
- Намоиши пешрафтро тавассути занг задан ба _FaceRecProcess_Stop();
- Бақайдгирии чеҳраро тавассути занг задан ба _SetFaceRec(kOASISLiteState_Stopped);
- Натиҷаи муваффақро дар GUI нишон диҳед: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Маълумоти чеҳраро дар базаи маълумот сабт кунед: _RegisterUserFace(s_UserId);
- Барои коркарди рӯйдодҳо функсияҳои бозгашти UI илова кунед: preview, бақайдгирии чеҳра, шинохтан ва нест кардани корбаре, ки аз GUI оғоз шудааст. Барои мисолample, занги бақайдгирии чеҳра: бекор UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- Ва функсияҳои _FaceRecProcess_Start () ва _FaceRecProcess_Stop() -ро илова кунед, то пешрафт ва вазъиятро дар рӯйдодҳо ва натиҷаҳои гуногун нишон диҳед.
- Функсияи бозгашти таймери ISR _SessionTimer_Callback() -ро навсозӣ кунед, то ки парвандаи вақт-аут тавассути занг занед: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Барои фаъол кардани баромади UI HAL дар board_define.h таърифҳои зерро илова кунед: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Огоҳӣ:
Барои беҳтар муаррифии хусусияти шинохти чеҳра, функсияро нигоҳ доред, то раванд ва натиҷаҳои шинохти чеҳраро дар баромади UI HAL нишон диҳад. Функсия дар зер тавсиф шудааст
- Росткунҷаи роҳнамои чеҳра кабудро нишон медиҳад ва сатри пешрафт пешрафтро ҳангоми оғози сабти ном ё шинохти чеҳра нишон медиҳад.
- Ҳангоми бомуваффақият сабти ном кардани чеҳра росткунҷаи роҳнамои рӯй сурх нишон медиҳад.
- Ҳангоми бомуваффақият шинохтани чеҳра росткунҷаи роҳнамои чеҳра сабзро нишон медиҳад.
- Росткунҷаи роҳнамои чеҳра кабуд нигоҳ медорад ва сатри пешрафт пешрафти пурраро нишон медиҳад, вақте ки амал пас аз ба итмом расидани мӯҳлати таймер номуваффақ аст. Дар он лаҳза сабти ном ё шинохти чеҳраро қатъ кунед.
Сатри пешрафт ва росткунҷаи роҳнамои чеҳра ҳамчун нишонаҳое пешниҳод карда мешаванд, ки дар бинарии манбаъ сохта шудаанд file ба Flash барномарезӣ карда шавад. Нишондиҳандаҳо ба маълумоти нишонаҳо дар SDRAM дар функсияи LoadIcons(APP_ICONS_BASE) насб карда мешаванд, ки дар баромади дастгоҳи UI HAL дар баромади UI HAL оғоз карда мешавад. Он бояд дастгирии нишонаҳо барои функсияро амалӣ созад.
Дастгирии нишонаҳоро амалӣ кунед
- Захираеро созед, ки нишонаҳо бо тасвирҳои дар барномаи LVGL GUI истифодашавандаро муттаҳид мекунад:
- Сарлавҳаи чор нишонаро клон кунед files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h ва virtual_face_red_420x426.h аз HMI интеллектуалӣ
\мошини қаҳва\ресурс\нишонаҳо\ ба нишонаҳои папкаи нав дар зери ҷузвдони захираҳои собиқample SW. - Роҳи ҷустуҷӯро барои чор нишона илова кунед fileс дар camera_preview_resource.txt file дар папкаи захираҳо, масаланample: тасвири ../resource/icons/process_bar_240x14.h
- Иҷро кардани camera_preview_resource_build.bat барои сохтани захираҳои тасвирҳо ва нишонаҳо барои тавлиди бин file camera_preview_resource.bin ва маълумот file resource_information_table.txt (Ба расми 6 нигаред).
- Сарлавҳаи чор нишонаро клон кунед files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h ва virtual_face_red_420x426.h аз HMI интеллектуалӣ
- Суроғаи оғозро дар SDRAM ва андозаи нишонаҳо дар app_config.h муайян кунед. Суроға дар паҳлӯи тасвирҳои барномаи GUI оғоз мешавад. Андоза дар маълумот тавлид карда мешавад file. #муайян кардани APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #муайян кардани APP_ICONS_SIZE 0x107c40
- Андозаи таъиншудаи бахши хотираро бо номи res_sh_mem бо аз нав муайян кардани он дар app_config.h ба 0x200000 навсозӣ кунед: #define RES_SHMEM_TOTAL_SIZE 0x200000 ва танзимоти мувофиқ дар Лоиҳа > Хусусиятҳо > C/C++ Сохта > Танзимоти MCU.
- Андозаи нишонаро ба андозаи умумии захираи аз Flash ба SDRAM боршуда дар функсияи APP_LoadResource() дар файли асосӣ илова кунед file lvgl_gui_face_rec_cm7.cpp: memcpy ((беэътибор *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Огоҳӣ: Барои анҷом додани хусусияти шинохти чеҳра, дастгирии барномаи LVGL GUI лозим аст. Функсияҳои бозгашти UI дар баромади UI HAL аз ҷониби барномаи LVGL GUI барои коркарди рӯйдодҳо аз экрани UI даъват карда мешаванд. Аз тарафи дигар, баромади UI HAL API-ро аз барномаи LVGL GUI даъват мекунад, то UI-ро навсозӣ кунад, то натиҷа ва ҳолатро нишон диҳад. Таҳияи барномаи LVGL GUI нисбатан мустақил буда, дар фасли 4.3 ҷорӣ карда шудааст.
4.1.5 Дастгоҳҳо ва мудирони HAL-ро барои шинохти чеҳра оғоз кунед
Алгои рӯъёи фаъол HAL ва баромади UI HAL ва менеҷерони онҳо дар асосӣ оғоз карда мешаванд file
lvgl_gui_face_rec_cm7.cpp пас аз табдили таҳия дар чаҳорчӯба ба таври зерин:
- Сарлавҳаро дохил кунед file бо ду менеҷери HAL бо илова кардани сатри код алоқаманд аст:
- #include " fwk_output_manager.h "
- #include "fwk_vision_algo_manager.h"
- Дастгоҳҳои HAL-ро эълон кунед:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Дастгоҳҳои HAL-ро ба қайд гиред:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Менеҷерҳоро оғоз кунед:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- Менеҷеронро оғоз кунед:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Афзалияти вазифаҳои менеҷеро муайян кунед:
- #муайян кардани VISION_ALGO_MANAGER_ВАЗИФАИ_АВФАРИЯТИ 3
- #муайян кардани натиљаи_менељер_вазифањои АВВАЛЛАНИ 1
Дастгирии пойгоҳи додаҳои рӯиро дар чаҳорчӯба илова кунед
Маълумоти хусусияти чеҳраи ба қайд гирифташуда дар махзани чеҳраи дар Flash захирашуда тавассути каме дастрас карда мешавад file система. Қадамҳои илова кардани дастгирии махзани чеҳра дар зер тавсиф шудаанд.
Илова кардани драйверҳо барои нигаҳдории Flash
Драйвери интерфейси Flash FlexSPI -ро нусхабардорӣ кунед files fsl_flexspi.c ва fsl_flexspi.h ва драйвери рамзгузории маълумот files fsl_caam.c ва fsl_caam.h аз роҳи SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ ба папкаи драйверҳои собиқample SW.
Дастгирии сатҳи шӯроро илова кунед
- Таърифҳои FlexSPI-ро, ки барои дастгоҳи Flash дар board.h истифода мешавад, илова кунед:
- #BOARD_FLEXSPI FLEXSPI1-ро муайян кунед
- #BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1-ро муайян кунед
- #муайян кардани BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Операторҳо ва конфигуратсияҳоро нусхабардорӣ кунед files-и дастгоҳи Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h дар папкаи pathee_config.conf аз собиқample SW.
- Пас аз клик кардани тугмаи рости муш дар C/C++ Build> Танзимот "Исри манбаъ аз сохтмон"-ро хориҷ кунед fileноми s' ва кушодани Хусусиятҳо барои имкон додани онҳо дар лоиҳа.
- Сарлавҳаи дохилшударо тағир диҳед fileноми sln_flash_config.h ба sln_flash_config_w25q256jvs.h дар sln_flash_config.c ва flexspi_nor_flash_ops.h.
- Манбаи соати FlexSPI1-ро дар file clock_config.c бо ишора ба барномаи мошини қаҳва.
Иловаи адаптер ва дастгирии сатҳи миёна
- нусхабардорӣ кунед files sln_flash.c, sln_flash.h, sln_encrypt.c ва sln_encrypt.h ҳамчун драйверҳои адаптер барои file система ва барнома аз роҳи интеллектуалии HMI\coffee_machine\cm7\source\ ба манбаи ҷузвдони собиқampле. Навсозии нав files:
- Барои сохтани онҳо "Исри захираҳо аз сохтмон" -ро хориҷ кунед.
- Ҳама сарлавҳаҳои дохилшударо тағир диҳед file номи sln_flash_config.h ба sln_flash_config_w25q256jvs.h.
- Папкаро нусхабардорӣ кунед fileсистемаи дорои API барои хурд fileсистема ва ронандаи HAL аз интеллектуалӣ HMI \coffee_machine\cm7\source\ ба собиқample SW. Ва барои папкаи нав навсозӣ кунед:
- Барои сохтмон дар он аломати "Исри захира аз сохтмон" -ро хориҷ кунед.
- Роҳи дохилкунии онро дар танзимоти лоиҳа илова кунед: “${workspace_loc:/${ProjName}/fileсистема}"
- Сарлавҳаи дохилшударо тағир диҳед file номи sln_flash_config.h ба sln_flash_config_w25q256jvs.h ва fica_definition.h ба app_config.h дар file sln_flash_littlefs.h.
- Папкаи littlefs-ро, ки дорои зарфи миёна аст, нусхабардорӣ кунед - каме fileсистема аз роҳи SDK_2_13_0_ MIMXRT1170-EVK\middleware\ ба собиқample SW. Ва папкаи навро навсозӣ кунед:
- Барои сохтмон дар он аломати "Исри захира аз сохтмон" -ро хориҷ кунед.
- Роҳи дохилкунии онро дар танзимоти лоиҳа илова кунед: "${workspace_loc:/${ProjName}/littlefs}"
Драйверҳои HAL илова кунед
- Ду дастгоҳи HAL вуҷуд дорад - file система ва махзани рӯи HAL барои хусусияти дастрасии махзани маълумот дастгирӣ карда мешавад ва онҳо аллакай дар чаҳорчӯба бидуни тағирот амалӣ карда мешаванд. Онҳоро тавассути илова кардани таърифҳои зер дар board_define.h фаъол созед:
- #муайян кардани ENABLE_FLASH_DEV_Littlefs
- # муайян кардани ENABLE_FACEDB
Ва номи махзани чеҳраи собиқро тағир диҳедample: #муайян кардани OASIS_FACE_DB_DIR "oasis_gui_face_rec"
Дастгирии сатҳи барномаро илова кунед
- Навсозии асосӣ file lvgl_gui_face_rec_cm7.cpp:
- Сарлавҳаро дохил кунед file марбут ба Flash file менеҷери системаи HAL тавассути илова кардани сатри код: #include "fwk_flash.h"
- Эълон кунед ва ба қайд гиред file дастгоҳи системаи HAL:
- HAL_FLASH_DEV_DECLARE(Кӯдакҳо);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Шарҳ: Дар file дастгоҳи системаи HAL бояд пеш аз оғоз кардани ҳамаи менеҷерҳои дастгоҳ дар функсияи APP_InitFramework() сабти ном карда шавад.
- Функсияи BOARD_ConfigMPU()-ро дар APP_BoardInit() барои танзими MPU даъват кунед.
- -ро таъин кунед file таъиноти система дар Flash дар file app_config.h тавассути муайян кардани таърифҳои макросҳои дар file sln_flash_littlefs.h:
- #муайян кардани FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #FICA_-ро муайян кунедFILE_SYS_SIZE (0x280000)
Конфигуратсияҳо
Баъзе рамзҳои марбут ба Flash дар минтақаи SRAM ITC барои иҷрои кофӣ иҷро карда мешаванд. Истинодҳои папкаи дорои конфигуратсияҳои пайвандкунандаро аз роҳи smart HMI\coffee_machine\cm7\ ба собиқ нусхабардорӣ кунед.ample SW.
Татбиқи барномаи LVGL GUI
Таҳияи барномаи LVGL GUI дар асоси чаҳорчӯба API-ҳоро аз баромади UI HAL даъват мекунад ва API-ҳоро барои баромади UI HAL таъмин мекунад (барои татбиқи баромади UI HAL нигаред ба фасли 4.1.3).
Аммо, татбиқи муфассали барномаи LVGL GUI аз талабот ва тарҳрезии барнома вобаста аст. Барномаи GUI дар ин собиқample тавре тарҳрезӣ шудааст, ки дар аввали боби 4 тавсиф шудааст.
Дар зер муқаддимаҳои амалӣ оварда шудаанд:
- Рамзҳои фармоишӣ дар custom.c ва custom.h, ки аз ҷониби GUI Guider ҳамчун интерфейси байни лоиҳаи GUI Guider ва лоиҳаи системаи дарунсохт дода шудаанд, амалӣ карда мешаванд.
- Барои ноил шудан ба вазифаҳои зерин, функсияҳои нав бо номи gui_xxx() дар custom.c илова кунед:
- Барои баромади UI HAL ва барномаи GUI барои навсозии UI.
- Барои барномаи GUI барои ангезиши рӯйдодҳо тавассути занг задан ба функсияҳои бозгашти UI аз баромади UI HAL.
Барои мисолample, функсияи нави gui_event_face_rec_action () функсияҳои занги UI-ро барои идора кардани яке аз рӯйдодҳои бақайдгирии чеҳра, шинохти чеҳра ва ҳазфи корбар, ки аз барномаи GUI ҳангоми пахш кардани тугмаи дахлдор оғоз мешавад, даъват мекунад.
Эзоҳ: Функсияи gui_set_virtual_face() дар баромади UI HAL барои пеш даъват шудаастview режим бояд дар custom.c амалӣ карда шавад:
- Функсияи Clone gui_set_virtual_face () аз HMI интеллектуалӣ \ coffee_machine \ cm4 \ одати \ custom.c.
- Номи виджетро home_img_cameraPre тағир диҳедview ба screen_img_camera_preview дар функсия.
- Функсияҳои бозгашти UI-ро бо як прототип ба ҳамаи онҳое, ки дар баромади UI HAL таҳти назорати таърифи макрос #ifndef RT_PLATFORM дар custom.c амалӣ кунед, то ки бо лоиҳаи GUI Guider мувофиқ бошанд, зеро ин функсияҳо дар баромади UI HAL аз платформаи дарунсохт. Дар custom.c, онҳо аз симулятор дар роҳнамои GUI вобастаанд ва аз платформаи дарунсохт мустақиланд. Барои мисолample, бозпас занги бақайдгирии чеҳра ба таври зер барои симулятори GUI Guider иҷрошаванда амалӣ карда мешавад: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = бардурӯғ; бозгашт; }
Шарҳ: Ба ҳамон прототипи функсияе, ки дар қадами 6-и фасли 4.1.3 оварда шудааст, муроҷиат кунед
Таърифи макросҳои RT_PLATFORM дар танзимоти лоиҳаи MCUXpresso тавре ки дар расми 7 нишон дода шудааст, гузошта шудааст: - Ҳама функсияҳои бо номи UI_xxx_Callback() ва gui_xxx()-ро дар custom.h эълон кунед ва custom.h-ро дар smart_tlhmi_event_descriptor.h илова кунед, то API-ҳои GUI-ро ба баромади UI HAL мубодила кунед.
- Барои ноил шудан ба вазифаҳои зерин, функсияҳои нав бо номи gui_xxx() дар custom.c илова кунед:
- GUI-ро дар роҳнамои GUI таҳия кунед:
- Камераи папкаро пешакӣ клон кунедview дорои нармафзори лоиҳаи GUI Guider дар ҷузвдони gui_guider дар бастаи нармафзори асосӣ lvgl_gui_camera_preview_cm7. Номи марбути camera_pre-ро тағир диҳедview ба face_rec барои собиқ навampле.
- custom.c ва фармоиши дар боло навшуда нусхабардорӣ кунед. h ба нармафзори лоиҳаи нави GUI Guider.
- Лоиҳаи нави face_rec -ро дар GUI Guider кушоед. Навсозӣ ба таври зерин:
- Илова кардани тугмаи нав бо нишони "Нест кардани корбар". Ба он парчами Пинҳонро илова кунед, то вақте ки барномаи GUI оғоз меёбад, тугма пинҳон шавад.
- Хатти коди занги API gui_event_face_rec_action() бо параметри ID-и ҳодисаи гуногун дар триггери "Озодшуда" дар Танзимоти Ҳодисаҳои ҳама тугмаҳои Бақайдгирӣ, Шинохтан ва Нест кардани корбар барои ангезиши рӯйдодҳои бақайдгирии чеҳра, шинохти чеҳра ва нест кардани корбар илова кунед. Дар расми 8 рамзи ҳодисаи тугмаи Бақайдгирӣ нишон дода шудааст:
- Рамзи тавлидшударо аз GUI Guider ба лоиҳаи MCUXpresso навсозӣ кунед.
- Мундариҷаро ба истиснои тасвирҳои ҷузвдони дар папкаи тавлидшудаи лоиҳаи MCUXpresso SW бо ҷузвдони мувофиқ дар папкаи тавлидшудаи лоиҳаи GUI Guider SW иваз кунед.
Шарҳ: Барои тафсилоти бештар дар бораи тағиротҳои дар боло овардашуда, санҷед собиқampнармафзор дар https://mcuxpresso.nxp.com/appcodehub.
Санҷишҳо бо собиқampлоиҳа
Барои гирифтани собиқampбастаи нармафзоре, ки дорои захираҳо ва абзорҳо барои ин барнома қайд шудааст, боздид кунед: https://mcuxpresso.nxp.com/appcodehub. Собиқро кушоедample лоиҳа дар MCUXpresso IDE. Сохта ва барномарезии .axf file ба суроғаи 0x30000000 муроҷиат кунед ва бинни захираҳоро барномарезӣ кунед file camera_preview_resource.bin ба суроғаи 0x30800000.
LVGL GUI шинохти чеҳраи собиқample одатан ба таври зерин кор мекунад:
- Пешview: Ҳангоми пур кардани барқ, ҷараёнҳои видеоие, ки аз ҷониби камера гирифта шудааст, дар майдони мушаххаси пешакии камера нишон дода мешавадview дар экрани GUI. Нишони вазъ "Преview…». Барои тафсилот, ба расми 3 нигаред. Тугмаи Нест кардани корбар пинҳон аст. Ҳангоми пахш кардани майдони берун аз тугмаҳо ва тасвирҳо, он пешакӣ нишон медиҳадview пас аз ба охир расидани амали бақайдгирии чеҳра ё шинохти рӯйдодро ҳамчун дар боло қайд кунед.
- Бақайдгирӣ:
- тарп: Вақте ки тугмаи Бақайдгирӣ пахш карда мешавад, бақайдгирии чеҳра оғоз мешавад. Нишони вазъ барои намоиши "Бақайдгирӣ..." тағир меёбад, росткунҷаи роҳнамои рӯй кабудро нишон медиҳад ва сатри пешрафт нишон додани пешрафтро оғоз мекунад. Боварӣ ҳосил кунед, ки чеҳраи корбар дар росткунҷаи дастури чеҳраи кабуд барои бақайдгирӣ нишон дода мешавад.
- муваффакият: Нишони вазъ "Бақайдгирӣ… Хуб" ва рақами ID-и корбари ба қайд гирифташударо нишон медиҳад, росткунҷаи роҳнамои чеҳра сурх мешавад, агар сабти чеҳра бомуваффақият анҷом ёбад, пеш аз он ки пешрафт дар сатр пурра нишон дода шавад.
- Нокомӣ -> Вақт тамом шуд: Нишони вазъ "Бақайдгирӣ... Вақт тамом шуд" -ро нишон медиҳад, агар сабти чеҳра ҳанӯз ноком бошад, вақте ки пешрафт дар сатр пурра нишон дода мешавад.
- Нокомӣ -> Нусхабардорӣ: Нишони вазъ "Бақайдгирӣ... Муваффақ шуд" нишон медиҳад, росткунҷаи роҳнамои чеҳра сабз мешавад, агар чеҳраи ба қайд гирифташуда пеш аз пурра нишон додани пешрафт дар сатр шинохта шавад.
- шинохт:
- Оғоз: Вақте ки тугмаи Шинохтан пахш карда мешавад, шинохти чеҳра оғоз мешавад. Нишони вазъ барои намоиши "Шинохт..." тағир меёбад, росткунҷаи роҳнамои рӯй кабудро нишон медиҳад ва сатри пешрафт нишон додани пешрафтро оғоз мекунад. Боварӣ ҳосил кунед, ки чеҳраи корбар дар росткунҷаи дастури рӯи кабуд барои сабти ном нишон дода мешавад.
- муваффакият: Нишони вазъ "Шинохт… Хуб" ва рақами мушаххаси корбарро нишон медиҳад, росткунҷаи дастури чеҳра сабз мешавад, агар шинохти чеҳра бомуваффақият анҷом ёбад, пеш аз он ки пешрафт дар сатр пурра нишон дода шавад. Дар ин лаҳза тугмаи "Нест кардани корбар" пайдо мешавад. Ин маънои онро дорад, ки корбар иҷозат дода мешавад, ки танҳо ҳангоми шинохтани он ҳазф карда шавад.
- ахвол: Нишони вазъ "Шинохт... Вақт тамом шуд" -ро нишон медиҳад, агар шинохти чеҳра ҳанӯз ноком бошад, вақте ки пешрафт дар сатр пурра нишон дода мешавад.
- Корбарро нест кунед: Вақте ки тугмаи "Нест кардани корбар" пахш карда мешавад, пас аз бомуваффақият шинохти чеҳра, нишони вазъ ба намоиши "Нест кардани корбар... Хуб" тағир меёбад ва росткунҷаи роҳнамои чеҳра кабуд мешавад ва пешрафт дар сатр пурра нишон дода мешавад. Тугмаи Нест кардани корбар дубора пинҳон мешавад. Чеҳраи/корбари эътирофшуда аз пойгоҳи додаҳо нест карда мешавад. Ин маънои онро дорад, ки ин чеҳра/корбар то дубора ба қайд гирифта нашавад, шинохта намешавад.
Дар бораи рамзи сарчашма дар ҳуҷҷат қайд кунед
ExampРамзи дар ин ҳуҷҷат нишон додашуда дорои ҳуқуқи муаллифӣ ва иҷозатномаи BSD-3-Clause:
Copyright 2024 NXP Азнавтақсимкунӣ ва истифода дар шаклҳои манбаъ ва дуӣ, бо ё бидуни тағир, иҷозат дода мешавад, ки шартҳои зерин риоя карда шаванд:
- Бозтақсимоти рамзи сарчашма бояд огоҳиномаи дар боло зикршуда оид ба ҳуқуқи муаллиф, ин рӯйхати шартҳо ва радди зеринро нигоҳ дорад.
- Аз нав тақсимот дар шакли дуӣ бояд огоҳиномаи дар боло зикршуда дар бораи ҳуқуқи муаллифро дубора тавлид кунад, ин рӯйхати шартҳо ва радкунии зерин дар ҳуҷҷатҳо ва/ё дигар маводҳо бояд бо тақсимот таъмин карда шаванд.
- На номи дорандаи ҳуқуқи муаллиф ва на номи саҳмгузорони он барои тасдиқ ё таблиғи маҳсулоте, ки аз ин нармафзор гирифта шудаанд, бидуни иҷозати хаттии мушаххас истифода намешаванд.
ИН НАРМИНО АЗ ТАРАФИ СОХИБОНИ ХУКУКИ МУАЛЛИФ ВА САХМГИРАНДАГОН «ЧУНОНАИ ХУРДАСТ» ВА ЯГОН КАФОЛАТХОИ ОЗОД Ё МАСЛИМ, АЗ ЧУМЛА, АММО БО МАХДУД НАШУДА, КАФОЛАТХОИ МАСЪАЛИИ КОРХОНАХОИ КОРХОНА ВА КОРХОНАХО пешниход карда мешаванд. РАД КАРД. СОХИБИ ХУКУКИ МУАЛЛИФЙ Ё САХМГУЗОРОН БА ЯГОН ХОЛ БАРОИ ЯГОН ХАР ЗАРАРИ мустаким, бавосита, тасодуфй, махсус, намунавй ва окибатй (аз чумла, вале ба таври махдуд тобеъ буда,) чавобгар намебошанд. ХИЗМАТРАСОНИИ ИСТИФОДА, МАЪЛУМОТ Ё ФОИДА Ё ДАСТГИРИИ ТИҶОРӢ) АММО АЗ БАРОИ ЯГОН НАЗАРИЯИ ҶАВОБГАРӢ, ХОҲ ДАР ШАРТНОМА, ХОҲӢ ҶАВОБГИРИИ ҚАТЪӢ ВА ДИГАР ДИГАРГУНӢ; ДАР БОРАИ ИСТИФОДАИИ ИН НАМЪИЯТ, ХАТТО АГАР ДАР БОРАИ ИМКОНИЯТИ ЧУНИН ЗАРАР ОГОХ КУНЕД.
Таърихи ревизия
Маълумоти ҳуқуқӣ
Таърифҳо
Лоиҳа — Ҳолати лоиҳаи ҳуҷҷат нишон медиҳад, ки мӯҳтаво то ҳол таҳти назорати дохилӣ қарор дорадview ва бояд расман тасдиқ карда шавад, ки метавонад ба тағйирот ё иловаҳо оварда расонад. NXP Semiconductors оид ба саҳеҳӣ ё пуррагии иттилооте, ки дар нусхаи лоиҳаи ҳуҷҷат ҷой дода шудааст, ҳеҷ гуна изҳорот ё кафолат намедиҳад ва барои оқибатҳои истифодаи чунин маълумот масъулият надорад.
Радди масъулият
- Кафолат ва масъулияти маҳдуд — Маълумот дар ин ҳуҷҷат дуруст ва боэътимод ҳисобида мешавад. Аммо, NXP Semiconductors дар бораи дурустӣ ё пуррагии чунин маълумот ҳеҷ гуна изҳорот ё кафолати возеҳ ё дар назар дошта намедиҳад ва барои оқибатҳои истифодаи чунин маълумот масъулият надорад. NXP Seminoductors барои мӯҳтавои ин ҳуҷҷат масъулият ба дӯш намегирад, агар аз ҷониби манбаи иттилооти берун аз NXP Semiconductors дода шавад.
Ба ҳеҷ ваҷҳ NXP Semiconductors барои зарари ғайримустақим, тасодуфӣ, ҷаримавӣ, махсус ё пай дар пай (аз ҷумла - бидуни маҳдудият - фоидаи аз даст рафта, пасандозҳои аз даст рафта, қатъи тиҷорат, хароҷоти вобаста ба хориҷ кардан ё иваз кардани ҳама гуна маҳсулот ё пардохтҳои коркард) масъулият надорад. ё ин ки чунин зарар ба шиканҷа (аз ҷумла хунукназарӣ), кафолат, вайрон кардани шартнома ё дигар назарияи ҳуқуқӣ асос ёфтааст.
Сарфи назар аз ҳар гуна хисороте, ки муштарӣ метавонад бо ягон сабаб расонида шавад, масъулияти маҷмӯӣ ва масъулияти маҷмӯии NXP Semiconductors дар назди муштарӣ барои маҳсулоти дар ин ҷо тавсифшуда тибқи шартҳо ва шартҳои фурӯши тиҷоратии NXP Seminoductors маҳдуд карда мешавад. - Ҳуқуқ ба ворид кардани тағирот — NXP Semiconductors ҳуқуқ дорад, ки ба маълумоти дар ин ҳуҷҷат нашршуда, аз ҷумла бидуни маҳдудият мушаххасот ва тавсифи маҳсулот, дар вақти дилхоҳ ва бидуни огоҳӣ тағйирот ворид кунад. Ин ҳуҷҷат ҳама маълумоти пеш аз интишори он пешниҳодшударо иваз мекунад ва иваз мекунад.
- Муносиб барои истифода — Маҳсулоти NXP Semiconductors тарҳрезӣ нашудаанд, иҷозат дода нашудаанд ё кафолат дода нашудаанд, ки барои истифода дар таъминоти ҳаёт, системаҳо ё таҷҳизоти аз ҷиҳати ҳаёт муҳим ё аз ҷиҳати бехатарӣ муҳим истифодашаванда ва инчунин дар барномаҳое, ки нокомӣ ё корношоямии маҳсулоти NXP Semiconductors ба таври оқилона интизор шуданаш мумкин аст осеби шахсӣ, марг ё зарари ҷиддии молу мулк ё муҳити зист. NXP Seminoductors ва таъминкунандагони он барои дохил кардан ва/ё истифодаи маҳсулоти NXP Semiconductors ба чунин таҷҳизот ё барномаҳо масъулият намегиранд ва аз ин рӯ, ин дохилкунӣ ва/ё истифода ба масъулияти худи муштарӣ гузошта мешавад.
- Барномаҳо — Барномаҳое, ки дар ин ҷо барои ҳар яке аз ин маҳсулот тавсиф шудаанд, танҳо бо мақсади тасвирӣ мебошанд. NXP Semiconductors ҳеҷ гуна изҳорот ё кафолат намедиҳад, ки ин гуна барномаҳо бидуни озмоиш ё тағироти минбаъда барои истифодаи мушаххас мувофиқанд.
Мизоҷон барои тарҳрезӣ ва кори барномаҳо ва маҳсулоти худ бо истифода аз маҳсулоти NXP Semiconductors масъуланд ва NXP Semiconductors барои ҳама гуна кӯмак дар барномаҳо ё тарҳрезии маҳсулоти муштарӣ масъулият намегирад. Муайян кардани он, ки оё маҳсулоти NXP Semiconductors барои замимаҳои муштарӣ ва маҳсулоти ба нақша гирифташуда, инчунин барои татбиқи банақшагирифташуда ва истифодаи муштарӣ(ҳо)-и тарафи сеюм мувофиқ ва мувофиқ аст, масъулияти муштарӣ аст. Мизоҷон бояд барои кам кардани хатарҳои марбут ба барномаҳо ва маҳсулоти худ чораҳои тарҳрезии мувофиқ ва амалиётиро таъмин кунанд. NXP Semiconductors ҳеҷ гуна масъулиятро вобаста ба ҳама гуна нобаёнӣ, осеб, хароҷот ё мушкилоте, ки ба ҳар гуна заъф ё нобаёнӣ дар замимаҳо ё маҳсулоти муштарӣ ё барнома ё истифодаи муштарӣ(ҳо)-и сеюм асос ёфтааст, ба дӯш намегирад. Фармоишгар барои анҷом додани ҳама санҷишҳои зарурӣ барои замимаҳо ва маҳсулоти муштарӣ бо истифода аз маҳсулоти NXP Semiconductors масъул аст, то аз нобаёнӣ дар барномаҳо ва маҳсулот ё барнома ё истифода аз муштарӣ(ҳо)-и муштарӣ пешгирӣ кунад. NXP дар ин маврид ҳеҷ гуна масъулиятро ба дӯш намегирад. - Шарт ва шартҳои фурӯши тиҷоратӣ — Маҳсулоти NXP Semiconductors тибқи шартҳои умумии фурӯши тиҷоратӣ, ки дар https://www.nxp.com/pro нашр шудааст, фурӯхта мешаванд.file/шартҳо, агар дар созишномаи хаттии инфиродӣ тартиби дигаре пешбинӣ нашуда бошад. Дар сурати баста шудани шартномаи инфиродӣ танҳо шартҳои шартномаи дахлдор татбиқ мешаванд. NXP Semiconductors бо ин ба таври возеҳ ба татбиқи шарту шартҳои умумии муштарӣ дар мавриди харидории маҳсулоти NXP Semiconductors аз ҷониби муштарӣ эътироз мекунад.
- Назорати содирот — Ҳуҷҷати мазкур ва инчунин ҷузъ(ҳо)-и дар ин ҷо тавсифшуда метавонанд таҳти қоидаҳои назорати содирот қарор гиранд. Содирот метавонад иҷозати пешакӣ аз мақомоти салоҳиятдорро талаб кунад.
- Муносиб будан барои истифода дар маҳсулоти соҳибихтисос ғайри автомобилӣ — Агар ин ҳуҷҷат ба таври возеҳ нагӯяд, ки ин маҳсулоти мушаххаси NXP Semiconductors дорои тахассуси автомобилӣ аст, маҳсулот барои истифодаи автомобил мувофиқ нест. Он мувофиқи санҷиши автомобилӣ ё талаботҳои дархост на тахассус дорад ва на санҷида шудааст. NXP Semiconductors барои дохил кардан ва/ё истифодаи маҳсулоти тахассусии ғайриавтомобилӣ ба таҷҳизоти автомобилӣ ё замимаҳо масъулият намегирад.
Дар ҳолате, ки фармоишгар маҳсулотро барои тарҳрезӣ ва истифода дар барномаҳои автомобилӣ мувофиқи мушаххасот ва стандартҳои автомобилӣ истифода барад, муштарӣ (a) бояд маҳсулотро бидуни кафолати NXP Semiconductors ба маҳсулот барои чунин замимаҳои автомобилӣ, истифода ва мушаххасот истифода барад ва ( б) ҳар вақте ки муштарӣ маҳсулотро барои барномаҳои автомобилӣ берун аз мушаххасоти NXP Semiconductors истифода мебарад, ин истифода танҳо ба зиммаи худи муштарӣ гузошта мешавад ва (в) муштарӣ пурра ҷуброни NXP Semiconductors-ро барои ҳама гуна масъулият, хисорот ё даъвоҳои нокомии маҳсулот дар натиҷаи тарҳрезӣ ва истифодаи маҳсулот барои барномаҳои автомобилӣ берун аз кафолати стандартии NXP Semiconductors ва мушаххасоти маҳсулоти NXP Semiconductors. - Тарҷумаҳо — Варианти ғайри англисӣ (тарҷумашудаи) ҳуҷҷат, аз ҷумла маълумоти ҳуқуқии ин ҳуҷҷат, танҳо барои истинод аст. Дар сурати мавҷуд будани ихтилоф байни тарҷумаҳои тарҷумашуда ва англисӣ нусхаи англисӣ бартарӣ дорад.
- Амният — Мизоҷон мефаҳмад, ки ҳама маҳсулоти NXP метавонанд осебпазирии номаълум дошта бошанд ё метавонанд стандартҳои муқарраршудаи амният ё мушаххасотро бо маҳдудиятҳои маълум дастгирӣ кунанд. Муштарӣ барои тарҳрезӣ ва кори барномаҳо ва маҳсулоти он дар тӯли давраи зиндагии онҳо масъул аст, то таъсири ин осебпазириро ба замимаҳо ва маҳсулоти муштарӣ коҳиш диҳад. Масъулияти муштарӣ инчунин ба дигар технологияҳои кушода ва/ё хусусӣ, ки аз ҷониби маҳсулоти NXP барои истифода дар замимаҳои муштарӣ дастгирӣ мешаванд, дахл дорад. NXP барои ягон осебпазирӣ масъулият надорад. Муштарӣ бояд мунтазам навсозиҳои амниятро аз NXP тафтиш кунад ва ба таври мувофиқ пайгирӣ кунад. Фармоишгар бояд маҳсулоти дорои хусусиятҳои бехатариро интихоб кунад, ки ба қоидаҳо, қоидаҳо ва стандартҳои татбиқи пешбинишуда беҳтар мувофиқат кунад ва дар бораи маҳсулоти худ қарорҳои ниҳоии тарроҳӣ қабул кунад ва барои риояи тамоми талаботи қонунӣ, меъёрӣ ва амниятӣ нисбат ба маҳсулоти худ, новобаста аз он, масъул аст. ҳама гуна маълумот ё дастгирӣ, ки метавонад аз ҷониби NXP пешниҳод карда шавад.
NXP дорои Гурӯҳи Вокуниш ба Ҳодисаҳои Амнияти Маҳсулот (PSIRT) (дастрас кардан мумкин аст PSIRT@nxp.com), ки тафтишот, гузоришдиҳӣ ва ҳалли ҳалли осебпазирии амнияти маҳсулоти NXP-ро идора мекунад.
NXP BV — NXP BV як ширкати амалиётӣ нест ва он маҳсулотро паҳн намекунад ё намефурӯшад.
Тамғаҳои молӣ
Огоҳӣ: Ҳама тамғаҳои истинодшуда, номҳои маҳсулот, номҳои хидматӣ ва тамғаҳои молӣ моликияти соҳибони мувофиқ мебошанд.
NXP — тамға ва логотип тамғаҳои тиҷоратии NXP BV мебошанд
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Мали, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — тамғаҳои молӣ ва/ё тамғаҳои ба қайд гирифташудаи Arm Limited (ё фаръӣ ё филиалҳои он) дар ИМА ва/ё мебошанд дар ҷои дигар. Технологияи марбута метавонад бо ҳама ё ҳама патентҳо, ҳуқуқи муаллифӣ, тарҳҳо ва сирри тиҷоратӣ ҳифз карда шавад. Ҳамаи ҳуқуқ маҳфуз аст.
- i.MX — тамғаи молии NXP BV мебошад
- J-Link — тамғаи молии SEGGER Microcontroller GmbH мебошад.
Microsoft, Azure ва ThreadX — тамғаҳои тиҷоратии гурӯҳи ширкатҳои Microsoft мебошанд.
Лутфан огоҳ бошед, ки огоҳиҳои муҳим дар бораи ин ҳуҷҷат ва маҳсулот(ҳо)-и дар ин ҷо тавсифшуда дар бахши "Маълумоти ҳуқуқӣ" дохил карда шудаанд.
© 2024 NXP BV
Барои маълумоти бештар ба ин муроҷиат кунед: https://www.nxp.com
- Санаи нашр: 19 апрели 2024
- Муайянкунандаи ҳуҷҷат: AN14263
Саволҳои зиёд такрормешуда
Савол: Мақсади асосии ин маҳсулот чист?
Ҷавоб: Ҳадафи асосӣ фаъол кардани функсияи шинохти чеҳра бо истифода аз модели алгоритми рӯъёи AI ва ML бо LVGL GUI собиқ аст.ampле дар тахтаи SLN-TLHMI-IOT.
Савол: Чӣ тавр таҳиягарон аз ин ёддошти барнома манфиат гирифта метавонанд?
Ҷавоб: Таҳиягарон метавонанд бо истифода аз усули пештараи пешниҳодшуда қадам ба қадам шинохти чеҳраро дар чаҳорчӯба омӯзанд.ampмудирони дастгоҳҳо, дастгоҳҳои HAL ва механизмҳои ҳодисаро дарк кунед.
Ҳуҷҷатҳо / Сарчашмаҳо
![]() |
NXP AN14263 Татбиқи LVGL GUI Шинохти чеҳра дар Framewor [pdf] Дастури корбар AN14263 Татбиқи LVGL GUI Шинохти чеҳра дар Framewor, AN14263, Татбиқи LVGL GUI Шинохти чеҳра дар Framewor, LVGL GUI Шинохти чеҳра дар Framewor, Шинохти чеҳра дар Framewor, Шинохти чеҳра дар Framewor, Шинохтани чеҳра дар Framewor |