nxp-логотип

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

NXP-AN14263-Implement-LVGL-GUI Распознавание лиц-на-Framework-продукте

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

Технические характеристики

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

Инструкции по применению продукта

  1. Надview
    Этот продукт позволяет использовать модель алгоритма машинного зрения AI&ML для распознавания лиц на платформе для реализации функции распознавания лиц с помощью простого графического интерфейса LVGL.ampфайл на плате SLN-TLHMI-IOT.
  2. Фреймворк оконченview
    Программное обеспечение решения разработано на основе архитектуры платформы, которая включает в себя диспетчеры устройств, отвечающие за управление устройствами, устройства HAL для абстрагирования основных деталей и события для связи между различными устройствами.
  3. Функции
    Продукт позволяет реализовать функцию распознавания лиц через предварительную камеру.view на экране графического пользовательского интерфейса с кнопками для запуска регистрации, распознавания и удаления лица. Зарегистрированные данные о лицах сохраняются во Flash через file система.
  4. Содержание примечаний по применению
    В примечаниях по применению представлен экран графического пользовательского интерфейса LVGL с предварительной камерой.view и кнопки для действий, связанных с лицом. Это помогает разработчикам понять структуру и способы реализации распознавания лиц с использованием предоставленного примера.ampле.

Надview

Компания NXP выпустила комплект разработки решений под названием SLN-TLHMI-IOT, ориентированный на интеллектуальные приложения HMI. Он обеспечивает интеллектуальный HMI с машинным зрением, голосовым и графическим пользовательским интерфейсом, реализованный на одном микроконтроллере NXP i.MX RT117H. Программное обеспечение решения основано на SDK и построено на основе структуры, которая поддерживает гибкие конструкции и настройку функций машинного зрения и голоса. Чтобы помочь пользователям лучше использовать программную платформу, предоставляются некоторые базовые документы, напримерample, руководство пользователя по разработке программного обеспечения. В руководстве представлены базовый дизайн программного обеспечения и архитектура приложений, охватывающая все компоненты решения, включая платформу, чтобы помочь разработчикам более легко и эффективно реализовывать свои приложения с помощью SLN-TLHMI-IOT.
Для получения более подробной информации о решении и соответствующих документах посетите web страница интеллектуального HMI-решения NXP EdgeReady на базе i.MX RT117H с ML Vision, голосовым интерфейсом и графическим пользовательским интерфейсом. Однако разработчикам по-прежнему не так легко реализовать свои приложения для интеллектуального HMI, опираясь на эти базовые руководства. Планируется серия рекомендаций по применению, которые помогут шаг за шагом изучить развитие структуры. Это замечание по применению основано на внедрении LVGL GUI Camera Pre.view по платформе (документ AN14147). В этом примечании по применению описывается, как включить модель алгоритма машинного зрения AI&ML для распознавания лиц в платформе, чтобы реализовать функцию распознавания лиц с помощью предварительной настройки камеры.view на экране графического интерфейса с помощью простого графического интерфейса LVGLampфайл на плате SLN-TLHMI-IOT. В заявке бывшийample представляет экран LVGL GUI с предустановленной камерой.view и несколько кнопок для запуска регистрации, распознавания и удаления лиц. Зарегистрированные данные о лицах сохраняются во флэш-памяти с помощью небольшого file система.

На высоком уровне рекомендации по применению содержат следующее содержание:

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

Рамочная программа оконченаview
Программное обеспечение решения в первую очередь разработано с использованием архитектуры платформы, состоящей из нескольких различных частей:

  • Диспетчеры устройств – основная часть
  • Устройства уровня аппаратной абстракции (HAL)
  • Сообщения/События

Как показано на рисунке 1, болееview Механизм каркаса заключается в следующем:

Диспетчеры устройств отвечают за управление устройствами, используемыми системой. Каждый тип устройства (вход, выход и т. д.) имеет свой собственный диспетчер устройств для конкретного типа. При запуске диспетчера устройств после регистрации в нем устройств он ожидает и проверяет сообщение о передаче данных устройствам и другим диспетчерам после инициализации и запуска зарегистрированных устройств. Устройства HAL пишутся поверх кода драйвера нижнего уровня, что помогает повысить понятность кода за счет абстрагирования многих базовых деталей.

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

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

Архитектурный проект структуры был сосредоточен на трех основных целях:

  1. Простота использования
  2. Гибкость/мобильность
  3. Производительность

