nxpのロゴ

NXP AN14263 フレームワークに LVGL GUI 顔認識を実装

NXP-AN14263-フレームワーク製品への LVGL GUI 顔認識の実装

製品情報

仕様

  • 製品名: フレームワーク上の LVGL GUI 顔認識
  • ドキュメントの改訂: 1年19月2024日~XNUMX日
  • キーワード: 顔認識、LVGL GUI、フレームワーク

製品使用説明書

  1. 以上view
    この製品は、シンプルなLVGL GUIで顔認識機能を実装するためのフレームワーク上で顔認識用のAI&MLビジョンアルゴリズムモデルを可能にします。ampSLN-TLHMI-IOT ボード上の le。
  2. フレームワーク終了view
    ソリューション ソフトウェアは、デバイスの管理を担当するデバイス マネージャー、基礎となる詳細を抽象化する HAL デバイス、および異なるデバイス間の通信のためのイベントを含むフレームワーク アーキテクチャを中心に設計されています。
  3. 特徴
    この製品はカメラによる顔認識機能の実装を可能にし、view GUI画面には顔の登録、認識、削除を行うボタンがあります。登録された顔データは、 file システム。
  4. アプリケーションノートの内容
    アプリケーションノートでは、カメラプリを備えたLVGL GUI画面を紹介します。view 顔関連のアクションのためのボタン。開発者がフレームワークを理解し、提供されたexを使用して顔認識を実装する方法を理解するのに役立ちます。ampル。

以上view

NXPは、スマートHMIアプリケーションに焦点を当てたSLN-TLHMI-IOTというソリューション開発キットをリリースしました。これは、117つのNXP i.MX RTXNUMXH MCUに実装されたMLビジョン、音声、グラフィックスUIを備えたスマートHMIを実現します。SDKに基づいて、ソリューションソフトウェアは、柔軟な設計とビジョンと音声機能のカスタマイズをサポートするフレームワークと呼ばれる設計に基づいて構築されています。ユーザーがソフトウェアプラットフォームをよりよく使用できるように、いくつかの基本的なドキュメントが提供されています。ampソフトウェア開発ユーザー ガイド。このガイドでは、SLN-TLHMI-IOT を使用して開発者がアプリケーションをより簡単かつ効率的に実装できるようにするためのフレームワークを含むソリューションのすべてのコンポーネントを網羅した、アプリケーションの基本的なソフトウェア設計とアーキテクチャを紹介します。
ソリューションの詳細と関連文書については、 web MLビジョン、音声、グラフィカルUIを備えたi.MX RT117HベースのNXP EdgeReadyスマートHMIソリューションのページ。しかし、開発者がこれらの基本ガイドを参照してスマートHMIアプリケーションを実装するのはまだ簡単ではありません。フレームワークの開発を段階的に学習できるように、一連のアプリケーションノートが計画されています。このアプリケーションノートは、LVGL GUIカメラプリの実装に基づいています。view フレームワーク(文書AN14147)で顔認識のためのAI&MLビジョンアルゴリズムモデルを有効にして、カメラプリを介して顔認識機能を実装する方法について説明します。view シンプルなLVGL GUIの例を使用したGUI画面ampSLN-TLHMI-IOTボード上の例。アプリケーションノートでは、ampleはカメラプリを備えたLVGL GUI画面を提示しますview 顔の登録、認識、削除を行うためのボタンもいくつかあります。登録された顔データは、小さな file システム。

大まかに言えば、アプリケーション ノートには以下の内容が含まれています。

  • フレームワークで顔認識機能を有効にします。
  • フレームワークに顔データベースのサポートを追加するには、 file Flash 上のシステム。
  • LVGL GUI アプリを実装します。上記の紹介を通じて、このドキュメントは開発者が次のことを行うのに役立ちます。
  • フレームワークとスマート HMI ソリューション ソフトウェアをより深く理解します。
  • LVGL GUI アプリを使用してフレームワーク上で AI および ML 顔認識を開発します。

フレームワーク終了view
ソリューション ソフトウェアは、主に、いくつかの異なる部分で構成されるフレームワーク アーキテクチャの使用を中心に設計されています。

  • デバイスマネージャ – コア部分
  • ハードウェア抽象化レイヤー (HAL) デバイス
  • メッセージ/イベント

図1に示すように、view フレームワークのメカニズムは次のとおりです。

デバイス マネージャーは、システムで使用されるデバイスの管理を担当します。各デバイス タイプ (入力、出力など) には、タイプ固有のデバイス マネージャーがあります。デバイス マネージャーはデバイスが登録された後に起動し、登録されたデバイスを初期化して起動した後、デバイスや他のマネージャーにデータを転送するためにメッセージを待機して確認します。HAL デバイスは、下位レベルのドライバー コードの上に記述されるため、基礎となる詳細の多くを抽象化することで、コードの理解しやすさが向上します。

イベントは、マネージャを介してさまざまなデバイス間で情報を通信する手段です。イベントがトリガーされると、最初にイベントを受信したデバイスがそのイベントをマネージャに伝達し、次にイベントを受信するように指定された他のマネージャに通知します。

NXP-AN14263-LVGL GUI 顔認識をフレームワークに実装する図 (1)

フレームワークのアーキテクチャ設計は、次の 3 つの主な目標を中心に行われました。

  1. 使いやすさ
  2. 柔軟性/移植性
  3. パフォーマンス

このフレームワークは、ビジョンやその他の機械学習アプリケーションの市場投入までの時間を短縮することを目的として設計されています。市場投入までの時間を短縮するには、ソフトウェア自体が理解しやすく、変更しやすいことが重要です。この目標を念頭に置いて、フレームワークのアーキテクチャは、制限がなく、パフォーマンスを犠牲にすることなく、簡単に変更できます。
フレームワークの詳細については、「Smart HMI ソフトウェア開発ユーザー ガイド」(ドキュメント MCU-SMHMI-SDUG) を参照してください。

軽量で多用途なグラフィック ライブラリ (LVGL)
LVGL (Light and Versatile Graphics Library) は、使いやすいグラフィカル要素、美しい視覚効果、低メモリフットプリントを備えた組み込み GUI を作成するために必要なすべてを提供する、無料のオープンソース グラフィック ライブラリです。

GUIガイダー
GUI Guider は、オープンソースの LVGL グラフィック ライブラリを使用して高品質のディスプレイを迅速に開発できる、NXP の使いやすいグラフィカル ユーザー インターフェイス開発ツールです。GUI Guider のドラッグ アンド ドロップ エディターを使用すると、ウィジェット、アニメーション、スタイルなど、LVGL の多くの機能を簡単に使用して、最小限のコーディングまたはまったくコーディングせずに GUI を作成できます。

ボタンをクリックするだけで、アプリケーションをシミュレートされた環境で実行したり、ターゲット プロジェクトにエクスポートしたりできます。GUI Guider から生成されたコードはプロジェクトに簡単に追加できるため、開発プロセスが加速し、組み込みユーザー インターフェイスをアプリケーションにシームレスに追加できます。GUI Guider は、NXP の汎用 MCU およびクロスオーバー MCU で無料で使用でき、サポートされている複数のプラットフォーム用の組み込みプロジェクト テンプレートが含まれています。GUI Guider での LVGL および GUI 開発の詳細については、「軽量で多用途なグラフィックス ライブラリ」および「GUI Guider」を参照してください。

開発環境

まず、exを実装するためのハードウェアとソフトウェア環境を準備してセットアップします。ampフレームワークに関するもの。

ハードウェア環境
ハードウェア環境は、exを検証するためにセットアップされていますamp上:

  • NXP i.MX RT117H をベースにしたスマート HMI 開発キット (SLN_TLHMI_IOT キット)
  • 9ピンCortex-MアダプタとV7.84a以降のバージョンのドライバを搭載したSEGGER J-Link

ソフトウェア環境
ソフトウェア環境は、exを開発するためにセットアップされていますamp上:

  • MCUXpresso IDE V11.7.0
  • GUI ガイダー V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – 例amp開発の基礎ソフトウェアとして第2アプリケーションノートのコードを使用します。詳細については、 https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 – 開発用のコード リソースとして。
  • SLN-TLHMI-IOT ソフトウェア V1.1.2 – 開発用のコード リソースとして NXP GitHub リポジトリにリリースされたスマート HMI ソース コード。詳細については、GitHub – NXP/mcu-smhmi at v1.1.2 を参照してください。

ソフトウェア環境の取得とセットアップの詳細については、「SLN-TLHMI-IOT の使用開始」を参照してください。

フレームワーク上のビジョンアーキテクチャ

フレームワーク上のビジョン アーキテクチャを図 2 に示します。ビジョン アルゴリズム HAL (OASIS_HAL) には、以下のプロセスがあります。

  • 出力 UI HAL から関連イベントを受信した後、AI および ML ビジョン アルゴリズム モデルを通じて顔の登録と認識を行います。アルゴリズム モデルからの推論結果を出力 UI HAL に通知します。
  • 顔の特徴データベースにアクセス(追加、削除など)します。 file 出力 UI HAL から関連イベントを受信した後、FaceDB HAL の API を呼び出すことでシステムを構築します。
  • 顔の登録と認識を行うときに、カメラ HAL からカメラのビデオ フレームを要求します。

NXP-AN14263-LVGL GUI 顔認識をフレームワークに実装する図 (3)

フレームワークに顔認識を実装する

LVGL GUI顔認識example(元ampフレームワークは、exに基づいて実装されていますampLVGL GUIカメラプリの実装のコードview フレームワークについて(文書 AN14147)。

顔認識のデモンストレーションのためにampたとえば、GUI アプリの基本機能 (図 3 のメイン画面を参照) は、以下のように設計されています。

  • GUI アプリは、[登録] または [認識] ボタンをクリックすると、出力 UI HAL に顔登録または認識イベントをトリガーします。また、出力 UI HAL は、顔登録が成功した後に、ユーザーをビジョン アルゴリズム HAL に追加するイベントを通知します。
  • GUI アプリは、ユーザーの顔が認識された後に「ユーザーの削除」ボタンをクリックすると、出力 UI HAL にユーザーを削除するイベントをトリガーします。
  • GUI アプリは、ボタンや画像の外側の画面をクリックすると、出力 UI HAL に対して実行中の Oasis アルゴリズムを停止するイベントをトリガーします。

NXP-AN14263-LVGL GUI 顔認識をフレームワークに実装する図 (10)

exの実装のためのソフトウェアパッケージを準備するampル。

  • ベースソフトウェア lvgl_gui_camera_pre をクローンするview_cm7. プロジェクト名とメインを変更する filelvgl_gui_face_rec_cm7 に名前を付けます。
  • フレームワーク コアのソース コードがバージョン 1.1.2 から GitHub で公開されるようになったため、ソフトウェアでフレームワークを更新する必要があります。
  • フレームワークフォルダをGitHubのV1.1.2のコピーに置き換えます。 fileアプリケーション ノート シリーズに合わせて変更された、i​​nc\ の下の fwk_log.h と fwk_common.h です。操作は図 4 に示されています。NXP-AN14263-LVGL GUI 顔認識をフレームワークに実装する図 (11)
  • コアのソース コードが提供されているため、libs グループのフォルダー framework_cm7 を削除し、プロジェクト > プロパティ > C/C++ ビルド > 設定 > ツール設定 > MCU C++ リンカー > ライブラリで構成されているライブラリ framework_cm7 とその検索パスを削除します。

フレームワークで顔認識機能を有効にする
顔認識機能は、静的ライブラリ(NXP の Oasis Lite ランタイム ライブラリ)として提供される ML ビジョン アルゴリズム モデル上に構築されています。このライブラリは、小型で高効率、カスタマイズ、最適化された AI ライブラリです。このモデルには、顔検出、顔認識、ガラス検出、生体検出が含まれます。主に API OASISLT_run_extended() を提供し、イベント コールバックを介して呼び出し元に結果を更新しながら顔認識パイプラインを実行し、初期化時に別の API OASISLT_init() を呼び出してライブラリが使用するソース フレーム情報、コールバック、メモリ プールを指定した後、顔データベース コールバックを介してデータベースに顔を追加/更新/削除します。API の呼び出しとコールバック関数は、フレームワークのビジョン アルゴリズム HAL に実装されています。

ビジョンアルゴリズムモデルライブラリを追加

  1. ライブラリと関連ヘッダーを含むフォルダ oasis をコピーします。 file smart HMI\coffee_machine\cm7\libs\からexのlibsフォルダへampルSW。
  2. ヘッダーの検索パスを追加する file プロジェクト > プロパティ > C/C++ ビルド > 設定 > ツール設定 > MCU C コンパイラ > インクルードおよび MCU C++ コンパイラ > インクルード: “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. プロジェクト > プロパティ > C/C++ ビルド > 設定 > MCU C++ リンカー > ライブラリでライブラリとその検索パスを追加します: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” および、プロジェクト > プロパティ > C/C++ ビルド > 設定 > ツール設定 > MCU C コンパイラ > プリプロセッサと MCU C++ コンパイラ > プリプロセッサで機能を有効にするマクロ定義を追加します: SMART_TLHMI_2D

ビジョンアルゴリズムHALを有効にする
ビジョン アルゴリズム HAL は、ビジョン アルゴリズム モデルを動作させ、そこからイベントを受信した後、結果を UI 出力 HAL に応答します。

これを有効にするには、既存の同様のHALドライバーをクローンします file 以下の機能が実装されています:

  • 顔データベース操作とイベント処理のコールバックを実装します。
  • Oasis ライブラリの API を呼び出して、ビジョン アルゴリズムを動作させます。
  • ユーザーフェイスデータベースとアプリデータベースにアクセスします(exでは必要ありません)ample)。
  • 出力 UI HAL からイベントを受信し、結果を出力 UI HAL に送信します。

HALをexに実装するための主な作業ampファイルは次のとおりです。

  • 既存の類似のHALドライバをクローンする file 関連する名前を変更します。
  • アプリデータ操作に関連するコードを削除します。
  • 出力UI HALからのイベントを処理するための定義と関数を例に従って更新します。ampデザイン。
  • oasis の初期化に必要な構成を追加します。

詳細な手順は次のとおりです。

  1. hal_vision_algo_oasis_coffeemachine.cをクローンします。 filehal_vision_algo_oasis_guifacerec.cに名前を追加します。そして、 file.
  2. アプリデータベースに関連する文字列coffeedb(大文字と小文字は区別されません)を含むコードを削除します。例:ample、#include hal_sln_coffeedb.h。
  3. 出力 UI HAL からのイベントを処理するために、関数 HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() を変更します。
    • イベント処理によって新しい顔の特徴データをデータベースに追加できるように、イベント定義 kEventFaceRecId_RegisterCoffeeSelection を kEventFaceRecId_RegisterUserFace に、構造体文字列 regCoffeeSelection を regGUIFaceRec に変更します。
    • 顔認識アクションの標準的なプロセスを示すために、ample、状態の定義を使用して、kEventFaceRecID_OasisSetState の場合の処理​​を変更します。
      • kOASISLiteState
      • 登録 kOASISLiteState
      • 認識 kOASISLiteState
      • 停止
  4. 上記の手順で説明したイベントの定義を追加および変更します。
    • ヘッダーをコピーする file smart_tlhmi_event_descriptor.h を smart HMI\coffee_machine \cm7\source\event_handlers\ から ex のソースフォルダにコピーします。ample SW。更新 file 以下のように:
    • 列挙型 _event_smart_tlhmi_id のイベント定義 kEventFaceRecId_RegisterCoffeeSelection を kEventFaceRecId_RegisterUserFace に変更し、構造体 _event_smart_tlhmi の構造体文字列 regCoffeeSelection を regGUIFaceRec に変更します。したがって、regCoffeeSelection の構造体 register_coffee_selection_event_t を register_gui_facerec_event_t に変更します。
    • コーヒーマシンアプリに使用されているその他のコンテンツを削除します。例:ample、音声に関するコード行: #include “hal_event_descriptor_voice.h”。
    • 以下のように、プロジェクトの framework>hal>vision の下にある hal_vision_algo.h の列挙型 oasis_lite_state_t に、型 kOASISLiteState_Stopped と kOASISLiteState_Running を追加します。
      typedef 列挙型 _oasis_lite_state {
      • kOASISLiteState
      • 実行中、kOASISLiteState
      • 停止しました、kOASISLiteState
      • 認識、
      • kOASISLiteState
      • 登録、kOASISLiteState
      • 登録解除、kOASISLiteState
      • リモート登録、kOASISLiteState
      • カウント
    • 上記の更新された struct oasis_lite_state_t を使用して、プロジェクトの framework>hal>vision の下にある hal_event_descriptor_face_rec.h の struct oasis_state_event_t を以下のように改良します。 typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
  5. ビジョンアルゴリズムHALから同じコアで実行されている他のHALにイベントを送信するために、すべてのkEventInfo_RemoteをkEventInfo_Localに変更します。exではデュアルコアではなくシングルコアが使用されています。ampル。
  6. OASISLT_init() でオアシスを初期化するための以下の設定を追加および変更します。
    • board_define.h にビデオ フレームのマクロ定義とメモリ セクションを追加します: #define OASIS_RGB_FRAME_WIDTH 800
      • #OASIS_RGB_FRAME_HEIGHT 600 を定義します
      • #OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB を定義します
      • #OASIS_RGB_FRAME_BYTE_PER_PIXEL 3 を定義します
      • # AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) を定義します \
      • __attribute__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __attribute__((aligned(alignbytes)))
    • 図 5 に示すように、プロジェクト > プロパティ > C/C++ ビルド > MCU 設定で、上記のメモリ セクション fb_sh_mem へのメモリ割り当てを構成します。NXP-AN14263-LVGL GUI 顔認識をフレームワークに実装する図 (12)
    • lvgl_gui_face_rec_cm7.cpp でグローバル変数 g_DTCOPBuf を宣言します: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • 上記の変数で使用される定義を追加し続けます。
    • 上記のセクションをboard_define.hで定義します。
      • # AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) を定義します \
      • 属性__((セクション(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • 属性__((aligned(alignbytes)))
    • ヘッダーを含める file lvgl_gui_face_rec_cm7.cpp に含まれる app_config.h 内のマクロ定義 DTC_OPTIMIZE_BUFFER_SIZE を含む hal_vision_algo.h。
  7. 顔認識の進行状況を表示するには、変数 s_debugOption を true に設定します。
  8. ヘッダーの検索パスを追加する fileプロジェクト > プロパティ > C/C++ ビルド > 設定 > ツール設定 > MCU C コンパイラ > インクルードおよび MCU C++ コンパイラ > インクルードの Vision HAL の詳細: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. board_define.h でビジョン アルゴリズム HAL を有効にするには、以下の定義を追加します: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

出力UI HALを有効にする
出力 UI HAL は、ビジョン アルゴリズム HAL にイベントを通知し、ビジョン アルゴリズム HAL からの推論結果に応答します。GUI アプリでは、イベントは通常アプリによってトリガーされ、結果はアプリに表示されます。

これを有効にするには、既存の同様のHALドライバーをクローンします file 一般的に以下の機能が実装されています。

  • 顔認識やデータベースアクセスのイベントを通知します。
  • イベントをトリガーするための GUI アプリのコールバックを実装します。
  • ビジョンアルゴリズムモジュールからの推論結果を処理します。
  • タイマーとフェイスガイドの四角形で制御される進行状況バーによって、イベント処理のプロセスと結果を UI に表示します。

HALをexに実装するための主な作業ampこのドキュメントで使用されているファイルは次のとおりです。

  • 既存の類似のHALドライバをクローンする file 関連する名前を変更します。
  • アプリに関連するコードを削除します。
  • イベント通知と結果応答の関数を例に従って更新します。ampデザイン。
  • イベントをトリガーするための GUI アプリのコールバックを追加します。

詳細な手順は次のとおりです。

  1. hal_output_ui_coffee_machine.cをクローンします。 filehal_ output_ui_guifacerec.c に名前を付けます。
  2. すべての文字列CoffeeMachineをGUIFaceRecに置き換えます。 file.
  3. アプリ「コーヒーマシン」に関連するコードを削除します。
    • WakeUp() 関数と _StandBy() 関数および関連コードを削除します (wake_up および Standby という文字列で検索できます)。
    • 事前削除view HAL_OutputDev_UiGUIFaceRec_Input Notification() 内のモード イベント処理関連コード。
    • UI_xxx_Callback()関数と、コーヒーマシンのGUIに関連する文字列gui_とscreenを含むコードを削除します(プレのgui_set_virtual_face()を除く)。view モード機能。
    • コーヒー マシン アプリに関連する変数 s_IsWaitingAnotherSelection および s_IsWaitingRegisterSelection に関連するすべてのコードを削除します。
    • 音声、オーディオ、言語に関連するコードを削除します。例:amp上:
      • #include “hal_voice_algo_asr_local.h”,
      • #include “hal_event_descriptor_voice.h”
  4. さまざまなイベント通知については、_StopFaceRec()、_RegisterCoffeeSelection()、および DeregisterCoffeeSelection() 関数を削除する前に、それらを参照して新しい関数 _OutputManagerNotify()、_SetFaceRec()、_RegisterGUIFaceRec()、および DeregisterGUIFaceRec() を実装します。
    • _OutputManagerNotify() は、ビジョン アルゴリズム HAL にイベントを送信するための基本的なイベント出力関数を実装します。以下の関数は、独自のイベントを送信するためにこれを呼び出します。
    • _SetFaceRec() は、イベント kEventFaceRecID_OasisSetState を送信して、顔の登録、認識のためのビジョン アルゴリズムをトリガーし、アルゴリズムを停止します。
    • _RegisterGUIFaceRec() は、登録が成功したときに、smart_tlhmi_event_descriptor.h で定義されているイベント kEventFaceRecId_RegisterGUIFaceRec を送信して、顔の特徴データをデータベースに追加します。
    • DeregisterGUIFaceRec() は、顔認識に合格したときに、データベースから顔の特徴データを削除するためにイベント kEventFaceRecID_DelUser を送信します。
  5. コードを更新して、関数_InferComplete_Vision()で顔の登録と認識の推論結果に対して、LVGL GUIアプリからAPIを呼び出してGUIを更新するなど、対応するアクションを実行します。ampleのデザイン。例:amp顔登録が成功すると、
    • _FaceRecProcess_Stop() を呼び出して進行状況の表示を停止します。
    • _SetFaceRec(kOASISLiteState_Stopped); を呼び出して顔の登録を停止します。
    • 成功した結果を GUI に表示します: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • 顔データをデータベースに登録します: _RegisterUserFace(s_UserId);
  6. イベントを処理するためのUIコールバック関数を追加します: preview顔登録、認識、ユーザーの削除はGUIから実行できます。例:ample、顔登録コールバック: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • また、さまざまなイベントと結果の進行状況とステータスを表示するために、関数 _FaceRecProcess_Start() と _FaceRecProcess_Stop() を追加します。
    • タイマー ISR コールバック関数 _SessionTimer_Callback() を更新し、次の呼び出しによってタイムアウトの場合を処理します: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. board_define.h で UI 出力 HAL を有効にするには、以下の定義を追加します: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

知らせ:
顔認識機能をより良く提示するために、出力UI HALに顔認識のプロセスと結果を表示する機能を保持します。この機能は以下のように説明されます。

  • 顔ガイドの四角形は青色で表示され、顔の登録または認識を開始すると、進行状況バーに進行状況が表示されます。
  • 顔の登録が成功すると、顔ガイドの四角形が赤く表示されます。
  • 顔認識が成功すると、顔ガイドの四角形が緑色に表示されます。
  • タイマーの期限が切れてもアクションが失敗すると、顔ガイドの四角形は青色のままになり、進行状況バーに完全な進行状況が表示されます。その時点で、顔の登録または認識を停止します。

進捗バーとフェイスガイドの四角形は、リソースバイナリに組み込まれたアイコンとして表示されます。 file フラッシュにプログラムされます。SDRAM 上のアイコン データへのポインターは、出力 UI HAL の出力 UI HAL デバイスの初期化時に呼び出される関数 LoadIcons(APP_ICONS_BASE) で設定されます。関数のアイコン サポートを実装する必要があります。

アイコンサポートを実装する

  1. LVGL GUI アプリで使用される画像とアイコンを組み合わせてリソースを構築します。
    • 4つのアイコンヘッダーを複製する fileスマート HMI の process_bar_240x14.h、virtual_face_blue_420x426.h、virtual_face_green_420x426.h、virtual_face_red_420x426.h
      \coffee machine\resource\icons\ を、exのリソースフォルダの下の新しいフォルダ icons に移動します。ampルSW。
    • 4つのアイコンの検索パスを追加します filecamera_preのsview_リソース.txt file リソースフォルダ内、例:ample: アイコン ../resource/icons/process_bar_240x14.h
    • camera_preを実行するview_resource_build.bat は、画像とアイコンのリソースを構築して、ビンを生成します。 file カメラ_事前view_resource.binと情報 file resource_information_table.txt(図6参照)。NXP-AN14263-LVGL GUI 顔認識をフレームワークに実装する図 (13)
  2. app_config.hでSDRAMの開始アドレスとアイコンのサイズを定義します。アドレスはGUIアプリのイメージの次から始まります。サイズはinfoで生成されます。 file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. app_config.h で #define RES_SHMEM_TOTAL_SIZE 0x200000 と再定義し、プロジェクト > プロパティ > C/C++ ビルド > MCU 設定で対応する設定を行うことにより、res_sh_mem という名前のメモリ セクションの割り当てサイズを 0x200000 に更新します。
  4. メインの関数APP_LoadResource()でフラッシュからSDRAMにロードされたリソースの合計サイズにアイコンサイズを追加します。 file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE、pLvglImages、APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

知らせ: 顔認識機能を完成させるには、LVGL GUI アプリのサポートが必要です。出力 UI HAL の UI コールバック関数は、UI 画面からのイベントを処理するために LVGL GUI アプリによって呼び出されます。一方、出力 UI HAL は、LVGL GUI アプリから API を呼び出して UI を更新し、結果とステータスを表示します。LVGL GUI アプリの開発は比較的独立しており、セクション 4.3 で紹介されています。

4.1.5 顔認識用のHALデバイスとマネージャーを起動する
有効化されたビジョンアルゴリズムHALとUI出力HALとそのマネージャーはメインで起動されます file
lvgl_gui_face_rec_cm7.cpp は、フレームワークでの開発の変換に従って以下のようにします。

  1. ヘッダーを含める file 次のコード行を追加して、2 つの HAL マネージャーに関連付けます。
    • #include ” fwk_output_manager.h “
    • #include “fwk_vision_algo_manager.h”
  2. HAL デバイスを宣言します。
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. HAL デバイスを登録します。
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec、戻り値);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec、ret);
  4. マネージャーを初期化します。
    • FWK_MANAGER_INIT(VisionAlgoManager、戻り値)。
    • FWK_MANAGER_INIT(出力マネージャ、戻り値);
  5. マネージャーを起動します:
    • FWK_MANAGER_START(VisionAlgoManager、VISION_ALGO_MANAGER_TASK_PRIORITY、ret);
    • FWK_MANAGER_START(OutputManager、OUTPUT_MANAGER_TASK_PRIORITY、ret);
  6. マネージャータスクの優先順位を定義します。
    • #VISION_ALGO_MANAGER_TASK_PRIORITY 3 を定義します
    • #OUTPUT_MANAGER_TASK_PRIORITY 1 を定義します

フレームワークに顔データベースのサポートを追加
登録された顔の特徴データは、Flashに保存された顔データベースから、小さな file システム。顔データベースのサポートを追加する手順を以下に説明します。

フラッシュストレージ用のドライバーを追加する
フラッシュインターフェースFlexSPIドライバをコピーする filefsl_flexspi.c と fsl_flexspi.h、およびデータ暗号化ドライバ files fsl_caam.cとfsl_caam.hをSDK_2_13_0_MIMXRT1170-EVK\devices\MIMRX1176\drivers\のパスからexのdriversフォルダにコピーします。ampルSW。

ボードレベルのサポートを追加する

  1. ボード上のフラッシュ デバイスに使用される FlexSPI の定義を board.h に追加します。
    • #define BOARD_FLEXSPI FLEXSPI1
    • #定義 BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #定義 BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. 演算子と設定をコピーする fileフラッシュデバイスのflexspi_nor_flash_ops.c、flexspi_nor_flash_ops.h、sln_flash_config.c、sln_flash_config_w25q256jvs.h、およびsln_flash_ops.hを、smart HMI\coffee_machine\cm7\source\flash_config\のパスの下のexのフォルダboardにコピーします。ampルSW。
    • C/C++ビルド > 設定で「ビルドからリソースを除外」のチェックを外します。 fileの名前を入力し、プロパティを開いてプロジェクトに組み込めるようにします。
  3. 含まれるヘッダーを変更する filesln_flash_config.c および flexspi_nor_flash_ops.h で、sln_flash_config.h の名前を sln_flash_config_w25q256jvs.h に変更します。
  4. FlexSPI1クロックソースを file コーヒーマシン アプリを参照する clock_config.c。

アダプタと中間レベルのサポートを追加

  1. コピー filesln_flash.c、sln_flash.h、sln_encrypt.c、sln_encrypt.hをアダプタドライバとして file システムとアプリをsmart HMI\coffee_machine\cm7\source\のパスからexのフォルダsourceへample. 新しい files:
    • ビルドするには、「ビルドからリソースを除外する」のチェックを外します。
    • 含まれるすべてのヘッダーを変更する file sln_flash_config.h を sln_flash_config_w25q256jvs.h に名前変更します。
  2. フォルダをコピーする file小さなAPIを含むシステム fileシステムとHALドライバをスマートHMI \coffee_machine\cm7\source\からexへample SW。新しいフォルダーを更新します。
    • ビルドするには、「ビルドからリソースを除外する」のチェックを外します。
    • プロジェクト設定にインクルードパスを追加します: “${workspace_loc:/${ProjName}/fileシステム}"
    • 含まれるヘッダーを変更する file sln_flash_config.hをsln_flash_config_w25q256jvs.hに、fica_definition.hをapp_config.hに名前変更します。 file sln_flash_littlefs.h です。
  3. ミドルウェアを含むlittlefsフォルダをコピーします – little fileシステムをパスSDK_2_13_0_ MIMXRT1170-EVK\middleware\からexample SW。そして新しいフォルダを更新します:
    • ビルドするには、「ビルドからリソースを除外する」のチェックを外します。
    • プロジェクト設定にインクルードパスを追加します: “${workspace_loc:/${ProjName}/littlefs}”

HALドライバーを追加する 

  • HALデバイスは2つあります。 file システムおよび顔データベース HAL はデータベース アクセス機能でサポートされており、変更なしでフレームワークにすでに実装されています。board_define.h に以下の定義を追加して有効にします。
    • #define ENABLE_FLASH_DEV_Littlefs
    • #ENABLE_FACEDB を定義します

そして、元の顔データベース名を変更するample: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”

アプリレベルのサポートを追加する

  1. メインを更新 file lvgl_gui_face_rec_cm7.cpp:
    • ヘッダーを含める file フラッシュに関連する file システムHALマネージャーにコード行#include “fwk_flash.h”を追加
    • 宣言して登録する file システム HAL デバイス:
      • HAL_FLASH_DEV_DECLARE(Littlefs);
      • HAL_FLASH_DEV_REGISTER(Littlefs、ret);
        注記: の file すべてのデバイス マネージャーが関数 APP_InitFramework() で初期化される前に、システム HAL デバイスを登録する必要があります。
    • MPU を設定するには、APP_BoardInit() で関数 BOARD_ConfigMPU() を呼び出します。
  2. 設定する file フラッシュのシステム割り当て file app_config.hで使用されるマクロ定義を定義することで file sln_flash_littlefs.h:
    • #FICA_IMG_ を定義しますFILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #FICA を定義する_FILE_SYS_SIZE (0x280000)

構成
十分なパフォーマンスを得るために、一部のフラッシュ関連コードはSRAM ITC領域で実行されます。リンカー構成を含むフォルダlinkscriptsをパスsmart HMI\coffee_machine\cm7\からexにコピーします。ampルSW。

LVGL GUIアプリを実装する
フレームワークに基づく LVGL GUI アプリの開発では、出力 UI HAL から API を呼び出し、出力 UI HAL に API を提供します (出力 UI HAL の実装については、セクション 4.1.3 を参照してください)。

ただし、LVGL GUIアプリの詳細な実装は、アプリケーションの要件と設計によって異なります。この例では、GUIアプリはample はセクション 4 の冒頭で説明したとおりに設計されています。

以下に実装の紹介を示します。

  1. カスタマイズされたコードは、GUI Guider プロジェクトと組み込みシステム プロジェクト間のインターフェイスとして GUI Guider によって提供される custom.c および custom.h に実装されます。
    •  以下の機能を実現するには、custom.c に gui_xxx() という名前の新しい関数を追加します。
      • UI を更新するための出力 UI HAL および GUI アプリ用。
      • GUI アプリが出力 UI HAL から UI コールバック関数を呼び出してイベントをトリガーします。
        例えばampたとえば、新しい関数 gui_event_face_rec_action() は、関連するボタンがクリックされたときに GUI アプリからトリガーされる顔登録、顔認識、およびユーザーの削除のいずれかのイベントを処理するために UI コールバック関数を呼び出します。
        注: 出力UI HALで呼び出される関数gui_set_virtual_face()は、view モードは custom.c に実装する必要があります:
    •  smart HMI\coffee_machine\cm4\custom \custom.c から関数 gui_set_virtual_face() を複製します。
    •  ウィジェットの名前 home_img_cameraPre を変更しますview screen_img_camera_pre へview 関数内。
    •  GUI ガイダー プロジェクトとの互換性を保つために、マクロ定義 #ifndef RT_PLATFORM の制御下で、出力 UI HAL 内のすべての UI コールバック関数に同じプロトタイプを使用して実装します。これは、出力 UI HAL 内のこれらの関数が組み込みプラットフォームに依存しているためです。custom.c では、これらの関数は GUI ガイダーのシミュレータに依存し、組み込みプラットフォームとは独立しています。例:ampたとえば、GUI Guider シミュレーターの実行中に顔登録コールバックが以下のように実装されます: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; return; }
      注記: セクション6のステップ4.1.3で紹介した関数の同じプロトタイプを参照してください。
      マクロ定義 RT_PLATFORM は、図 7 に示すように、MCUXpresso のプロジェクト設定で設定されます。NXP-AN14263-LVGL GUI 顔認識をフレームワークに実装する図 (14)
    • UI_xxx_Callback() および gui_xxx() という名前のすべての関数を custom.h で宣言し、smart_tlhmi_event_descriptor.h に含まれる custom.h を追加して、GUI API を UI 出力 HAL と共有します。
  2. GUI Guider で GUI を開発する:
    • フォルダcamera preを複製するview ベースソフトウェアパッケージ lvgl_gui_camera_pre の gui_guider フォルダに GUI Guider プロジェクトソフトウェアが含まれています。view_cm7. 関連名camera_preを変更するview 新しい元彼との面会ampル。
    • 上記の更新された custom.c と custom. h を新しい GUI Guider プロジェクト ソフトウェアにコピーします。
    •  GUI Guider で新しい face_rec プロジェクトを開きます。以下のように更新します。
      • 「Delete User」というラベルの新しいボタンを追加します。GUI アプリの起動時にボタンが非表示になるように、Hidden フラグを追加します。
      • 顔登録、顔認識、ユーザー削除のイベントをトリガーするために、すべてのボタンの登録、認識、およびユーザー削除のイベント設定の「リリース」トリガーに、異なるイベント ID パラメーターを使用して API gui_event_face_rec_action() を呼び出すコード行を追加します。図 8 は、ボタン登録のイベントのコードを示しています。NXP-AN14263-LVGL GUI 顔認識をフレームワークに実装する図 (15)
  3. GUI Guider から生成されたコードを MCUXpresso プロジェクトに更新します。
    • MCUXpresso プロジェクト SW で生成されたフォルダー内のフォルダー images 以外の内容を、GUI Guider プロジェクト SW で生成されたフォルダー内の対応する内容に置き換えます。

注記: 上記の変更の詳細については、exを確認してください。ampleソフトウェア https://mcuxpresso.nxp.com/appcodehub.

元妻との検証ampルプロジェクト

元彼を取り戻すためにampこのアプリケーション ノートのリソースとツールを含むソフトウェア パッケージについては、次の Web サイトを参照してください。 https://mcuxpresso.nxp.com/appcodehub. exを開くampMCUXpresso IDEでプロジェクトを作成します。.axfをビルドしてプログラムします。 file アドレス0x30000000にリソースビンをプログラムする file カメラ_事前view_resource.bin をアドレス 0x30800000 にコピーします。

LVGL GUI顔認識example は以下のように正常に動作します:

  • 前view: 電源を入れると、カメラで撮影したビデオストリームがカメラの特定の領域に表示されます。view GUI画面に「Preview…」。詳細は図3を参照してください。ユーザー削除ボタンは非表示になっています。ボタンと画像の外側の領域をクリックすると、view 顔登録または認識アクションが終了した後、上記の状態になります。
  • 登録:
    • タルトアップ: 登録ボタンをクリックすると、顔の登録が開始されます。ステータス ラベルが「登録中…」に変わり、顔ガイドの四角形が青色になり、進行状況バーに進行状況が表示されます。登録するには、ユーザーの顔が青い顔ガイドの四角形に表示されていることを確認してください。
    • 成功: ステータスラベルに「登録…OK」と登録されたユーザーID番号が表示され、顔の登録が成功すると、バーに進行状況が完全に表示される前に顔ガイドの四角形が赤くなります。
    • 失敗 -> タイムアウト: バーに進行状況が表示されているにもかかわらず顔の登録がまだ失敗している場合、ステータス ラベルに「登録...タイムアウト」と表示されます。
    • 失敗 -> 重複: ステータス ラベルに「登録...失敗」と表示され、進行状況がバーに表示される前に登録された顔が認識されると、顔ガイドの四角形が緑色になります。
  • エコグニション:
    • 起動: 認識ボタンをクリックすると、顔認識が開始されます。ステータス ラベルが「認識中…」に変わり、顔ガイドの四角形が青色になり、進行状況バーに進行状況が表示され始めます。登録するには、ユーザーの顔が青い顔ガイドの四角形に表示されていることを確認してください。
    • 成功: 顔認識が成功すると、バーに進行状況が完全に表示される前に、ステータス ラベルに「認識...OK」と認識されたユーザー ID 番号が表示され、顔ガイドの四角形が緑色になります。その時点で、[ユーザーを削除] ボタンが表示されます。これは、ユーザーが認識された場合にのみ削除できることを意味します。
    • 故障: バーに進行状況が表示されているにもかかわらず顔認識がまだ失敗している場合、ステータス ラベルに「認識…タイムアウト」と表示されます。
  • ユーザーを削除: 「ユーザーを削除」ボタンをクリックすると、顔認識が成功した後、ステータス ラベルが「ユーザーを削除...OK」に変わり、顔ガイドの四角形が青くなり、バーに進行状況が表示されます。「ユーザーを削除」ボタンは再び非表示になります。認識された顔/ユーザーはデータベースから削除されます。つまり、この顔/ユーザーは再度登録されるまで認識できません。

ドキュメント内のソースコードに関する注意
Exampこのドキュメントに示されているファイル コードには、次の著作権と BSD-3 条項ライセンスがあります。

Copyright 2024 NXP 以下の条件が満たされる場合、修正の有無にかかわらず、ソースおよびバイナリ形式での再配布および使用が許可されます。

  1. ソース コードを再配布する場合は、上記の著作権表示、この条件リスト、および以下の免責事項を保持する必要があります。
  2. バイナリ形式で再配布する場合は、上記の著作権表示、この条件リスト、ドキュメント内の次の免責事項を複製する必要があり、および/またはその他の資料を配布物に添付する必要があります。
  3. 著作権者の名前もその貢献者の名前も、事前に書面による許可を得ずに、このソフトウェアから派生した製品を推奨または宣伝するために使用することはできません。

このソフトウェアは、著作権者および貢献者によって「現状のまま」提供されており、商品性および特定目的への適合性に関する黙示の保証を含むがこれに限定されない、明示または黙示のいかなる保証も否認されます。いかなる場合においても、著作権者または貢献者は、契約、厳格責任、不法行為(過失またはその他を含む)を問わず、本ソフトウェアの使用によって生じたいかなる直接的、間接的、偶発的、特別、懲罰的、または結果的な損害(代替品またはサービスの調達、使用、データ、または利益の喪失、または事業の中断を含むがこれらに限定されない)についても、たとえそのような損害の可能性について知らされていたとしても、一切の責任を負わないものとします。

改訂履歴

NXP-AN14263-LVGL GUI 顔認識をフレームワークに実装する図 (16)

法的情報

定義
下書き — ドキュメントの下書きステータスは、コンテンツがまだ内部検討中であることを示します。view 正式な承認が必要であり、変更や追加が行われる可能性があります。NXP Semiconductors は、文書のドラフト版に含まれる情報の正確性または完全性についていかなる表明または保証も行わず、そのような情報の使用の結果について一切の責任を負いません。

免責事項

  • 限定保証および責任 — このドキュメントの情報は、正確で信頼できるものであると信じられています。 ただし、NXP セミコンダクターズは、そのような情報の正確性または完全性に関して、明示または黙示を問わず、いかなる表明または保証も行わず、そのような情報の使用の結果について責任を負わないものとします。 NXP セミコンダクターズ以外の情報源から提供された場合、NXP セミコンダクターズは本書の内容について一切の責任を負いません。
    NXP セミコンダクターズは、間接的、偶発的、懲罰的、特別または必然的な損害 (利益の損失、貯蓄の損失、事業の中断、製品の取り外しまたは交換に関連する費用、または手直し費用を含むがこれらに限定されない) について、いかなる場合にも責任を負わないものとします。そのような損害が不法行為 (過失を含む)、保証、契約違反、またはその他の法的理論に基づいているかどうか。
    何らかの理由でお客様が被る可能性のある損害にかかわらず、NXPセミコンダクターズの本書に記載されている製品に対するお客様に対する累積的および累積的な責任は、NXPセミコンダクターズの商業販売の条件に従って制限されるものとします。
  • 変更する権利 — NXPセミコンダクターズは、仕様や製品の説明を含むがこれらに限定されない、このドキュメントで公開されている情報をいつでも予告なしに変更する権利を留保します。 このドキュメントは、本書の発行前に提供されたすべての情報に優先し、置き換えられます。
  • 使用適合性 — NXP セミコンダクターズ製品は、生命維持、生命にかかわるまたは安全上重要なシステムまたは機器、または NXP セミコンダクターズ製品の故障または誤動作が合理的に予想されるアプリケーションでの使用に適しているように設計、承認、または保証されていません。人身傷害、死亡または重大な物的損害または環境損害。 NXP セミコンダクターズおよびそのサプライヤーは、NXP セミコンダクターズ製品をそのような機器またはアプリケーションに含めたり使用したりすることについて一切の責任を負いません。
  • アプリケーション — これらの製品のいずれかについてここに記載されているアプリケーションは、説明のみを目的としています。 NXP セミコンダクターズは、そのようなアプリケーションがさらなるテストや変更なしに指定された用途に適していることを表明または保証しません。
    お客様は、NXP Semiconductors 製品を使用するアプリケーションおよび製品の設計と運用に責任を負い、NXP Semiconductors は、アプリケーションまたはお客様の製品設計に関する支援に対して一切の責任を負いません。 NXP Semiconductors 製品が、お客様の計画されたアプリケーションおよび製品、ならびにお客様のサードパーティ顧客の計画されたアプリケーションおよび使用に適しているかどうかを判断するのは、お客様の単独の責任です。 お客様は、アプリケーションおよび製品に関連するリスクを最小限に抑えるために、適切な設計および運用上の安全対策を講じる必要があります。 NXP Semiconductors は、顧客のアプリケーションや製品、あるいは顧客のサードパーティ顧客によるアプリケーションや使用の弱点や不履行に基づく不履行、損害、費用、または問題に関する責任を一切負いません。 お客様は、アプリケーションおよび製品のデフォルト、またはお客様の第三者顧客によるアプリケーションまたは使用のデフォルトを回避するために、NXP Semiconductors 製品を使用してお客様のアプリケーションおよび製品に必要なすべてのテストを行う責任があります。 NXP はこの点に関していかなる責任も負いません。
  • 商用販売の条件 — NXP Semiconductors製品は、https://www.nxp.com/proに掲載されている商業販売の一般条件に従って販売されます。file/terms。ただし、有効な書面による個別契約で別途合意されている場合を除きます。 個別の契約が締結された場合、それぞれの契約の条件のみが適用されるものとします。 NXPセミコンダクターズは、お客様によるNXPセミコンダクターズ製品の購入に関するお客様の一般条件の適用に明示的に反対します。
  • 輸出管理 — この文書およびここに記載されている項目は、輸出管理規制の対象となる場合があります。 輸出には、所轄官庁からの事前承認が必要になる場合があります。
  • 非自動車認定製品での使用への適合性 — この文書に、この特定の NXP Semiconductors 製品が自動車に適合していると明示的に記載されていない限り、この製品は自動車での使用には適していません。この製品は、自動車のテストまたはアプリケーションの要件に従って適合もテストもされていません。NXP Semiconductors は、自動車の機器またはアプリケーションに非自動車適合製品を組み込んだり使用したりすることに関して一切の責任を負いません。
    お客様が自動車の仕様および規格に対する自動車用途でのデザインインおよび使用のために製品を使用する場合、お客様は (a) そのような自動車用途、用途および仕様に対する製品の NXP セミコンダクターズの保証なしで製品を使用するものとし、および ( b) お客様が NXP Semiconductors の仕様を超えて自動車用途に製品を使用する場合は、そのような使用はお客様自身の責任のみで行うものとし、(c) お客様は、お客様の設計および使用に起因する責任、損害、または製品の故障に関する請求について、NXP Semiconductors を完全に補償するものとします。 NXP セミコンダクターズの標準保証および NXP セミコンダクターズの製品仕様を超える車載アプリケーション向けの製品。
  • 翻訳 — ドキュメントの法的情報を含む、英語以外の (翻訳された) バージョンのドキュメントは、参照のみを目的としています。 翻訳版と英語版の間に相違がある場合は、英語版が優先されるものとします。
  • 安全 — お客様は、すべての NXP 製品が未確認の脆弱性にさらされている可能性があること、または確立されたセキュリティ基準または既知の制限付きの仕様をサポートしている可能性があることを理解しています。 お客様は、お客様のアプリケーションおよび製品に対するこれらの脆弱性の影響を軽減するために、アプリケーションおよび製品のライフサイクル全体の設計と運用に責任を負います。 お客様の責任は、NXP 製品がお客様のアプリケーションで使用するためにサポートするその他のオープンおよび/または独自技術にも及びます。 NXP は、いかなる脆弱性についても責任を負いません。 お客様は、NXP からのセキュリティ アップデートを定期的に確認し、適切にフォローアップする必要があります。 お客様は、目的のアプリケーションの規則、規制、および標準に最も適合するセキュリティ機能を備えた製品を選択し、その製品に関する最終的な設計上の決定を行うものとし、製品に関するすべての法律、規制、およびセキュリティ関連の要件を遵守する責任を単独で負うものとします。 NXP が提供する可能性のある情報またはサポートについて。

NXP には、NXP 製品のセキュリティ脆弱性に対する調査、報告、およびソリューション リリースを管理する Product Security Incident Response Team (PSIRT) (PSIRT@nxp.com で連絡可能) があります。
NXP BV — NXP BV は事業会社ではなく、製品の流通や販売は行いません。

商標
知らせ: 参照されているすべてのブランド、製品名、サービス名、および商標は、それぞれの所有者の財産です。

NXP — ワードマークとロゴはNXP BVの商標です

AMBA、Arm、Arm7、Arm7TDMI、Arm9、Arm11、Artisan、big.LITTLE、Cordio、CoreLink、CoreSight、Cortex、DesignStart、DynamIQ、Jazelle、Keil、Mali、Mbed、Mbed Enabled、NEON、POP、RealView、SecurCore、Socrates、Thumb、TrustZone、ULINK、ULINK2、ULINK-ME、ULINK-PLUS、ULINKpro、μVision、Versatile — は、米国および/または米国における Arm Limited (またはその子会社または関連会社) の商標および/または登録商標です。他の場所で。 関連技術は、特許、著作権、意匠、企業秘密の一部またはすべてによって保護されている場合があります。 全著作権所有。

  • i.MX — NXPBVの商標です
  • Jリンク — は SEGGER Microcontroller GmbH の商標です。

Microsoft、Azure、および ThreadX は、Microsoft グループ企業の商標です。

この文書およびここに記載されている製品に関する重要な通知は、「法的情報」セクションに含まれていることにご注意ください。

© 2024 NXP BV
詳細については、以下をご覧ください。 https://www.nxp.com

  • リリース日: 19年2024月XNUMX日
  • 文書識別子: AN14263

よくある質問

Q: この製品の主な目的は何ですか?
A: 主な目的は、シンプルなLVGL GUIを使用したAI&MLビジョンアルゴリズムモデルを使用して顔認識機能を有効にすることです。ampSLN-TLHMI-IOT ボード上の le。

Q: 開発者はこのアプリケーション ノートからどのようなメリットを得ることができますか?
A: 開発者は、提供されたサンプルを使用して、フレームワーク上で顔認識を実装する方法を段階的に学ぶことができます。amp関連するデバイス マネージャー、HAL デバイス、およびイベント メカニズムについて説明します。

ドキュメント / リソース

NXP AN14263 フレームワークに LVGL GUI 顔認識を実装 [pdf] ユーザーガイド
AN14263 LVGL GUI 顔認識をフレームワーに実装、AN14263、LVGL GUI 顔認識をフレームワーに実装、LVGL GUI 顔認識をフレームワーに実装、フレームワーでの顔認識、フレームワーでの認識、フレームワー

参考文献

コメントを残す

あなたのメールアドレスは公開されません。 必須項目はマークされています *