nxp-логотип

NXP AN14263 Реалізація розпізнавання обличчя графічного інтерфейсу LVGL на 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 example на платі SLN-TLHMI-IOT.
  2. Framework закінченоview
    Програмне забезпечення рішення розроблено навколо архітектури рамки, яка включає менеджерів пристроїв, відповідальних за керування пристроями, пристроїв HAL для абстрагування базових деталей і подій для зв’язку між різними пристроями.
  3. особливості
    Продукт дозволяє реалізувати функцію розпізнавання обличчя за допомогою попередньої камериview на екрані GUI з кнопками для запуску реєстрації, розпізнавання та видалення обличчя. Дані зареєстрованого обличчя зберігаються у Flash через a file система.
  4. Зміст приміток до програми
    У примітці до програми представлено екран графічного інтерфейсу користувача LVGL із попередньою камероюview і кнопки для дій, пов’язаних із обличчям. Це допомагає розробникам зрозуміти структуру та те, як реалізувати розпізнавання обличчя за допомогою наданого example.

закінченоview

Компанія NXP випустила набір для розробки рішень під назвою SLN-TLHMI-IOT, який зосереджений на інтелектуальних додатках HMI. Він забезпечує інтелектуальний HMI з інтерфейсом ML, голосовим і графічним інтерфейсом, реалізованим на одному MCU NXP i.MX RT117H. Програмне забезпечення рішення, засноване на SDK, створено на основі дизайну, що називається фреймворком, який підтримує гнучкі конструкції та налаштування функцій зору та голосу. Щоб допомогти користувачам краще використовувати програмну платформу, надано деякі основні документи, напрample, посібник користувача з розробки програмного забезпечення. Посібник представляє базовий дизайн програмного забезпечення та архітектуру програм, що охоплюють усі компоненти рішення, включаючи структуру, щоб допомогти розробникам легше та ефективніше впроваджувати свої програми за допомогою SLN-TLHMI-IOT.
Щоб дізнатися більше про рішення та відповідні документи, відвідайте web сторінки рішення NXP EdgeReady Smart HMI на базі i.MX RT117H із ML Vision, Voice та Graphical UI. Однак розробникам все ще не так легко реалізувати свої інтелектуальні програми HMI, посилаючись на ці основні посібники. Планується серія приміток до програми, щоб допомогти поетапно вивчити розробку фреймворку. Ця примітка до програми базується на Implement LVGL GUI Camera Preview щодо Framework (документ AN14147). У цій нотатці про програму описано, як увімкнути модель алгоритму бачення AI&ML для розпізнавання обличчя на фреймворку, щоб реалізувати функцію розпізнавання обличчя за допомогою камери попередньоview на екрані графічного інтерфейсу за допомогою простого графічного інтерфейсу LVGL, напрample на платі SLN-TLHMI-IOT. У примітці до заявки вихample представляє екран LVGL GUI з попередньою камероюview і деякі кнопки для запуску реєстрації, розпізнавання та видалення обличчя. Дані зареєстрованого обличчя зберігаються у Flash через невеликий file система.

На високому рівні примітка до програми містить наступний вміст:

  • Увімкніть функцію розпізнавання обличчя на фреймворку.
  • Додайте підтримку бази даних облич у фреймворк через file система на Flash.
  • Впровадити додаток LVGL GUI. Завдяки наведеним вище вступам цей документ допомагає розробникам:
  • Глибше зрозумійте структуру та інтелектуальне програмне забезпечення рішення HMI.
  • Розробляйте розпізнавання облич штучного інтелекту та 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 Guide
GUI Guider — це зручний інструмент розробки графічного інтерфейсу користувача від NXP, який дозволяє швидко розробляти високоякісні дисплеї за допомогою графічної бібліотеки LVGL з відкритим кодом. Редактор GUI Guider із функцією перетягування спрощує використання багатьох функцій LVGL, таких як віджети, анімація та стилі, для створення графічного інтерфейсу з мінімальним кодуванням або взагалі без нього.

Одним натисканням кнопки ви можете запустити свою програму в симульованому середовищі або експортувати її до цільового проекту. Згенерований код із GUI Guider можна легко додати до вашого проекту, прискорюючи процес розробки та дозволяючи безперешкодно додавати вбудований інтерфейс користувача до вашої програми. GUI Guider можна безкоштовно використовувати з мікроконтроллерами NXP загального призначення та перехресними мікроконтролерами та містить вбудовані шаблони проектів для кількох підтримуваних платформ. Щоб дізнатися більше про розробку LVGL і GUI на GUI Guider, перевірте Light and Versatile Graphics Library і GUI Guider.

