logotipo nxp

NXP AN14263 implementa reconhecimento facial GUI LVGL no framework

NXP-AN14263-Implement-LVGL-GUI Produto de reconhecimento facial na estrutura

Informações do produto

Especificações

  • Nome do produto: Reconhecimento facial LVGL GUI no Framework
  • Revisão do documento: 1 – 19 de abril de 2024
  • Palavras-chave: Reconhecimento facial, GUI LVGL, Framework

Instruções de uso do produto

  1. Sobreview
    Este produto permite que o modelo de algoritmo de visão AI e ML para reconhecimento facial em uma estrutura implemente a função de reconhecimento facial com uma GUI LVGL simples examparquivo na placa SLN-TLHMI-IOT.
  2. Estrutura encerradaview
    O software da solução é projetado em torno da arquitetura de estrutura que inclui gerenciadores de dispositivos responsáveis ​​pelo gerenciamento de dispositivos, dispositivos HAL para abstrair detalhes subjacentes e eventos para comunicação entre diferentes dispositivos.
  3. Características
    O produto permite a implementação da função de reconhecimento facial via pré-câmeraview na tela da GUI com botões para acionar registro, reconhecimento e remoção de rosto. Os dados faciais registrados são armazenados no Flash por meio de um file sistema.
  4. Conteúdo da nota de aplicação
    A nota de aplicação apresenta uma tela GUI LVGL com pré-câmeraview e botões para ações relacionadas ao rosto. Ajuda os desenvolvedores a entender a estrutura e como implementar o reconhecimento facial usando o ex fornecidoampeu.

Sobreview

A NXP lançou um kit de desenvolvimento de solução denominado SLN-TLHMI-IOT que se concentra em aplicações HMI inteligentes. Ele permite IHM inteligente com visão ML, voz e UI gráfica implementada em um MCU NXP i.MX RT117H. Com base no SDK, o software da solução é construído em um design denominado estrutura que oferece suporte a designs flexíveis e personalização de funções de visão e voz. Para ajudar os usuários a utilizar melhor a plataforma de software, são fornecidos alguns documentos básicos, por exemploample, o guia do usuário de desenvolvimento de software. O guia apresenta o design básico de software e a arquitetura dos aplicativos, cobrindo todos os componentes da solução, incluindo a estrutura para ajudar os desenvolvedores a implementar seus aplicativos de maneira mais fácil e eficiente usando o SLN-TLHMI-IOT.
Para mais detalhes sobre a solução e documentos relevantes, visite o web página da solução NXP EdgeReady Smart HMI baseada em i.MX RT117H com ML Vision, voz e UI gráfica. No entanto, ainda não é tão fácil para os desenvolvedores implementarem suas aplicações HMI inteligentes consultando estes guias básicos. Uma série de notas de aplicação está planejada para ajudar a estudar o desenvolvimento da estrutura passo a passo. Esta nota de aplicação é baseada no Implement LVGL GUI Camera Preview na Estrutura (documento AN14147). Esta nota de aplicação descreve como habilitar o modelo de algoritmo de visão AI&ML para reconhecimento facial na estrutura para implementar a função de reconhecimento facial por meio de pré-câmera.view na tela da GUI com um simples LVGL GUI examparquivo na placa SLN-TLHMI-IOT. Na nota de aplicação, o example apresenta uma tela GUI LVGL com uma câmera préview e alguns botões para acionar o registro, reconhecimento e remoção de rosto. Os dados faciais registrados são armazenados no Flash por meio de um pequeno file sistema.

Em alto nível, a nota de aplicação contém o conteúdo abaixo:

  • Habilite o recurso de reconhecimento facial na estrutura.
  • Adicione suporte de banco de dados facial na estrutura via file sistema em Flash.
  • Implemente o aplicativo GUI LVGL. Através das introduções acima, este documento ajuda os desenvolvedores a:
  • Entenda mais profundamente a estrutura e o software da solução HMI inteligente.
  • Desenvolva seu reconhecimento facial AI&ML na estrutura com o aplicativo LVGL GUI.

Estrutura encerradaview
O software da solução é projetado principalmente em torno do uso da arquitetura de estrutura composta por várias partes diferentes:

  • Gerenciadores de dispositivos – a parte principal
  • Dispositivos de camada de abstração de hardware (HAL)
  • Mensagens/Eventos

Como mostrado na Figura 1, o excessoview do mecanismo da estrutura é:

Os gerenciadores de dispositivos são responsáveis ​​por gerenciar os dispositivos usados ​​pelo sistema. Cada tipo de dispositivo (entrada, saída e assim por diante) possui seu próprio gerenciador de dispositivos específico do tipo. Com um gerenciador de dispositivos iniciando após os dispositivos serem registrados nele, ele aguarda e verifica uma mensagem para transferir dados para os dispositivos e outros gerenciadores após inicializar e iniciar os dispositivos registrados. Os dispositivos HAL são escritos sobre o código do driver de nível inferior, ajudando a aumentar a compreensão do código, abstraindo muitos dos detalhes subjacentes.

Os eventos são um meio pelo qual a informação é comunicada entre diferentes dispositivos através dos seus gestores. Quando um evento é acionado, o dispositivo que primeiro recebeu o evento comunica esse evento ao seu gerente e, por sua vez, notifica outros gerentes designados para receber o evento.

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

O projeto arquitetônico da estrutura foi centrado em três objetivos principais:

  1. Facilidade de uso
  2. Flexibilidade/portabilidade
  3. Desempenho

A estrutura foi projetada com o objetivo de acelerar o tempo de lançamento no mercado de visão e outras aplicações de aprendizado de máquina. Para garantir um lançamento rápido no mercado, é fundamental que o software em si seja fácil de entender e modificar. Tendo esse objetivo em mente, a arquitetura da estrutura é fácil de modificar sem ser restritiva e sem prejudicar o desempenho.
Para obter mais detalhes sobre a estrutura, consulte Guia do usuário de desenvolvimento de software Smart HMI (documento MCU-SMHMI-SDUG).

Biblioteca gráfica leve e versátil (LVGL)
LVGL (Light and Versatile Graphics Library) é uma biblioteca gráfica gratuita e de código aberto que fornece tudo o que você precisa para criar uma GUI incorporada com elementos gráficos fáceis de usar, belos efeitos visuais e baixo consumo de memória.