Платформа разработана с целью ускорить выход на рынок систем машинного обучения и других приложений машинного обучения. Чтобы обеспечить быстрый выход на рынок, очень важно, чтобы само программное обеспечение было легко понять и модифицировать. Помня об этой цели, архитектуру платформы можно легко изменить без каких-либо ограничений и без ущерба для производительности.
Более подробную информацию о платформе см. в Руководстве пользователя по разработке программного обеспечения Smart HMI (документ MCU-SMHMI-SDUG).

Легкая и универсальная графическая библиотека (LVGL)
LVGL (Light and Versatile Graphics Library) — это бесплатная графическая библиотека с открытым исходным кодом, предоставляющая все необходимое для создания встроенного графического интерфейса с простыми в использовании графическими элементами, красивыми визуальными эффектами и низким потреблением памяти.

Руководство по графическому интерфейсу
GUI Guider — это удобный инструмент разработки графического пользовательского интерфейса от NXP, который позволяет быстро разрабатывать высококачественные дисплеи с помощью графической библиотеки LVGL с открытым исходным кодом. Редактор перетаскивания GUI Guider позволяет легко использовать многие функции LVGL, такие как виджеты, анимацию и стили, для создания графического интерфейса с минимальным кодированием или вообще без него.

Одним нажатием кнопки вы можете запустить свое приложение в моделируемой среде или экспортировать его в целевой проект. Код, сгенерированный с помощью GUI Guider, можно легко добавить в ваш проект, что ускоряет процесс разработки и позволяет легко добавлять встроенный пользовательский интерфейс в ваше приложение. GUI Guider можно бесплатно использовать с универсальными и кроссоверными микроконтроллерами NXP и включает встроенные шаблоны проектов для нескольких поддерживаемых платформ. Чтобы узнать больше о разработке LVGL и графического пользовательского интерфейса в GUI Guider, ознакомьтесь с легкой и универсальной графической библиотекой и GUI Guider.

Среда разработки

Сначала подготовьте и настройте аппаратную и программную среду для реализации бывшегоampле на каркасе.

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

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

Программная среда
Программная среда настроена для разработки exampль:

  • MCUXpresso IDE V11.7.0
  • Руководство по графическому интерфейсу 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-Framework-fig- (3)

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

Бывший пример распознавания лиц с графическим интерфейсом LVGLampле (бывшийampфайл будет предоставлен позже) на фреймворке реализован на основе exampФайлы кодов реализации LVGL GUI Camera Preview по платформе (документ AN14147).

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

  • Приложение с графическим интерфейсом запускает событие регистрации или распознавания лица в выходном HAL пользовательского интерфейса при нажатии кнопки «Регистрация или распознавание». А выходной HAL пользовательского интерфейса уведомляет о событии добавления пользователя в HAL алгоритма видения после успешной регистрации лица.
  • Приложение с графическим интерфейсом запускает событие удаления пользователя в выходном HAL пользовательского интерфейса при нажатии кнопки «Удалить пользователя» после распознавания лица пользователя.
  • Приложение с графическим интерфейсом запускает событие остановки алгоритма oasis, работающего на выходном HAL пользовательского интерфейса, при нажатии на экран за пределами кнопок и изображений.

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

Подготовить пакет программного обеспечения для реализации экс.ampле.

  • Клонируйте базовое программное обеспечение 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-Framework-fig- (11)
  • Удалите папку framework_cm7 в группе libs и удалите библиотеку framework_cm7 и ее путь поиска, настроенный в разделе «Проект» > «Свойства» > «Сборка C/C++» > «Настройки» > «Настройки инструмента» > «MCU C++ Linker» > «Библиотеки», поскольку предоставляется исходный код ядра.

