nxp-лого

NXP AN14263 Внедрете LVGL GUI разпознаване на лица на Framewor

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-product

Информация за продукта

Спецификации

  • Име на продукта: LVGL GUI разпознаване на лица на Framework
  • Ревизия на документа: 1 – 19 април 2024 г
  • Ключови думи: Разпознаване на лица, LVGL GUI, Framework

Инструкции за употреба на продукта

  1. крайview
    Този продукт позволява модел на визуален алгоритъм AI&ML за разпознаване на лица в рамка за прилагане на функция за разпознаване на лица с прост LVGL GUI напр.ample на платката SLN-TLHMI-IOT.
  2. Framework Overview
    Софтуерът за решение е проектиран около архитектурата на рамката, която включва мениджъри на устройства, отговорни за управлението на устройства, HAL устройства за абстрахиране на основните детайли и събития за комуникация между различни устройства.
  3. Характеристики
    Продуктът позволява внедряване на функция за разпознаване на лица чрез предварително камераview на екрана на GUI с бутони за задействане на регистрация, разпознаване и премахване на лице. Данните за регистрираните лица се съхраняват във Flash чрез a file система.
  4. Съдържание на бележката за приложението
    Бележката за приложението представя LVGL GUI екран с предварително камераview и бутони за действия, свързани с лицето. Помага на разработчиците да разберат рамката и как да внедрят разпознаване на лица с помощта на предоставения exampле.

крайview

NXP стартира комплект за разработка на решения, наречен SLN-TLHMI-IOT, който се фокусира върху интелигентни HMI приложения. Той позволява интелигентен HMI с ML визия, глас и графичен потребителски интерфейс, внедрен на един NXP i.MX RT117H MCU. Базиран на SDK, софтуерът за решение е изграден върху дизайн, наречен framework, който поддържа гъвкави дизайни и персонализиране на визуални и гласови функции. За да се помогне на потребителите да използват по-добре софтуерната платформа, са предоставени някои основни документи, напрample, потребителското ръководство за разработка на софтуер. Ръководството въвежда основния софтуерен дизайн и архитектура на приложенията, обхващащи всички компоненти на решението, включително рамката, за да помогне на разработчиците по-лесно и по-ефективно да внедряват своите приложения с помощта на SLN-TLHMI-IOT.
За повече подробности относно решението и съответните документи посетете web страница на решението NXP EdgeReady Smart HMI, базирано на i.MX RT117H с ML Vision, Voice и Graphical UI. Въпреки това, все още не е толкова лесно за разработчиците да внедрят своите интелигентни HMI приложения, като се позовават на тези основни ръководства. Планирани са поредица от бележки за приложението, които да помогнат за изучаването на развитието на рамката стъпка по стъпка. Тази бележка за приложението се основава на Implement LVGL GUI Camera Preview относно рамката (документ AN14147). Тази бележка за приложението описва как да активирате модела на визуален алгоритъм AI&ML за разпознаване на лица в рамката, за да приложите функцията за разпознаване на лица чрез предварително камераview на GUI екрана с прост LVGL GUI напрample на платката SLN-TLHMI-IOT. В бележката за молба изхample представя LVGL GUI екран с предварително камераview и някои бутони за задействане на регистрация, разпознаване и премахване на лице. Регистрираните данни за лице се съхраняват във Flash чрез малко file система.

На високо ниво бележката за приложението съдържа следното съдържание:

  • Активирайте функцията за разпознаване на лица на рамката.
  • Добавете поддръжка на база данни за лица в рамката чрез file система на Flash.
  • Внедрете приложението LVGL GUI. Чрез горните въведения този документ помага на разработчиците да:
  • Разберете по-задълбочено рамката и софтуера за интелигентно HMI решение.
  • Разработете тяхното разпознаване на лица AI&ML върху рамка с приложението LVGL GUI.

Рамката приключиview
Софтуерът за решение е проектиран основно около използването на архитектурата на рамката, която се състои от няколко различни части:

  • Мениджъри на устройства – основната част
  • Устройства на слоя на хардуерната абстракция (HAL).
  • Съобщения/Събития

Както е показано на фигура 1, надview на механизма на рамката е:

Мениджърите на устройства са отговорни за управлението на устройствата, използвани от системата. Всеки тип устройство (вход, изход и т.н.) има свой собствен специфичен за типа мениджър на устройства. При стартиране на мениджър на устройства, след като устройствата са регистрирани в него, той изчаква и проверява съобщение за прехвърляне на данни към устройствата и други мениджъри след инициализиране и стартиране на регистрираните устройства. HAL устройствата са написани върху кода на драйвера от по-ниско ниво, което спомага за увеличаване на разбираемостта на кода чрез абстрахиране на много от основните детайли.

Събитията са средство, чрез което информацията се комуникира между различни устройства чрез техните мениджъри. Когато се задейства събитие, устройството, което първо е получило събитието, съобщава това събитие на своя мениджър, след което на свой ред уведомява други мениджъри, определени да получат събитието.

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (1)

Архитектурният дизайн на рамката беше съсредоточен върху три основни цели:

  1. Лесен за използване
  2. Гъвкавост/преносимост
  3. Изпълнение

Рамката е проектирана с цел да се ускори времето за пускане на пазара на визуални и други приложения за машинно обучение. За да се осигури бързо излизане на пазара, от решаващо значение е самият софтуер да е лесен за разбиране и модифициране. Като се има предвид тази цел, архитектурата на рамката е лесна за модифициране, без да бъде ограничаваща и без да е за сметка на производителността.
За повече подробности относно рамката вижте Потребителско ръководство за разработка на софтуер за Smart HMI (документ MCU-SMHMI-SDUG).

Лека и многофункционална графична библиотека (LVGL)
LVGL (Light and Versatile Graphics Library) е безплатна графична библиотека с отворен код, предоставяща всичко необходимо за създаване на вграден GUI с лесни за използване графични елементи, красиви визуални ефекти и ниска памет.

Ръководство за GUI
GUI Guider е удобен за потребителя инструмент за разработка на графичен потребителски интерфейс от NXP, който позволява бързо разработване на висококачествени дисплеи с LVGL графична библиотека с отворен код. Редакторът за плъзгане и пускане на GUI Guider улеснява използването на много функции на LVGL като уиджети, анимации и стилове за създаване на GUI с минимално или никакво кодиране.

С едно натискане на бутон можете да стартирате приложението си в симулирана среда или да го експортирате в целеви проект. Генерираният код от GUI Guider може лесно да бъде добавен към вашия проект, като ускорява процеса на разработка и ви позволява безпроблемно да добавите вграден потребителски интерфейс към вашето приложение. GUI Guider е безплатен за използване с MCU с общо предназначение и кросоувър на NXP и включва вградени шаблони на проекти за няколко поддържани платформи. За да научите повече за разработката на LVGL и GUI в GUI Guider, проверете Light and Versatile Graphics Library и GUI Guider.

Среда за развитие

Първо, подгответе и настройте хардуерната и софтуерната среда за внедряване на example върху рамката.

Хардуерна среда
Хардуерната среда е настроена за проверка на exampле:

  • Комплектът за интелигентна HMI разработка, базиран на NXP i.MX RT117H (комплектът SLN_TLHMI_IOT)
  • SEGGER J-Link с 9-пинов Cortex-M адаптер и V7.84a или по-нова версия на драйвера

Софтуер среда
Софтуерната среда е създадена за разработване на exampле:

  • 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 на камерата, когато правите регистрация и разпознаване на лица.

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (3)

Внедрете разпознаване на лица в рамката

LVGL GUI разпознаване на лица напрample (прample се предоставя по-късно) в рамката се изпълнява въз основа на example кодове за внедряване на LVGL GUI Camera Preview относно рамката (документ AN14147).