Guia de GUI
GUI Guider é uma ferramenta de desenvolvimento de interface gráfica amigável da NXP que permite o desenvolvimento rápido de displays de alta qualidade com a biblioteca gráfica LVGL de código aberto. O editor de arrastar e soltar do GUI Guider facilita o uso de muitos recursos do LVGL, como widgets, animações e estilos, para criar uma GUI com o mínimo ou nenhuma codificação.

Com o clique de um botão, você pode executar seu aplicativo em um ambiente simulado ou exportá-lo para um projeto de destino. O código gerado pelo GUI Guider pode ser facilmente adicionado ao seu projeto, acelerando o processo de desenvolvimento e permitindo adicionar perfeitamente uma interface de usuário incorporada ao seu aplicativo. O GUI Guider é gratuito para uso com MCUs de uso geral e crossover da NXP e inclui modelos de projeto integrados para diversas plataformas suportadas. Para saber mais sobre o desenvolvimento de LVGL e GUI no GUI Guider, verifique Light and Versatile Graphics Library e GUI Guider.

Ambiente de desenvolvimento

Primeiro, prepare e configure o ambiente de hardware e software para implementar o example na estrutura.

Ambiente de hardware
O ambiente de hardware está configurado para verificar o exampem:

  • O kit de desenvolvimento de HMI inteligente baseado no NXP i.MX RT117H (o kit SLN_TLHMI_IOT)
  • SEGGER J-Link com adaptador Cortex-M de 9 pinos e V7.84a ou uma versão mais recente do driver

ambiente de software
O ambiente de software está configurado para desenvolver o exampem:

  • MCUXpresso IDE V11.7.0
  • Guia GUI V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – example código da segunda nota de aplicação como software base do desenvolvimento. Para obter detalhes, consulte https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 – como recurso de código para o desenvolvimento.
  • Software SLN-TLHMI-IOT V1.1.2 – código fonte de HMI inteligente lançado no repositório NXP GitHub como recurso de código para o desenvolvimento. Para obter detalhes, consulte: GitHub – NXP/mcu-smhmi em v1.1.2

Para obter detalhes sobre a aquisição e configuração do ambiente de software, consulte: Introdução ao SLN-TLHMI-IOT.

Arquitetura de visão na estrutura

A arquitetura de visão da estrutura é mostrada na Figura 2. O algoritmo de visão HAL (OASIS_HAL) possui os processos abaixo:

  • Faça registro e reconhecimento facial por meio do modelo de algoritmo de visão AI&ML após receber os eventos relacionados da UI HAL de saída. Notifique os resultados da inferência do modelo de algoritmo para a UI HAL de saída.
  • Acessa (adiciona, exclui…) o banco de dados de características faciais com base no pequeno file sistema chamando as APIs do FaceDB HAL após receber os eventos relacionados da UI de saída HAL.
  • Solicite o quadro de vídeo da câmera HAL ao fazer registro e reconhecimento facial.

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

Implementar reconhecimento facial na estrutura

O ex de reconhecimento facial LVGL GUIample (o exampO arquivo é fornecido posteriormente) na estrutura é implementada com base no example códigos de Implementar LVGL GUI Camera Preview na Estrutura (documento AN14147).

Por demonstrar o reconhecimento facial no example, a função básica do aplicativo GUI (veja a tela principal na Figura 3) é projetada conforme descrito abaixo:

  • O aplicativo GUI aciona o evento de registro ou reconhecimento facial para a UI de saída HAL ao clicar no botão Registro ou Reconhecimento. E a saída UI HAL notifica o evento de adição de um usuário ao algoritmo de visão HAL após o registro facial ser bem-sucedido.
  • O aplicativo GUI aciona o evento de exclusão de um usuário para a UI de saída HAL ao clicar no botão Excluir usuário após o rosto do usuário ser reconhecido.
  • O aplicativo GUI aciona o evento de interrupção do algoritmo oasis em execução na saída UI HAL ao clicar na tela fora dos botões e imagens.

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

Preparar o pacote de software para a implementação do exampeu.

  • Clone o software base lvgl_gui_camera_preview_cm7. Altere o nome do projeto e o principal filenome para lvgl_gui_face_rec_cm7.
  • O framework precisa ser atualizado no software, pois os códigos-fonte do núcleo do framework começaram a ser públicos no GitHub a partir da versão 1.1.2.
  • Substitua a pasta da estrutura pela cópia da V1.1.2 do GitHub, exceto para o files fwk_log.h e fwk_common.h em inc\ pois foram modificados para a série de notas de aplicação. As operações são mostradas na Figura 4:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (11)
  • Exclua a pasta framework_cm7 no grupo libs e remova a biblioteca framework_cm7 e seu caminho de pesquisa configurado em Projeto > Propriedades > Compilação C/C++ > configurações > Configurações de ferramentas > MCU C++ Linker > Bibliotecas, pois o código-fonte do núcleo é fornecido.

Habilite o recurso de reconhecimento facial na estrutura
O recurso de reconhecimento facial é baseado no modelo de algoritmo de visão de ML fornecido como uma biblioteca estática – uma biblioteca de tempo de execução Oasis Lite da NXP. A biblioteca é uma biblioteca de IA pequena, altamente eficiente, personalizada e otimizada. O modelo inclui detecção facial, reconhecimento facial, detecção de vidro e detecção de vivacidade. Ele fornece principalmente a API OASISLT_run_extended() para executar o pipeline de reconhecimento facial enquanto atualiza os resultados para o chamador por meio de retornos de chamada de eventos e adicionar/atualizar/excluir rostos no banco de dados por meio de retornos de chamada do banco de dados facial após especificar as informações do quadro de origem, retornos de chamada e memória pool usado pela biblioteca chamando outra API OASISLT_init() na inicialização. A chamada das APIs e as funções de callback são implementadas no algoritmo de visão HAL do framework.

