NXP AN14263 Implementace LVGL GUI Face Recognition na Framewor
Informace o produktu
Specifikace
- Název produktu: LVGL GUI Face Recognition on Framework
- Revize dokumentu: 1.–19. dubna 2024
- Klíčová slova: Rozpoznávání obličeje, LVGL GUI, Framework
Návod k použití produktu
- Nadview
Tento produkt umožňuje model algoritmu vidění AI&ML pro rozpoznávání obličeje na frameworku pro implementaci funkce rozpoznávání obličeje s jednoduchým LVGL GUI example na desce SLN-TLHMI-IOT. - Konec rámceview
Software řešení je navržen na architektuře frameworku, která zahrnuje správce zařízení zodpovědné za správu zařízení, zařízení HAL až po abstraktní základní detaily a události pro komunikaci mezi různými zařízeními. - Vlastnosti
Produkt umožňuje implementaci funkce rozpoznávání obličeje prostřednictvím fotoaparátuview na obrazovce GUI s tlačítky pro spuštění registrace, rozpoznání a odstranění obličeje. Data o registrované tváři se ukládají na Flash prostřednictvím a file systém. - Obsah poznámky k aplikaci
Poznámka k aplikaci představuje LVGL GUI obrazovku s kamerouview a tlačítka pro akce související s obličejem. Pomáhá vývojářům pochopit rámec a jak implementovat rozpoznávání obličeje pomocí poskytnutého example.
Nadview
NXP uvedla na trh sadu pro vývoj řešení s názvem SLN-TLHMI-IOT, která se zaměřuje na chytré aplikace HMI. Umožňuje inteligentní HMI s vizuálním, hlasovým a grafickým uživatelským rozhraním ML implementovaným na jednom MCU NXP i.MX RT117H. Na základě SDK je software řešení konstruován na designu zvaném framework, který podporuje flexibilní návrhy a přizpůsobení vizuálních a hlasových funkcí. Aby uživatelé mohli lépe používat softwarovou platformu, jsou poskytovány některé základní dokumenty, napřample, uživatelská příručka vývoje softwaru. Průvodce seznamuje se základním softwarovým designem a architekturou aplikací pokrývající všechny komponenty řešení včetně frameworku, aby pomohl vývojářům snadněji a efektivněji implementovat jejich aplikace pomocí SLN-TLHMI-IOT.
Další podrobnosti o řešení a příslušné dokumenty naleznete na adrese web stránka řešení NXP EdgeReady Smart HMI založené na i.MX RT117H s ML Vision, hlasovým a grafickým uživatelským rozhraním. Pro vývojáře však stále není tak snadné implementovat své chytré HMI aplikace podle těchto základních příruček. Je naplánována řada aplikačních poznámek, které pomohou krok za krokem studovat vývoj rámce. Tato poznámka k aplikaci je založena na implementaci LVGL GUI Camera Preview on Framework (dokument AN14147). Tato poznámka k aplikaci popisuje, jak povolit model algoritmu vidění AI&ML pro rozpoznávání obličeje v rámci pro implementaci funkce rozpoznávání obličeje prostřednictvím fotoaparátu předem.view na obrazovce GUI pomocí jednoduchého GUI LVGL example na desce SLN-TLHMI-IOT. V poznámce k přihlášce je uvedeno example představuje LVGL GUI obrazovku s kamerouview a některá tlačítka pro spuštění registrace, rozpoznání a odstranění obličeje. Data zaregistrovaných obličejů se ukládají na Flash prostřednictvím malého množství file systém.
Na vysoké úrovni obsahuje poznámka k žádosti níže uvedený obsah:
- Povolte funkci rozpoznávání obličeje v rámci.
- Přidejte podporu databáze obličejů do rámce pomocí file systém na Flash.
- Implementujte aplikaci LVGL GUI. Prostřednictvím výše uvedených úvodů tento dokument pomáhá vývojářům:
- Pochopte hlouběji rámec a software inteligentního řešení HMI.
- Rozvíjejte jejich rozpoznávání obličejů AI&ML na frameworku s aplikací LVGL GUI.
Konec rámceview
Software řešení je primárně navržen s využitím architektury frameworku, která se skládá z několika různých částí:
- Správci zařízení – základní část
- Zařízení hardwarové abstraktní vrstvy (HAL).
- Zprávy/Události
Jak je znázorněno na obrázku 1, přesview mechanismus rámce je:
Správci zařízení jsou zodpovědní za správu zařízení používaných systémem. Každý typ zařízení (vstup, výstup atd.) má svého vlastního správce zařízení specifického pro daný typ. Se správcem zařízení, který se spustí poté, co jsou do něj zařízení zaregistrována, čeká a kontroluje zprávu pro přenos dat do zařízení a dalších správců po inicializaci a spuštění registrovaných zařízení. Zařízení HAL jsou zapsána nad kódem ovladače nižší úrovně, což pomáhá zvýšit srozumitelnost kódu tím, že abstrahuje mnoho základních detailů.
Události jsou prostředkem, kterým jsou informace sdělovány mezi různými zařízeními prostřednictvím jejich manažerů. Když je událost spuštěna, zařízení, které jako první přijalo událost, oznámí tuto událost svému manažerovi a poté informuje ostatní manažery určené k příjmu události.
Architektonický návrh rámce byl zaměřen na tři hlavní cíle:
- Snadné použití
- Flexibilita/přenositelnost
- Výkon
Rámec je navržen s cílem urychlit dobu uvedení na trh pro vidění a další aplikace pro strojové učení. Pro zajištění rychlého uvedení na trh je důležité, aby byl samotný software snadno srozumitelný a upravitelný. S ohledem na tento cíl lze architekturu rámce snadno upravit, aniž by byla omezující a aniž by to bylo na úkor výkonu.
Další podrobnosti o frameworku najdete v Uživatelské příručce vývoje softwaru Smart HMI (dokument MCU-SMHMI-SDUG).
Light and Versatile Graphics Library (LVGL)
LVGL (Light and Versatile Graphics Library) je bezplatná grafická knihovna s otevřeným zdrojovým kódem, která poskytuje vše, co potřebujete k vytvoření vestavěného grafického rozhraní se snadno použitelnými grafickými prvky, krásnými vizuálními efekty a nízkými nároky na paměť.
Průvodce GUI
GUI Guider je uživatelsky přívětivý nástroj pro vývoj grafického uživatelského rozhraní od NXP, který umožňuje rychlý vývoj vysoce kvalitních displejů s otevřenou grafickou knihovnou LVGL. Editor GUI Guider umožňuje snadné použití mnoha funkcí LVGL, jako jsou widgety, animace a styly, k vytvoření grafického uživatelského rozhraní s minimálním nebo žádným kódováním.
Kliknutím na tlačítko můžete spustit aplikaci v simulovaném prostředí nebo ji exportovat do cílového projektu. Vygenerovaný kód z GUI Guider lze snadno přidat do vašeho projektu, což urychlí proces vývoje a umožní vám bezproblémově přidat do aplikace vestavěné uživatelské rozhraní. GUI Guider je zdarma k použití s univerzálními a crossover MCU NXP a obsahuje vestavěné šablony projektů pro několik podporovaných platforem. Chcete-li se dozvědět více o vývoji LVGL a GUI v GUI Guider, podívejte se na Light and Versatile Graphics Library a GUI Guider.
Vývojové prostředí
Nejprve připravte a nastavte hardwarové a softwarové prostředí pro implementaci example na rámu.
Hardwarové prostředí
Hardwarové prostředí je nastaveno pro ověření exampten:
- Inteligentní vývojová sada HMI založená na NXP i.MX RT117H (sada SLN_TLHMI_IOT)
- SEGGER J-Link s 9pinovým adaptérem Cortex-M a V7.84a nebo novější verzí ovladače
softwarové prostředí
Softwarové prostředí je nastaveno pro vývoj exampten:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – napřample kód druhé aplikační poznámky jako základní software vývoje. Podrobnosti viz https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – jako zdroj kódu pro vývoj.
- Software SLN-TLHMI-IOT V1.1.2 – zdrojový kód inteligentního HMI vydaný v úložišti NXP GitHub jako zdroj kódu pro vývoj. Podrobnosti viz: GitHub – NXP/mcu-smhmi ve verzi 1.1.2
Podrobnosti o pořízení a nastavení softwarového prostředí viz: Začínáme s SLN-TLHMI-IOT.
Architektura vidění na frameworku
Architektura vidění na frameworku je znázorněna na obrázku 2. Algo vidění HAL (OASIS_HAL) má následující procesy:
- Po obdržení souvisejících událostí z výstupního uživatelského rozhraní HAL proveďte registraci a rozpoznání obličeje pomocí modelu algoritmu vidění AI&ML. Upozornit výsledky odvození z modelu algoritmu do výstupního uživatelského rozhraní HAL.
- Přistupuje (přidává, maže…) k databázi rysů obličeje na základě toho málo file systému voláním rozhraní API FaceDB HAL po přijetí souvisejících událostí z výstupního uživatelského rozhraní HAL.
- Při registraci a rozpoznávání obličeje si vyžádejte snímek videa z kamery HAL.
Implementujte do rámce rozpoznávání obličeje
Rozpoznávání tváře LVGL GUI example (example je poskytnut později) na frameworku je implementován na základě example kódy implementace LVGL GUI Camera Preview on Framework (dokument AN14147).
Za předvedení rozpoznání obličeje v example, základní funkce aplikace GUI (viz hlavní obrazovka na obrázku 3) je navržena tak, jak je popsáno níže:
- Aplikace GUI spustí událost registrace nebo rozpoznání tváře do výstupního uživatelského rozhraní HAL po kliknutí na tlačítko Registrace nebo Rozpoznání. A výstupní UI HAL po úspěšné registraci obličeje upozorní na událost přidání uživatele do HAL algo vidění.
- Aplikace GUI spustí událost smazání uživatele do výstupního uživatelského rozhraní HAL po kliknutí na tlačítko Smazat uživatele poté, co je rozpoznána tvář uživatele.
- Aplikace GUI spouští událost zastavení běhu alga oázy do výstupního uživatelského rozhraní HAL při kliknutí na obrazovku mimo tlačítka a obrázky.
Připravte softwarový balík pro implementaci example.
- Naklonujte základní software lvgl_gui_camera_preview_cm7. Změňte název projektu a hlavní filenázev na lvgl_gui_face_rec_cm7.
- Framework je potřeba aktualizovat v softwaru, protože zdrojové kódy jádra frameworku začaly být veřejné na GitHubu od verze 1.1.2.
- Nahraďte složku frameworku kopií V1.1.2 z GitHubu kromě files fwk_log.ha fwk_common.h pod inc\ jak byly upraveny pro řadu aplikačních poznámek. Operace jsou znázorněny na obrázku 4:
- Odstraňte složku framework_cm7 ve skupině libs a odeberte knihovnu framework_cm7 a její vyhledávací cestu nakonfigurovanou v Project > Properties > C/C++ Build > nastavení > Nastavení nástrojů > MCU C++ Linker > Knihovny, protože je poskytnut zdrojový kód jádra.
Povolit funkci rozpoznávání obličeje na frameworku
Funkce rozpoznávání obličeje je postavena na modelu algoritmu vidění ML poskytovaného jako statická knihovna – runtime knihovna oasis lite od NXP. Knihovna je malá, vysoce efektivní, přizpůsobená a optimalizovaná knihovna AI. Model zahrnuje detekci obličeje, rozpoznání obličeje, detekci skla a detekci živosti. Poskytuje především rozhraní API OASISLT_run_extended() pro spouštění kanálu rozpoznávání obličejů při aktualizaci výsledků volajícímu prostřednictvím zpětných volání událostí a přidávání/aktualizaci/mazání obličejů v databázi prostřednictvím zpětných volání databáze obličejů po zadání informací o zdrojovém rámci, zpětných volání a paměti. fond používaný knihovnou voláním jiného API OASISLT_init() při inicializaci. Volání rozhraní API a funkce zpětného volání jsou implementovány v algoritmu vidění HAL rámce.
Přidejte knihovnu modelů vision algo
- Kopírovat složku oasis obsahující knihovnu a související záhlaví file z chytrého HMI\coffee_machine\cm7\libs\ do složky libs example SW.
- Přidejte vyhledávací cestu záhlaví file v Projekt > Vlastnosti > Sestavení C/C++ > Nastavení > Nastavení nástrojů > Kompilátor MCU C > Zahrnuje a kompilátor MCU C++ > Obsahuje: „${workspace_loc:/${ProjName}/libs/oasis/include}“
- Přidejte knihovnu a její vyhledávací cestu na Project > Properties > C/C++ Build > nastavení > MCU C+ + Linker > Knihovny: liboasis_lite2D_DEFAULT_117f_ae.a „${workspace_loc:/${ProjName}/libs/oasis}“ a definici makra do povolte funkci v části Projekt > Vlastnosti > Sestavení C/C++ > Nastavení > Nastavení nástroje > Kompilátor MCU C > Preprocesor a kompilátor MCU C++ > Preprocesor: SMART_TLHMI_2D
Povolit vidění algo HAL
Vision algo HAL uvádí do chodu model vision algo a reaguje na výsledky na výstup HAL uživatelského rozhraní poté, co z něj obdrží události.
Chcete-li to povolit, naklonujte existující podobný ovladač HAL file kde jsou implementovány níže uvedené funkce:
- Implementujte zpětná volání operací databáze obličejů a zpracování událostí.
- Uveďte vize algo do práce voláním rozhraní API knihovny oasis.
- Přístup k databázi uživatelských obličejů a databázi aplikací (není potřeba v example).
- Přijímat události z a odesílat výsledky do výstupního uživatelského rozhraní HAL.
Hlavní práce na implementaci HAL pro exampjsou:
- Naklonujte existující podobný ovladač HAL file a změnit související názvy.
- Odstraňte kódy související s datovými operacemi aplikace.
- Aktualizujte definice a funkce pro zpracování událostí z výstupního uživatelského rozhraní HAL podle exampdesign.
- Přidejte konfigurace požadované při inicializaci oasis.
Podrobné kroky jsou následující:
- Klonujte hal_vision_algo_oasis_coffeemachine.c. Změň filenázev pro hal_vision_algo_oasis_guifacerec.c. A vyměňte všechny řetězce CoffeeMachine za GUIFaceRec v file.
- Odstraňte kódy obsahující řetězec coffeedb (nerozlišují se malá a velká písmena) související s databází aplikace, napřample, #include hal_sln_coffeedb.h.
- Upravte funkci HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() pro zpracování událostí z výstupního uživatelského rozhraní HAL.
- Změňte definici události kEventFaceRecId_RegisterCoffeeSelection na kEventFaceRecId_RegisterUserFace a řetězec struktury regCoffeeSelection na regGUIFaceRec pro zpracování událostí, abyste do databáze přidali nová data prvků obličeje.
- Chcete-li ukázat standardní proces akcí rozpoznávání obličeje v příkladuample, upravte zpracování v případě kEventFaceRecID_OasisSetState s definicemi stavů:
- kOASISLiteStát
- Registrace kOASISLiteState
- Uznání kOASISLiteState
- Zastaveno
- Přidejte a upravte definice událostí zmíněných ve výše uvedeném kroku.
- Zkopírujte záhlaví file smart_tlhmi_event_descriptor.h ze smart HMI\coffee_machine \cm7\source\event_handlers\ do složky source example SW. Aktualizujte file jak je uvedeno níže:
- Změňte definici události kEventFaceRecId_RegisterCoffeeSelection na kEventFaceRecId_RegisterUserFace v typu výčtu _event_smart_tlhmi_id a řetězec struktury regCoffeeSelection na regGUIFaceRec ve struktuře _event_smart_tlh. Změňte tedy strukturu register_coffee_selection_event_t pro regCoffeeSelection na register_gui_facerec_event_t.
- Odstraňte obsah else použitý pro aplikaci kávovaru, napřample, řádek kódu o hlasu: #include “hal_event_descriptor_voice.h”.
- Přidejte typy kOASISLiteState_Stopped a kOASISLiteState_Running do typu výčtu oasis_lite_state_t v hal_vision_algo.h pod framework>hal>vision v projektu, jak je uvedeno níže:
typedef enum _oasis_lite_state {- kOASISLiteStát
- Běh, kOASISLiteState
- Zastaveno, kOASISLiteState
- Uznání,
- kOASISLiteStát
- Registrace, kOASISLiteState
- Zrušení registrace, kOASISLiteState
- RemoteRegistration, kOASISLiteState
- Počítat
- Použijte výše aktualizovanou strukturu oasis_lite_state_t k upřesnění struktury oasis_state_event_t v hal_event_descriptor_face_rec.h v rámci framework>hal>vision v projektu, jak je uvedeno níže: typedef struct _oasis_state_event_t { stav oasis_lite_state_t; } oasis_state_event_t;
- Změňte všechny kEventInfo_Remote na kEventInfo_Local pro odesílání událostí z vizuálního algoritmu HAL do jiných HAL běžících na stejném jádru jako jedno jádro místo dvoujádrového se používá v ex.ample.
- Přidejte a upravte níže uvedené konfigurace pro inicializaci oázy v OASISLT_init():
- Přidejte definice maker a části paměti pro snímek videa do 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, zarovnatbajty) \
- __attribute__((section(.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __atribut__((zarovnáno(zarovnat bajty)))
- Nakonfigurujte přiřazení paměti k výše uvedené části paměti fb_sh_mem na Project > Properties > C/C++ Build > MCU Settings zobrazené na obrázku 5:
- Deklarujte globální proměnnou g_DTCOPBuf v lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Pokračujte v přidávání definic použitých ve výše uvedené proměnné:
- Definujte výše uvedenou sekci v board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, zarovnatbajty) \
- atribut__((section(.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- atribut__((zarovnáno(zarovnatbajty)))
- Zahrnout záhlaví file hal_vision_algo.h obsahující definici makra DTC_OPTIMIZE_BUFFER_SIZE v app_config.h obsažené v lvgl_gui_face_rec_cm7.cpp.
- Přidejte definice maker a části paměti pro snímek videa do board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- Nastavte proměnnou s_debugOption na hodnotu true pro zobrazení stavu průběhu při rozpoznávání obličeje.
- Přidejte vyhledávací cestu záhlaví files vize HAL na Project > Vlastnosti > C/C++ Build > nastavení > Nastavení nástroje > MCU C kompilátor > Zahrnuje a MCU C++ kompilátor > Zahrnuje: „${workspace_loc:/${ProjName}/framework/hal/vision}“
- Přidejte níže uvedenou definici, abyste povolili vision algo HAL v board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Povolit výstupní UI HAL
Výstupní UI HAL informuje o událostech algo vidění HAL a reaguje na výsledky odvození z algo vidění HAL. V aplikaci GUI jsou události obecně spouštěny aplikací a výsledky se zobrazují v aplikaci.
Chcete-li to povolit, naklonujte existující podobný ovladač HAL file kde jsou obecně implementovány níže uvedené funkce:
- Upozornit na události pro rozpoznání obličeje a přístup k databázi.
- Pro spouštění událostí implementujte zpětná volání pro aplikaci GUI.
- Zpracujte výsledky odvození z modulu algo vidění.
- Zobrazte proces a výsledky zpracování událostí v uživatelském rozhraní pomocí ukazatele průběhu ovládaného pomocí časovačů a obdélníku s vodítkem.
Hlavní práce na implementaci HAL pro exampv tomto dokumentu jsou použity:
- Naklonujte existující podobný ovladač HAL file a změnit související názvy.
- Odstraňte kódy související s aplikací.
- Aktualizujte funkce pro oznámení událostí a odpověď na výsledky podle příkladuampdesign.
- Přidejte zpětná volání pro aplikaci GUI pro spouštění událostí.
Podrobné kroky jsou následující:
- Klonujte hal_output_ui_coffee_machine.c. Změň filenázev pro hal_ output_ui_guifacerec.c.
- Vyměňte všechny řetězce CoffeeMachine za GUIFaceRec v file.
- Odstraňte kódy související s aplikací – kávovarem.
- Odeberte funkce WakeUp() a _StandBy() a související kódy (může je hledat v řetězci wake_up a standby).
- Odstraňte předview události režimu zpracovávající související kódy v HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Odstraňte funkce UI_xxx_Callback() a kódy obsahující řetězec gui_ a obrazovku související s GUI kávovaru kromě gui_set_virtual_face() pro preview funkce režimu.
- Odstraňte všechny kódy spojené s proměnnými s_IsWaitingAnotherSelection a s_IsWaitingRegisterSelection souvisejícími s aplikací kávovaru.
- Odstraňte kódy související s hlasem, zvukem a jazykem. Napřampten:
- #include “hal_voice_algo_asr_local.h”,
- #include “hal_event_descriptor_voice.h”
- Pro upozornění na různé události implementujte před jejich odstraněním nové funkce _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() a DeregisterGUIFaceRec() odkazující na funkce _StopFaceRec(), _RegisterCoffeeSelection() a DeregisterCoffeeSelection.
- _OutputManagerNotify() implementuje základní funkci výstupu události pro odeslání události do HAL algoritmu vidění. Níže uvedené funkce jej volají k odesílání vlastních událostí.
- _SetFaceRec() odešle událost kEventFaceRecID_OasisSetState ke spuštění algo vidění pro registraci obličeje, rozpoznání a zastavení algo.
- Funkce _RegisterGUIFaceRec() odešle událost kEventFaceRecId_RegisterGUIFaceRec, která je definována v souboru smart_tlhmi_event_descriptor.h, za účelem přidání dat funkcí obličeje do databáze, když je registrace v pořádku.
- DeregisterGUIFaceRec() odešle událost kEventFaceRecID_DelUser, aby při předávání rozpoznání obličeje odstranila data rysů obličeje z databáze.
- Aktualizujte kódy tak, aby prováděly odpovídající akce včetně obnovení grafického uživatelského rozhraní voláním rozhraní API z aplikace GUI LVGL pro odvození výsledků registrace a rozpoznávání obličeje ve funkci _InferComplete_Vision() podle ex.ample's design. Napřample, když je registrace obličeje úspěšná,
- Ukončete zobrazování průběhu voláním _FaceRecProcess_Stop();
- Zastavte registraci obličeje voláním _SetFaceRec(kOASISLiteState_Stopped);
- Zobrazit úspěšný výsledek na GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Zaregistrujte data obličeje do databáze: _RegisterUserFace(s_UserId);
- Přidejte funkce zpětného volání uživatelského rozhraní pro zpracování událostí: předview, registrace obličeje, rozpoznávání a smazání uživatele spuštěné z GUI. Napřample, zpětné volání registrace tváře: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- A přidejte funkce _FaceRecProcess_Start() a _FaceRecProcess_Stop() pro zobrazení průběhu a stavu v různých událostech a výsledcích.
- Aktualizujte funkci zpětného volání ISR časovače _SessionTimer_Callback(), aby zvládla případ vypršení časového limitu voláním: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Chcete-li povolit výstup HAL uživatelského rozhraní v board_define.h, přidejte níže uvedené definice: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Oznámení:
Chcete-li lépe prezentovat funkci rozpoznávání obličeje, ponechte funkci, aby se proces a výsledky rozpoznávání obličeje zobrazovaly ve výstupním uživatelském rozhraní HAL. Funkce je popsána níže
- Obdélník vodítka obličeje se zobrazuje modře a ukazatel průběhu zobrazuje postup při zahájení registrace nebo rozpoznávání obličeje.
- Po úspěšné registraci tváře se obdélník vodítka tváře zobrazí červeně.
- Po úspěšném rozpoznání obličeje se obdélník s vodítkem obličeje zobrazí zeleně.
- Obdélník vodítka obličeje zůstane modrý a ukazatel průběhu ukazuje plný průběh, když je akce po vypršení časovače neúspěšná. V tomto okamžiku zastavte registraci nebo rozpoznávání obličeje.
Ukazatel průběhu a obdélník s vodítkem tváře jsou prezentovány jako ikony, které jsou zabudovány do binárního souboru prostředků file naprogramovat do Flash. Ukazatele na data ikon na SDRAM se nastavují ve funkci LoadIcons(APP_ICONS_BASE) volané při inicializaci výstupního UI HAL zařízení ve výstupním UI HAL. Musí implementovat podporu ikon pro funkci.
Implementujte podporu ikon
- Vytvořte zdroj kombinováním ikon s obrázky použitými v aplikaci LVGL GUI:
- Klonujte záhlaví čtyř ikon files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h a virtual_face_red_420x426.h z chytrého HMI
\coffee machine\resource\icons\ do ikon nové složky ve složce zdrojů example SW. - Přidejte vyhledávací cestu pro ikonu čtyř files v camera_preview_resource.txt file ve složce zdrojů, napřampsoubor: ikona ../resource/icons/process_bar_240x14.h
- Proveďte camera_preview_resource_build.bat k vytvoření zdrojů obrázků a ikon pro generování koše file camera_preview_resource.bin a informace file resource_information_table.txt (viz obrázek 6).
- Klonujte záhlaví čtyř ikon files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h a virtual_face_red_420x426.h z chytrého HMI
- Definujte počáteční adresu na SDRAM a velikost ikon v app_config.h. Adresa začíná vedle obrázků aplikace GUI. Velikost je vygenerována v info file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Aktualizujte přiřazenou velikost paměťové sekce s názvem res_sh_mem na 0x200000 jejím předefinováním v app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 a odpovídajícím nastavením v Project > Properties > C/C++ Build > MCU settings.
- Přidejte velikost ikony k celkové velikosti zdroje načteného z Flash do SDRAM ve funkci APP_LoadResource() v hlavním file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Oznámení: K dokončení funkce rozpoznávání obličeje je nutná podpora aplikace LVGL GUI. Funkce zpětného volání uživatelského rozhraní ve výstupní UI HAL jsou volány aplikací LVGL GUI pro zpracování událostí z obrazovky uživatelského rozhraní. Na druhou stranu výstupní UI HAL volá rozhraní API z aplikace LVGL GUI, aby aktualizovalo uživatelské rozhraní, aby zobrazovalo výsledek a stav. Vývoj aplikace LVGL GUI je relativně nezávislý a je představen v části 4.3.
4.1.5 Spuštění zařízení a správců HAL pro rozpoznávání obličeje
Aktivovaný algoritmus vidění HAL a výstup uživatelského rozhraní HAL a jejich správci se spouštějí v hlavním file
lvgl_gui_face_rec_cm7.cpp po konverzích vývoje na frameworku, jak je uvedeno níže:
- Zahrnout záhlaví file související se dvěma správci HAL přidáním řádku kódu:
- #include “ fwk_output_manager.h “
- #include “fwk_vision_algo_manager.h”
- Deklarujte zařízení HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Zaregistrujte zařízení HAL:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Inicializujte správce:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(Správce výstupu, ret);
- Spusťte manažery:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Definujte prioritu úkolů manažera:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Přidejte podporu databáze obličejů na framework
K údajům o registrovaném rysu obličeje se v databázi obličejů uložené ve Flashi přistupuje přes málo file Systém. Kroky pro přidání podpory databáze obličejů jsou popsány níže.
Přidejte ovladače pro úložiště Flash
Zkopírujte ovladač FlexSPI rozhraní Flash files fsl_flexspi.c a fsl_flexspi.h a ovladač pro šifrování dat files fsl_caam.c a fsl_caam.h z cesty SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ do složky ovladačů example SW.
Přidejte podporu na úrovni desky
- Přidejte definice FlexSPI používané pro zařízení Flash na desce do board.h:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Zkopírujte operátory a konfigurace files zařízení Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h pod cestou smart HMI\coffee_machine\source the board\exflash_cm7ample SW.
- Zrušte zaškrtnutí políčka „Vyloučit zdroj ze sestavení“ v C/C++ Build > Nastavení po kliknutí pravým tlačítkem myši na files' a otevření vlastností, abyste je mohli zabudovat do projektu.
- Změňte zahrnuté záhlaví filenázev sln_flash_config.h na sln_flash_config_w25q256jvs.h v sln_flash_config.ca flexspi_nor_flash_ops.h.
- Nastavte zdroj hodin FlexSPI1 v file clock_config.c s odkazem na aplikaci kávovaru.
Přidejte adaptér a podporu střední úrovně
- Zkopírujte files sln_flash.c, sln_flash.h, sln_encrypt.c a sln_encrypt.h jako ovladače adaptéru pro file systém a aplikace z cesty smart HMI\coffee_machine\cm7\source\ do složky zdroj example. Aktualizujte nové files:
- Zrušte zaškrtnutí políčka „Vyloučit zdroj ze sestavení“ pro stavbu.
- Změňte všechny zahrnuté záhlaví file název sln_flash_config.h na sln_flash_config_w25q256jvs.h.
- Zkopírujte složku filesystém obsahující API pro nejmenší filesystém a ovladač HAL od smart HMI \coffee_machine\cm7\source\ až po example SW. A aktualizace pro novou složku:
- Zrušte zaškrtnutí políčka „Vyloučit zdroj ze sestavení“ pro sestavení.
- Přidejte cestu pro zahrnutí do nastavení projektu: „${workspace_loc:/${ProjName}/fileSystém}"
- Změňte zahrnuté záhlaví file název sln_flash_config.h na sln_flash_config_w25q256jvs.h a fica_definition.h na app_config.h v file sln_flash_littlefs.h.
- Zkopírujte složku littlefs obsahující střední zboží – little filesystému z cesty SDK_2_13_0_ MIMXRT1170-EVK\middleware\ do example SW. A aktualizujte novou složku:
- Zrušte zaškrtnutí políčka „Vyloučit zdroj ze sestavení“ pro sestavení.
- Přidejte cestu pro zahrnutí do nastavení projektu: „${workspace_loc:/${ProjName}/littlefs}“
Přidejte ovladače HAL
- Existují dvě zařízení HAL – file systémová a obličejová databáze HAL podporuje funkci přístupu k databázi a jsou již implementovány v rámci bez jakékoli změny. Povolte je přidáním níže uvedených definic do board_define.h:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
A změňte název databáze obličejů na example: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”
Přidejte podporu na úrovni aplikace
- Aktualizujte hlavní file lvgl_gui_face_rec_cm7.cpp:
- Zahrnout záhlaví file související s Flashem file správce HAL systému přidáním řádku kódu: #include “fwk_flash.h”
- Prohlášení a registrace file systémové HAL zařízení:
- HAL_FLASH_DEV_DECLARE(malíčky);
- HAL_FLASH_DEV_REGISTER(Malé, ret);
Poznámka: The file systémové zařízení HAL musí být zaregistrováno před inicializací všech správců zařízení ve funkci APP_InitFramework().
- Zavolejte funkci BOARD_ConfigMPU() v APP_BoardInit() pro konfiguraci MPU.
- Nastavte file systémové přiřazení na Flash v file app_config.h definováním definic maker používaných v souboru file sln_flash_littlefs.h:
- #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #define FICA_FILE_SYS_SIZE (0x280000)
Konfigurace
Některé kódy související s Flash se spouštějí v oblasti SRAM ITC pro dostatečný výkon. Zkopírujte složky linkscripts obsahující konfigurace linkeru z cesty smart HMI\coffee_machine\cm7\ do example SW.
Implementujte aplikaci LVGL GUI
Vývoj LVGL GUI aplikace založené na frameworku volá API z výstupního UI HAL a poskytuje API pro výstup UI HAL (viz oddíl 4.1.3 o implementaci výstupního UI HAL).
Podrobná implementace aplikace LVGL GUI však závisí na požadavcích a návrhu aplikace. GUI aplikace v tomto example je navržen tak, jak je popsáno na začátku sekce 4.
Níže je uveden úvod k implementaci:
- Přizpůsobené kódy jsou implementovány v custom.c a custom.h poskytnutých GUI Guider jako rozhraní mezi projektem GUI Guider a projektem vestavěného systému.
- Přidejte nové funkce s názvem gui_xxx() do custom.c, abyste dosáhli níže uvedených funkcí:
- Pro výstupní UI HAL a aplikaci GUI pro aktualizaci uživatelského rozhraní.
- Aby aplikace GUI spouštěla události voláním funkcí zpětného volání uživatelského rozhraní z výstupního uživatelského rozhraní HAL.
Napřample, nová funkce gui_event_face_rec_action() volá funkce zpětného volání uživatelského rozhraní pro zpracování jedné z událostí registrace obličeje, rozpoznání obličeje a smazání uživatele spuštěné z aplikace GUI po kliknutí na související tlačítko.
Poznámka: Funkce gui_set_virtual_face() volaná ve výstupním uživatelském rozhraní HAL pro preview režim je třeba implementovat v custom.c:
- Klonujte funkci gui_set_virtual_face() z chytrého HMI\coffee_machine\cm4\custom \custom.c.
- Změňte název widgetu home_img_cameraPreview na screen_img_camera_preview ve funkci.
- Implementujte funkce zpětného volání uživatelského rozhraní se stejným prototypem do všech funkcí ve výstupním uživatelském rozhraní HAL pod kontrolou definice makra #ifndef RT_PLATFORM v custom.c, aby byly kompatibilní s projektem GUI Guider, protože tyto funkce ve výstupním uživatelském rozhraní HAL jsou závislé na vestavěná platforma. V custom.c závisí na simulátoru na GUI průvodci a jsou nezávislé na vestavěné platformě. Napřample, zpětné volání registrace tváře je implementováno níže pro spuštěný simulátor GUI Guider: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; vrátit se; }
Poznámka: Viz stejný prototyp funkce představený v kroku 6 oddílu 4.1.3
Definice makra RT_PLATFORM je nastavena na nastavení projektu MCUXpresso, jak je znázorněno na obrázku 7: - Deklarujte všechny funkce s názvem UI_xxx_Callback() a gui_xxx() v custom.ha přidejte custom.h obsažený v smart_tlhmi_event_descriptor.h, abyste sdíleli GUI API do HAL výstupu uživatelského rozhraní.
- Přidejte nové funkce s názvem gui_xxx() do custom.c, abyste dosáhli níže uvedených funkcí:
- Vyvíjejte GUI na GUI Guider:
- Klonujte složku fotoaparátu preview obsahující projektový software GUI Guider ve složce gui_guider v základním softwarovém balíčku lvgl_gui_camera_preview_cm7. Změňte související název camera_preview na face_rec pro nový example.
- Zkopírujte výše aktualizované custom.c a custom. h do nového projektového softwaru GUI Guider.
- Otevřete nový projekt face_rec na GUI Guider. Aktualizujte, jak je uvedeno níže:
- Přidejte nové tlačítko označené Odstranit uživatele. Přidejte do něj příznak Skrytý, aby se tlačítko skrylo při spuštění aplikace GUI.
- Přidejte řádek kódu pro volání API gui_event_face_rec_action() s jiným parametrem ID události na spouštěči „Uvolněno“ v Nastavení události všech tlačítek Registrace, Rozpoznání a Odstranit uživatele pro spouštění událostí registrace obličeje, rozpoznání obličeje a smazání uživatele. Obrázek 8 ukazuje kód pro událost tlačítka Registrace:
- Aktualizujte vygenerovaný kód z GUI Guider na projekt MCUXpresso.
- Nahraďte obsah kromě obrázků složek ve složce vytvořené projektovým SW MCUXpresso odpovídajícími obsahy ve složce vygenerované projektovým SW GUI Guider.
Poznámka: Další podrobnosti o výše uvedených úpravách naleznete v example software na https://mcuxpresso.nxp.com/appcodehub.
Ověření s example projekt
Chcete-li získat example softwarový balíček obsahující zdroje a nástroje pro tuto poznámku k aplikaci, navštivte: https://mcuxpresso.nxp.com/appcodehub. Otevřete example projekt na MCUXpresso IDE. Sestavte a naprogramujte soubor .axf file na adresu 0x30000000 a naprogramujte zásobník zdrojů file camera_preview_resource.bin na adresu 0x30800000.
Rozpoznávání tváře LVGL GUI example funguje normálně, jak je uvedeno níže:
- Předview: Po zapnutí se video streamy zachycené kamerou zobrazí na konkrétní oblasti před kamerouview na obrazovce GUI. Stavový štítek zobrazuje „Předview…“. Podrobnosti viz obrázek 3. Tlačítko Smazat uživatele je skryté. Když kliknete na oblast mimo tlačítka a obrázky, zobrazí se předview po ukončení registrace nebo rozpoznání obličeje uveďte jako výše.
- Registrace:
- tartup: Po kliknutí na tlačítko Registrace se spustí registrace obličeje. Stavový štítek se změní na „Registrace…“, obdélník s vodítkem obličeje se zobrazí modře a indikátor průběhu začne zobrazovat průběh. Zajistěte, aby se tvář uživatele zobrazovala v modrém vodicím obdélníku pro registraci.
- úspěch: Stavový štítek zobrazuje „Registrace…OK“ a identifikační číslo registrovaného uživatele, pokud je registrace obličeje úspěšná, obdélník s průvodcem obličeje se zbarví červeně, než se na liště zobrazí plný průběh.
- Failure -> Time out: Stavový štítek zobrazuje „Registration…Time out“, pokud registrace obličeje stále selhává, když se na liště zobrazuje plný průběh.
- Selhání -> Duplikace: Stavový štítek zobrazuje „Registrace…Failed“, obdélník vodítka tváře zezelená, pokud je registrovaná tvář rozpoznána dříve, než se na pruhu zobrazí plný průběh.
- poznání:
- Spuštění: Po kliknutí na tlačítko Rozpoznání se spustí rozpoznávání obličeje. Stavový štítek se změní na „Rozpoznání…“, obdélník s vodítkem obličeje se zobrazí modře a indikátor průběhu začne zobrazovat průběh. Ujistěte se, že obličej uživatele je zobrazen v modrém obdélníku vodítka obličeje pro registraci.
- úspěch: Stavový štítek zobrazuje „Rozpoznání…OK“ a rozpoznané ID uživatele. Pokud je rozpoznání obličeje úspěšné, na liště se zobrazí celý průběh, obdélník s průvodcem obličeje se změní na zelený. V tomto okamžiku se objeví tlačítko Smazat uživatele. To znamená, že uživatel může být smazán pouze tehdy, když je rozpoznán.
- nemoc: Stavový štítek zobrazuje „Rozpoznání...Časový limit“, pokud rozpoznání obličeje stále selhává, když se na pruhu zobrazuje plný průběh.
- Smazat uživatele: Když klepnete na tlačítko „Odstranit uživatele“, po úspěšném rozpoznání obličeje se stavový štítek změní na „Odstranit uživatele…OK“, přičemž obdélník vodítka obličeje zmodrá a na liště se zobrazí celý průběh. Tlačítko Smazat uživatele je opět skryté. Rozpoznaný obličej/uživatel je vymazán z databáze. Znamená to, že tento obličej/uživatel nemůže být rozpoznán, dokud nebude znovu zaregistrován.
Poznámka ke zdrojovému kódu v dokumentu
ExampKód zobrazený v tomto dokumentu má následující autorská práva a licenci BSD-3-Clause:
Copyright 2024 NXP Redistribuce a použití ve zdrojové a binární formě, s úpravami nebo bez nich, jsou povoleny za předpokladu, že jsou splněny následující podmínky:
- Redistribuce zdrojového kódu musí obsahovat výše uvedené upozornění na autorská práva, tento seznam podmínek a následující prohlášení o vyloučení odpovědnosti.
- Redistribuce v binární formě musí reprodukovat výše uvedenou poznámku o autorských právech, tento seznam podmínek a následující prohlášení o vyloučení odpovědnosti v dokumentaci a/nebo jiných materiálech musí být poskytnuty s distribucí.
- Ani jméno držitele autorských práv ani jména jeho přispěvatelů nesmí být použita k podpoře nebo propagaci produktů odvozených z tohoto softwaru bez předchozího výslovného písemného povolení.
TENTO SOFTWARE POSKYTUJÍ DRŽITELÉ AUTORSKÝCH PRÁV A PŘISPĚVATELÉ „TAK, JAK JE“, A JAKÉKOLI VÝSLOVNÉ NEBO PŘEDPOKLÁDANÉ ZÁRUKY, VČETNĚ, ALE NE OMEZENÉ, PŘEDPOKLÁDANÝCH ZÁRUK OBCHODOVATELNOSTI A VHODNOSTI PRO KONKRÉTNÍ NÁKUP. V ŽÁDNÉM PŘÍPADĚ NEBUDE DRŽITEL AUTORSKÝCH PRÁV NEBO PŘISPĚVATELÉ ODPOVĚDNÍ ZA JAKÉKOLI PŘÍMÉ, NEPŘÍMÉ, NÁHODNÉ, ZVLÁŠTNÍ, EXEMPLÁRNÍ NEBO NÁSLEDNÉ ŠKODY (VČETNĚ, ALE NE VÝHRADNĚ, ZAJIŠTĚNÍ NÁHRADNÍCH SLUŽEB, NÁHRADNÍHO ZBOŽÍ; ZISKY NEBO PŘERUŠENÍ OBCHODNÍ ČINNOSTI) JAK JSOU ZPŮSOBENÉ A NA JAKÉKOLI TEorii ODPOVĚDNOSTI, AŤ VE SMLOUVĚ, PŘÍSNÉ ODPOVĚDNOSTI NEBO PŘEČINU (VČETNĚ NEDBALOSTI ČI JINAK), VZNIKLÝM JAKÝKOLIV ZPŮSOBEM Z POUŽITÍ TOHOTO POUŽITÍ. POŠKOZENÍ.
Historie revizí
Právní informace
Definice
Koncept — Stav konceptu na dokumentu označuje, že obsah je stále pod interní revizíview a podléhá formálnímu schválení, které může vést k úpravám nebo doplnění. NXP Semiconductors neposkytuje žádná prohlášení ani záruky ohledně přesnosti nebo úplnosti informací obsažených v pracovní verzi dokumentu a nenese žádnou odpovědnost za důsledky použití takových informací.
Zřeknutí se odpovědnosti
- Omezená záruka a odpovědnost — Informace v tomto dokumentu jsou považovány za přesné a spolehlivé. Společnost NXP Semiconductors však neposkytuje žádná prohlášení ani záruky, vyjádřené nebo předpokládané, pokud jde o přesnost nebo úplnost takových informací, a nenese žádnou odpovědnost za důsledky použití takových informací. NXP Semiconductors nenese žádnou odpovědnost za obsah tohoto dokumentu, pokud je poskytnut informačním zdrojem mimo NXP Semiconductors.
Společnost NXP Semiconductors v žádném případě nenese odpovědnost za jakékoli nepřímé, náhodné, trestné, zvláštní nebo následné škody (včetně – bez omezení – ušlého zisku, ušlých úspor, přerušení podnikání, nákladů souvisejících s odstraněním nebo výměnou jakýchkoli produktů nebo nákladů na přepracování), ať už nebo takové škody nejsou založeny na protiprávním jednání (včetně nedbalosti), záruce, porušení smlouvy nebo jiné právní teorii.
Bez ohledu na jakékoli škody, které by mohly zákazníkovi z jakéhokoli důvodu vzniknout, bude souhrnná a kumulativní odpovědnost NXP Semiconductors vůči zákazníkovi za produkty popsané v tomto dokumentu omezena v souladu s podmínkami komerčního prodeje NXP Semiconductors. - Právo provádět změny — Společnost NXP Semiconductors si vyhrazuje právo kdykoli a bez upozornění provádět změny informací zveřejněných v tomto dokumentu, včetně, bez omezení, specifikací a popisů produktů. Tento dokument nahrazuje a nahrazuje všechny informace poskytnuté před jeho zveřejněním.
- Vhodnost použití — Produkty NXP Semiconductors nejsou navrženy, autorizovány nebo zaručeny tak, aby byly vhodné pro použití v systémech nebo zařízeních pro podporu života, život kritických nebo kritických systémech nebo zařízeních, ani v aplikacích, kde lze důvodně očekávat selhání nebo nesprávnou funkci produktu NXP Semiconductors. zranění osob, smrt nebo vážné poškození majetku nebo životního prostředí. Společnost NXP Semiconductors a její dodavatelé nepřijímají žádnou odpovědnost za zahrnutí a/nebo použití produktů NXP Semiconductors v takovém zařízení nebo aplikacích, a proto je takové zahrnutí a/nebo použití na vlastní riziko zákazníka.
- Aplikace — Zde popsané aplikace pro kterýkoli z těchto produktů slouží pouze pro ilustrativní účely. NXP Semiconductors neposkytuje žádné prohlášení ani záruku, že takové aplikace budou vhodné pro specifikované použití bez dalšího testování nebo úprav.
Zákazníci jsou zodpovědní za návrh a provoz svých aplikací a produktů využívajících produkty NXP Semiconductors a NXP Semiconductors nepřijímá žádnou odpovědnost za jakoukoli pomoc s aplikacemi nebo návrhem zákaznických produktů. Je výhradní odpovědností zákazníka určit, zda je produkt NXP Semiconductors vhodný a vhodný pro zákazníkovy aplikace a plánované produkty, jakož i pro plánovanou aplikaci a použití zákazníkem (zákazníků) jako třetí strana. Zákazníci by měli poskytnout vhodné konstrukční a provozní záruky, aby minimalizovali rizika spojená s jejich aplikacemi a produkty. Společnost NXP Semiconductors nepřijímá žádnou odpovědnost související s jakýmkoli selháním, poškozením, náklady nebo problémem, který je založen na jakékoli slabosti nebo selhání v aplikacích nebo produktech zákazníka nebo v aplikaci nebo použití zákazníkem (zákazníky třetí strany) zákazníka. Zákazník je odpovědný za provedení všech nezbytných testů pro aplikace a produkty zákazníka využívající produkty NXP Semiconductors, aby se zabránilo selhání aplikací a produktů nebo aplikace nebo použití zákazníkem (zákazníky třetí strany) zákazníka. NXP nenese v tomto ohledu žádnou odpovědnost. - Podmínky komerčního prodeje — Produkty NXP Semiconductors se prodávají v souladu se všeobecnými podmínkami komerčního prodeje, jak jsou zveřejněny na https://www.nxp.com/profile/podmínkách, není-li v platné písemné individuální smlouvě dohodnuto jinak. V případě uzavření individuální smlouvy platí pouze podmínky příslušné smlouvy. Společnost NXP Semiconductors tímto výslovně nesouhlasí s uplatňováním všeobecných obchodních podmínek zákazníka s ohledem na nákup produktů NXP Semiconductors zákazníkem.
- Kontrola exportu — Tento dokument, stejně jako položky zde popsané, mohou podléhat předpisům o kontrole vývozu. Vývoz může vyžadovat předchozí povolení od příslušných orgánů.
- Vhodnost pro použití ve výrobcích nekvalifikovaných pro automobilový průmysl — Pokud tento dokument výslovně neuvádí, že tento konkrétní produkt NXP Semiconductors je způsobilý pro automobilový průmysl, není tento produkt vhodný pro použití v automobilech. Není kvalifikován ani testován v souladu s automobilovým testováním nebo aplikačními požadavky. Společnost NXP Semiconductors nenese žádnou odpovědnost za zahrnutí a/nebo použití jiných než automobilových kvalifikovaných produktů v automobilovém vybavení nebo aplikacích.
V případě, že zákazník použije produkt pro návrh a použití v automobilových aplikacích podle automobilových specifikací a norem, zákazník (a) použije produkt bez záruky NXP Semiconductors na produkt pro takové automobilové aplikace, použití a specifikace a ( b) kdykoli zákazník použije produkt pro automobilové aplikace nad rámec specifikací NXP Semiconductors, takové použití bude výhradně na vlastní riziko zákazníka a (c) zákazník plně odškodní společnost NXP Semiconductors za jakoukoli odpovědnost, škody nebo neúspěšné nároky na produkt vyplývající z návrhu a použití zákazníka. produkt pro automobilové aplikace nad rámec standardní záruky NXP Semiconductors a specifikace produktu NXP Semiconductors. - Překlady — Neanglická (přeložená) verze dokumentu, včetně právních informací v tomto dokumentu, je pouze orientační. V případě jakéhokoli rozporu mezi přeloženou a anglickou verzí má přednost anglická verze.
- Zabezpečení — Zákazník bere na vědomí, že všechny produkty NXP mohou být předmětem neidentifikovaných zranitelností nebo mohou podporovat zavedené bezpečnostní standardy nebo specifikace se známými omezeními. Zákazník je odpovědný za návrh a provoz svých aplikací a produktů během jejich životního cyklu, aby se snížil účinek těchto zranitelností na aplikace a produkty zákazníka. Odpovědnost zákazníka se vztahuje také na další otevřené a/nebo proprietární technologie podporované produkty NXP pro použití v zákaznických aplikacích. NXP nenese žádnou odpovědnost za jakoukoli zranitelnost. Zákazník by měl pravidelně kontrolovat aktualizace zabezpečení z NXP a patřičně je sledovat. Zákazník si vybere produkty s bezpečnostními prvky, které nejlépe vyhovují pravidlům, předpisům a standardům zamýšlené aplikace a bude činit konečná rozhodnutí o designu týkající se svých produktů a je výhradně odpovědný za shodu se všemi právními, regulačními a bezpečnostními požadavky týkajícími se jeho produktů, bez ohledu na jakékoli informace nebo podporu, kterou může NXP poskytnout.
NXP má tým PSIRT (Product Security Incident Response Team) (dostupný na adrese PSIRT@nxp.com), který řídí vyšetřování, hlášení a uvolňování řešení bezpečnostních zranitelností produktů NXP.
NXP B.V. — NXP B.V. není provozní společností a nedistribuuje ani neprodává produkty.
ochranné známky
Oznámení: Všechny uvedené značky, názvy produktů, názvy služeb a ochranné známky jsou majetkem příslušných vlastníků.
NXP — slovo a logo jsou ochranné známky společnosti 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 — jsou ochranné známky a/nebo registrované ochranné známky společnosti Arm Limited (nebo jejích dceřiných společností nebo přidružených společností) v USA a/nebo někde jinde. Související technologie může být chráněna některým nebo všemi patenty, autorskými právy, vzory a obchodním tajemstvím. Všechna práva vyhrazena.
- i.MX — je ochranná známka společnosti NXP BV
- J-Link — je ochranná známka společnosti SEGGER Microcontroller GmbH.
Microsoft, Azure a ThreadX – jsou ochranné známky skupiny společností Microsoft.
Uvědomte si prosím, že důležitá upozornění týkající se tohoto dokumentu a zde popsaných produktů byla zahrnuta v části „Právní informace“.
© 2024 NXP BV
Další informace naleznete na adrese: https://www.nxp.com
- Datum vydání: 19. dubna 2024
- Identifikátor dokumentu: AN14263
FAQ
Otázka: Jaký je hlavní účel tohoto produktu?
Odpověď: Hlavním účelem je umožnit funkci rozpoznávání obličeje pomocí modelu algoritmu vidění AI&ML s jednoduchým LVGL GUI example na desce SLN-TLHMI-IOT.
Otázka: Jak mohou vývojáři těžit z této poznámky k aplikaci?
Odpověď: Vývojáři se mohou naučit, jak implementovat rozpoznávání obličeje do rámce krok za krokem pomocí poskytnutého příkladuampa porozumět příslušným správcům zařízení, zařízením HAL a mechanismům událostí.
Dokumenty / zdroje
![]() |
NXP AN14263 Implementace LVGL GUI Face Recognition na Framewor [pdfUživatelská příručka AN14263 Implementujte rozpoznávání tváře LVGL GUI na Framewor, AN14263, Implementujte rozpoznávání tváře LVGL GUI na Framewor, LVGL GUI rozpoznávání tváře na Framewor, rozpoznávání tváře na Framewor, rozpoznávání na Framewor, Framewor |