За демонстриране на разпознаването на лица в изхample, основната функция на GUI приложението (вижте основния екран на фигура 3) е проектирана, както е описано по-долу:

  • GUI приложението задейства събитието за регистрация или разпознаване на лице в изходния UI HAL, когато щракнете върху бутона Регистрация или разпознаване. И изходният потребителски интерфейс HAL уведомява за събитието на добавяне на потребител към визуалния алго HAL, след като регистрацията на лицето е успешна.
  • GUI приложението задейства събитието за изтриване на потребител в изходния UI HAL, когато щракнете върху бутона Изтриване на потребител, след като лицето на потребителя бъде разпознато.
  • Приложението GUI задейства събитието за спиране на алго оазис, работещо към изходния UI HAL, когато щракнете върху екрана извън бутоните и изображенията.

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (10)

Подгответе софтуерния пакет за изпълнение на пр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:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (11)
  • Изтрийте папката framework_cm7 под групата libs и премахнете библиотеката framework_cm7 и нейния път за търсене, конфигуриран в Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries, тъй като е предоставен изходният код на ядрото.

Активирайте функцията за разпознаване на лица в рамките
Функцията за разпознаване на лица е изградена върху модела на алгоритъма на ML vision, предоставен като статична библиотека – oasis lite runtime библиотека от NXP. Библиотеката е малка, високоефективна, персонализирана и оптимизирана AI библиотека. Моделът включва разпознаване на лица, разпознаване на лица, разпознаване на стъкло и разпознаване на живост. Основно предоставя API OASISLT_run_extended() за стартиране на тръбопровода за разпознаване на лица, докато актуализира резултатите към повикващия чрез обратни извиквания на събития и добавя/актуализира/изтрива лица в базата данни чрез обратни извиквания на базата данни за лица след указване на информацията за рамката на източника, обратните извиквания и паметта пул, използван от библиотеката чрез извикване на друг API OASISLT_init() при инициализация. Извикването на API и функциите за обратно извикване са имплементирани във визия алго HAL на рамката.

Добавяне на библиотека с модели на vision algo

  1. Копирайте оазис на папка, съдържащ библиотеката и свързаната заглавка file от smart HMI\coffee_machine\cm7\libs\ в папката libs на example SW.
  2. Добавете пътя за търсене на заглавката file в Project > Properties > C/C++ Build > settings > Tool Settings > MCU C компилатор > Включва и MCU C++ компилатор > Включва: “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. Добавете 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 на библиотеката на оазиса.
  • Достъп до база данни с лица на потребители и база данни на приложения (не е необходима в exampле).
  • Получаване на събития от и изпращане на резултати към изходния UI HAL.

Основните работи за внедряване на HAL за прample са:

  • Клонирайте съществуващия подобен HAL драйвер file и променете свързаните имена.
  • Премахнете кодовете, свързани с операциите с данни на приложението.
  • Актуализирайте дефинициите и функциите за обработка на събитията от HAL на изходния потребителски интерфейс според exampдизайн.
  • Добавете конфигурациите, необходими при инициализацията на oasis.

Подробните стъпки са както следва:

  1. Клонирайте hal_vision_algo_oasis_coffeemachine.c. Променете fileиме на hal_vision_algo_oasis_guifacerec.c. И заменете всички низове CoffeeMachine с GUIFaceRec в file.
  2. Премахнете кодовете, съдържащи низа coffeedb (не чувствителен към главни и малки букви), свързани с базата данни на приложението, напрample, #include hal_sln_coffeedb.h.
  3. Променете функцията HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() за обработка на събитията от изходния UI HAL.
    • Променете дефиницията на събитието kEventFaceRecId_RegisterCoffeeSelection на kEventFaceRecId_RegisterUserFace и структурния низ regCoffeeSelection на regGUIFaceRec за обработката на събитието, за да добавите нови данни за характеристики на лицето към базата данни.
    • За да покажете стандартния процес на действията за разпознаване на лица в прample, променете обработката в случай на kEventFaceRecID_OasisSetState с дефинициите на състоянията:
      • kOASISLiteState
      • Регистрация kOASISLiteState
      • Разпознаване kOASISLiteState
      • Спряно
  4. Добавете и променете дефинициите на събитията, споменати в горната стъпка.
    • Копирайте заглавката file smart_tlhmi_event_descriptor.h от smart HMI\coffee_machine \cm7\source\event_handlers\ в папката source на example SW. Актуализирайте file както по-долу:
    • Променете дефиницията на събитието kEventFaceRecId_RegisterCoffeeSelection на kEventFaceRecId_RegisterUserFace в типа enum _event_smart_tlhmi_id и структурния низ regCoffeeSelection на regGUIFaceRec в структурата _event_smart_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 state; } oasis_state_event_t;
  5. Променете всички kEventInfo_Remote на kEventInfo_Local за изпращане на събития от алго HAL за визията към други HAL, работещи на същото ядро, тъй като в ex се използва едно ядро ​​вместо двуядреноampле.
  6. Добавете и променете конфигурациите по-долу за инициализация на оазис в 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(вар, alignbytes) \
      • __attribute__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) вар.
      • __атрибут__((подравнени(подравнени байтове)))
    • Конфигурирайте присвояването на памет към горната секция на паметта fb_sh_mem на Project > Properties > C/C++ Build > MCU Settings, показани на фигура 5:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (12)
    • Декларирайте глобалната променлива 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(променлива, подравняване на байтове) \
      • attribute__((section(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) вар.
      • атрибут__((подравнени(подравнени байтове)))
    • Включете заглавката file hal_vision_algo.h, съдържащ дефиницията на макрос DTC_OPTIMIZE_BUFFER_SIZE в app_config.h, включен в lvgl_gui_face_rec_cm7.cpp.
  7. Задайте променливата s_debugOption на true за показване на състоянието на напредъка при разпознаване на лица.
  8. Добавете пътя за търсене на заглавката files на визията HAL на Project > Properties > C/C++ Build > settings > Tool Settings > MCU C компилатор > Включва и MCU C++ компилатор > Включва: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. Добавете дефиницията по-долу, за да активирате 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 приложението, за да задействате събитията.

Подробните стъпки са както следва:

  1. Клонирайте hal_output_ui_coffee_machine.c. Променете fileиме към hal_ output_ui_guifacerec.c.
  2. Заменете всички низове CoffeeMachine с GUIFaceRec в file.
  3. Премахнете кодовете, свързани с приложението – кафе машина.
    • Премахнете функциите 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ле:
      • #include “hal_voice_algo_asr_local.h”,
      • #include “hal_event_descriptor_voice.h”
  4. За известяване за различни събития внедрете новите функции _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() и DeregisterGUIFaceRec(), като се позовавате на функциите _StopFaceRec(), _RegisterCoffeeSelection() и DeregisterCoffeeSelection(), преди да ги изтриете.
    • _OutputManagerNotify() имплементира основната функция за извеждане на събития за изпращане на събитие към алго HAL за визията. Функциите по-долу го извикват, за да изпращат свои собствени събития.
    • _SetFaceRec() изпраща събитието kEventFaceRecID_OasisSetState, за да задейства визуалния алго за регистрация, разпознаване на лица и да спре алгото.
    • _RegisterGUIFaceRec() изпраща събитието kEventFaceRecId_RegisterGUIFaceRec, което е дефинирано в smart_tlhmi_event_descriptor.h, за да добави данни за характеристики на лицето към базата данни, когато регистрацията е ОК.
    • DeregisterGUIFaceRec() изпраща събитието kEventFaceRecID_DelUser за изтриване на данните за функцията на лицето от базата данни при преминаване на разпознаването на лице.
  5. Актуализирайте кодовете, за да предприемете съответните действия, включително опресняване на GUI, като извикате API от приложението LVGL GUI за резултатите от извода за регистрация и разпознаване на лица във функцията _InferComplete_Vision() за изпр.ample's дизайн. Напримерample, когато регистрацията на лицето е успешна,
    • Спрете да показвате напредъка, като извикате _FaceRecProcess_Stop();
    • Спрете регистрацията на лицето, като извикате _SetFaceRec(kOASISLiteState_Stopped);
    • Покажете успешния резултат в GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Регистрирайте данните за лицето в базата данни: _RegisterUserFace(s_UserId);
  6. Добавете функции за обратно извикване на потребителския интерфейс за обработка на събитията: preview, регистриране на лица, разпознаване и изтриване на потребители, задействани от 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);
  7. Добавете дефинициите по-долу, за да активирате UI изхода HAL в board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

Забележка:
За да представите по-добре функцията за разпознаване на лица, запазете функцията за показване на процеса и резултатите от разпознаването на лица в изходния UI HAL. Функцията е описана по-долу

  • Правоъгълникът за насочване на лицето се оцветява в синьо, а лентата за напредък показва напредъка при стартиране на регистрация или разпознаване на лице.
  • Правоъгълникът за насочване на лицето е червен, когато регистрирането на лице е успешно.
  • Правоъгълникът за водач на лицето показва зелено, когато разпознаването на лицето е успешно.
  • Правоъгълникът за водач на лицето остава син, а лентата за напредък показва пълен напредък, когато действието е неуспешно след изтичане на таймера. В този момент спрете регистрацията или разпознаването на лице.

Лентата за напредъка и правоъгълникът за водач на лицето са представени като иконите, които са вградени в двоичния файл на ресурса file да бъдат програмирани във Flash. Указателите към данните за иконите в SDRAM се настройват във функцията LoadIcons(APP_ICONS_BASE), извикана при инициализацията на изходния UI HAL на устройството в изходния UI HAL. Той трябва да реализира поддръжката на иконите за функцията.

Внедрете поддръжката на икони

  1. Създайте ресурса, комбинирайки иконите с изображенията, използвани в приложението 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 camera_preview_resource.bin и информацията file resource_information_table.txt (Вижте Фигура 6).NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (13)
  2. Определете началния адрес на SDRAM и размера на иконите в app_config.h. Адресът започва до изображенията на GUI приложението. Размерът се генерира в информацията file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. Актуализирайте присвоения размер на секцията с памет с име res_sh_mem до 0x200000, като го предефинирате в app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 и съответната настройка в Project > Properties > C/C++ Build > MCU settings.
  4. Добавете размера на иконата към общия размер на ресурса, зареден от 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 в изходния 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 след преобразуването на разработката на рамката, както е показано по-долу:

  1. Включете заглавката file свързани с двата HAL мениджъра чрез добавяне на кодовия ред:
    • #include ” fwk_output_manager.h “
    • #include “fwk_vision_algo_manager.h”
  2. Декларирайте HAL устройствата:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. Регистрирайте HAL устройствата:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
  4. Инициализирайте мениджърите:
    • FWK_MANAGER_INIT(VisionAlgoManager, ret);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. Стартирайте мениджърите:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. Определете приоритета на задачите на мениджъра:
    • #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #define OUTPUT_MANAGER_TASK_PRIORITY 1

Добавяне на поддръжка на база данни за лица в рамките
Достъпът до данните за регистрираните функции на лицето се осъществява в базата данни за лица, съхранена във Flash, чрез малко file система. Стъпките за добавяне на поддръжка на база данни за лица са описани по-долу.

Добавете драйвери за флаш памет
Копирайте драйвера FlexSPI за Flash интерфейс files fsl_flexspi.c и fsl_flexspi.h и драйвера за криптиране на данни files fsl_caam.c и fsl_caam.h от пътя SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ до папката с драйвери на example SW.

Добавете поддръжка на ниво дъска

  1. Добавете дефинициите на FlexSPI, използвани за флаш устройството на борда в board.h:
    • #define BOARD_FLEXSPI FLEXSPI1
    • #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. Копирайте операторите и конфигурациите files of the Flash device flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h under the path smart HMI\coffee_machine\cm7\source\flash_config\ to the folder board of the example SW.
    • Премахнете отметката от „Изключване на ресурс от компилация“ в C/C++ компилация > Настройки, след като щракнете с десния бутон върху fileиме и отваряне на свойствата, за да им позволите да бъдат вградени в проекта.
  3. Променете включената заглавка fileиме sln_flash_config.h на sln_flash_config_w25q256jvs.h в sln_flash_config.c и flexspi_nor_flash_ops.h.
  4. Задайте източника на часовник FlexSPI1 в file clock_config.c, отнасящ се до приложението за кафе машина.

Добавете адаптер и поддръжка на средно ниво

  1. Копирайте files sln_flash.c, sln_flash.h, sln_encrypt.c и sln_encrypt.h като адаптерни драйвери за file система и приложение от пътя на смарт HMI\coffee_machine\cm7\source\ до папката източник на exampле. Актуализирайте новото files:
    • Премахнете отметката от „Изключване на ресурс от изграждане“ на тях за изграждане.
    • Променете всички включени заглавки file име sln_flash_config.h до sln_flash_config_w25q256jvs.h.
  2. Копирайте папката fileсистема, съдържаща API за малките fileсистема и HAL драйвер от смарт HMI \coffee_machine\cm7\source\ към example 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.
  3. Копирайте папката littlefs, съдържаща средния ware – little fileсистема от пътя SDK_2_13_0_ MIMXRT1170-EVK\middleware\ до example 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”

Добавете поддръжка на ниво приложение

  1. Актуализирайте основния 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);
        Забележка: The file системното HAL устройство трябва да бъде регистрирано, преди всички мениджъри на устройства да бъдат инициализирани във функцията APP_InitFramework().
    • Извикайте функцията BOARD_ConfigMPU() в APP_BoardInit(), за да конфигурирате MPU.
  2. Задайте 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 за достатъчна производителност. Копирайте папката linkscripts, съдържаща конфигурациите на линкера от пътя smart HMI\coffee_machine\cm7\ към example SW.

Внедрете LVGL GUI приложение
Разработването на LVGL GUI приложение, базирано на рамка, извиква API от изходен UI HAL и предоставя API за извеждане на UI HAL (вижте раздел 4.1.3 за внедряването на изходен UI HAL).

Въпреки това, подробното внедряване на LVGL GUI приложение зависи от изискванията и дизайна на приложението. GUI приложението в този прample е проектиран, както е описано в началото на раздел Раздел 4.

По-долу е въведението в изпълнението:

  1. Персонализираните кодове са внедрени в custom.c и custom.h, дадени от GUI Guider като интерфейс между проекта GUI Guider и проекта на вградената система.
    •  Добавете новите функции с име gui_xxx() в custom.c, за да постигнете следните функции:
      • За изходен UI HAL и GUI приложение за актуализиране на UI.
      • За GUI приложението да задейства събития чрез извикване на функции за обратно извикване на UI от HAL на изходния UI.
        Напримерample, новата функция gui_event_face_rec_action() извиква функции за обратно извикване на потребителския интерфейс, за да се справи с едно от събитията за регистриране на лице, разпознаване на лице и изтриване на потребител, задействано от GUI приложението, когато се щракне върху съответния бутон.
        Забележка: Функцията gui_set_virtual_face() извика в изходния UI HAL за preview режимът трябва да бъде внедрен в 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 guider и са независими от вградената платформа. Например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:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (14)
    • Декларирайте всички функции, наречени UI_xxx_Callback() и gui_xxx() в custom.h и добавете custom.h, включен в smart_tlhmi_event_descriptor.h, за да споделите API на GUI към HAL изхода на UI.
  2. Разработете GUI на GUI Guider:
    • Клонирайте папката camera preview съдържащ софтуера на проекта 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() с различен параметър за идентификатор на събитие в тригера „Освободен“ в настройката на събитието на всички бутони Регистрация, Разпознаване и Изтриване на потребител за задействане на събитията за регистрация на лице, разпознаване на лице и изтриване на потребител. Фигура 8 показва кода за събитието на бутона Регистрация:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (15)
  3. Актуализирайте генерирания код от GUI Guider към проекта MCUXpresso.
    • Заменете съдържанието, с изключение на изображенията на папката в папката, генерирана от SW на проекта MCUXpresso, със съответните в папката, генерирана от SW на проекта GUI Guider.

Забележка: За повече подробности относно модификациите, въведени по-горе, проверете прample софтуер в https://mcuxpresso.nxp.com/appcodehub.

Проверки с изхample проект

За да получите бившияampсофтуерен пакет, съдържащ ресурсите и инструментите за това приложение, бележка, посетете: https://mcuxpresso.nxp.com/appcodehub. Отворете ексample проект на MCUXpresso IDE. Създайте и програмирайте .axf file на адрес 0x30000000 и програмирайте контейнера за ресурси file camera_preview_resource.bin до адрес 0x30800000.

LVGL GUI разпознаване на лица напрample работи нормално както следва:

  • предварителноview: При включване видео потоците, заснети от камерата, се показват в конкретната област на камерата preview на екрана на GUI. Етикетът за състояние показва „Предview…”. За подробности вижте Фигура 3. Бутонът Изтриване на потребител е скрит. При щракване върху зоната извън бутоните и изображенията се показва преview посочете както е посочено по-горе, след като приключи действието за регистрация или разпознаване на лице.
  • Регистрация:
    • тартъп: Когато се щракне върху бутона Регистрация, започва регистрацията на лицето. Етикетът за състояние се променя, за да показва „Регистрация…“, правоъгълникът на водача на лицето става син и лентата за напредъка започва да показва напредъка. Уверете се, че лицето на потребителя се показва в синия направляващ правоъгълник за лице за регистрация.
    • успех: Етикетът за състояние показва „Регистрация…ОК“ и идентификационния номер на регистрирания потребител, правоъгълникът за водач на лицето става червен, ако регистрацията на лицето е успешна, преди напредъкът да се покаже пълен на лентата.
    • Неуспех -> Време за изчакване: Етикетът за състояние показва „Регистрация…Изчакване“, ако регистрацията на лицето все още е неуспешна, когато напредъкът е пълен в лентата.
    • Неуспех -> Дублиране: Етикетът за състояние показва „Регистрация…Неуспешна“, правоъгълникът за водач на лицето става зелен, ако регистрираното лице бъде разпознато, преди напредъкът да се покаже изцяло на лентата.
  • разпознаване:
    • Стартиране: Когато се щракне върху бутона за разпознаване, започва разпознаването на лица. Етикетът на състоянието се променя, за да показва „Разпознаване…“, правоъгълникът на водача на лицето става син, а лентата за напредъка започва да показва напредъка. Уверете се, че лицето на потребителя е показано в синия направляващ правоъгълник за лице за регистрация.
    • успех: Етикетът за състояние показва „Разпознаване…ОК“ и идентификационния номер на разпознатия потребител, правоъгълникът за водач на лицето става зелен, ако разпознаването на лицето е успешно, преди напредъкът да се покаже пълен на лентата. В този момент се появява бутон Изтриване на потребител. Това означава, че потребителят може да бъде изтрит само когато бъде разпознат.
    • болест: Етикетът за състояние показва „Разпознаване…Изтичане“, ако разпознаването на лице все още е неуспешно, когато напредъкът е пълен на лентата.
  • Изтриване на потребител: Когато се щракне върху бутона „Изтриване на потребител“, след като разпознаването на лицето е успешно, етикетът на състоянието се променя, за да покаже „Изтриване на потребител…ОК“, като правоъгълникът за водач на лицето става син и напредъкът се показва изцяло на лентата. Бутонът Изтриване на потребител отново е скрит. Разпознатото лице/потребител се изтрива от базата данни. Това означава, че това лице/потребител не може да бъде разпознат, докато не бъде регистриран отново.

Забележка относно изходния код в документа
Exampфайловият код, показан в този документ, има следните авторски права и BSD-3-Clause лиценз:

Copyright 2024 NXP Повторното разпространение и използване в изходни и двоични форми, със или без модификация, са разрешени, при условие че са изпълнени следните условия:

  1. Повторното разпространение на изходния код трябва да запази горното известие за авторски права, този списък с условия и следния отказ от отговорност.
  2. Повторното разпространение в двоична форма трябва да възпроизвежда горното известие за авторски права, този списък с условия и следния отказ от отговорност в документацията и/или други материали трябва да бъдат предоставени с разпространението.
  3. Нито името на притежателя на авторските права, нито имената на неговите сътрудници могат да бъдат използвани за одобрение или популяризиране на продукти, извлечени от този софтуер, без конкретно предварително писмено разрешение

ТОЗИ СОФТУЕР СЕ ПРЕДОСТАВЯ ОТ ПРИТЕЖАТЕЛИТЕ НА АВТОРСКИ ПРАВА И УЧАСТНИЦИТЕ „КАКТО Е“ И ВСЯКАКВИ ИЗРИЧНИ ИЛИ КОСВЕНИ ГАРАНЦИИ, ВКЛЮЧИТЕЛНО, НО НЕ САМО, КОСВЕНИТЕ ГАРАНЦИИ ЗА ПРОДАВАЕМОСТ И ГОДНОСТ ЗА ОПРЕДЕЛЕНА ЦЕЛ СА ОТКАЗАН ОТ ОТГОВОРНОСТ. ПРИ НИКАКЪВ СЛУЧАЙ ПРИТЕЖАТЕЛЪТ НА АВТОРСКОТО ПРАВО ИЛИ СЪУЧАСТНИЦИТЕ НЯМА ДА НОСИ ОТГОВОРНОСТ ЗА КАКВИТО И ДА Е ПРЯКИ, НЕПРЯКИ, СЛУЧАЙНИ, СПЕЦИАЛНИ, ПРИМЕРНИ ИЛИ ПОСЛЕДВАЩИ ЩЕТИ (ВКЛЮЧИТЕЛНО, НО НЕ САМО, ПОЛУЧАВАНЕ НА ЗАМЕНЯЩИ СТОКИ ИЛИ УСЛУГИ); ЗАГУБА НА ИЗПОЛЗВАНЕ, ДАННИ ИЛИ ПЕЧАЛБИ; ИЛИ ПРЕКЪСВАНЕ НА БИЗНЕСА) КАКВОТО И ДА Е ПРИЧИНЕНА И ВЪРХУ ВСЯКАКВА ТЕОРИЯ ЗА ОТГОВОРНОСТ, НЕЗАВИСИМО ДА Е ВЪЗ ДОГОВОР, СТРИКНА ОТГОВОРНОСТ ИЛИ ДЕЛИКТ (ВКЛЮЧИТЕЛНО НЕБРЕЖНОСТ ИЛИ ДРУГИ НАЧИНИ), ПРОИЗТИЧАЩИ ПО ВСЯКАКЪВ НАЧИН ОТ ИЗПОЛЗВАНЕТО НА ТОЗИ СОФТУЕР, ДОРИ И ДА БЪДЕ ПРЕДУПРЕЖДЕН ЗА ВЪЗМОЖНОСТТА ЗА ТАКАВА ЩЕТА.

История на ревизиите

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (16)

Правна информация

Дефиниции
Чернова — Състояние на чернова на документ показва, че съдържанието все още е под вътрешна проверка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 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 B.V. — NXP B.V. не е действаща компания и не разпространява или продава продукти.

Търговски марки
Забележете: Всички споменати марки, имена на продукти, имена на услуги и търговски марки са собственост на съответните им собственици.

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
  • J-Link — е търговска марка на SEGGER Microcontroller GmbH.

Microsoft, Azure и ThreadX — са търговски марки на групата компании на Microsoft.

Моля, имайте предвид, че важни бележки относно този документ и продукта(ите), описан(и) тук, са включени в раздел „Правна информация“.

© 2024 NXP BV
За повече информация, моля посетете: https://www.nxp.com

  • Дата на издаване: 19 април 2024 г
  • Идентификатор на документа: AN14263

ЧЗВ

Въпрос: Каква е основната цел на този продукт?
О: Основната цел е да се активира функцията за разпознаване на лица с помощта на модел на визуален алгоритъм AI&ML с прост LVGL GUI напр.ample на платката 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

Референции

Оставете коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са маркирани *