Середовище розвитку

Спочатку підготуйте та налаштуйте апаратне та програмне середовище для впровадження example на каркасі.

Апаратне середовище
Апаратне середовище налаштовано для перевірки ексampле:

  • Набір розробки Smart 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 на версії 1.1.2

Докладніше про придбання та налаштування програмного середовища див.: Початок роботи з SLN-TLHMI-IOT.

Архітектура бачення на фреймворку

Архітектура бачення на фреймворку показана на малюнку 2. Алгоритм бачення HAL (OASIS_HAL) має такі процеси:

  • Виконуйте реєстрацію та розпізнавання облич за допомогою моделі алгоритму бачення AI&ML після отримання відповідних подій із вихідного інтерфейсу HAL. Повідомте результати висновку з моделі алгоритму до HAL вихідного інтерфейсу користувача.
  • Отримує доступ (додає, видаляє…) базу даних ознак обличчя на основі малого file системі шляхом виклику API FaceDB HAL після отримання відповідних подій із вихідного інтерфейсу HAL.
  • Запитувати відеокадр камери з камери HAL під час реєстрації та розпізнавання обличчя.

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

Реалізуйте розпізнавання обличчя на фреймворку

LVGL GUI розпізнавання обличчя напрample (примample надається пізніше) на фреймворку реалізовано на основі прampкоди Реалізація LVGL GUI Camera Preview щодо Framework (документ AN14147).

Для демонстрації розпізнавання обличчя у випрample, базова функція програми GUI (див. головний екран на малюнку 3) розроблена, як описано нижче:

  • Програма графічного інтерфейсу ініціює реєстрацію або розпізнавання обличчя у вихідному HAL інтерфейсу користувача після натискання кнопки «Реєстрація» або «Розпізнавання». А вихідний UI HAL сповіщає про подію додавання користувача до алгоритму бачення HAL після успішної реєстрації обличчя.
  • Програма графічного інтерфейсу ініціює подію видалення користувача до HAL вихідного інтерфейсу користувача під час натискання кнопки «Видалити користувача» після розпізнавання обличчя користувача.
  • Програма графічного інтерфейсу ініціює подію зупинки запуску алгоритму oasis до HAL вихідного інтерфейсу користувача під час натискання екрана поза кнопками та зображеннями.

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

Підготувати програмний пакет для реалізації прample.

  • Клонуйте базове програмне забезпечення lvgl_gui_camera_preview_см7. Змініть назву проекту та основну fileназву lvgl_gui_face_rec_cm7.
  • Фреймворк необхідно оновити в програмному забезпеченні, оскільки вихідні коди для ядра фреймворку почали оприлюднювати на GitHub з версії 1.1.2.
  • Замініть папку framework копією 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 та її шлях пошуку, налаштований у «Проект» > «Властивості» > «Сборка C/C++» > «Параметри» > «Параметри інструмента» > «Компонувальник C++ MCU» > «Бібліотеки», оскільки надається вихідний код ядра.

Увімкніть функцію розпізнавання обличчя на фреймворку
Функція розпізнавання обличчя побудована на моделі алгоритму ML vision, яка надається як статична бібліотека – бібліотека Oasis Lite від NXP. Бібліотека — це крихітна, високоефективна, налаштована й оптимізована бібліотека ШІ. Модель включає розпізнавання обличчя, розпізнавання обличчя, розпізнавання скла та розпізнавання живості. Він головним чином надає API OASISLT_run_extended() для запуску конвеєра розпізнавання обличчя під час оновлення результатів для абонента через зворотні виклики подій, а також додавання/оновлення/видалення облич у базі даних через зворотні виклики бази даних облич після визначення інформації про вихідний кадр, зворотних викликів і пам’яті пул, який використовується бібліотекою, викликаючи інший API OASISLT_init() під час ініціалізації. Виклик API і функцій зворотного виклику реалізовано в алгоритмі бачення HAL фреймворку.

Додайте бібліотеку моделей алгоритму бачення

  1. Скопіюйте папку oasis, що містить бібліотеку та відповідний заголовок file зі смарт-HMI\coffee_machine\cm7\libs\ у папку libs example SW.
  2. Додайте шлях пошуку заголовка file у «Проект» > «Властивості» > «Сборка C/C++» > «Параметри» > «Налаштування інструментів» > «Компілятор MCU C» > «Включає» та «Компілятор C++ MCU» > «Включає: «${workspace_loc:/${ProjName}/libs/oasis/include}»
  3. Додайте бібліотеку та її шлях пошуку в «Проект» > «Властивості» > «Сборка C/C++» > «Параметри» > «Компонувальник MCU C+ +» > «Бібліотеки»: liboasis_lite2D_DEFAULT_117f_ae.a «${workspace_loc:/${ProjName}/libs/oasis}» та визначення макросу до увімкніть цю функцію в меню «Проект» > «Властивості» > «Сборка C/C++» > «Параметри» > «Налаштування інструментів» > «Компілятор C MCU» > «Препроцесор» і «Компілятор C++ MCU» > «Препроцесор»: SMART_TLHMI_2D

Увімкнути алгоритм бачення HAL
Алгоритм бачення HAL керує моделлю алгоритму бачення для роботи та відповідає результатам на вихід HAL інтерфейсу користувача після отримання від нього подій.

Щоб увімкнути його, клонуйте наявний аналогічний драйвер HAL file де реалізовані такі функції:

  • Реалізуйте зворотні виклики операцій бази даних обличчя та обробки подій.
  • Запустіть алгоритм бачення, викликавши API бібліотеки oasis.
  • Отримайте доступ до бази даних облич користувачів і бази даних додатків (вона не потрібна у напрample).
  • Отримувати події та надсилати результати для виводу UI HAL.

Основні роботи по впровадженню HAL для напрample це:

  • Клонуйте існуючий аналогічний драйвер HAL file і змініть відповідні імена.
  • Видаліть коди, пов’язані з операціями з даними програми.
  • Оновіть визначення та функції для обробки подій із вихідного інтерфейсу HAL відповідно до напрampдизайн.
  • Додайте конфігурації, необхідні для ініціалізації 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() для обробки подій із вихідного інтерфейсу HAL.
    • Змініть визначення події kEventFaceRecId_RegisterCoffeeSelection на kEventFaceRecId_RegisterUserFace і структурний рядок regCoffeeSelection на regGUIFaceRec для обробки подій, щоб додати нові дані ознак обличчя до бази даних.
    • Щоб показати стандартний процес дій розпізнавання обличчя у прикладіample, змініть обробку у випадку kEventFaceRecID_OasisSetState з визначеннями станів:
      • kOASISLiteState
      • Реєстрація kOASISLiteState
      • Розпізнавання kOASISLiteState
      • Зупинився
  4. Додайте та змініть визначення подій, згаданих у вищезгаданому кроці.
    • Скопіюйте заголовок file smart_tlhmi_event_descriptor.h зі смарт-HMI\coffee_machine \cm7\source\event_handlers\ у папку source example SW. Оновити file як показано нижче:
    • Змініть визначення події kEventFaceRecId_RegisterCoffeeSelection на kEventFaceRecId_RegisterUserFace у типі переліку _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, що працюють на тому самому ядрі, оскільки одноядерний замість двоядерного використовується в example.
  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(var, alignbytes) \
      • __attribute__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) вар.
      • __attribute__((aligned(alignbytes)))
    • Налаштуйте розподіл пам’яті для вказаного вище розділу пам’яті fb_sh_mem у «Проект» > «Властивості» > «Сборка C/C++» > «Параметри MCU», як показано на малюнку 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(var, alignbytes) \
      • 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 of the vision HAL on Project > Properties > C/C++ Build > settings > Tool Settings > MCU C compiler > Includes and MCU C++ compiler > Includes: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. Додайте наведене нижче визначення, щоб увімкнути алгоритм бачення HAL у board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

Увімкнути вихід HAL інтерфейсу користувача
Вихідний UI HAL повідомляє про події алгоритму бачення HAL і відповідає на результати висновку з алгоритму бачення HAL. У додатку з графічним інтерфейсом користувача події зазвичай ініціюються програмою, а результати відображаються в програмі.

Щоб увімкнути його, клонуйте наявний аналогічний драйвер HAL file де зазвичай реалізуються такі функції:

  • Повідомлення про події для розпізнавання обличчя та доступу до бази даних.
  • Застосуйте зворотні виклики для програми графічного інтерфейсу, щоб ініціювати події.
  • Обробка результатів висновків із модуля vision algo.
  • Показуйте процес і результати обробки подій в інтерфейсі користувача за допомогою панелі виконання, керованої таймерами та прямокутником обличчя.

Основні роботи по впровадженню HAL для напрampу цьому документі використовуються такі файли:

  • Клонуйте існуючий аналогічний драйвер HAL file і змініть відповідні імена.
  • Видаліть коди, пов’язані з програмою.
  • Оновіть функції для сповіщення про події та відповіді на результати відповідно до напрampдизайн.
  • Додайте зворотні виклики для програми графічного інтерфейсу, щоб ініціювати події.

Детальні кроки наведені нижче.

  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_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. Оновіть коди, щоб виконати відповідні дії, зокрема оновити графічний інтерфейс, викликавши API із програми LVGL GUI для отримання результатів висновку щодо реєстрації та розпізнавання обличчя у функції _InferComplete_Vision() за прикладомample дизайн. наприкладample, коли реєстрація обличчя успішна,
    • Зупиніть показ прогресу, викликавши _FaceRecProcess_Stop();
    • Зупиніть реєстрацію обличчя, викликавши _SetFaceRec(kOASISLiteState_Stopped);
    • Показати успішний результат у GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Зареєструйте дані обличчя в базі даних: _RegisterUserFace(s_UserId);
  6. Додайте функції зворотного виклику інтерфейсу користувача для обробки подій: preview, реєстрація обличчя, розпізнавання та видалення користувача, що запускається з графічного інтерфейсу користувача. наприклад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. Додайте наведені нижче визначення, щоб увімкнути виведення HAL інтерфейсу користувача в board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

Примітка:
Щоб краще представити функцію розпізнавання обличчя, збережіть функцію для відображення процесу та результатів розпізнавання обличчя у вихідному інтерфейсі HAL. Функція описана нижче

  • Прямокутник напрямної обличчя буде синім, а індикатор перебігу показує прогрес під час запуску реєстрації чи розпізнавання обличчя.
  • Прямокутник напрямної обличчя стає червоним, коли реєстрація обличчя успішна.
  • Прямокутник напрямної обличчя стає зеленим, коли розпізнавання обличчя успішне.
  • Прямокутник напрямної обличчя залишається синім, а панель перебігу показує повний прогрес, якщо дія виявляється невдалою після закінчення таймера. Після цього зупиніть реєстрацію або розпізнавання обличчя.

Індикатор прогресу та напрямний прямокутник обличчя представлені як значки, вбудовані у двійковий файл ресурсу file для програмування у Flash. Покажчики на дані піктограм у SDRAM налаштовуються у функції LoadIcons(APP_ICONS_BASE), яка викликається під час ініціалізації пристрою HAL вихідного інтерфейсу користувача у HAL вихідного інтерфейсу користувача. Він повинен реалізовувати підтримку значків для функції.

Впровадити підтримку іконок

  1. Створіть ресурс, поєднавши піктограми з зображеннями, які використовуються в програмі LVGL GUI:
    • Скопіюйте заголовок чотирьох значків files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h і virtual_face_red_420x426.h від Smart HMI
      \coffee machine\resource\icons\ до нової папки icons у папці ресурсів example SW.
    • Додайте шлях пошуку для значка чотирьох files у camera_preview_resource.txt file у папці ресурсів, напрample: icon ../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 і відповідне налаштування в «Проект» > «Властивості» > «Сборка C/C++» > «Параметри MCU».
  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. Функції зворотного виклику інтерфейсу користувача у вихідному інтерфейсі HAL викликаються програмою LVGL GUI для обробки подій з екрана інтерфейсу користувача. З іншого боку, вихідний UI HAL викликає API із програми LVGL GUI, щоб оновити UI, щоб показати результат і статус. Розробка програми LVGL GUI є відносно незалежною та представлена ​​в розділі 4.3.

4.1.5 Запустіть пристрої та менеджери HAL для розпізнавання обличчя
Увімкнений алгоритм бачення HAL і 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 Flash Device Flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h і sln_flash_ops.h під шляхом smart hmi \ caven_machine \ cm7 \ squeple \ squples_config \ the the swell of the swell of the the swell of the squolder \ cmXNUMX \ squeple \ squpleg_config \ the the swell of the swell of the swell of the the squolder \ cmXNUMX \ sourge \_concample SW.
    • Зніміть прапорець «Виключити ресурс із збірки» в C/C++ Build > Settings після клацання правою кнопкою миші на 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\ до папки source example. Оновити нове 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 залежить від вимог і дизайну програми. Програма графічного інтерфейсу в цьому прикладіampфайл розроблений, як описано на початку розділу Розділ 4.

Нижче наведено введення в впровадження:

  1. Налаштовані коди реалізовано в custom.c і custom.h, наданих GUI Guider як інтерфейс між проектом GUI Guider і проектом вбудованої системи.
    •  Додайте нові функції під назвою gui_xxx() у custom.c, щоб отримати такі функції:
      • Для вихідного інтерфейсу користувача HAL і програми GUI для оновлення інтерфейсу користувача.
      • Для того, щоб програма графічного інтерфейсу ініціювала події, викликаючи функції зворотнього виклику інтерфейсу користувача з вихідного інтерфейсу HAL.
        наприкладample, нова функція gui_event_face_rec_action() викликає функції зворотного виклику інтерфейсу користувача для обробки однієї з подій реєстрації обличчя, розпізнавання обличчя та видалення користувача, викликаного програмою графічного інтерфейсу під час натискання відповідної кнопки.
        Примітка. Функція gui_set_virtual_face() викликається у вихідному інтерфейсі HAL для preview режим потрібно реалізувати в custom.c:
    •  Клонуйте функцію gui_set_virtual_face() із смарт-HMI\coffee_machine\cm4\custom \custom.c.
    •  Змініть назву віджета home_img_cameraPreview до screen_img_camera_preview у функції.
    •  Реалізуйте функції зворотного виклику інтерфейсу користувача з тим самим прототипом для всіх у вихідному інтерфейсі користувача HAL під керуванням визначення макросу #ifndef RT_PLATFORM у custom.c для сумісності з проектом GUI Guider, оскільки ці функції у вихідному інтерфейсі користувача HAL залежать від вбудована платформа. У custom.c вони залежать від симулятора на GUI guider і не залежать від вбудованої платформи. наприкладample, зворотний виклик реєстрації обличчя реалізовано, як показано нижче, для запущеного симулятора GUI Guider: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; повернення; }
      Примітка: Зверніться до того самого прототипу функції, представленої на кроці 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, щоб надати спільний доступ до GUI API для виводу інтерфейсу HAL.
  2. Розробіть GUI на GUI Guider:
    • Клонуйте папку camera preview містить програмне забезпечення проекту GUI Guider у папці gui_guider у пакеті базового програмного забезпечення lvgl_gui_camera_preview_см7. Змініть відповідну назву camera_preview до face_rec для нового ексample.
    • Скопіюйте оновлені вище 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.
    • Замініть вміст, окрім зображень папки, у папці, створеній ПЗ проекту MCUXpresso, на відповідний вміст у папці, створеній ПЗ проекту GUI Guider.

Примітка: Щоб отримати докладніші відомості про модифікації, представлені вище, перевірте прикладampпрограмне забезпечення на https://mcuxpresso.nxp.com/appcodehub.

Перевірки з виклample проект

Щоб отримати колишньогоampпакет програмного забезпечення, що містить ресурси та інструменти для цієї програми, примітка, відвідайте: https://mcuxpresso.nxp.com/appcodehub. Відкрийте ексampпроект на MCUXpresso IDE. Створіть і запрограмуйте файл .axf file на адресу 0x30000000 і запрограмуйте ресурсний bin file camera_preview_resource.bin на адресу 0x30800000.

LVGL GUI розпізнавання обличчя напрample працює нормально, як показано нижче:

  • попередньоview: під час увімкнення відеопотоки, зняті камерою, відображаються на певній ділянці камери попередньоview на екрані 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 на продукт для таких автомобільних застосувань, використання та специфікацій, і ( b) щоразу, коли клієнт використовує продукт для автомобільних застосувань поза специфікаціями NXP Semiconductors, таке використання має здійснюватися виключно на власний ризик клієнта, і (c) клієнт повністю відшкодовує 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

FAQ

Q: Яке основне призначення цього продукту?
A: Основна мета полягає в тому, щоб увімкнути функцію розпізнавання обличчя за допомогою моделі алгоритму бачення AI&ML із простим графічним інтерфейсом LVGL напр.ample на платі SLN-TLHMI-IOT.

З: Яку користь розробники можуть отримати від цієї примітки до програми?
A: Розробники можуть навчитися крок за кроком впроваджувати розпізнавання облич у фреймворк, використовуючи наданий прикладampвивчати та розуміти задіяні менеджери пристроїв, пристрої HAL та механізми подій.

Документи / Ресурси

NXP AN14263 Реалізація розпізнавання обличчя графічного інтерфейсу LVGL на Framewor [pdfПосібник користувача
AN14263 Реалізація розпізнавання обличчя графічного інтерфейсу LVGL на Framewor, AN14263, Реалізація розпізнавання обличчя графічного інтерфейсу LVGL на Framewor, розпізнавання обличчя графічного інтерфейсу LVGL на Framewor, розпізнавання обличчя на Framewor, розпізнавання на Framewor, Framewor

Список літератури

Залиште коментар

Ваша електронна адреса не буде опублікована. Обов'язкові поля позначені *