Включить функцию распознавания лиц в платформе
Функция распознавания лиц построена на модели алгоритма машинного зрения, предоставляемой в виде статической библиотеки — библиотеки времени выполнения Oasis lite от NXP. Библиотека представляет собой крошечную, высокоэффективную, настраиваемую и оптимизированную библиотеку искусственного интеллекта. Модель включает в себя распознавание лиц, распознавание лиц, распознавание стекла и распознавание активности. В основном он предоставляет API OASISLT_run_extended() для запуска конвейера распознавания лиц при обновлении результатов для вызывающей стороны с помощью обратных вызовов событий, а также добавления/обновления/удаления лиц в базе данных с помощью обратных вызовов базы данных лиц после указания информации об исходном кадре, обратных вызовов и памяти. пул, используемый библиотекой, путем вызова другого API OASISLT_init() при инициализации. Вызов API и функций обратного вызова реализованы в алгоритме видения HAL платформы.

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

  1. Скопируйте папку Oasis, содержащую библиотеку и соответствующий заголовок. file из smart HMI\coffee_machine\cm7\libs\ в папку libs бывшегоampле SW.
  2. Добавьте путь поиска заголовка file в Проекте > Свойства > Сборка C/C++ > Настройки > Настройки инструмента > Компилятор MCU C > Включает и компилятор MCU C++ > Включает: “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. Добавьте библиотеку и ее путь поиска в Проект > Свойства > Сборка C/C++ > Настройки > MCU C++ Linker > Библиотеки: liboasis_lite2D_DEFAULT_117f_ae.a "${workspace_loc:/${ProjName}/libs/oasis}" и определение макроса для включите эту функцию в Проекте > Свойства > Сборка C/C++ > Настройки > Настройки инструмента > Компилятор MCU C > Препроцессор и компилятор MCU C++ > Препроцессор: SMART_TLHMI_2D

Включить алгоритм машинного зрения HAL
Алгоритм видения HAL приводит в действие модель алгоритма видения и реагирует на результаты на вывод HAL пользовательского интерфейса после получения от него событий.

Чтобы включить его, клонируйте существующий аналогичный драйвер HAL. file где реализованы следующие функции:

  • Реализуйте обратные вызовы операций с базой данных лиц и обработки событий.
  • Запустите алгоритм видения, вызвав API библиотеки oasis.
  • Доступ к базе данных лиц пользователей и базе данных приложения (в примере это не требуется).ampле).
  • Получайте события и отправляйте результаты на выходной HAL пользовательского интерфейса.

Основные работы по внедрению HAL для бывшихampэто:

  • Клонировать существующий аналогичный драйвер HAL. file и измените связанные имена.
  • Удалите коды, связанные с операциями с данными приложения.
  • Обновите определения и функции для обработки событий из выходного пользовательского интерфейса HAL согласно примеру ex.ampдизайн.
  • Добавьте конфигурации, необходимые для инициализации оазиса.

Подробные шаги приведены ниже:

  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 с определениями состояний:
      • КОАСИСЛайтстейт
      • Регистрация
      • Признание
      • Остановлено
  4. Добавьте и измените определения событий, упомянутых на предыдущем шаге.
    • Скопируйте заголовок file smart_tlhmi_event_descriptor.h из smart HMI\coffee_machine\cm7\source\event_handlers\ в папку source бывшегоampле 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.
    • Удалите содержимое else, используемое для приложения кофемашины, напримерample, строка кода о голосе: #include «hal_event_descriptor_voice.h».
    • Добавьте типы kOASISLiteState_Stopped и kOASISLiteState_Running к типу перечисления oasis_lite_state_t в hal_vision_algo.h в разделе framework>hal>vision в проекте, как показано ниже:
      typedef перечисление _oasis_lite_state {
      • КОАСИСЛайтстейт
      • Запуск, koASISLiteState
      • Остановлено, koASISLiteState
      • Признание,
      • КОАСИСЛайтстейт
      • Регистрация, KOASISLiteState
      • Снятие с регистрации, koASISLiteState
      • Удаленная регистрация, 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, работающие на том же ядре, поскольку в примере используется одноядерное вместо двухъядерного.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(var, alignbytes) \
      • __attribute__((section(".bss.$fb_sh_mem,\"aw\",%nobits @"))) var
      • __attribute__((выровнено(alignbytes)))
    • Настройте выделение памяти для вышеуказанного раздела памяти fb_sh_mem в разделе «Проект» > «Свойства» > «Сборка C/C++» > «Настройки MCU», как показано на рисунке 5:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framework-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) \
      • атрибут__((section(".bss.$SRAM_DTC_cm7,\"aw\",%nobits @"))) var
      • атрибут__((выровнен(alignbytes)))
    • Включите заголовок file hal_vision_algo.h, содержащий определение макроса DTC_OPTIMIZE_BUFFER_SIZE в app_config.h, включенном в lvgl_gui_face_rec_cm7.cpp.
  7. Установите для переменной s_debugOption значение true, чтобы отображать статус выполнения распознавания лиц.
  8. Добавьте путь поиска заголовка fileВидение HAL в проекте > Свойства > Сборка C/C++ > Настройки > Настройки инструмента > Компилятор MCU C > Включает и компилятор MCU C++ > Включает: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. Добавьте приведенное ниже определение, чтобы включить HAL алгоритма машинного зрения в board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