Adicionar biblioteca de modelos de algoritmo de visão

  1. Copie a pasta oásis contendo a biblioteca e o cabeçalho relacionado file do smart HMI\coffee_machine\cm7\libs\ para a pasta libs do exampo SW.
  2. Adicione o caminho de pesquisa do cabeçalho file em Projeto > Propriedades > Compilação C/C++ > configurações > Configurações da ferramenta > Compilador MCU C > Inclui e compilador MCU C++ > Inclui: “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. Adicione a lib e seu caminho de pesquisa em Projeto > Propriedades > Compilação C/C++ > configurações > MCU C+ + Linker > Bibliotecas: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” e a definição da macro para habilite o recurso em Projeto > Propriedades > Compilação C/C++ > configurações > Configurações da ferramenta > Compilador MCU C > Pré-processador e compilador MCU C++ > Pré-processador: SMART_TLHMI_2D

Habilitar algoritmo de visão HAL
O algoritmo de visão HAL faz com que o modelo de algoritmo de visão funcione e responde os resultados à saída da UI HAL após receber os eventos dele.

Para habilitá-lo, clone o driver HAL semelhante existente file onde as funções abaixo são implementadas:

  • Implemente os retornos de chamada de operações de banco de dados faciais e manipulação de eventos.
  • Faça com que o algoritmo de visão funcione chamando as APIs da biblioteca oasis.
  • Acesse o banco de dados de rostos do usuário e o banco de dados do aplicativo (não é necessário no exampe).
  • Receba eventos e envie resultados para a UI HAL de saída.

As principais obras para implementação do HAL para o exampsão:

  • Clone o driver HAL semelhante existente file e altere os nomes relacionados.
  • Remova os códigos relacionados às operações de dados do aplicativo.
  • Atualize as definições e funções para lidar com os eventos da UI de saída HAL de acordo com o exampProjeto.
  • Adicione as configurações necessárias na inicialização do oasis.

