NXP AN14263 Спроведување на LVGL GUI препознавање лице на Framewor
Информации за производот
Спецификации
- Име на производ: LVGL GUI Препознавање лице на рамка
- Ревизија на документот: 1 - 19 април 2024 година
- Клучни зборови: Препознавање лице, LVGL GUI, Рамка
Упатство за употреба на производот
- Во текот наview
Овој производ овозможува модел на алгоритам за визија AI&ML за препознавање лице на рамка за спроведување на функцијата за препознавање лице со едноставен LVGL GUI exampле на таблата 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, софтверот за решенија е конструиран на дизајн наречен рамка што поддржува флексибилни дизајни и прилагодување на функциите на видот и гласот. За да им се помогне на корисниците подобро да ја користат софтверската платформа, обезбедени се некои основни документи, на прampле, корисничко упатство за развој на софтвер. Водичот го воведува основниот софтверски дизајн и архитектура на апликациите кои ги покриваат сите компоненти на решението вклучувајќи ја и рамката за да им помогне на програмерите полесно и поефикасно да ги имплементираат своите апликации користејќи SLN-TLHMI-IOT.
За повеќе детали за решението и релевантните документи, посетете ја web страница на NXP EdgeReady Smart HMI решение засновано на i.MX RT117H со ML Vision, Voice и графички интерфејс. Сепак, сè уште не е толку лесно за програмерите да ги имплементираат своите паметни HMI апликации повикувајќи се на овие основни водичи. Се планираат серија белешки за апликација кои ќе помогнат чекор по чекор да се проучува развојот на рамката. Оваа белешка за апликација се базира на Implement LVGL GUI Camera Preview на Рамка (документ 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 Guider.
Развојна средина
Прво, подгответе и поставете хардверско и софтверско опкружување за имплементирање на прampле на рамката.
Хардверско опкружување
Хардверското опкружување е поставено за потврдување на прampле:
- Паметниот комплет за развој на HMI базиран на NXP i.MX RT117H (комплет SLN_TLHMI_IOT)
- SEGGER J-Link со 9-пински Cortex-M адаптер и V7.84a или понова верзија на драјверот
Софтверско опкружување
Софтверското опкружување е поставено за развој на ексampле:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – прampле кодот на втората апликативна белешка како основен софтвер на развојот. За детали, видете 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. Алгото за визија HAL (OASIS_HAL) ги има следните процеси:
- Направете регистрација и препознавање лица преку моделот на алгоритам за визија AI&ML откако ќе ги добиете поврзаните настани од излезниот UI HAL. Известете ги резултатите од заклучоците од моделот на алгоритам до излезниот UI HAL.
- Пристапува (додавање, бришење…) до базата на податоци за карактеристиките на лицето врз основа на малку file систем со повикување на API-ите на FaceDB HAL по добивањето на поврзаните настани од излезниот UI HAL.
- Побарајте ја видео рамката од камерата од HAL камерата кога правите регистрација и препознавање лица.
Спроведување на препознавање лица на рамката
LVGL GUI за препознавање лица прample (првampле е обезбеден подоцна) на рамката се спроведува врз основа на прampле кодови на Имплементација на LVGL GUI Camera Preview на Рамка (документ AN14147).
За демонстрирање на препознавање на лица во прampле, основната функција на апликацијата GUI (видете го главниот екран на Слика 3) е дизајнирана како што е опишано подолу:
- Апликацијата GUI го активира настанот за регистрација или препознавање лице на излезниот UI HAL кога ќе кликнете на копчето Регистрација или препознавање. И излезниот UI HAL го известува настанот за додавање корисник во визуелниот алго HAL откако регистрацијата на лицето е успешна.
- Апликацијата GUI го активира настанот на бришење корисник на излезниот UI HAL кога ќе кликнете на копчето Избриши корисник откако ќе се препознае лицето на корисникот.
- Апликацијата GUI го активира настанот на запирање на алгото на оазата да работи до излезниот UI HAL кога се кликнува на екранот надвор од копчињата и сликите.
Подгответе го софтверскиот пакет за имплементација на прampле.
- Клонирајте го основниот софтвер lvgl_gui_camera_preview_cm7. Променете го името на проектот и главната fileиме на lvgl_gui_face_rec_cm7.
- Рамката е потребна за да се ажурира во софтверот бидејќи изворните кодови за јадрото на рамката почнаа да бидат јавни на GitHub од верзијата 1.1.2.
- Заменете ја рамката папка со копијата на V1.1.2 од GitHub освен за files fwk_log.h и fwk_common.h под inc\ бидејќи тие се изменети за серијата белешки за апликација. Операциите се прикажани на Слика 4:
- Избришете ја папката frame_cm7 под групата libs и отстранете ја библиотеката frame_cm7 и нејзината патека за пребарување конфигурирана во Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries бидејќи изворниот код на јадрото е обезбеден.
Овозможете ја функцијата за препознавање лице на рамката
Функцијата за препознавање лице е изградена на моделот на алгоритам ML vision обезбеден како статична библиотека - библиотека за време на траење оаза лајт од NXP. Библиотеката е мала, високо ефикасна, приспособена и оптимизирана библиотека со вештачка интелигенција. Моделот вклучува откривање лице, препознавање лице, откривање стакло и детекција на живост. Главно го обезбедува API OASISLT_run_extended() за извршување на линијата за препознавање лица додека ги ажурира резултатите до повикувачот преку повратни повици на настани, и додава/ажурира/брише лица во базата преку повратни повици на базата на податоци за лица откако ќе ги наведе информациите за изворната рамка, повратните повици и меморијата базен што го користи библиотеката со повикување на друго API OASISLT_init() при иницијализација. Повикувањето на API и функциите за повратен повик се имплементирани во визуелниот алго HAL на рамката.
Додадете библиотека со модели на алго за визија
- Копирај ја оазата на папката што ја содржи библиотеката и поврзаното заглавие file од паметниот HMI\coffee_machine\cm7\libs\ во папката ливчиња на ексample SW.
- Додадете ја патеката за пребарување на заглавието file во Project > Properties > C/C++ Build > settings > Tool Settings > MCU C компајлер > Includes and MCU C++ компајлер > Вклучува: „${workspace_loc:/${ProjName}/libs/oasis/include}“
- Додајте го lib и неговата патека за пребарување на Project > Properties > C/C++ Build > settings > MCU C+ + Linker > Libraries: liboasis_lite2D_DEFAULT_117f_ae.a „${workspace_loc:/${ProjName}/libs/oasis}“ и макро дефиницијата на овозможете ја функцијата на Project > Properties > C/C++ Build > settings > Tool Settings > MCU C компајлер > Preprocessor и MCU C++ компајлер > Preprocessor: SMART_TLHMI_2D
Овозможи визија алго HAL
Визијата алго HAL го поттикнува моделот на визија алго да работи и одговара на резултатите на излезот HAL на интерфејсот откако ќе ги прими настаните од него.
За да го овозможите, клонирајте го постоечкиот сличен драјвер за HAL file каде што се имплементирани следните функции:
- Имплементирајте ги повратните повици на операциите на базата на податоци за лица и справувањето со настани.
- Придвижете го алгото за визија да работи со повикување на API-ите на библиотеката на оазата.
- Пристапете до базата на податоци за лица на корисникот и база на апликации (не е потребна во прampле).
- Примајте настани од и испраќајте резултати до излезниот UI HAL.
Главните работи за спроведување на HAL за ексampсе:
- Клонирајте го постоечкиот сличен драјвер за HAL file и променете ги поврзаните имиња.
- Отстранете ги шифрите поврзани со операциите со податоци на апликацијата.
- Ажурирајте ги дефинициите и функциите за справување со настаните од излезниот UI HAL според прampдизајн.
- Додадете ги конфигурациите потребни за иницијализација на оазата.
Деталните чекори се како што следува:
- Клонирајте hal_vision_algo_oasis_coffeemachine.в. Променете го fileиме на hal_vision_algo_oasis_guifacerec.c. И заменете ги сите низи CoffeeMachine со GUIFaceRec во file.
- Отстранете ги шифрите што ја содржат низата coffeedb (не се осетливи на букви) поврзана со базата на податоци на апликациите, на пр.ample, #вклучи hal_sln_coffeedb.h.
- Изменете ја функцијата HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() за справување со настаните од излезниот UI HAL.
- Променете ја дефиницијата на настанот kEventFaceRecId_RegisterCoffeeSelection во kEventFaceRecId_RegisterUserFace и низата структура regCoffeeSelection во regGUIFaceRec за справување со настани за да додадете нови податоци за карактеристиките на лицето во базата на податоци.
- За да се прикаже стандардниот процес на дејствата за препознавање лица во прampЛе, изменете го ракувањето во случајот на kEventFaceRecID_OasisSetState со дефинициите на состојбите:
- kOASISLiteState
- Регистрација kOASISLiteState
- Препознавање kOASISLiteState
- Застана
- Додадете и изменете ги дефинициите за настаните споменати во горниот чекор.
- Копирајте го заглавието file smart_tlhmi_event_descriptor.h од паметната HMI\coffee_machine \cm7\source\event_handlers\ во изворот на папката на ексample SW. Ажурирајте го file како подолу:
- Променете ја дефиницијата на настанот kEventFaceRecId_RegisterCoffeeSelection во kEventFaceRecId_RegisterUserFace во нумеричкиот тип _event_smart_tlhmi_id и структурата низа regCoffeeSelection во regGUIFaceRec во структурата _eventh.smart_ Значи, сменете ја структурата register_coffee_selection_event_t за regCoffeeSelection во register_gui_facerec_event_t.
- Избришете ги другите содржини што се користат за апликацијата машина за кафе, на прample, кодната линија за гласот: #include „hal_event_descriptor_voice.h“.
- Додајте ги типовите kOASISLiteState_Stopped и kOASISLiteState_Running на нумеричкиот тип oasis_lite_state_t во hal_vision_algo.h под frame>hal>vision во проектот како подолу:
typedef enum _oasis_lite_state {- kOASISLiteState
- Вклучување, kOASISLiteState
- Запре, kOASISLiteState
- Признание,
- kOASISLiteState
- Регистрација, kOASISLiteState
- Дерегистрација, kOASISLiteState
- Регистрација од далечина, kOASISLiteState
- брои
- Користете ја горенаведената ажурирана структура oasis_lite_state_t за да ја рафинирате структурата oasis_state_event_t во hal_event_descriptor_face_rec.h под frame>hal>визија во проектот како подолу: typedef struct _oasis_state_event_t { oasis_lite_state_t состојба; } oasis_state_event_t;
- Променете ги сите kEventInfo_Remote во kEventInfo_Local за испраќање настани од визуелниот алго HAL на други HAL кои работат на истото јадро како што се користи едно јадро наместо двојадрено во пр.ampле.
- Додајте ги и изменете ги долунаведените конфигурации за иницијализација на оазата во OASISLT_init():
- Додајте ги макро дефинициите и мемориските секции за видео кадарот во 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) \
- __атрибут__((дел (.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __атрибут__((порамнет(порамнети бајти)))
- Конфигурирајте ја назначувањето на меморијата во горниот дел за меморија fb_sh_mem на Project > Properties > C/C++ Build > MCU Settings прикажани на Слика 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:
- #define 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}“
- Додајте ја долунаведената дефиниција за да овозможите визуелен алго HAL во board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Овозможете го излезниот UI HAL
Излезниот UI HAL ги известува настаните до визуелниот алго HAL и одговара на резултатите од заклучоците од визуелниот алго HAL. Со апликацијата GUI, настаните обично се активираат од апликацијата и резултатите се прикажуваат на апликацијата.
За да го овозможите, клонирајте го постоечкиот сличен драјвер за HAL file каде што генерално се имплементирани следните функции:
- Известете ги настаните за препознавање лица и пристап до базата на податоци.
- Имплементирајте ги повратните повици за апликацијата GUI за да ги активира настаните.
- Ракувајте со резултатите од заклучоците од модулот vision algo.
- Прикажи го процесот и резултатите од справувањето со настаните на интерфејсот преку лентата за напредок контролирана со тајмерите и правоаголникот за водич за лице.
Главните работи за спроведување на HAL за ексampкористени во овој документ се:
- Клонирајте го постоечкиот сличен драјвер за HAL file и променете ги поврзаните имиња.
- Отстранете ги шифрите поврзани со апликацијата.
- Ажурирајте ги функциите за известување за настани и одговор на резултатите според прampдизајн.
- Додајте ги повратните повици за апликацијата GUI за да ги активира настаните.
Деталните чекори се како што следува:
- Клонирајте hal_output_ui_coffee_machine.в. Променете го 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“,
- #include „hal_event_descriptor_voice.h“
- За известувањето за различни настани, имплементирајте ги новите функции _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() и DeregisterGUIFaceRec() што се однесуваат на функциите _StopFaceRec(), _RegisterCoffeeSelection() и DeregisterCoffee, пред нивно бришење.
- _OutputManagerNotify() ја имплементира основната излезна функција на настан за да испрати настан до алгото за визија HAL. Функциите подолу го нарекуваат да испраќаат свои настани.
- _SetFaceRec() го испраќа настанот kEventFaceRecID_OasisSetState за да го активира алгото за визија за регистрација на лица, препознавање и запирање на алгото.
- _RegisterGUIFaceRec() го испраќа настанот kEventFaceRecId_RegisterGUIFaceRec што е дефиниран во smart_tlhmi_event_descriptor.h за да додаде податоци за карактеристиките на лицето во базата на податоци кога регистрацијата е во ред.
- DeregisterGUIFaceRec() го испраќа настанот kEventFaceRecID_DelUser за да ги избрише податоците за карактеристиките на лицето од базата на податоци кога го пренесува препознавањето лице.
- Ажурирајте ги шифрите за да ги преземете соодветните дејства, вклучително и освежување на GUI со повикување на API-ите од апликацијата LVGL GUI за да ги заклучите резултатите од регистрацијата и препознавањето на лицата во функцијата _InferComplete_Vision() по пр.ampдизајнот на. За прampле, кога регистрацијата на лице е успешна,
- Престанете да го прикажувате напредокот со повикување _FaceRecProcess_Stop();
- Запрете ја регистрацијата на лицето со повик _SetFaceRec(kOASISLiteState_Stopped);
- Прикажи го успешниот резултат на GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Регистрирајте ги податоците за лицето во базата на податоци: _RegisterUserFace(s_UserId);
- Додајте функции за повратен повик на интерфејсот за справување со настаните: предview, регистрација на лица, препознавање и бришење корисник активирани од GUI. За прample, повратен повик за регистрација на лице: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- И додадете ги функциите _FaceRecProcess_Start() и _FaceRecProcess_Stop() за да го прикажете напредокот и статусот во различните настани и резултати.
- Ажурирајте ја функцијата за повратен повик на тајмерот ISR _SessionTimer_Callback() за да се справите со случајот на тај-аут со повикување: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Додајте ги долунаведените дефиниции за да овозможите излез од интерфејсот 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
\coffee machine\resource\icons\ до иконите на новата папка под папката со ресурси на ексample SW. - Додадете ја патеката за пребарување за иконата четири files во camera_preview_resource.txt file во папката со ресурси, на прample: икона ../resource/icons/process_bar_240x14.h
- Извршете camera_preview_resource_build.bat за изградба на ресурси за слики и икони за генерирање на корпата file камера_предview_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. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Ажурирајте ја доделената големина на делот за меморија со име res_sh_mem на 0x200000 со редефинирање во app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 и соодветната поставка во Project > Properties > C/C++ Build > MCU.
- Додајте ја големината на иконата на вкупната големина на ресурсот вчитан од Flash во SDRAM во функцијата APP_LoadResource() во главната file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Забележете: За да се заврши функцијата за препознавање лице, потребна е поддршка за апликацијата LVGL GUI. Функциите за повратен повик на интерфејсот во излезниот UI HAL се повикуваат од апликацијата LVGL GUI за справување со настаните од екранот на интерфејсот. Од друга страна, излезниот UI HAL ги повикува API-ите од апликацијата LVGL GUI за ажурирање на интерфејсот за да ги прикаже резултатот и статусот. Развојот на апликацијата 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);
- Дефинирајте го приоритетот на задачите на менаџерот:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 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:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Копирајте ги операторите и конфигурациите files на флеш-уредот flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h под патеката на паметниот папката HMI\coffe\cmfig7_maample SW.
- Отштиклирајте „Исклучи ресурс од изградбата“ во C/C++ Build > Settings откако ќе кликнете со десното копче на fileИмето и отворањето на Својствата за да им се овозможи да бидат вградени во проектот.
- Променете го вклученото заглавие 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:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
И сменете го името на базата на податоци за лице за ексample: #define 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 (Littlefs);
- 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:
- #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #define FICA_FILE_SYS_SIZE (0x280000)
Конфигурации
Некои кодови поврзани со Flash се извршуваат во областа SRAM ITC за доволно перформанси. Копирајте ги скриптите за врски на папката што ги содржат конфигурациите на поврзувачот од патеката паметна HMI\coffee_machine\cm7\ до ексample SW.
Имплементирајте апликација LVGL GUI
Развојот на апликацијата LVGL GUI базирана на рамка ги повикува API-те од излезниот UI HAL и ги обезбедува API-те да излезат UI HAL (види Дел 4.1.3 за имплементација на излезниот UI HAL).
Сепак, деталната имплементација на апликацијата LVGL GUI зависи од барањата и дизајнот на апликацијата. Апликацијата GUI во овој прample е дизајниран како што е опишано на почетокот на делот Дел 4.
Подолу е воведот за имплементација:
- Прилагодените кодови се имплементирани во custom.c и custom.h дадени од GUI Guider како интерфејс помеѓу проектот GUI Guider и проектот за вграден систем.
- Додајте ги новите функции со име gui_xxx() во custom.c за да ги постигнете следните функции:
- За излезен UI HAL и GUI апликација за ажурирање на UI.
- За апликацијата GUI да активира настани со повикување на функциите за повратен повик на интерфејсот од излезниот UI HAL.
За прampLe, новата функција gui_event_face_rec_action() ги повикува функциите за повратен повик на интерфејсот за да се справи со еден од настаните за регистрација на лица, препознавање лица и бришење на корисникот активиран од апликацијата GUI кога ќе се кликне поврзаното копче.
Забелешка: Функцијата gui_set_virtual_face() повикана на излезниот UI HAL за предview режимот треба да се имплементира во custom.c:
- Функција за клонирање gui_set_virtual_face() од паметната HMI\coffee_machine\cm4\custom \custom.c.
- Променете го името на виџетот home_img_cameraPreview до screen_img_camera_preview во функцијата.
- Имплементирајте ги функциите за повратен повик на интерфејсот со истиот прототип на сите оние во излезниот UI HAL под контрола на макро дефиницијата #ifndef RT_PLATFORM во custom.c за да бидат компатибилни со проектот GUI Guider бидејќи овие функции во излезниот UI HAL се зависни од вградена платформа. Во custom.c, тие зависат од симулаторот на GUI водичот и се независни од вградената платформа. За прampле, повратниот повик за регистрација на лице е имплементиран како подолу за симулаторот 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 за да ги споделите GUI API-те на излезот HAL на интерфејсот.
- Додајте ги новите функции со име gui_xxx() во custom.c за да ги постигнете следните функции:
- Развијте го GUI на GUI Guider:
- Клонирајте ја камерата на папката предview кој го содржи проектниот софтвер GUI Guider во папката gui_guider во основниот софтверски пакет lvgl_gui_camera_preview_cm7. Променете го поврзаното име camera_preview да face_rec за новиот ексampле.
- Копирајте ги горенаведените ажурирани custom.c и custom. h до новиот проектен софтвер GUI Guider.
- Отворете го новиот проект face_rec на GUI Guider. Ажурирајте како подолу:
- Додајте го новото копче означено како Избриши корисник. Додајте го знамето Hidden на него, така што копчето ќе биде скриено кога ќе се стартува апликацијата 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 камера_предview_resource.bin на адресата 0x30800000.
LVGL GUI за препознавање лица прampле работи нормално како подолу:
- Предview: Со вклучување, видео преносите снимени од камерата се прикажуваат на одредена област на камерата предview на GUI екранот. Статусната ознака прикажува „Предview…“. За детали, видете Слика 3. Копчето Избриши корисник е скриено. При кликнување на областа надвор од копчињата и сликите, се прикажува предview наведете како горенаведеното откако ќе заврши акцијата за регистрација или препознавање лица.
- Регистрација:
- тартап: Кога ќе се кликне на копчето Регистрација, започнува регистрацијата на лицето. Етикетата за статус се менува за да се прикаже „Регистрација…“, правоаголникот за водич за лице покажува сино, а лентата за напредок почнува да го прикажува напредокот. Проверете дали лицето на корисникот се прикажува во синиот правоаголник за водич за лице за регистрација.
- успех: Статусната ознака покажува „Registration…OK“ и регистрираниот кориснички ID број, правоаголникот за водич за лице станува црвен ако регистрацијата на лицето е успешна пред напредокот да се покаже целосно на лентата.
- Неуспех -> Истекување на времето: ознаката за статусот покажува „Регистрација...Тајм истече“ ако регистрацијата на лицето сè уште е неуспешна кога напредокот се прикажува целосно на лентата.
- Неуспех -> Умножување: етикетата за статус покажува „Регистрација…не успеа“, правоаголникот за водич за лице станува зелен ако регистрираното лице се препознае пред напредокот да се прикаже целосно на лентата.
- екогенизација:
- Стартување: кога ќе се кликне на копчето Препознавање, започнува препознавањето лице. Етикетата за статус се менува за да се прикаже „Препознавање…“, правоаголникот за водич за лице покажува сино, а лентата за напредок почнува да го прикажува напредокот. Проверете дали лицето на корисникот е прикажано во синиот правоаголник за водич за лице за регистрација.
- успех: Статусната ознака покажува „Препознавање...Во ред“ и препознаениот кориснички ID број, правоаголникот за водич за лице станува зелен ако препознавањето лице е успешно пред напредокот да се прикаже целосно на лентата. Во тој момент се појавува копчето Избриши корисник. Тоа значи дека на корисникот му е дозволено да се избрише само кога ќе биде препознаен.
- ајлуре: Статусната ознака покажува „Препознавање...Тајм истече“ ако препознавањето лице сè уште е неуспешно кога напредокот се прикажува целосно на лентата.
- Избриши корисник: Кога ќе се кликне на копчето „Избриши корисник“, откако ќе биде успешно препознавањето лице, статусната ознака се менува за да се прикаже „Избриши корисник…OK“ со правоаголникот за водич за лице станува сино и напредокот се прикажува полн на лентата. Копчето Избриши корисник е повторно скриено. Препознатливото лице/корисник се брише од базата на податоци. Тоа значи дека ова лице/корисник не може да се препознае додека не се регистрира повторно.
Забелешка за изворниот код во документот
Exampкодот прикажан во овој документ ги има следните авторски права и лиценца BSD-3-Clause:
Авторски права 2024 NXP Прераспределбата и употребата во изворни и бинарни форми, со или без модификација, се дозволени под услов да се исполнети следниве услови:
- Прераспределбата на изворниот код мора да го задржи горенаведеното известување за авторски права, оваа листа на услови и следното одрекување.
- Прераспределбите во бинарна форма мора да го репродуцираат горенаведеното известување за авторски права, оваа листа на услови и следното одрекување во документацијата и/или други материјали мора да бидат обезбедени со дистрибуцијата.
- Ниту името на носителот на авторските права ниту имињата на неговите соработници не смеат да се користат за одобрување или промовирање производи добиени од овој софтвер без посебна претходна писмена дозвола
ОВОЈ СОФТВЕР ГО ОБЕЗБЕДУВААТ НОСИТЕЛИТЕ НА АВТОРСКИТЕ ПРАВА И ПРИДОНЕСИТЕЛИТЕ „КАКО ШТО СЕ“ И КОЈА ИЗРАЗНИ ИЛИ ИМПЛИЦИРАНИ ГАРАНЦИИ, ВКЛУЧУВАЈЌИ, НО НЕ ОГРАНИЧЕНИ НА, ИМПЛИЦИРАНИТЕ ГАРАНЦИИ НА ТРГОВСКАТА ОДГОВОРНОСТ ОДГОВОРЕНО. ВО НИКОЈ СЛУЧАЈ НОСИТЕЛОТ НА АВТОРСКИТЕ ПРАВА ИЛИ СОДРЖИТЕЛНИЦИТЕ НЕ СЕ ОДГОВАРААТ ЗА НИКАКВА ДИРЕКТНА, ИНДИРЕКТНА, ИНЦИДЕНТАЛНА, ПОСЕБНА, ПРИМЕРНА ИЛИ СОСЕДНИЧКА ШТЕТА (ВКЛУЧУВАЈТЕ, НО НЕ ОГРАНИЧЕНО ОГРАНИЧЕНО, УСЛУГИ ЗА ГУБЕЊЕ НА КОРИСТЕЊЕ, ПОДАТОЦИ ИЛИ ДОБИВКИ ИЛИ ДЕЛОВЕН ПРЕКИН) СЕКОЈА ТЕОРИЈА НА ОДГОВОРНОСТ, БИЛО КАЈ ДОГОВОРОТ, СТРОГАТА ОДГОВОРНОСТ ИЛИ ДРУГИ ДЕЛОВНИ ИЗ УПОТРЕБА НА ОВОЈ СОФТВЕР, ДУРИ И АКО СЕ СОВЕТУВА ЗА МОЖНОСТА ОД ТАКВА ШТЕТА.
Историја на ревизии
Правни информации
Дефиниции
Нацрт - Нацрт статус на документ покажува дека содржината е сè уште под внатрешна ревизијаview и предмет на формално одобрување, што може да резултира со измени или дополнувања. NXP Semiconductors не дава никакви забелешки или гаранции за точноста или комплетноста на информациите вклучени во нацрт верзијата на документот и нема да има одговорност за последиците од употребата на таквите информации.
Одрекување
- Ограничена гаранција и одговорност — Се верува дека информациите во овој документ се точни и веродостојни. Сепак, NXP Semiconductors не дава никакви изјави или гаранции, изразени или имплицирани, во однос на точноста или комплетноста на таквите информации и нема да има одговорност за последиците од употребата на тие информации. NXP Semiconductors не презема никаква одговорност за содржината во овој документ доколку е обезбедена од извор на информации надвор од NXP Semiconductors.
Во никој случај NXP Semiconductors нема да биде одговорен за какви било индиректни, случајни, казнени, посебни или последователни штети (вклучувајќи - без ограничување - изгубена добивка, изгубени заштеди, прекин на бизнисот, трошоци поврзани со отстранување или замена на какви било производи или трошоци за преработка) без разлика дали или не, таквите штети се засноваат на деликт (вклучувајќи небрежност), гаранција, прекршување на договорот или која било друга правна теорија.
Без оглед на штетите што може да ги направи клиентот од која било причина, збирната и кумулативната одговорност на NXP Semiconductors кон купувачот за производите опишани овде ќе биде ограничена во согласност со Условите и условите за комерцијална продажба на NXP Semiconductors. - Право да се прават промени — NXP Semiconductors го задржува правото да прави промени на информациите објавени во овој документ, вклучително и без ограничување спецификации и описи на производи, во секое време и без известување. Овој документ ги заменува и заменува сите информации доставени пред објавувањето на овој документ.
- Погодност за употреба — Производите на NXP Semiconductors не се дизајнирани, овластени или со гаранција за да бидат соодветни за употреба во системи или опрема за одржување во живот, критични за животот или безбедноста, ниту во апликации каде што може разумно да се очекува дека дефектот или неисправноста на производот од NXP Semiconductors ќе резултира со лична повреда, смрт или тешка материјална или еколошка штета. NXP Semiconductors и неговите добавувачи не прифаќаат никаква одговорност за вклучување и/или користење на производите на NXP Semiconductors во таква опрема или апликации и затоа таквото вклучување и/или користење е на сопствен ризик на клиентот.
- Апликации — Апликациите што се опишани овде за кој било од овие производи се само за илустративни цели. NXP Semiconductors не дава никаква изјава или гаранција дека таквите апликации ќе бидат соодветни за наведената употреба без дополнително тестирање или модификација.
Клиентите се одговорни за дизајнот и работењето на нивните апликации и производи кои користат производи на NXP Semiconductors, а NXP Semiconductors не прифаќа никаква одговорност за каква било помош со апликации или дизајн на производи од клиентите. Единствена одговорност на купувачот е да утврди дали производот на NXP Semiconductors е соодветен и одговара за апликациите на клиентот и планираните производи, како и за планираната апликација и употреба на клиентите од трета страна на клиентот. Клиентите треба да обезбедат соодветен дизајн и оперативни заштитни мерки за да ги минимизираат ризиците поврзани со нивните апликации и производи. NXP Semiconductors не прифаќа никаква одговорност поврзана со какви било стандардни, оштетувања, трошоци или проблем што се заснова на каква било слабост или стандардно во апликациите или производите на клиентот, или апликацијата или употребата од страна на клиентите од трета страна на клиентот. Клиентот е одговорен за извршување на сите неопходни тестирања за апликациите и производите на клиентот со користење на производите на NXP Semiconductors со цел да се избегне неисполнување на стандардот на апликациите и производите или на апликацијата или употреба од страна на клиентите од трети страни на клиентот. NXP не прифаќа никаква одговорност во овој поглед. - Услови и правила за комерцијална продажба — Производите на NXP Semiconductors се продаваат според општите услови за комерцијална продажба, објавени на https://www.nxp.com/profile/услови, освен ако не е поинаку договорено во валиден писмен индивидуален договор. Во случај да се склучат поединечен договор само ќе се применуваат условите и условите на соодветниот договор. Полупроводниците на NXP со ова експлицитно се спротивставуваат на примената на општите услови на клиентот во однос на набавка на производи за полупроводници на NXP од страна на клиентот.
- Контрола на извозот — Овој документ, како и ставките опишани овде може да подлежат на прописи за контрола на извозот. За извоз може да биде потребно претходно одобрение од надлежните органи.
- Соодветност за употреба во не-автомобилски квалификувани производи — Освен ако во овој документ изречно не е наведено дека овој специфичен производ на NXP Semiconductors е квалификуван за автомобилска индустрија, производот не е соодветен за автомобилска употреба. Не е ниту квалификуван ниту тестиран во согласност со барањата за автомобилско тестирање или апликација. NXP Semiconductors не прифаќа никаква одговорност за вклучување и/или употреба на производи кои не се квалификувани за автомобили во автомобилска опрема или апликации.
Во случај клиентот да го користи производот за дизајнирање и употреба во автомобилски апликации според автомобилските спецификации и стандарди, клиентот (а) ќе го користи производот без гаранција за производот од 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, Mali, 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
- Џеј Линк — е заштитен знак на SEGGER Microcontroller GmbH.
Microsoft, Azure и ThreadX — се заштитни знаци на групата компании на Microsoft.
Имајте предвид дека важните известувања во врска со овој документ и производот(ите) опишани овде, се вклучени во делот „Правни информации“.
© 2024 NXP BV
За повеќе информации, посетете: https://www.nxp.com
- Датум на издавање: 19 април 2024 година
- Идентификатор на документ: AN14263
Најчесто поставувани прашања
П: Која е главната цел на овој производ?
О: Главната цел е да се овозможи функцијата за препознавање лице користејќи модел на алгоритам за визија AI&ML со едноставен LVGL GUI exampле на таблата SLN-TLHMI-IOT.
П: Како можат програмерите да имаат корист од оваа белешка за апликација?
О: Програмерите можат да научат како да имплементираат препознавање лице на рамката чекор по чекор користејќи го дадениот прampи да ги разберете вклучените менаџери на уреди, HAL уредите и механизмите за настани.
Документи / ресурси
![]() |
NXP AN14263 Спроведување на LVGL GUI препознавање лице на Framewor [pdf] Упатство за корисникот AN14263 Имплементирајте препознавање лице LVGL GUI на Framewor, AN14263, имплементирајте препознавање лице LVGL GUI на Framewor, LVGL GUI препознавање лице на Framewor, Препознавање лице на Framewor, Recognition Frawor |