Включить выходной пользовательский интерфейс HAL
Выходной пользовательский интерфейс 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_ и screen, относящиеся к графическому интерфейсу кофемашины, за исключением 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() согласно примеруampле дизайн. Для бывшегоampто есть, когда регистрация лица прошла успешно,
    • Прекратите показывать прогресс, вызвав _FaceRecProcess_Stop();
    • Остановите регистрацию лица, вызвав _SetFaceRec(kOASISLiteState_Stopped);
    • Покажите успешный результат в графическом интерфейсе: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Зарегистрируйте данные о лицах в базе данных: _RegisterUserFace(s_UserId);
  6. Добавьте функции обратного вызова пользовательского интерфейса для обработки событий: предварительноview, регистрация лиц, распознавание и удаление пользователя из графического интерфейса. Для бывшего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:
    • Клонировать заголовок с четырьмя значками filesprocess_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h и virtual_face_red_420x426.h из интеллектуального HMI
      \coffeemachine\resource\icons\ к новым значкам папок в папке ресурсов бывшегоampле SW.
    • Добавьте путь поиска для значка четырех files в камере_preview_resource.txt file в папке ресурсов, напримерampфайл: значок ../resource/icons/process_bar_240x14.h
    • Выполнить camera_preview_resource_build.bat для создания ресурсов изображений и значков для создания корзины file camera_preview_resource.bin и информация file resources_information_table.txt (см. рис. 6).NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framework-fig- (13)
  2. Определите начальный адрес SDRAM и размер значков в app_config.h. Адрес начинается рядом с изображениями приложения с графическим интерфейсом. Размер генерируется в информации 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. Функции обратного вызова пользовательского интерфейса в выходном HAL пользовательского интерфейса вызываются приложением LVGL GUI для обработки событий с экрана пользовательского интерфейса. С другой стороны, выходной пользовательский интерфейс HAL вызывает API-интерфейсы приложения LVGL GUI, чтобы обновить пользовательский интерфейс и отобразить результат и статус. Разработка приложения 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, в отставку);
    • FWK_MANAGER_INIT (Менеджер вывода, в отставку);
  5. Запускаем менеджеры:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(Диспетчер вывода, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. Определите приоритетность задач менеджера:
    • #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #define OUTPUT_MANAGER_TASK_PRIORITY 1

Добавить поддержку базы данных лиц в рамках платформы
Доступ к зарегистрированным данным о лицах осуществляется в базе данных лиц, хранящейся на Flash, с помощью небольшого file система. Ниже описаны шаги по добавлению поддержки базы данных лиц.

Добавьте драйвера для флэш-накопителя
Скопируйте драйвер FlexSPI флэш-интерфейса. files fsl_flexspi.c и fsl_flexspi.h и драйвер шифрования данных. files fsl_caam.c и fsl_caam.h из пути SDK_2_13_0_MIMXRT1170-EVK\devices\MIMRX1176\drivers\ в папку драйверов exampле 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 флэш-устройства 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\coffee_machine\cm7\source\flash_config\ в папку доски exampле SW.
    • Снимите флажок «Исключить ресурс из сборки» в C/C++ Build > Settings после щелчка правой кнопкой мыши по files и откройте свойства, чтобы их можно было встроить в проект.
  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 систему и приложение из пути smart 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\ в прежнийampле 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, содержащую промежуточное программное обеспечение – Little fileсистемы из пути SDK_2_13_0_ MIMXRT1170-EVK\middleware\ к exampле 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 связанный с флэшем file системный HAL-менеджер, добавив строку кода: #include «fwk_flash.h»
    • Заявить и зарегистрировать file системное устройство HAL:
      • HAL_FLASH_DEV_DECLARE(Маленькие);
      • HAL_FLASH_DEV_REGISTER(Littlefs, в отставке);
        Примечание: 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)
    • #определить ФИКА_FILE_SYS_SIZE (0x280000)

Конфигурации
Некоторые коды, связанные с Flash, выполняются в области SRAM ITC для обеспечения достаточной производительности. Скопируйте папку linkscripts, содержащую конфигурации компоновщика, из пути smart HMI\coffee_machine\cm7\ в папку ex.ampле SW.

Реализация приложения с графическим интерфейсом LVGL
Разработка приложения с графическим интерфейсом LVGL на основе платформы вызывает API-интерфейсы из выходного HAL пользовательского интерфейса и предоставляет API для выходного HAL пользовательского интерфейса (см. раздел 4.1.3 для реализации выходного HAL пользовательского интерфейса).

Однако детальная реализация приложения с графическим интерфейсом LVGL зависит от требований и дизайна приложения. Приложение с графическим интерфейсом в этом примереampФайл спроектирован так, как описано в начале раздела Раздел 4.

Ниже приводится введение в реализацию:

  1. Настраиваемые коды реализуются в файлах custom.c и custom.h, заданных GUI Guider в качестве интерфейса между проектом GUI Guider и проектом встроенной системы.
    •  Добавьте новые функции с именем gui_xxx() в custom.c, чтобы получить следующие функции:
      • Для вывода пользовательского интерфейса HAL и приложения с графическим интерфейсом для обновления пользовательского интерфейса.
      • Чтобы приложение с графическим интерфейсом запускало события путем вызова функций обратного вызова пользовательского интерфейса из выходного пользовательского интерфейса HAL.
        НапримерampНапример, новая функция gui_event_face_rec_action() вызывает функции обратного вызова пользовательского интерфейса для обработки одного из событий регистрации лица, распознавания лица и удаления пользователя, запускаемого из приложения с графическим интерфейсом при нажатии соответствующей кнопки.
        Примечание. Функция gui_set_virtual_face() вызывается в выходном HAL пользовательского интерфейса для предварительной настройки.view режим должен быть реализован в custom.c:
    •  Клонировать функцию gui_set_virtual_face() из smart HMI\coffee_machine\cm4\custom\custom.c.
    •  Измените имя виджета home_img_cameraPre.view в screen_img_camera_preview в функции.
    •  Реализуйте функции обратного вызова пользовательского интерфейса с одним и тем же прототипом для всех функций в выходном HAL пользовательского интерфейса под управлением определения макроса #ifndef RT_PLATFORM в custom.c для совместимости с проектом GUI Guider, поскольку эти функции в выходном HAL пользовательского интерфейса зависят от встроенная платформа. В custom.c они зависят от симулятора и направляющего выступа графического интерфейса и независимы от встроенной платформы. Для бывшего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-Framework-fig- (14)
    • Объявите все функции с именами UI_xxx_Callback() и gui_xxx() в custom.h и добавьте custom.h, включенный в smart_tlhmi_event_descriptor.h, чтобы использовать API-интерфейсы графического интерфейса для вывода HAL пользовательского интерфейса.
  2. Разработайте графический интерфейс с помощью GUI Guider:
    • Клонируйте папку Camera предварительноview содержащий программное обеспечение проекта GUI Guider в папке gui_guider в базовом пакете программного обеспечения lvgl_gui_camera_preview_см7. Измените связанное имя camera_pre.view на face_rec ради нового бывшегоampле.
    • Скопируйте обновленный файл custom.c и файл custom. h в новое программное обеспечение проекта GUI Guider.
    •  Откройте новый проект face_rec в GUI Guider. Обновите, как показано ниже:
      • Добавьте новую кнопку с надписью «Удалить пользователя». Добавьте к нему флаг «Скрыто», чтобы кнопка была скрыта при запуске приложения с графическим интерфейсом.
      • Добавьте строку кода вызова API gui_event_face_rec_action() с другим параметром идентификатора события на триггере «Выпущено» в настройках событий всех кнопок «Регистрация», «Распознавание» и «Удалить пользователя» для запуска событий регистрации лица, распознавания лица и удаления пользователя. На рисунке 8 показан код события кнопки Регистрация:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framework-fig- (15)
  3. Обновите сгенерированный код из GUI Guider в проект MCUXpresso.
    • Замените содержимое, за исключением изображений папки, в папке, созданной ПО проекта MCUXpresso, на соответствующие в папке, созданной ПО проекта GUI Guider.

Примечание: Для получения более подробной информации о внесенных выше изменениях см.ampпрограммное обеспечение на https://mcuxpresso.nxp.com/appcodehub.