As etapas detalhadas são as seguintes:

  1. Clone hal_vision_algo_oasis_coffeemachine.c. Mudar o filenome para hal_vision_algo_oasis_guifacerec.c. E substitua todas as strings CoffeeMachine por GUIFaceRec no file.
  2. Remova os códigos que contêm a string coffeedb (sem distinção entre maiúsculas e minúsculas) relacionada ao banco de dados do aplicativo, por exemploample, #incluir hal_sln_coffeedb.h.
  3. Modifique a função HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() para manipular os eventos da UI de saída HAL.
    • Altere a definição de evento kEventFaceRecId_RegisterCoffeeSelection para kEventFaceRecId_RegisterUserFace e a sequência de estrutura regCoffeeSelection para regGUIFaceRec para a manipulação de eventos para adicionar novos dados de recurso facial ao banco de dados.
    • Para mostrar o processo padrão das ações de reconhecimento facial no examparquivo, modifique o tratamento no caso de kEventFaceRecID_OasisSetState com as definições dos estados:
      • kOASISLiteState
      • Registro kOASISLiteState
      • Reconhecimento kOASISLiteState
      • Parou
  4. Adicione e modifique as definições dos eventos mencionados na etapa acima.
    • Copie o cabeçalho file smart_tlhmi_event_descriptor.h do smart HMI\coffee_machine \cm7\source\event_handlers\ para a pasta fonte do exampo SW. Atualize o file como abaixo:
    • Altere a definição de evento kEventFaceRecId_RegisterCoffeeSelection para kEventFaceRecId_RegisterUserFace no tipo de enum _event_smart_tlhmi_id e a cadeia de estrutura regCoffeeSelection para regGUIFaceRec na estrutura _event_smart_tlhmi. Portanto, altere a estrutura Register_coffee_selection_event_t de regCoffeeSelection para Register_gui_facerec_event_t.
    • Exclua os demais conteúdos usados ​​​​para o aplicativo da máquina de café, por exemploample, a linha de código sobre voz: #include “hal_event_descriptor_voice.h”.
    • Adicione os tipos kOASISLiteState_Stopped e kOASISLiteState_Running ao tipo de enum oasis_lite_state_t em hal_vision_algo.h em framework>hal>vision no projeto conforme abaixo:
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • Em execução, kOASISLiteState
      • Parado, kOASISLiteState
      • Reconhecimento,
      • kOASISLiteState
      • Registro, kOASISLiteState
      • Cancelamento de registro, kOASISLiteState
      • Registro Remoto, kOASISLiteState
      • Contar
    • Use a estrutura oasis_lite_state_t atualizada acima para refinar a estrutura oasis_state_event_t em hal_event_descriptor_face_rec.h em framework>hal>vision no projeto como abaixo: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
  5. Altere todos os kEventInfo_Remote para kEventInfo_Local para enviar eventos do algoritmo de visão HAL para outros HALs rodando no mesmo núcleo que o núcleo único em vez do núcleo duplo é usado no exampeu.
  6. Adicione e modifique as configurações abaixo para inicialização do oasis em OASISLT_init():
    • Adicione as definições de macro e seções de memória para o quadro de vídeo em 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__((seção(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __atributo__((alinhado(alignbytes)))
    • Configure a atribuição de memória para a seção de memória acima fb_sh_mem em Projeto > Propriedades > Compilação C/C++ > Configurações de MCU mostradas na Figura 5:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (12)
    • Declare a variável global g_DTCOPBuf em lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • Continue adicionando as definições usadas na variável acima:
    • Defina a seção acima em board_define.h:
      • #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var,alignbytes)\
      • atributo__((seção(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • atributo__((alinhado(alignbytes)))
    • Incluir o cabeçalho file hal_vision_algo.h contendo a definição de macro DTC_OPTIMIZE_BUFFER_SIZE em app_config.h incluída em lvgl_gui_face_rec_cm7.cpp.
  7. Defina a variável s_debugOption como true para mostrar o status do progresso no reconhecimento facial.
  8. Adicione o caminho de pesquisa do cabeçalho files da visão HAL no Projeto > Propriedades > Compilação C/C++ > configurações > Configurações de ferramentas > Compilador MCU C > Inclui e compilador MCU C++ > Inclui: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. Adicione a definição abaixo para ativar o algoritmo de visão HAL em board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

Habilitar UI de saída HAL
A UI de saída HAL notifica os eventos para o algoritmo de visão HAL e responde aos resultados de inferência do algoritmo de visão HAL. Com o aplicativo GUI, os eventos geralmente são acionados pelo aplicativo e os resultados são mostrados no aplicativo.

Para habilitá-lo, clone o driver HAL semelhante existente file onde geralmente as funções abaixo são implementadas:

  • Notifique os eventos para reconhecimento facial e acesso ao banco de dados.
  • Implemente os retornos de chamada para o aplicativo GUI para acionar os eventos.
  • Lide com os resultados de inferência do módulo vision algo.
  • Mostre o processo e os resultados do tratamento de eventos na UI pela barra de progresso controlada com os temporizadores e o retângulo do guia facial.

As principais obras para implementação do HAL para o exampOs arquivos usados ​​neste documento são:

  • Clone o driver HAL semelhante existente file e altere os nomes relacionados.
  • Remova os códigos relacionados ao aplicativo.
  • Atualizar as funções de notificação de eventos e resposta de resultados conforme exampProjeto.
  • Adicione os retornos de chamada do aplicativo GUI para acionar os eventos.

As etapas detalhadas são as seguintes:

  1. Clone hal_output_ui_coffee_machine.c. Mudar o filenome para hal_output_ui_guifacerec.c.
  2. Substitua todas as strings CoffeeMachine por GUIFaceRec no file.
  3. Remova os códigos relacionados ao aplicativo – máquina de café.
    • Remova as funções WakeUp() e _StandBy() e os códigos relacionados (pode procurar por eles na string wake_up e standby).
    • Remover préview eventos de modo que manipulam códigos relacionados em HAL_OutputDev_UiGUIFaceRec_Input Notify().
    • Remova as funções UI_xxx_Callback() e os códigos contendo a string gui_ e tela relacionada à GUI da máquina de café exceto gui_set_virtual_face() para o préview recurso de modo.
    • Remova todos os códigos envolvidos nas variáveis ​​s_IsWaitingAnotherSelection e s_IsWaitingRegisterSelection relacionadas ao aplicativo da máquina de café.
    • Remova os códigos relacionados a voz, áudio e idioma. Para exampem:
      • #incluir “hal_voice_algo_asr_local.h”,
      • #incluir “hal_event_descriptor_voice.h”
  4. Para a notificação de diversos eventos, implemente as novas funções _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() e DeregisterGUIFaceRec() referentes às funções _StopFaceRec(), _RegisterCoffeeSelection() e DeregisterCoffeeSelection() antes de excluí-las.
    • O _OutputManagerNotify() implementa a função básica de saída de evento para enviar um evento para o algoritmo de visão HAL. As funções abaixo o chamam para enviar seus próprios eventos.
    • O _SetFaceRec() envia o evento kEventFaceRecID_OasisSetState para acionar o algoritmo de visão para registro facial, reconhecimento e interromper o algoritmo.
    • O _RegisterGUIFaceRec() envia o evento kEventFaceRecId_RegisterGUIFaceRec que é definido em smart_tlhmi_event_descriptor.h para adicionar dados de feições faciais ao banco de dados quando o registro estiver OK.
    • O DeregisterGUIFaceRec() envia o evento kEventFaceRecID_DelUser para excluir os dados da feição facial do banco de dados ao passar no reconhecimento facial.
  5. Atualize os códigos para executar as ações correspondentes, incluindo atualizar a GUI chamando as APIs do aplicativo LVGL GUI para os resultados de inferência de registro e reconhecimento facial na função _InferComplete_Vision() conforme ex.ampvamos projetar. Para exampou seja, quando o registro facial for bem-sucedido,
    • Pare de mostrar o progresso chamando _FaceRecProcess_Stop();
    • Pare o registro facial chamando _SetFaceRec(kOASISLiteState_Stopped);
    • Mostre o resultado bem-sucedido na GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Registre os dados faciais no banco de dados: _RegisterUserFace(s_UserId);
  6. Adicione funções de retorno de chamada da UI para lidar com os eventos: préview, registro facial, reconhecimento e exclusão de usuário acionados pela GUI. Para example, o retorno de chamada de registro facial: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • E adicione as funções _FaceRecProcess_Start() e _FaceRecProcess_Stop() para mostrar o progresso e o status nos diferentes eventos e resultados.
    • Atualize a função de retorno de chamada ISR do temporizador _SessionTimer_Callback() para lidar com o caso de tempo limite chamando: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. Adicione as definições abaixo para ativar HAL de saída da UI em board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

Perceber:
Para apresentar melhor o recurso de reconhecimento facial, mantenha a função para mostrar o processo e os resultados do reconhecimento facial na UI de saída HAL. A função é descrita abaixo

  • O retângulo da guia facial fica azul e a barra de progresso mostra o progresso ao iniciar o registro ou reconhecimento facial.
  • O retângulo da guia facial fica vermelho quando o registro da face é bem-sucedido.
  • O retângulo da guia facial fica verde quando o reconhecimento facial é bem-sucedido.
  • O retângulo da guia facial permanece azul e a barra de progresso mostra o progresso completo quando a ação não é bem-sucedida após a expiração do cronômetro. Nesse ponto, interrompa o registro ou reconhecimento facial.

A barra de progresso e o retângulo da guia de face são apresentados como ícones incorporados ao binário de recursos file para ser programado em Flash. Os ponteiros para os dados dos ícones na SDRAM são configurados na função LoadIcons(APP_ICONS_BASE) chamada na inicialização do dispositivo UI HAL de saída na interface HAL de saída. Deve implementar o suporte de ícones para a função.

Implementar o suporte a ícones

  1. Crie o recurso combinando os ícones com as imagens usadas no aplicativo LVGL GUI:
    • Clone o cabeçalho de quatro ícones files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h e virtual_face_red_420x426.h da HMI inteligente
      \coffee machine\resource\icons\ para os novos ícones da pasta na pasta de recursos do exampo SW.
    • Adicione o caminho de pesquisa para o ícone quatro fileestá na camera_preview_recurso.txt file na pasta de recursos, por examparquivo: ícone ../resource/icons/process_bar_240x14.h
    • Execute camera_preview_resource_build.bat para construir os recursos de imagens e ícones para gerar o bin file câmera_préview_resource.bin e as informações file resource_information_table.txt (veja a Figura 6).NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (13)
  2. Defina o endereço inicial na SDRAM e o tamanho dos ícones em app_config.h. O endereço começa próximo às imagens do aplicativo GUI. O tamanho é gerado nas informações file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. Atualize o tamanho atribuído da seção de memória denominada res_sh_mem para 0x200000 redefinindo-o em app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 e a configuração correspondente em Projeto > Propriedades > Compilação C/C++ > Configurações de MCU.
  4. Adicione o tamanho do ícone ao tamanho total do recurso carregado do Flash para SDRAM na função APP_LoadResource() no arquivo principal file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

Perceber: Para completar o recurso de reconhecimento facial, é necessário suporte ao aplicativo LVGL GUI. As funções de retorno de chamada da UI na saída UI HAL são chamadas pelo aplicativo LVGL GUI para manipular os eventos da tela da UI. Por outro lado, a UI de saída HAL chama as APIs do aplicativo LVGL GUI para atualizar a UI para mostrar o resultado e o status. O desenvolvimento do aplicativo GUI LVGL é relativamente independente e apresentado na Seção 4.3.

4.1.5 Iniciar dispositivos e gerenciadores HAL para reconhecimento facial
O algoritmo de visão habilitado HAL e UI geram HAL e seus gerenciadores são iniciados no principal file
lvgl_gui_face_rec_cm7.cpp seguindo as conversões de desenvolvimento no framework conforme abaixo:

  1. Incluir o cabeçalho file relacionado aos dois gerenciadores HAL adicionando a linha de código:
    • #incluir ”fwk_output_manager.h“
    • #incluir “fwk_vision_algo_manager.h”
  2. Declare os dispositivos HAL:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. Registre os dispositivos HAL:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec,ret);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec,ret);
  4. Inicialize os gerenciadores:
    • FWK_MANAGER_INIT(VisionAlgoManager, ret);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. Inicie os gerentes:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. Defina a prioridade das tarefas do gestor:
    • #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #define OUTPUT_MANAGER_TASK_PRIORITY 1

Adicionar suporte de banco de dados facial na estrutura
Os dados de características faciais registrados são acessados ​​no banco de dados facial armazenado no Flash por meio de um pequeno file sistema. As etapas para adicionar suporte ao banco de dados facial são descritas abaixo.

Adicione drivers para armazenamento Flash
Copie o driver FlexSPI da interface Flash files fsl_flexspi.c e fsl_flexspi.h, e o driver de criptografia de dados files fsl_caam.c e fsl_caam.h do caminho SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ para a pasta de drivers do exampo SW.

Adicionar suporte em nível de conselho

  1. Adicione as definições de FlexSPI usadas para o dispositivo Flash integrado em board.h:
    • #define BOARD_FLEXSPI FLEXSPI1
    • #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. Copie os operadores e configurações files do dispositivo Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h sob o caminho smart HMI\coffee_machine\cm7\source\flash_config\ para a placa de pasta do exampo SW.
    • Desmarque “Excluir recurso da compilação” em C/C++ Build > Configurações após clicar com o botão direito do mouse no filenome dos s e abrindo as Propriedades para permitir que eles sejam incorporados ao projeto.
  3. Alterar o cabeçalho incluído filenomeie sln_flash_config.h para sln_flash_config_w25q256jvs.h em sln_flash_config.c e flexspi_nor_flash_ops.h.
  4. Defina a fonte do relógio FlexSPI1 no file clock_config.c referente ao aplicativo da máquina de café.

Adicione adaptador e suporte de nível médio

  1. Copie o files sln_flash.c, sln_flash.h, sln_encrypt.c e sln_encrypt.h como drivers de adaptador para o file sistema e aplicativo do caminho do smart HMI\coffee_machine\cm7\source\ para a pasta fonte do exampeu. Atualize o novo files:
    • Desmarque “Excluir recurso da construção” neles para construção.
    • Alterar todo o cabeçalho incluído file nomeie sln_flash_config.h para sln_flash_config_w25q256jvs.h.
  2. Copie a pasta filesistema contendo as APIs para os pequenos filesistema e driver HAL do smart HMI \coffee_machine\cm7\source\ para o exampo SW. E atualize para a nova pasta:
    • Desmarque “Excluir recurso da construção” para construir.
    • Adicione o caminho de inclusão nas configurações do projeto: “${workspace_loc:/${ProjName}/filesistema}"
    • Alterar o cabeçalho incluído file nomeie sln_flash_config.h para sln_flash_config_w25q256jvs.h e fica_definition.h para app_config.h no file sln_flash_littlefs.h.
  3. Copie a pasta littlefs contendo o middleware – little filesistema do caminho SDK_2_13_0_ MIMXRT1170-EVK\middleware\ para o exampo SW. E atualize a nova pasta:
    • Desmarque “Excluir recurso da construção” para construir.
    • Adicione o caminho de inclusão nas configurações do projeto: “${workspace_loc:/${ProjName}/littlefs}”

Adicionar drivers HAL 

  • Existem dois dispositivos HAL – file HAL de sistema e banco de dados facial suportado para o recurso de acesso ao banco de dados e já estão implementados no framework sem qualquer alteração. Habilite-os adicionando as definições abaixo em board_define.h:
    • #define ENABLE_FLASH_DEV_Littlefs
    • #define ENABLE_FACEDB

E mude o nome do banco de dados facial para o examparquivo: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”

Adicionar suporte no nível do aplicativo

  1. Atualize o principal file lvgl_gui_face_rec_cm7.cpp:
    • Incluir o cabeçalho file relacionado ao Flash file gerenciador HAL do sistema adicionando a linha de código: #include “fwk_flash.h”
    • Declarar e registrar file dispositivo HAL do sistema:
      • HAL_FLASH_DEV_DECLARE(Pequenos);
      • HAL_FLASH_DEV_REGISTER(Pequenos, ret);
        Observação: O file o dispositivo HAL do sistema deve ser registrado antes que todos os gerenciadores de dispositivos sejam inicializados na função APP_InitFramework().
    • Chame a função BOARD_ConfigMPU() em APP_BoardInit() para configurar o MPU.
  2. Defina o file atribuição do sistema no Flash no file app_config.h definindo as definições de macro usadas no file sln_flash_littlefs.h:
    • #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #define FICA_FILE_SYS_SIZE (0x280000)

Configurações
Alguns códigos relacionados ao Flash são executados na área SRAM ITC para desempenho suficiente. Copie a pasta linkscripts contendo as configurações do vinculador do caminho smart HMI\coffee_machine\cm7\ para o exampo SW.

Implementar um aplicativo GUI LVGL
O desenvolvimento de um aplicativo GUI LVGL baseado na estrutura chama as APIs da UI HAL de saída e fornece as APIs para a UI HAL de saída (consulte a Seção 4.1.3 para a implementação da UI HAL de saída).

No entanto, a implementação detalhada de um aplicativo GUI LVGL depende dos requisitos e do design do aplicativo. O aplicativo GUI neste exampO arquivo foi projetado conforme descrito no início da seção Seção 4.

Abaixo estão as introduções de implementação:

  1. Os códigos customizados são implementados em custom.c e custom.h fornecidos pelo GUI Guider como a interface entre o projeto GUI Guider e o projeto do sistema embarcado.
    •  Adicione as novas funções chamadas gui_xxx() em custom.c para obter as funções abaixo:
      • Para saída UI HAL e aplicativo GUI para atualizar UI.
      • Para que o aplicativo GUI acione eventos chamando funções de retorno de chamada da UI da saída UI HAL.
        Por exemploampPor exemplo, a nova função gui_event_face_rec_action() chama funções de retorno de chamada da UI para lidar com um dos eventos de registro facial, reconhecimento facial e exclusão de usuário acionados pelo aplicativo GUI quando o botão relacionado é clicado.
        Nota: A função gui_set_virtual_face() chamada na saída UI HAL para préview o modo precisa ser implementado em custom.c:
    •  Clone a função gui_set_virtual_face() do smart HMI\coffee_machine\cm4\custom \custom.c.
    •  Altere o nome do widget home_img_cameraPreview para screen_img_camera_preview na função.
    •  Implemente as funções de retorno de chamada da UI com o mesmo protótipo para todas aquelas na saída UI HAL sob o controle da definição de macro #ifndef RT_PLATFORM em custom.c para ser compatível com o projeto GUI Guider porque essas funções na saída UI HAL são dependentes do plataforma embarcada. No custom.c, eles dependem do simulador no guia GUI e são independentes da plataforma embarcada. Para example, o retorno de chamada de registro facial é implementado conforme abaixo para o simulador GUI Guider em execução: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = falso; retornar; }
      Observação: Consulte o mesmo protótipo da função introduzida na etapa 6 da Seção 4.1.3
      A definição da macro RT_PLATFORM é definida nas configurações do projeto MCUXpresso conforme mostrado na Figura 7:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (14)
    • Declare todas as funções denominadas UI_xxx_Callback() e gui_xxx() em custom.h e adicione custom.h incluído em smart_tlhmi_event_descriptor.h para compartilhar as APIs da GUI para a saída da UI HAL.
  2. Desenvolva a GUI no GUI Guider:
    • Clone a pasta da câmera préview contendo o software do projeto GUI Guider na pasta gui_guider no pacote de software base lvgl_gui_camera_preview_cm7. Altere o nome relacionado camera_preview para face_rec para o novo exampeu.
    • Copie o custom.c atualizado acima e custom. h para o novo software de projeto GUI Guider.
    •  Abra o novo projeto face_rec no GUI Guider. Atualize conforme abaixo:
      • Adicione o novo botão denominado Excluir usuário. Adicione o sinalizador Oculto a ele para que o botão fique oculto quando o aplicativo GUI for iniciado.
      • Adicione a linha de código de chamada da API gui_event_face_rec_action() com diferente parâmetro de ID de evento no gatilho “Liberado” na Configuração de Evento de todos os botões Registro, Reconhecimento e Excluir Usuário para acionar os eventos de registro facial, reconhecimento facial e exclusão de usuário. A Figura 8 mostra o código do evento do botão Cadastro:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (15)
  3. Atualize o código gerado do GUI Guider para o projeto MCUXpresso.
    • Substitua o conteúdo exceto as imagens da pasta na pasta gerada do SW do projeto MCUXpresso pelos correspondentes na pasta gerada do SW do projeto GUI Guider.

Observação: Para mais detalhes sobre as modificações introduzidas acima, consulte o exampo software em https://mcuxpresso.nxp.com/appcodehub.

Verificações com o exampo projeto

Para pegar o exampPara obter o pacote de software que contém os recursos e ferramentas para esta nota de aplicação, visite: https://mcuxpresso.nxp.com/appcodehub. Abra o exampo projeto no MCUXpresso IDE. Construa e programe o .axf file para o endereço 0x30000000 e programe o bin de recursos file câmera_préview_resource.bin para o endereço 0x30800000.

O ex de reconhecimento facial LVGL GUIample funciona normalmente como abaixo:

  • Préview: Ao ligar, os fluxos de vídeo capturados pela câmera são exibidos na área específica da câmera pré-gravada.view na tela da GUI. A etiqueta de status exibe “Préview…”. Para obter detalhes, consulte a Figura 3. O botão Excluir usuário está oculto. Ao clicar na área fora dos botões e imagens, mostra o préview declare como acima após o término da ação de registro ou reconhecimento facial.
  • Inscrição:
    • tartup: Quando o botão Registro é clicado, o registro facial é iniciado. O rótulo de status muda para exibir “Registro…”, o retângulo da guia facial fica azul e a barra de progresso começa a mostrar o progresso. Certifique-se de que o rosto do usuário apareça no retângulo azul da guia de rosto para registro.
    • sucesso: A etiqueta de status mostra “Registro…OK” e o número de ID do usuário registrado, o retângulo da guia do rosto fica vermelho se o registro do rosto for bem-sucedido antes que o progresso seja exibido completo na barra.
    • Falha -> Tempo limite: O rótulo de status mostra “Registro… Tempo limite” se o registro do rosto ainda falhar quando o progresso for mostrado completo na barra.
    • Falha -> Duplicação: A etiqueta de status mostra “Registro…Falha”, o retângulo da guia de rosto fica verde se o rosto registrado for reconhecido antes do progresso aparecer completo na barra.
  • reconhecimento:
    • Inicialização: Quando o botão Reconhecimento é clicado, o reconhecimento facial é iniciado. O rótulo de status muda para exibir “Reconhecimento…”, o retângulo da guia facial fica azul e a barra de progresso começa a mostrar o progresso. Certifique-se de que o rosto do usuário seja mostrado no retângulo azul da guia de rosto para registro.
    • sucesso: A etiqueta de status mostra “Reconhecimento…OK” e o número de ID do usuário reconhecido, o retângulo da guia facial fica verde se o reconhecimento facial for bem-sucedido antes que o progresso seja exibido completo na barra. Nesse ponto, aparece o botão Excluir usuário. Isso significa que o usuário só poderá ser excluído quando for reconhecido.
    • aflição: A etiqueta de status mostra “Reconhecimento…Tempo limite” se o reconhecimento facial ainda falhar quando o progresso for mostrado completo na barra.
  • Excluir usuário: Quando o botão “Excluir usuário” é clicado, após o reconhecimento de rosto ser bem-sucedido, o rótulo de status muda para exibir “Excluir usuário…OK” com o retângulo da guia de rosto ficando azul e o progresso sendo exibido completo na barra. O botão Excluir usuário fica oculto novamente. O rosto/usuário reconhecido é excluído do banco de dados. Isso significa que este rosto/usuário não pode ser reconhecido até que seja registrado novamente.

Nota sobre o código-fonte no documento
ExampO código mostrado neste documento tem os seguintes direitos autorais e licença BSD-3-Clause:

Copyright 2024 NXP A redistribuição e o uso em formato fonte e binário, com ou sem modificação, são permitidos desde que as seguintes condições sejam atendidas:

  1. As redistribuições do código-fonte devem manter o aviso de direitos autorais acima, esta lista de condições e o seguinte aviso de isenção de responsabilidade.
  2. As redistribuições em formato binário devem reproduzir o aviso de direitos autorais acima, esta lista de condições e a seguinte isenção de responsabilidade na documentação e/ou outros materiais devem ser fornecidas com a distribuição.
  3. Nem o nome do detentor dos direitos autorais nem os nomes de seus colaboradores podem ser usados ​​para endossar ou promover produtos derivados deste software sem permissão prévia específica por escrito

ESTE SOFTWARE É FORNECIDO PELOS TITULARES DOS DIREITOS AUTORAIS E COLABORADORES "NO ESTADO EM QUE SE ENCONTRA" E QUAISQUER GARANTIAS EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO SE LIMITANDO A, GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO E ADEQUAÇÃO A UM DETERMINADO FIM SÃO ISENTAS. EM NENHUMA HIPÓTESE O TITULAR DOS DIREITOS AUTORAIS OU OS COLABORADORES SERÃO RESPONSÁVEIS POR QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, EXEMPLARES OU CONSEQUENCIAIS (INCLUINDO, MAS NÃO SE LIMITANDO A, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS; PERDA DE USO, DADOS OU LUCROS; OU INTERRUPÇÃO DE NEGÓCIOS) INDEPENDENTEMENTE DA CAUSA E DE QUALQUER TEORIA DE RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE OBJETIVA OU ATO ILÍCITO (INCLUINDO NEGLIGÊNCIA OU OUTRO) DECORRENTES DE QUALQUER FORMA DO USO DESTE SOFTWARE, MESMO SE AVISADO DA POSSIBILIDADE DE TAIS DANOS.

Histórico de revisão

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

Informações legais

Definições
Rascunho — O status de rascunho em um documento indica que o conteúdo ainda está sob revisão interna.view e sujeito à aprovação formal, o que pode resultar em modificações ou adições. A NXP Semiconductors não fornece nenhuma representação ou garantia quanto à precisão ou integridade das informações incluídas em uma versão de rascunho de um documento e não terá nenhuma responsabilidade pelas consequências do uso de tais informações.

Isenção de responsabilidade

  • Garantia e responsabilidade limitadas — Acredita-se que as informações contidas neste documento sejam precisas e confiáveis. No entanto, a NXP Semiconductors não oferece nenhuma representação ou garantia, expressa ou implícita, quanto à precisão ou integridade de tais informações e não terá nenhuma responsabilidade pelas consequências do uso de tais informações. A NXP Semiconductors não se responsabiliza pelo conteúdo deste documento se fornecido por uma fonte de informação fora da NXP Semiconductors.
    Em nenhum caso a NXP Semiconductors será responsável por quaisquer danos indiretos, incidentais, punitivos, especiais ou consequentes (incluindo - sem limitação - lucros cessantes, economias perdidas, interrupção de negócios, custos relacionados à remoção ou substituição de quaisquer produtos ou encargos de retrabalho), seja ou não, tais danos são baseados em delito (incluindo negligência), garantia, quebra de contrato ou qualquer outra teoria legal.
    Não obstante quaisquer danos que o cliente possa incorrer por qualquer motivo, a responsabilidade agregada e cumulativa da NXP Semiconductors para com o cliente pelos produtos descritos neste documento será limitada de acordo com os Termos e condições de venda comercial da NXP Semiconductors.
  • Direito de fazer alterações — A NXP Semiconductors reserva-se o direito de fazer alterações nas informações publicadas neste documento, incluindo, sem limitação, especificações e descrições de produtos, a qualquer momento e sem aviso prévio. Este documento substitui e substitui todas as informações fornecidas antes da sua publicação.
  • Adequação para uso — Os produtos NXP Semiconductors não são projetados, autorizados ou garantidos para serem adequados para uso em sistemas ou equipamentos de suporte à vida, críticos para a vida ou para a segurança, nem em aplicações em que a falha ou mau funcionamento de um produto NXP Semiconductors possa resultar em ferimentos pessoais, morte ou danos materiais ou ambientais graves. A NXP Semiconductors e seus fornecedores não aceitam qualquer responsabilidade pela inclusão e/ou uso de produtos NXP Semiconductors em tais equipamentos ou aplicações e, portanto, tal inclusão e/ou uso é por conta e risco do cliente.
  • Aplicações — Os aplicativos aqui descritos para qualquer um desses produtos são apenas para fins ilustrativos. A NXP Semiconductors não faz nenhuma declaração ou garantia de que tais aplicativos serão adequados para o uso especificado sem mais testes ou modificações.
    Os clientes são responsáveis ​​pelo projeto e operação de seus aplicativos e produtos usando os produtos da NXP Semiconductors, e a NXP Semiconductors não se responsabiliza por qualquer assistência com aplicativos ou design de produto do cliente. É responsabilidade exclusiva do cliente determinar se o produto NXP Semiconductors é adequado e adequado para as aplicações e produtos planejados do cliente, bem como para a aplicação planejada e uso do(s) cliente(s) terceirizado(s) do cliente. Os clientes devem fornecer proteções adequadas de projeto e operação para minimizar os riscos associados a seus aplicativos e produtos. A NXP Semiconductors não aceita qualquer responsabilidade relacionada a qualquer inadimplência, dano, custo ou problema baseado em qualquer fraqueza ou inadimplência nos aplicativos ou produtos do cliente, ou no aplicativo ou uso por terceiros do cliente. O cliente é responsável por fazer todos os testes necessários para os aplicativos e produtos do cliente usando produtos da NXP Semiconductors para evitar uma falha dos aplicativos e produtos ou do aplicativo ou uso por terceiros do cliente. A NXP não aceita qualquer responsabilidade a este respeito.
  • Termos e condições de venda comercial — Os produtos da NXP Semiconductors são vendidos sujeitos aos termos e condições gerais de venda comercial, conforme publicado em https://www.nxp.com/profile/termos, a menos que acordado de outra forma em um contrato individual por escrito válido. No caso de um acordo individual ser celebrado, apenas os termos e condições do respectivo acordo serão aplicáveis. A NXP Semiconductors se opõe expressamente à aplicação dos termos e condições gerais do cliente com relação à compra de produtos da NXP Semiconductors pelo cliente.
  • Controle de exportação — Este documento, bem como o(s) item(ns) aqui descrito(s) podem estar sujeitos a regulamentos de controle de exportação. A exportação pode exigir uma autorização prévia das autoridades competentes.
  • Adequação para uso em produtos qualificados não automotivos — A menos que este documento declare expressamente que este produto específico da NXP Semiconductors é qualificado para uso automotivo, o produto não é adequado para uso automotivo. Não é qualificado nem testado de acordo com testes automotivos ou requisitos de aplicação. A NXP Semiconductors não se responsabiliza pela inclusão e/ou uso de produtos qualificados não automotivos em equipamentos ou aplicações automotivas.
    Caso o cliente use o produto para projeto e uso em aplicações automotivas de acordo com especificações e padrões automotivos, o cliente (a) deve usar o produto sem a garantia da NXP Semiconductors do produto para tais aplicações automotivas, uso e especificações, e ( b) sempre que o cliente usar o produto para aplicações automotivas além das especificações da NXP Semiconductors, tal uso será exclusivamente por conta e risco do cliente, e (c) o cliente indenizará totalmente a NXP Semiconductors por qualquer responsabilidade, danos ou reclamações de falha do produto resultantes do projeto do cliente e uso de o produto para aplicações automotivas além da garantia padrão da NXP Semiconductors e das especificações de produto da NXP Semiconductors.
  • Traduções — Uma versão não inglesa (traduzida) de um documento, incluindo as informações legais nesse documento, é apenas para referência. A versão em inglês prevalecerá em caso de discrepância entre as versões traduzida e em inglês.
  • Segurança — O cliente entende que todos os produtos NXP podem estar sujeitos a vulnerabilidades não identificadas ou podem suportar padrões ou especificações de segurança estabelecidos com limitações conhecidas. O cliente é responsável pelo design e operação de seus aplicativos e produtos ao longo de seus ciclos de vida para reduzir o efeito dessas vulnerabilidades nos aplicativos e produtos do cliente. A responsabilidade do cliente também se estende a outras tecnologias abertas e/ou proprietárias suportadas pelos produtos NXP para uso nos aplicativos do cliente. A NXP não se responsabiliza por qualquer vulnerabilidade. O cliente deve verificar regularmente as atualizações de segurança do NXP e fazer o acompanhamento adequado. O cliente deve selecionar produtos com recursos de segurança que melhor atendam às regras, regulamentos e padrões da aplicação pretendida e tomar as decisões finais de design em relação a seus produtos e é o único responsável pela conformidade com todos os requisitos legais, regulamentares e relacionados à segurança relativos a seus produtos, independentemente de qualquer informação ou suporte que possa ser fornecido pela NXP.

A NXP tem uma Equipe de Resposta a Incidentes de Segurança do Produto (PSIRT) (disponível em PSIRT@nxp.com) que gerencia a investigação, relatórios e liberação de soluções para vulnerabilidades de segurança dos produtos NXP.
NXP BV — A NXP BV não é uma empresa operacional e não distribui ou vende produtos.

Marcas registradas
Perceber: Todas as marcas, nomes de produtos, nomes de serviços e marcas comerciais referenciados são propriedade de seus respectivos proprietários.

NXP — a marca e o logotipo são marcas registradas da 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 — são marcas comerciais e/ou marcas registradas da Arm Limited (ou suas subsidiárias ou afiliadas) nos EUA e/ou em outro lugar. A tecnologia relacionada pode ser protegida por qualquer uma ou todas as patentes, direitos autorais, projetos e segredos comerciais. Todos os direitos reservados.

  • i.MX — é uma marca registrada da NXP BV
  • J-Link — é uma marca registrada da SEGGER Microcontroller GmbH.

Microsoft, Azure e ThreadX — são marcas registradas do grupo de empresas Microsoft.

Esteja ciente de que avisos importantes relativos a este documento e aos produtos aqui descritos foram incluídos na seção "Informações legais".

© 2024 NXP BV
Para mais informações, visite: https://www.nxp.com

  • Data de lançamento: 19 de abril de 2024
  • Identificador do documento: AN14263

Perguntas frequentes

P: Qual é o objetivo principal deste produto?
R: O objetivo principal é habilitar a função de reconhecimento facial usando um modelo de algoritmo de visão AI e ML com uma GUI LVGL ex simplesamparquivo na placa SLN-TLHMI-IOT.

P: Como os desenvolvedores podem se beneficiar desta nota de aplicação?
R: Os desenvolvedores podem aprender como implementar o reconhecimento facial na estrutura passo a passo usando o exemplo fornecidoampLer e compreender os gerenciadores de dispositivos, dispositivos HAL e mecanismos de eventos envolvidos.

Documentos / Recursos

NXP AN14263 implementa reconhecimento facial GUI LVGL no framework [pdf] Guia do Usuário
AN14263 Implementar reconhecimento facial GUI LVGL no Framewor, AN14263, Implementar reconhecimento facial GUI LVGL no Framewor, Reconhecimento facial GUI LVGL no Framewor, Reconhecimento facial no Framewor, Reconhecimento no Framewor, Framewor

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *