NXP AN14263 Implementa o recoñecemento facial da GUI LVGL en Framewor
Información do produto
Especificacións
- Nome do produto: Recoñecemento facial LVGL GUI no marco
- Revisión do documento: 1 - 19 de abril de 2024
- Palabras clave: Recoñecemento facial, GUI LVGL, Framework
Instrucións de uso do produto
- Acabadoview
Este produto permite o modelo de algoritmo de visión AI&ML para o recoñecemento facial nun marco para implementar a función de recoñecemento facial cunha sinxela GUI LVGL example na placa SLN-TLHMI-IOT. - Marco acabadoview
O software da solución está deseñado en torno á arquitectura do marco que inclúe xestores de dispositivos responsables da xestión de dispositivos, dispositivos HAL para abstraer os detalles subxacentes e eventos para a comunicación entre diferentes dispositivos. - Características
O produto permite a implementación da función de recoñecemento facial a través da cámara preview na pantalla GUI con botóns para activar o rexistro, o recoñecemento e a eliminación da cara. Os datos faciales rexistrados gárdanse en Flash mediante a file sistema. - Contido da nota da aplicación
A nota da aplicación presenta unha pantalla GUI LVGL con cámara previaview e botóns para accións relacionadas co rostro. Axuda aos desenvolvedores a comprender o marco e como implementar o recoñecemento facial mediante o example.
Acabadoview
NXP lanzou un kit de desenvolvemento de solucións chamado SLN-TLHMI-IOT que se centra en aplicacións HMI intelixentes. Permite a HMI intelixente con visión ML, voz e interface de usuario gráfica implementada nun MCU NXP i.MX RT117H. Baseado no SDK, o software de solución está construído nun deseño chamado framework que admite deseños flexibles e personalización das funcións de visión e voz. Para axudar aos usuarios a utilizar mellor a plataforma de software, ofrécense algúns documentos básicos, por exemploample, a guía do usuario de desenvolvemento de software. A guía presenta o deseño básico de software e a arquitectura das aplicacións que abarcan todos os compoñentes da solución, incluíndo o marco para axudar aos desenvolvedores a implementar as súas aplicacións de forma máis sinxela e eficiente mediante o SLN-TLHMI-IOT.
Para obter máis detalles sobre a solución e os documentos relevantes, visite web páxina da solución NXP EdgeReady Smart HMI baseada en i.MX RT117H con ML Vision, Voice e IU gráfica. Non obstante, aínda non é tan sinxelo para os desenvolvedores implementar as súas aplicacións HMI intelixentes facendo referencia a estas guías básicas. Están previstas unha serie de notas de aplicación para axudar a estudar o desenvolvemento do marco paso a paso. Esta nota de aplicación baséase en Implement LVGL GUI Camera Preview sobre Framework (documento AN14147). Esta nota da aplicación describe como habilitar o modelo de algoritmo de visión AI&ML para o recoñecemento facial no marco para implementar a función de recoñecemento facial a través da cámara.view na pantalla GUI cunha GUI LVGL sinxela, por exemploample na placa SLN-TLHMI-IOT. Na nota de solicitude, o example presenta unha pantalla GUI LVGL cunha cámara preview e algúns botóns para activar o rexistro, o recoñecemento e a eliminación da cara. Os datos da cara rexistrada gárdanse en Flash mediante un pouco file sistema.
A un alto nivel, a nota da aplicación contén os seguintes contidos:
- Activa a función de recoñecemento facial no marco.
- Engadir soporte de base de datos facial no marco a través file sistema en Flash.
- Implementa a aplicación LVGL GUI. A través das introducións anteriores, este documento axuda aos desenvolvedores a:
- Comprenda máis a fondo o marco e o software de solución HMI intelixente.
- Desenvolve o seu recoñecemento facial AI&ML no marco coa aplicación LVGL GUI.
Rematou o marcoview
O software de solución está deseñado principalmente en torno ao uso da arquitectura de marco que se compón de varias partes diferentes:
- Xestores de dispositivos: a parte central
- Dispositivos de capa de abstracción de hardware (HAL).
- Mensaxes/Eventos
Como se mostra na figura 1, o overview do mecanismo do marco é:
Os xestores de dispositivos son os responsables de xestionar os dispositivos utilizados polo sistema. Cada tipo de dispositivo (entrada, saída, etc.) ten o seu propio xestor de dispositivos específico para o tipo. Cun xestor de dispositivos que comeza despois de rexistrarse os dispositivos nel, agarda e verifica unha mensaxe para transferir datos aos dispositivos e a outros xestores despois de inicializar e iniciar os dispositivos rexistrados. Os dispositivos HAL están escritos encima do código do controlador de nivel inferior, o que axuda a aumentar a comprensión do código abstraendo moitos dos detalles subxacentes.
Os eventos son un medio polo que se comunica a información entre distintos dispositivos a través dos seus xestores. Cando se activa un evento, o dispositivo que primeiro recibiu o evento comunica ese evento ao seu xestor e, á súa vez, notifica a outros xestores designados para recibir o evento.
O deseño arquitectónico do marco centrouse en tres obxectivos principais:
- Facilidade de uso
- Flexibilidade/portabilidade
- Rendemento
O marco está deseñado co obxectivo de acelerar o tempo de comercialización para a visión e outras aplicacións de aprendizaxe automática. Para garantir un tempo de comercialización rápido, é fundamental que o propio software sexa fácil de entender e modificar. Tendo presente este obxectivo, a arquitectura do framework é fácil de modificar sen ser restritiva e sen supoñer o custo do rendemento.
Para obter máis detalles sobre o marco, consulte a Guía de usuario de desenvolvemento de software Smart HMI (documento MCU-SMHMI-SDUG).
Biblioteca de gráficos lixeiros e versátiles (LVGL)
LVGL (Light and Versatile Graphics Library) é unha biblioteca gráfica gratuíta e de código aberto que ofrece todo o que precisa para crear unha GUI integrada con elementos gráficos fáciles de usar, fermosos efectos visuais e pouca pegada de memoria.
Guía GUI
GUI Guider é unha ferramenta de desenvolvemento de interface gráfica de usuario amigable de NXP que permite o desenvolvemento rápido de pantallas de alta calidade coa biblioteca de gráficos LVGL de código aberto. O editor de arrastrar e soltar de GUI Guider facilita o uso de moitas funcións de LVGL, como widgets, animacións e estilos para crear unha GUI cunha codificación mínima ou sen ningún tipo de codificación.
Con só facer clic nun botón, pode executar a súa aplicación nun ambiente simulado ou exportala a un proxecto de destino. O código xerado desde GUI Guider pódese engadir facilmente ao teu proxecto, acelerando o proceso de desenvolvemento e permitíndoche engadir unha interface de usuario integrada á túa aplicación sen problemas. GUI Guider é gratuíto cos MCU de propósito xeral e cruzados de NXP e inclúe modelos de proxecto integrados para varias plataformas compatibles. Para obter máis información sobre o desenvolvemento de LVGL e GUI en GUI Guider, consulte Light and Versatile Graphics Library e GUI Guider.
Ambiente de desenvolvemento
En primeiro lugar, prepare e configure o ambiente de hardware e software para a implementación do example no marco.
Entorno de hardware
O ambiente de hardware está configurado para verificar o exampLe:
- O kit de desenvolvemento HMI intelixente baseado en NXP i.MX RT117H (o kit SLN_TLHMI_IOT)
- SEGGER J-Link cun adaptador Cortex-M de 9 pinos e V7.84a ou unha versión máis recente do controlador
Entorno de software
O ambiente de software está configurado para desenvolver o exampLe:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – exampo código da segunda aplicación nota como o software base do desenvolvemento. Para máis detalles, consulte https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0: como recurso de código para o desenvolvemento.
- Software SLN-TLHMI-IOT V1.1.2: código fonte HMI intelixente lanzado no repositorio de NXP GitHub como recurso de código para o desenvolvemento. Para obter máis información, consulte: GitHub – NXP/mcu-smhmi en v1.1.2
Para obter máis información sobre a adquisición e configuración do contorno de software, consulte: Introdución ao SLN-TLHMI-IOT.
Arquitectura de visión en framework
A arquitectura de visión no marco móstrase na Figura 2. O algoritmo de visión HAL (OASIS_HAL) ten os seguintes procesos:
- Realice o rexistro e o recoñecemento facial a través do modelo de algoritmo de visión AI&ML despois de recibir os eventos relacionados do HAL da interface de usuario de saída. Notifique os resultados da inferencia do modelo de algoritmo ao HAL da interface de usuario de saída.
- Accede (engadir, eliminar...) á base de datos de características da cara baseada no pequeno file sistema chamando ás API de FaceDB HAL despois de recibir os eventos relacionados da saída da UI HAL.
- Solicite o cadro de vídeo da cámara da cámara HAL ao facer o rexistro e o recoñecemento facial.
Implementar o recoñecemento facial no marco
O recoñecemento facial LVGL GUI, por exemploample (example ofrécese máis adiante) sobre o marco implícase en función do exampcódigos de implementación LVGL GUI Camera Preview sobre Framework (documento AN14147).
Por demostrar o recoñecemento facial no example, a función básica da aplicación GUI (ver a pantalla principal na Figura 3) está deseñada como se describe a continuación:
- A aplicación GUI activa o rexistro facial ou o evento de recoñecemento ao HAL da interface de usuario de saída ao facer clic no botón Rexistro ou Recoñecemento. E a saída da interface de usuario HAL notifica o evento de engadir un usuario ao algoritmo de visión HAL despois de que o rexistro facial teña éxito.
- A aplicación GUI desencadea o evento de eliminación dun usuario no HAL da interface de usuario de saída ao facer clic no botón Eliminar usuario despois de recoñecer a cara do usuario.
- A aplicación GUI desencadea o evento de deter o algoritmo de oasis que se executa no HAL da interface de usuario de saída ao facer clic na pantalla fóra dos botóns e imaxes.
Preparar o paquete de software para a implementación do example.
- Clonar o software base lvgl_gui_camera_preview_cm7. Cambia o nome do proxecto e o principal filenome a lvgl_gui_face_rec_cm7.
- O cadro é necesario actualizar o software xa que os códigos fonte do núcleo do cadro comezaron a ser públicos en GitHub a partir da versión 1.1.2.
- Substitúe o cartafol do cadro coa copia de V1.1.2 de GitHub excepto o files fwk_log.h e fwk_common.h baixo inc\ xa que foron modificados para a serie de notas de aplicación. As operacións móstranse na figura 4:
- Elimina o cartafol framework_cm7 no grupo libs e elimina a biblioteca framework_cm7 e a súa ruta de busca configurada en Proxecto > Propiedades > Construción C/C++ > configuración > Configuración da ferramenta > MCU C++ Linker > Bibliotecas xa que se proporciona o código fonte do núcleo.
Activa a función de recoñecemento facial no framework
A función de recoñecemento facial baséase no modelo de algoritmo de visión ML proporcionado como biblioteca estática: unha biblioteca de tempo de execución de oasis lite de NXP. A biblioteca é unha pequena biblioteca de intelixencia artificial altamente eficiente, personalizada e optimizada. O modelo inclúe detección de rostros, recoñecemento facial, detección de vidro e detección de vivacidade. Proporciona principalmente a API OASISLT_run_extended() para executar a canalización de recoñecemento facial ao actualizar os resultados ao interlocutor mediante as devolucións de chamada de eventos, e engadir/actualizar/eliminar caras na base de datos a través das devolucións de chamada da base de datos de caras despois de especificar a información do marco de orixe, as devolucións de chamada e a memoria. grupo usado pola biblioteca chamando a outra API OASISLT_init() na inicialización. A chamada das API e as funcións de devolución de chamada están implementadas no algo HAL de visión do framework.
Engadir biblioteca de modelos de visión algo
- Copia o cartafol oasis que contén a biblioteca e a cabeceira relacionada file desde smart HMI\coffee_machine\cm7\libs\ ao cartafol libs do exampo SW.
- Engade o camiño de busca da cabeceira file en Proxecto > Propiedades > Compilación C/C++ > configuración > Configuración da ferramenta > Compilador MCU C > Inclúe e compilador MCU C++ > Inclúe: "${workspace_loc:/${ProjName}/libs/oasis/include}"
- Engade a lib e a súa ruta de busca en Proxecto > Propiedades > Compilación C/C++ > configuración > MCU C+ + Linker > Bibliotecas: liboasis_lite2D_DEFAULT_117f_ae.a "${workspace_loc:/${ProjName}/libs/oasis}" e a definición da macro para habilite a función en Proxecto > Propiedades > Compilación C/C++ > configuración > Configuración da ferramenta > Compilador MCU C > Preprocesador e compilador MCU C++ > Preprocesador: SMART_TLHMI_2D
Activa o algoritmo de visión HAL
O algoritmo de visión HAL fai que o modelo de algoritmo de visión funcione e responde os resultados á saída da interface de usuario HAL despois de recibir os eventos del.
Para activalo, clone o controlador HAL similar existente file onde se implementan as seguintes funcións:
- Implementar as devolucións de chamada das operacións de base de datos de faces e do manexo de eventos.
- Fai funcionar o algo de visión chamando ás API da biblioteca oasis.
- Acceda á base de datos de caras de usuarios e á base de datos de aplicacións (non é necesario no example).
- Recibe eventos e envía resultados á saída da UI HAL.
As principais obras para implantar o HAL para o exampson:
- Clona o controlador HAL similar existente file e cambiar os nomes relacionados.
- Elimina os códigos relacionados coas operacións de datos da aplicación.
- Actualice as definicións e funcións para xestionar os eventos da saída UI HAL segundo o exampdeseño.
- Engade as configuracións necesarias na inicialización de oasis.
Os pasos detallados son os seguintes:
- Clonar hal_vision_algo_oasis_coffeemachine.c. Cambia o filenome a hal_vision_algo_oasis_guifacerec.c. E substitúe todas as cadeas CoffeeMachine con GUIFaceRec no file.
- Elimina os códigos que conteñen a cadea coffeedb (non distingue entre maiúsculas e minúsculas) relacionada coa base de datos da aplicación, por exemploample, #include hal_sln_coffeedb.h.
- Modifique a función HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() para xestionar os eventos do HAL da interface de usuario de saída.
- Cambie a definición de evento kEventFaceRecId_RegisterCoffeeSelection a kEventFaceRecId_RegisterUserFace e a cadea de estrutura regCoffeeSelection a regGUIFaceRec para o manexo de eventos para engadir novos datos de características faciales á base de datos.
- Mostrar o proceso estándar das accións de recoñecemento facial no example, modifique o manexo no caso de kEventFaceRecID_OasisSetState coas definicións dos estados:
- koASISLiteState
- Rexistro koASISLiteState
- Recoñecemento koASISLiteState
- Detido
- Engade e modifica as definicións dos eventos mencionados no paso anterior.
- Copia a cabeceira file smart_tlhmi_event_descriptor.h desde smart HMI\coffee_machine\cm7\source\event_handlers\ ao cartafol fonte do exampo SW. Actualiza o file como a continuación:
- Cambie a definición de evento kEventFaceRecId_RegisterCoffeeSelection a kEventFaceRecId_RegisterUserFace no tipo de enumeración _event_smart_tlhmi_id e a cadea de estrutura regCoffeeSelection a regGUIFaceRec na estrutura _event_smart_tlhmi. Entón, cambie a estrutura register_coffee_selection_event_t para regCoffeeSelection a register_gui_facerec_event_t.
- Elimina os demais contidos utilizados para a aplicación da máquina de café, por exemploample, a liña de código sobre a voz: #include “hal_event_descriptor_voice.h”.
- Engade os tipos kOASISLiteState_Stopped e kOASISLiteState_Running ao tipo de enumeración oasis_lite_state_t en hal_vision_algo.h en framework>hal>vision no proxecto como se indica a continuación:
typedef enumeración _oasis_lite_state {- koASISLiteState
- Correndo, kOASISLiteState
- Detido, kOASISLiteState
- recoñecemento,
- koASISLiteState
- Rexistro, koASISLiteState
- Rexistro, kOASISLiteState
- Rexistro remoto, kOASISLiteState
- Conta
- Use a estrutura actualizada anterior oasis_lite_state_t para refinar a estrutura oasis_state_event_t en hal_event_descriptor_face_rec.h en framework>hal>vision no proxecto como se indica a continuación: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- Cambie todos os kEventInfo_Remote a kEventInfo_Local para enviar eventos desde o algoritmo de visión HAL a outros HAL que se executan no mesmo núcleo xa que se usa un único núcleo en lugar de dobre núcleo.ample.
- Engade e modifique as seguintes configuracións para a inicialización de oasis en OASISLT_init():
- Engade as definicións de macro e as seccións de memoria para o fotograma de vídeo en 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__((sección(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __atributo__((alineado(alineado(alineado)))
- Configure a asignación de memoria á sección de memoria anterior fb_sh_mem en Proxecto > Propiedades > Construción C/C++ > Configuración de MCU que se mostra na Figura 5:
- Declarar a variable global g_DTCOPBuf en lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Continúa engadindo as definicións utilizadas na variable anterior:
- Define a sección anterior en board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- atributo__((sección(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- atributo__((alineado(alignbytes)))
- Inclúe a cabeceira file hal_vision_algo.h que contén a definición de macro DTC_OPTIMIZE_BUFFER_SIZE en app_config.h incluída en lvgl_gui_face_rec_cm7.cpp.
- Engade as definicións de macro e as seccións de memoria para o fotograma de vídeo en board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- Establece a variable s_debugOption como verdadeiro para mostrar o estado do progreso no recoñecemento facial.
- Engade o camiño de busca da cabeceira files da visión HAL en Proxecto > Propiedades > Compilación C/C++ > configuración > Configuración da ferramenta > Compilador MCU C > Inclúe e compilador MCU C++ > Inclúe: "${workspace_loc:/${ProjName}/framework/hal/vision}"
- Engade a seguinte definición para habilitar o algoritmo de visión HAL en board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Activar a saída da interface de usuario HAL
A saída UI HAL notifica os eventos ao algoritmo de visión HAL e responde aos resultados de inferencia do algoritmo de visión HAL. Coa aplicación GUI, os eventos xeralmente son desencadeados pola aplicación e os resultados móstranse na aplicación.
Para activalo, clone o controlador HAL similar existente file onde xeralmente se implementan as seguintes funcións:
- Notificar os eventos para o recoñecemento facial e o acceso á base de datos.
- Implementa as devolucións de chamada para a aplicación GUI para activar os eventos.
- Manexar os resultados de inferencia do módulo de visión algo.
- Mostra o proceso e os resultados do tratamento dos eventos na IU mediante a barra de progreso controlada cos temporizadores e o rectángulo da guía facial.
As principais obras para implantar o HAL para o exampOs ficheiros utilizados neste documento son:
- Clona o controlador HAL similar existente file e cambiar os nomes relacionados.
- Elimina os códigos relacionados coa aplicación.
- Actualiza as funcións para a notificación de eventos e a resposta dos resultados por exemploampdeseño.
- Engade as devolucións de chamada para a aplicación GUI para activar os eventos.
Os pasos detallados son os seguintes:
- Clonar hal_output_ui_coffee_machine.c. Cambia o filenome a hal_ output_ui_guifacerec.c.
- Substitúe todas as cadeas CoffeeMachine con GUIFaceRec no file.
- Elimina os códigos relacionados coa aplicación: máquina de café.
- Elimina as funcións WakeUp() e _StandBy() e os códigos relacionados (poden buscar a cadea wake_up e standby para elas).
- Eliminar preview eventos de modo que manexan códigos relacionados en HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Elimina as funcións UI_xxx_Callback() e os códigos que conteñen a cadea gui_ e a pantalla relacionadas coa GUI da máquina de café excepto gui_set_virtual_face() para o preview función de modo.
- Elimina todos os códigos implicados coas variables s_IsWaitingAnotherSelection e s_IsWaitingRegisterSelection relacionados coa aplicación da máquina de café.
- Elimina os códigos relacionados coa voz, o audio e o idioma. Por exampLe:
- #include “hal_voice_algo_asr_local.h”,
- #include “hal_event_descriptor_voice.h”
- Para a notificación de varios eventos, implemente as novas funcións _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() e DeregisterGUIFaceRec() referidas ás funcións _StopFaceRec(), _RegisterCoffeeSelection() e DeregisterCoffeeSelection() antes de deseleccionalas.
- O _OutputManagerNotify() implementa a función básica de saída de eventos para enviar un evento ao algo HAL de visión. As seguintes funcións chámano para enviar os seus propios eventos.
- O _SetFaceRec() envía o evento kEventFaceRecID_OasisSetState para activar o algoritmo de visión para o rexistro facial, o recoñecemento e deter o algoritmo.
- O _RegisterGUIFaceRec() envía o evento kEventFaceRecId_RegisterGUIFaceRec que se define en smart_tlhmi_event_descriptor.h para engadir datos de características faciales á base de datos cando o rexistro sexa correcto.
- DeregisterGUIFaceRec() envía o evento kEventFaceRecID_DelUser para eliminar os datos da función facial da base de datos ao pasar o recoñecemento facial.
- Actualice os códigos para realizar as accións correspondentes, incluíndo actualizar a GUI chamando ás API desde a aplicación LVGL GUI para obter os resultados de inferencia do rexistro e recoñecemento facial na función _InferComplete_Vision() segundo o ex.ampdeseño de le. Por example, cando o rexistro facial teña éxito,
- Deixa de mostrar o progreso chamando a _FaceRecProcess_Stop();
- Detén o rexistro da cara chamando a _SetFaceRec(kOASISLiteState_Stopped);
- Mostra o resultado exitoso na GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Rexistrar os datos da cara na base de datos: _RegisterUserFace(s_UserId);
- Engade funcións de devolución de chamada da IU para xestionar os eventos: preview, rexistro facial, recoñecemento e eliminación de usuarios activados desde a GUI. Por example, a devolución de chamada do rexistro facial: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- E engade as funcións _FaceRecProcess_Start() e _FaceRecProcess_Stop() para mostrar o progreso e o estado nos diferentes eventos e resultados.
- Actualice a función de devolución de chamada ISR do temporizador _SessionTimer_Callback() para xestionar o caso de tempo de espera chamando a: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Engade as seguintes definicións para habilitar a saída da interface de usuario HAL en board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Aviso:
Para presentar mellor a función de recoñecemento facial, mantén a función para mostrar o proceso e os resultados do recoñecemento facial no HAL da interface de usuario de saída. A función descríbese a continuación
- O rectángulo da guía da cara móstrase en azul e a barra de progreso mostra o progreso ao iniciar o rexistro ou o recoñecemento da cara.
- O rectángulo da guía da cara móstrase en vermello cando o rexistro da cara se realiza correctamente.
- O rectángulo da guía facial móstrase en verde cando o recoñecemento facial se realiza correctamente.
- O rectángulo da guía da cara mantense azul e a barra de progreso mostra o progreso total cando a acción non se realiza correctamente despois do vencemento do temporizador. Nese momento, detén o rexistro ou o recoñecemento facial.
A barra de progreso e o rectángulo da guía facial preséntanse como as iconas integradas no binario de recursos file para ser programado en Flash. Os punteiros para os datos de iconas na SDRAM están configurados na función LoadIcons(APP_ICONS_BASE) chamada na inicialización do dispositivo UI HAL de saída na saída UI HAL. Debe implementar o soporte de iconas para a función.
Implementar o soporte de iconas
- Constrúe o recurso combinando as iconas coas imaxes utilizadas na aplicación LVGL GUI:
- Clona a cabeceira de catro iconas files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h e virtual_face_red_420x426.h de smart HMI
\máquina de café\recurso\icons\ ás iconas do novo cartafol baixo o cartafol de recursos do exampo SW. - Engade o camiño de busca para a icona catro files na cámara_preview_recurso.txt file no cartafol de recursos, por exemploample: icon ../resource/icons/process_bar_240x14.h
- Executar camera_preview_resource_build.bat para construír os recursos de imaxes e iconas para xerar a papeleira file cámara_preview_resource.bin e a información file resource_information_table.txt (Consulte a Figura 6).
- Clona a cabeceira de catro iconas files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h e virtual_face_red_420x426.h de smart HMI
- Define o enderezo de inicio na SDRAM e o tamaño das iconas en app_config.h. O enderezo comeza xunto ás imaxes da aplicación GUI. O tamaño xérase na información file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Actualice o tamaño asignado da sección de memoria chamada res_sh_mem a 0x200000 redefiníndoo en app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 e a configuración correspondente en Proxecto > Propiedades > Construción C/C++ > Configuración MCU.
- Engade o tamaño da icona ao tamaño total do recurso cargado de Flash a SDRAM na función APP_LoadResource() no menú principal file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Aviso: Para completar a función de recoñecemento facial, é necesario o soporte da aplicación LVGL GUI. A aplicación LVGL GUI chama ás funcións de devolución de chamada da interface de usuario no HAL da interface de usuario de saída para xestionar os eventos desde a pantalla da interface de usuario. Por outra banda, o HAL da interface de usuario de saída chama ás API da aplicación GUI LVGL para actualizar a interface de usuario e mostrar o resultado e o estado. O desenvolvemento da aplicación LVGL GUI é relativamente independente e introducido na Sección 4.3.
4.1.5 Iniciar dispositivos e xestores HAL para o recoñecemento facial
O algoritmo de visión habilitado HAL e a saída da interface de usuario HAL e os seus xestores inícianse na principal file
lvgl_gui_face_rec_cm7.cpp seguindo as conversións de desenvolvemento no marco como se indica a continuación:
- Inclúe a cabeceira file relacionados cos dous xestores HAL engadindo a liña de código:
- #include " fwk_output_manager.h "
- #include “fwk_vision_algo_manager.h”
- Declarar os dispositivos HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Rexistrar os dispositivos HAL:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Iniciar os xestores:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- Comeza os xestores:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Definir a prioridade das tarefas do xestor:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Engadir soporte de base de datos facial no framework
Accédese aos datos das características faciales rexistradas na base de datos de rostros almacenada en Flash a través dun pouco file sistema. A continuación descríbense os pasos para engadir o soporte de base de datos facial.
Engade controladores para o almacenamento Flash
Copie o controlador FlexSPI da interface Flash files fsl_flexspi.c e fsl_flexspi.h e o controlador de cifrado de datos files fsl_caam.c e fsl_caam.h dende a ruta SDK_2_13_0_MIMXRT1170-EVK\devices\MIMRX1176\drivers\ ao cartafol de controladores do exampo SW.
Engade soporte a nivel de taboleiro
- Engade as definicións de FlexSPI utilizadas para o dispositivo Flash a bordo en board.h:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Copia os operadores e configuracións files do dispositivo Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h e sln_flash_ops.h baixo a ruta smart HMI\coffee_machine\cm7config.ampo SW.
- Desmarque "Excluír recurso da compilación" en C/C++ Compilación > Configuración despois de facer clic co botón dereito sobre o files e abrindo as Propiedades para que se integren no proxecto.
- Cambia a cabeceira incluída filenomee sln_flash_config.h a sln_flash_config_w25q256jvs.h en sln_flash_config.c e flexspi_nor_flash_ops.h.
- Establece a fonte do reloxo FlexSPI1 no file clock_config.c facendo referencia á aplicación da máquina de café.
Engade adaptador e soporte de nivel medio
- Copia o files sln_flash.c, sln_flash.h, sln_encrypt.c e sln_encrypt.h como controladores de adaptadores para o file sistema e aplicación desde a ruta de smart HMI\coffee_machine\cm7\source\ ata a fonte do cartafol do example. Actualiza o novo files:
- Desmarque "Excluír recurso da compilación" para construír.
- Cambia toda a cabeceira incluída file nomear sln_flash_config.h a sln_flash_config_w25q256jvs.h.
- Copia o cartafol filesistema que contén as API para os pequenos filesistema e controlador HAL desde smart HMI \coffee_machine\cm7\source\ ata o exampo SW. E actualizar para o novo cartafol:
- Desmarque "Excluír recurso da compilación" para construír.
- Engade a ruta de inclusión na configuración do proxecto: "${workspace_loc:/${ProjName}/filesistema}"
- Cambia a cabeceira incluída file nomee sln_flash_config.h a sln_flash_config_w25q256jvs.h e fica_definition.h a app_config.h no file sln_flash_littlefs.h.
- Copia o cartafol littlefs que contén a ware media - little filesistema desde a ruta SDK_2_13_0_ MIMXRT1170-EVK\middleware\ ata o exampo SW. E actualiza o novo cartafol:
- Desmarque "Excluír recurso da compilación" para construír.
- Engade a ruta de inclusión na configuración do proxecto: "${workspace_loc:/${ProjName}/littlefs}"
Engade controladores HAL
- Hai dous dispositivos HAL: file sistema e base de datos facial HAL admitidos para a función de acceso á base de datos e xa están implementados no marco sen ningún cambio. Habilitalos engadindo as seguintes definicións en board_define.h:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
E cambia o nome da base de datos de caras para o example: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”
Engade soporte a nivel de aplicación
- Actualiza o principal file lvgl_gui_face_rec_cm7.cpp:
- Inclúe a cabeceira file relacionados co Flash file xestor HAL do sistema engadindo a liña de código: #include “fwk_flash.h”
- Declarar e rexistrar file Dispositivo HAL do sistema:
- HAL_FLASH_DEV_DECLARE(Littlefs);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Nota: O file O dispositivo HAL do sistema debe rexistrarse antes de que se inicialicen todos os xestores de dispositivos na función APP_InitFramework().
- Chame á función BOARD_ConfigMPU() en APP_BoardInit() para configurar MPU.
- Establece o file asignación do sistema en Flash no file app_config.h definindo as definicións de macro utilizadas no ficheiro file sln_flash_littlefs.h:
- #definir FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #definir FICA_FILE_SYS_SIZE (0x280000)
Configuracións
Algúns códigos relacionados con Flash execútanse na área SRAM ITC para un rendemento suficiente. Copie os scripts de ligazóns do cartafol que conteñen as configuracións do enlace desde a ruta smart HMI\coffee_machine\cm7\ ao exampo SW.
Implementar unha aplicación GUI LVGL
O desenvolvemento dunha aplicación LVGL GUI baseada no framework chama ás API da saída UI HAL e proporciona as API para emitir UI HAL (consulta a Sección 4.1.3 para a implementación da saída UI HAL).
Non obstante, a implementación detallada dunha aplicación GUI LVGL depende dos requisitos e do deseño da aplicación. A aplicación GUI neste example está deseñado como se describe ao comezo da sección Sección 4.
A continuación móstranse as introducións á implementación:
- Os códigos personalizados impléntanse nos custom.c e custom.h proporcionados por GUI Guider como interface entre o proxecto GUI Guider e o proxecto do sistema integrado.
- Engade as novas funcións chamadas gui_xxx() en custom.c para conseguir as seguintes funcións:
- Para a aplicación UI HAL e GUI de saída para actualizar a IU.
- Para que a aplicación GUI active eventos chamando a funcións de devolución de chamada da IU desde a saída da UI HAL.
Por example, a nova función gui_event_face_rec_action() chama ás funcións de devolución de chamada da IU para xestionar un dos eventos de rexistro facial, recoñecemento facial e eliminación de usuarios activados desde a aplicación GUI cando se fai clic no botón relacionado.
Nota: a función gui_set_virtual_face() chamada na saída UI HAL para preview o modo debe ser implementado en custom.c:
- Clonar a función gui_set_virtual_face() desde smart HMI\coffee_machine\cm4\custom\custom.c.
- Cambia o nome do widget home_img_cameraPreview a screen_img_camera_preview na función.
- Implementar as funcións de devolución de chamada da IU co mesmo prototipo a todas as que están na saída UI HAL baixo o control da definición de macro #ifndef RT_PLATFORM en custom.c para ser compatible co proxecto GUI Guider porque estas funcións na saída UI HAL dependen do plataforma integrada. En custom.c, dependen do simulador do guía GUI e son independentes da plataforma integrada. Por example, a devolución de chamada do rexistro de cara implícase como se indica a continuación para o simulador GUI Guider en execución: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = falso; volver; }
Nota: Consulte o mesmo prototipo da función introducido no paso 6 da Sección 4.1.3
A definición de macro RT_PLATFORM está definida na configuración do proxecto de MCUXpresso como se mostra na Figura 7: - Declara todas as funcións chamadas UI_xxx_Callback() e gui_xxx() en custom.h e engade custom.h incluído en smart_tlhmi_event_descriptor.h para compartir as API da interface gráfica de usuario na saída HAL da interface de usuario.
- Engade as novas funcións chamadas gui_xxx() en custom.c para conseguir as seguintes funcións:
- Desenvolve a GUI en GUI Guider:
- Clonar a cámara do cartafol previamenteview que contén o software do proxecto GUI Guider no cartafol gui_guider no paquete de software base lvgl_gui_camera_preview_cm7. Cambia o nome relacionado camera_preview to face_rec para o novo example.
- Copia o custom.c e custom actualizado anteriormente. h ao novo software do proxecto GUI Guider.
- Abre o novo proxecto face_rec no GUI Guider. Actualizar como se indica a continuación:
- Engade o novo botón denominado Eliminar usuario. Engade a marca Hidden para que o botón se oculte cando se inicie a aplicación GUI.
- Engade a liña de código de chamar á API gui_event_face_rec_action() cun parámetro ID de evento diferente no disparador "Liberado" na configuración de eventos de todos os botóns Rexistro, Recoñecemento e Eliminar usuario para activar os eventos de rexistro facial, recoñecemento facial e eliminación de usuario. A Figura 8 mostra o código para o evento do botón Rexistro:
- Actualiza o código xerado desde GUI Guider ao proxecto MCUXpresso.
- Substitúe os contidos agás as imaxes do cartafol no cartafol xerado do SW do proxecto MCUXpresso polos correspondentes no cartafol xerado do SW do proxecto GUI Guider.
Nota: Para obter máis detalles sobre as modificacións introducidas anteriormente, consulte o exampo software en https://mcuxpresso.nxp.com/appcodehub.
Verificacións co exampo proxecto
Para conseguir o exampo paquete de software que contén os recursos e ferramentas para esta nota de aplicación, visite: https://mcuxpresso.nxp.com/appcodehub. Abre o example proxecto no IDE MCUXpresso. Construír e programar o .axf file ao enderezo 0x30000000 e programa a papeleira de recursos file cámara_preview_resource.bin ao enderezo 0x30800000.
O recoñecemento facial LVGL GUI, por exemploample funciona normalmente como a continuación:
- Preview: Co acendido, os fluxos de vídeo capturados pola cámara móstrase na zona específica da cámara preview na pantalla GUI. A etiqueta de estado mostra "Preview…”. Para obter máis información, consulte a Figura 3. O botón Eliminar usuario está oculto. Ao facer clic na área fóra dos botóns e imaxes, móstrase o preview indica o anterior despois de que finalice a acción de rexistro ou recoñecemento facial.
- Inscrición:
- tartupa: Cando se fai clic no botón Rexistro, comeza o rexistro da cara. A etiqueta de estado cambia para mostrar "Rexistro...", o rectángulo da guía da cara móstrase en azul e a barra de progreso comeza a mostrar o progreso. Asegúrate de que a cara do usuario aparece no rectángulo azul da guía da cara para o rexistro.
- éxito: A etiqueta de estado mostra "Rexistro... Aceptar" e o número de ID de usuario rexistrado, o rectángulo da guía facial vólvese vermello se o rexistro da cara se realiza correctamente antes de que o progreso apareza completo na barra.
- Fallo -> Tempo de espera: a etiqueta de estado mostra "Rexistro... Tempo de espera" se o rexistro da cara aínda falla cando o progreso aparece completo na barra.
- Fallo -> Duplicación: a etiqueta de estado mostra "Rexistro... Fallou", o rectángulo da guía da cara tórnase verde se a cara rexistrada é recoñecida antes de que o progreso apareza completo na barra.
- recoñecemento:
- Inicio: cando se fai clic no botón Recoñecemento, iníciase o recoñecemento facial. A etiqueta de estado cambia para mostrar "Recoñecemento...", o rectángulo da guía da cara móstrase en azul e a barra de progreso comeza a mostrar o progreso. Asegúrate de que a cara do usuario aparece no rectángulo azul da guía da cara para o rexistro.
- éxito: a etiqueta de estado mostra "Recoñecemento... Aceptar" e o número de identificación do usuario recoñecido, o rectángulo da guía facial vólvese verde se o recoñecemento facial se realiza correctamente antes de que o progreso apareza completo na barra. Neste punto, aparece o botón Eliminar usuario. Significa que o usuario só pode ser eliminado cando se recoñece.
- ailure: a etiqueta de estado mostra "Recoñecemento... Tempo de espera" se o recoñecemento facial aínda falla cando o progreso aparece completo na barra.
- Eliminar usuario: Cando se fai clic no botón "Eliminar usuario", despois de que o recoñecemento facial teña éxito, a etiqueta de estado cambia para mostrar "Eliminar usuario... Aceptar" co rectángulo da guía da cara que se volve azul e o progreso aparece completo na barra. O botón Eliminar usuario volve ocultarse. O rostro/usuario recoñecido elimínase da base de datos. Significa que non se pode recoñecer esta cara/usuario ata que se rexistre de novo.
Nota sobre o código fonte do documento
ExampO código de ficheiro que se mostra neste documento ten os seguintes dereitos de autor e licenza BSD-3-Clause:
Copyright 2024 NXP Permítese a redistribución e o uso en formas fonte e binarias, con ou sen modificación, sempre que se cumpran as seguintes condicións:
- As redistribucións do código fonte deben conservar o aviso de copyright anterior, esta lista de condicións e a seguinte exención de responsabilidade.
- As redistribucións en forma binaria deben reproducir o aviso de copyright anterior, esta lista de condicións e a seguinte exención de responsabilidade na documentación e/ou outros materiais deben proporcionarse coa distribución.
- Nin o nome do titular dos dereitos de autor nin os nomes dos seus colaboradores poden utilizarse para avalar ou promover produtos derivados deste software sen o permiso previo por escrito específico.
ESTE SOFTWARE O PROPORCIONAN OS TITULARES DO COPYRIGHT E OS COLABORADORES "TAL CUAL" E DENEGARON CALQUERA GARANTÍA EXPRESA OU IMPLÍCITA, INCLUÍDAS, PERO NON LIMITADAS A, AS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDADE E IDONEIDADE PARA UN FIN PARTICULAR. EN NINGÚN CASO O TITULAR OU OS COLABORADORES SERÁ RESPONSABLE DE NINGÚN DANOS DIRECTOS, INDIRECTOS, ACCIDENTALES, ESPECIAIS, EXEMPLARS OU CONSECUENTES (INCLUÍDO, PERO NON LIMITADO A, A ADQUISICIÓN DE BENS OU SERVIZOS SUSTITUTOS, PERDA DE DATOS, BENEFICIOS DO USO; OU INTERRUPCIÓN DO NEGOCIO) COMA CAUSADA E SOBRE CALQUERA TEORÍA DE RESPONSABILIDADE, FOI CONTRACTUAL, RESPONSABILIDAD ESTRICTA OU EXTRAORDINARIA (INCLÚA A NEGLIXENCIA OU DE OUTRO MODO) DERIVADA DE CALQUERA FORMA DO USO DESTE SOFTWARE, AÍNDA QUE SE AVISA DA POSIBILIDADE DESE SOFTWARE.
Historial de revisións
Información legal
Definicións
Borrador: un estado de borrador nun documento indica que o contido aínda está baixo unha revisión internaview e suxeita a aprobación formal, que poderá dar lugar a modificacións ou engadidos. NXP Semiconductors non ofrece ningunha representación ou garantía en canto á exactitude ou integridade da información incluída nun borrador dun documento e non terá ningunha responsabilidade polas consecuencias do uso desta información.
Exención de responsabilidade
- Garantía limitada e responsabilidade — Considérase que a información deste documento é precisa e fiable. Non obstante, NXP Semiconductors non ofrece ningunha representación ou garantía, expresa ou implícita, en canto á exactitude ou integridade desta información e non terá ningunha responsabilidade polas consecuencias do uso desta. NXP Semiconductors non se fai responsable do contido deste documento se o proporciona unha fonte de información allea a NXP Semiconductors.
En ningún caso NXP Semiconductors será responsable de ningún dano indirecto, incidental, punitivo, especial ou consecuente (incluíndo, sen limitación, a perda de beneficios, a perda de aforros, a interrupción do negocio, os custos relacionados coa eliminación ou substitución de calquera produto ou cargos de reelaboración). ou non, tales danos están baseados en agravio (incluíndo neglixencia), garantía, incumprimento do contrato ou calquera outra teoría legal.
Sen prexuízo de calquera dano que o cliente poida sufrir por calquera motivo, a responsabilidade acumulada e acumulada de NXP Semiconductors cara ao cliente polos produtos descritos neste documento estará limitada de acordo cos Termos e condicións de venda comercial de NXP Semiconductors. - Dereito a facer cambios — NXP Semiconductors resérvase o dereito de realizar cambios na información publicada neste documento, incluídas, sen limitación, especificacións e descricións de produtos, en calquera momento e sen previo aviso. Este documento substitúe e substitúe toda a información proporcionada antes da súa publicación.
- Idoneidade para o seu uso — Os produtos NXP Semiconductors non están deseñados, autorizados ou garantidos para ser axeitados para o seu uso en sistemas ou equipos de soporte vital, críticos para a vida ou para a seguridade, nin en aplicacións nas que se poida esperar razoablemente que a falla ou o mal funcionamento dun produto NXP Semiconductors resulte en danos persoais, morte ou danos graves á propiedade ou ao medio ambiente. NXP Semiconductors e os seus provedores non aceptan ningunha responsabilidade pola inclusión e/ou o uso de produtos de NXP Semiconductors en tales equipos ou aplicacións e, polo tanto, tal inclusión e/ou uso corre a risco do cliente.
- Aplicacións — As aplicacións que se describen aquí para calquera destes produtos son só con fins ilustrativos. NXP Semiconductors non fai ningunha representación ou garantía de que tales aplicacións sexan axeitadas para o uso especificado sen máis probas ou modificacións.
Os clientes son responsables do deseño e funcionamento das súas aplicacións e produtos utilizando produtos NXP Semiconductors, e NXP Semiconductors non se fai responsable de ningunha asistencia coas aplicacións ou o deseño do produto do cliente. É responsabilidade exclusiva do cliente determinar se o produto NXP Semiconductors é axeitado e apto para as aplicacións e produtos previstos do cliente, así como para a aplicación e o uso planificados dos clientes de terceiros do cliente. Os clientes deben proporcionar garantías de deseño e funcionamento adecuadas para minimizar os riscos asociados ás súas aplicacións e produtos. NXP Semiconductors non acepta ningunha responsabilidade relacionada con calquera defecto, dano, custo ou problema que se basee en calquera debilidade ou defecto nas aplicacións ou produtos do cliente, ou na aplicación ou uso por parte dos clientes externos do cliente. O cliente é responsable de facer todas as probas necesarias para as aplicacións e produtos do cliente que utilicen produtos de NXP Semiconductors co fin de evitar un defecto das aplicacións e dos produtos ou da aplicación ou o seu uso por parte dos clientes externos do cliente. NXP non acepta ningunha responsabilidade a este respecto. - Termos e condicións de venda comercial — Os produtos de NXP Semiconductors véndense suxeitos aos termos e condicións xerais de venda comercial, segundo se publica en https://www.nxp.com/profile/termos, a non ser que se acorde o contrario nun acordo individual escrito válido. No caso de que se celebre un acordo individual, só se aplicarán os termos e condicións do acordo respectivo. NXP Semiconductors opón expresamente a aplicación dos termos e condicións xerais do cliente con respecto á compra de produtos de NXP Semiconductors por parte do cliente.
- Control de exportación — Este documento, así como o(s) artigo(s) aquí descrito(s), poden estar suxeitos ás normas de control das exportacións. A exportación pode requirir unha autorización previa das autoridades competentes.
- Adecuación para o seu uso en produtos non cualificados para a automoción — A non ser que este documento indique expresamente que este produto específico de NXP Semiconductors está cualificado para o sector de automóbiles, o produto non é adecuado para o seu uso en automóbiles. Non está cualificado nin probado de acordo coas probas de automóbiles ou requisitos de aplicación. NXP Semiconductors non acepta ningunha responsabilidade pola inclusión e/ou o uso de produtos cualificados non automotivos en equipos ou aplicacións automotrices.
No caso de que o cliente utilice o produto para o deseño e o uso en aplicacións de automóbiles segundo as especificacións e estándares de automoción, o cliente (a) utilizará o produto sen a garantía do produto por parte de NXP Semiconductors para tales aplicacións, usos e especificacións de automóbiles e ( b) sempre que o cliente utilice o produto para aplicacións automotrices máis aló das especificacións de NXP Semiconductors, ese uso será exclusivamente baixo o propio risco do cliente, e (c) o cliente indemnizará totalmente a NXP Semiconductors por calquera responsabilidade, dano ou reclamación de produtos fallidos derivados do deseño e uso do cliente. o produto para aplicacións automotivas máis aló da garantía estándar de NXP Semiconductors e das especificacións do produto de NXP Semiconductors. - Traducións — Unha versión non inglesa (traducida) dun documento, incluída a información legal deste documento, é só para referencia. A versión en inglés prevalecerá en caso de discrepancia entre a versión traducida e a inglesa.
- Seguridade — O cliente entende que todos os produtos NXP poden estar suxeitos a vulnerabilidades non identificadas ou poden soportar estándares ou especificacións de seguridade establecidas con limitacións coñecidas. O cliente é responsable do deseño e funcionamento das súas aplicacións e produtos ao longo do seu ciclo de vida para reducir o efecto destas vulnerabilidades nas aplicacións e produtos do cliente. A responsabilidade do cliente tamén se estende a outras tecnoloxías abertas e/ou propietarias soportadas polos produtos NXP para o seu uso nas aplicacións do cliente. NXP non se fai responsable de ningunha vulnerabilidade. O cliente debe comprobar regularmente as actualizacións de seguranza de NXP e facer un seguimento adecuado. O cliente seleccionará produtos con funcións de seguridade que mellor cumpran as regras, regulamentos e estándares da aplicación prevista e tomará as decisións de deseño definitivas sobre os seus produtos e é o único responsable do cumprimento de todos os requisitos legais, regulamentarios e relacionados coa seguridade dos seus produtos, independentemente de de calquera información ou apoio que poida proporcionar NXP.
NXP dispón dun Equipo de Resposta a Incidentes de Seguridade do Produto (PSIRT) (que se pode acceder en PSIRT@nxp.com) que xestiona a investigación, os informes e a liberación de solucións para as vulnerabilidades de seguridade dos produtos NXP.
NXP B.V. — NXP B.V. non é unha empresa operadora e non distribúe nin vende produtos.
Marcas comerciais
Aviso: Todas as marcas de referencia, nomes de produtos, nomes de servizos e marcas comerciais son propiedade dos seus respectivos propietarios.
NXP — a marca e o logotipo son marcas comerciais de 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 — son marcas comerciais e/ou marcas rexistradas de Arm Limited (ou das súas subsidiarias ou afiliadas) nos EUA e/ou noutro lugar. A tecnoloxía relacionada pode estar protexida por algunha ou todas as patentes, dereitos de autor, deseños e segredos comerciais. Todos os dereitos reservados.
- i.MX — é unha marca comercial de NXP BV
- J-Link — é unha marca comercial de SEGGER Microcontroller GmbH.
Microsoft, Azure e ThreadX son marcas comerciais do grupo de empresas Microsoft.
Teña en conta que na sección "Información legal" incluíronse avisos importantes relativos a este documento e aos produtos aquí descritos.
© 2024 NXP BV
Para obter máis información, visite: https://www.nxp.com
- Data de lanzamento: 19 de abril de 2024
- Identificador do documento: AN14263
FAQ
P: Cal é o propósito principal deste produto?
R: O propósito principal é habilitar a función de recoñecemento facial usando un modelo de algoritmo de visión AI&ML cunha GUI LVGL sinxela.ample na placa SLN-TLHMI-IOT.
P: Como poden beneficiarse os desenvolvedores desta nota da aplicación?
R: Os desenvolvedores poden aprender a implementar o recoñecemento facial no marco paso a paso usando o exemplo proporcionadoampLe e comprende os xestores de dispositivos, os dispositivos HAL e os mecanismos de eventos implicados.
Documentos/Recursos
![]() |
NXP AN14263 Implementa o recoñecemento facial da GUI LVGL en Framewor [pdfGuía do usuario AN14263 Implementar o recoñecemento facial LVGL GUI en Framewor, AN14263, Implementar o recoñecemento facial LVGL GUI en Framewor, Recoñecemento facial LVGL GUI en Framewor, Recoñecemento facial en Framewor, Recoñecemento en Framewor, Framewor |