Проверка с бывшимampле проект

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

Бывший пример распознавания лиц с графическим интерфейсом LVGLample работает нормально, как показано ниже:

  • Предварительноview: При включении питания видеопотоки, снятые камерой, отображаются в определенной области камеры.view на экране графического интерфейса. Метка состояния отображает «Предварительныйview…». Подробности см. на рис. 3. Кнопка «Удалить пользователя» скрыта. При нажатии на область за пределами кнопок и изображений отображается предварительныйview состояние, указанное выше, после завершения действия по регистрации или распознаванию лица.
  • Регистрация:
    • тартап: При нажатии кнопки «Регистрация» начинается регистрация лица. Метка состояния изменится и отобразит «Регистрация…», прямоугольник направляющей для лица станет синим, а индикатор выполнения начнет отображать ход выполнения. Убедитесь, что лицо пользователя отображается в синем прямоугольнике направляющей для регистрации.
    • успех: Метка состояния показывает «Регистрация… ОК» и идентификационный номер зарегистрированного пользователя. Прямоугольник указателя лица становится красным, если регистрация лица прошла успешно до того, как прогресс будет полностью заполнен на панели.
    • Сбой -> Тайм-аут: метка состояния показывает «Регистрация...Тайм-аут», если регистрация лица по-прежнему не удалась, хотя на панели индикатора отображается полный прогресс.
    • Сбой -> Дублирование: метка состояния показывает «Регистрация…Ошибка», прямоугольник указателя лица становится зеленым, если зарегистрированное лицо распознано до того, как прогресс отображается полностью на панели.
  • ecognition:
    • Запуск: при нажатии кнопки «Распознавание» запускается распознавание лиц. Метка состояния изменится и отобразит «Распознавание…», прямоугольник направляющей для лица станет синим, а индикатор выполнения начнет показывать прогресс. Убедитесь, что лицо пользователя отображается в синем прямоугольнике направляющей для регистрации.
    • успех: метка состояния показывает «Распознавание… ОК» и распознанный идентификационный номер пользователя. Прямоугольник указателя лица становится зеленым, если распознавание лица прошло успешно до того, как прогресс отображается полностью на панели. В этот момент появится кнопка Удалить пользователя. Это означает, что пользователя можно удалить только после его распознавания.
    • недуг: метка состояния отображает «Распознавание...Тайм-аут», если распознавание лица по-прежнему не удалось, хотя на панели индикатора отображается полный прогресс.
  • Удалить пользователя: при нажатии кнопки «Удалить пользователя» после успешного распознавания лица метка состояния меняется на «Удалить пользователя… ОК», при этом прямоугольник направляющей лица становится синим, а ход выполнения отображается полностью на панели. Кнопка «Удалить пользователя» снова скрыта. Распознанное лицо/пользователь удаляется из базы данных. Это означает, что это лицо/пользователь не может быть распознан до тех пор, пока не будет повторно зарегистрирован.

Примечание об исходном коде в документе
ExampФайловый код, показанный в этом документе, защищен следующими авторскими правами и лицензией BSD-3-Clause:

Авторские права NXP, 2024 г. Распространение и использование в исходных и двоичных формах, с модификациями или без них, разрешены при соблюдении следующих условий:

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

ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И УЧАСТНИКАМИ «КАК ЕСТЬ», И ЛЮБЫЕ ЯВНЫЕ ИЛИ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, ОТКАЗЫВАЮТСЯ. Ни при каких обстоятельствах владелец авторских прав или его соавторы не будут нести ответственности за любой прямой, косвенный, случайный, особый, образцовый или косвенный ущерб (включая, помимо прочего, закупку заменяющих товаров или услуг; потерю использования, данных или прибыли; или перерыв в работе), как бы он ни был вызван и по любой теории ответственности, будь то по договору, строгая ответственность или деликт (включая халатность или иное), возникающий каким-либо образом в результате использования этого программного обеспечения, даже если было сообщено о возможности такого ущерба.

История изменений

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framework-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/pro.file/условия, если иное не оговорено в действительном письменном индивидуальном соглашении. В случае заключения индивидуального договора применяются только условия соответствующего договора. Настоящим NXP Semiconductors прямо возражает против применения общих положений и условий клиента в отношении приобретения клиентом продукции NXP Semiconductors.
  • Экспортный контроль — Этот документ, а также предмет(ы), описанные в нем, могут подпадать под действие правил экспортного контроля. Для экспорта может потребоваться предварительное разрешение компетентных органов.
  • Пригодность для использования в неавтомобильных квалифицированных продуктах — Если в этом документе прямо не указано, что данный конкретный продукт NXP Semiconductors сертифицирован для автомобильной промышленности, этот продукт не пригоден для использования в автомобилях. Оно не сертифицировано и не протестировано в соответствии с автомобильными испытаниями или требованиями применения. Компания NXP Semiconductors не несет ответственности за включение и/или использование неавтомобильной продукции в автомобильном оборудовании или приложениях.
    В случае, если клиент использует продукт для проектирования и использования в автомобильных приложениях в соответствии с автомобильными спецификациями и стандартами, клиент (а) должен использовать продукт без гарантии NXP Semiconductors на продукт для таких автомобильных приложений, использования и спецификаций, и ( б) всякий раз, когда клиент использует продукт для автомобильных приложений, выходящих за рамки спецификаций NXP Semiconductors, такое использование должно осуществляться исключительно на собственный риск клиента, и (c) клиент полностью освобождает NXP Semiconductors от любой ответственности, убытков или заявлений о неудачном продукте, возникших в результате разработки и использования клиентом продукт для автомобильных приложений, выходящий за рамки стандартной гарантии NXP Semiconductors и спецификаций продукции NXP Semiconductors.
  • Переводы — Неанглоязычная (переведенная) версия документа, включая юридическую информацию в этом документе, предназначена только для справки. Английская версия имеет преимущественную силу в случае любого расхождения между переведенной и английской версиями.
  • Безопасность — Заказчик понимает, что все продукты NXP могут быть подвержены неизвестным уязвимостям или могут поддерживать установленные стандарты или спецификации безопасности с известными ограничениями. Заказчик несет ответственность за разработку и работу своих приложений и продуктов на протяжении всего их жизненного цикла, чтобы уменьшить влияние этих уязвимостей на приложения и продукты заказчика. Ответственность заказчика также распространяется на другие открытые и/или проприетарные технологии, поддерживаемые продуктами NXP для использования в приложениях заказчика. NXP не несет ответственности за какие-либо уязвимости. Клиент должен регулярно проверять обновления безопасности от NXP и принимать соответствующие меры. Заказчик должен выбирать продукты с функциями безопасности, которые наилучшим образом соответствуют правилам, нормам и стандартам предполагаемого применения, и принимать окончательные проектные решения в отношении своих продуктов, а также несет единоличную ответственность за соблюдение всех правовых, нормативных требований и требований, связанных с безопасностью, в отношении своих продуктов, независимо от любой информации или поддержки, которые могут быть предоставлены NXP.

У NXP есть группа реагирования на инциденты, связанные с безопасностью продуктов (PSIRT) (с которой можно связаться по адресу PSIRT@nxp.com), которая управляет расследованием, составлением отчетов и выпуском решений для устранения уязвимостей безопасности продуктов NXP.
NXP BV — NXP BV не является операционной компанией и не занимается распространением или продажей продукции.

Торговые марки
Уведомление: Все упомянутые бренды, названия продуктов, названия услуг и товарные знаки являются собственностью соответствующих владельцев.

NXP — словесный товарный знак и логотип являются товарными знаками NXP BV

AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — являются товарными знаками и/или зарегистрированными товарными знаками компании Arm Limited (или ее дочерних компаний или филиалов) в США и/или в другом месте. Соответствующая технология может быть защищена любым или всеми патентами, авторскими правами, образцами и коммерческой тайной. Все права защищены.

  • я.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.ampфайл на плате SLN-TLHMI-IOT.

Вопрос: Какую пользу разработчики могут извлечь из этого примечания по применению?
О: Разработчики могут шаг за шагом научиться реализовывать распознавание лиц в платформе, используя предоставленный пример.ampФайл и понимание диспетчеров устройств, устройств HAL и задействованных механизмов событий.

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

NXP AN14263 Внедрение распознавания лиц LVGL GUI в Framewor [pdf] Руководство пользователя
AN14263 Внедрить распознавание лиц LVGL GUI в Framewor, AN14263, Внедрить распознавание лиц LVGL GUI в Framewor, Распознавание лиц LVGL GUI в Framewor, Распознавание лиц в Framewor, Распознавание лиц в Framewor, Framewor

Ссылки

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *