nxp-logó

NXP AN14263 Az LVGL GUI arcfelismerés megvalósítása a keretrendszeren

NXP-AN14263-Implement-LVGL-GUI Arcfelismerés-on-Framewor-termék

Termékinformáció

Műszaki adatok

  • Termék neve: LVGL GUI Arcfelismerés a keretrendszeren
  • Dokumentum felülvizsgálata: 1. április 19–2024
  • Kulcsszavak: Arcfelismerés, LVGL GUI, Framework

A termék használati útmutatója

  1. Felettview
    Ez a termék lehetővé teszi az AI&ML látási algoritmus modelljét az arcfelismeréshez egy keretrendszeren az arcfelismerő funkció megvalósításához egy egyszerű LVGL grafikus felhasználói felülettel, pl.ample az SLN-TLHMI-IOT kártyán.
  2. Framework Overview
    A megoldásszoftver a keretarchitektúra köré épül, amely magában foglalja az eszközök kezeléséért felelős eszközkezelőket, a mögöttes részletek elvonatkoztatásáért felelős HAL-eszközöket, valamint a különböző eszközök közötti kommunikációt szolgáló eseményeket.
  3. Jellemzők
    A termék lehetővé teszi az arcfelismerő funkció megvalósítását a kamera előttview a GUI képernyőn az arcregisztrációt, -felismerést és -eltávolítást indító gombokkal. A regisztrált arcadatokat a Flash tárolja a file rendszer.
  4. Alkalmazás megjegyzés tartalma
    Az alkalmazás megjegyzése egy LVGL GUI képernyőt mutat be kamerávalview és gombok az arccal kapcsolatos műveletekhez. Segít a fejlesztőknek megérteni a keretrendszert és az arcfelismerés megvalósítását a biztosított example.

Felettview

Az NXP piacra dobta az SLN-TLHMI-IOT nevű megoldásfejlesztő készletet, amely az intelligens HMI-alkalmazásokra összpontosít. Lehetővé teszi az intelligens HMI-t egy NXP i.MX RT117H MCU-n megvalósított ML kép-, hang- és grafikus felhasználói felülettel. Az SDK-n alapuló megoldásszoftver egy keretrendszernek nevezett kialakításra épül, amely támogatja a rugalmas tervezést és a látás- és hangfunkciók testreszabását. A szoftverplatform jobb használatának elősegítése érdekében néhány alapvető dokumentumot biztosítunk, plample, a szoftverfejlesztés felhasználói útmutatója. Az útmutató bemutatja az alkalmazások alapvető szoftverterveit és architektúráját, amely magában foglalja a megoldás összes összetevőjét, beleértve a keretrendszert is, hogy segítse a fejlesztőket az alkalmazásaik egyszerűbb és hatékonyabb megvalósításában az SLN-TLHMI-IOT segítségével.
A megoldással és a vonatkozó dokumentumokkal kapcsolatos további részletekért keresse fel a web oldala az NXP EdgeReady Smart HMI megoldásnak Az i.MX RT117H alapú ML Vision, Voice és grafikus felhasználói felülettel. A fejlesztők számára azonban még mindig nem olyan egyszerű az intelligens HMI-alkalmazások megvalósítása ezekre az alapvető útmutatókra hivatkozva. A tervek szerint egy sor alkalmazási megjegyzés segíti a keretrendszer fejlesztésének lépésről lépésre történő tanulmányozását. Ez az alkalmazás megjegyzés az Implement LVGL GUI Camera Pre-n alapulview a keretrendszeren (AN14147 dokumentum). Ez az alkalmazási megjegyzés leírja, hogyan engedélyezheti az AI&ML látási algoritmus modelljét az arcfelismeréshez a keretrendszeren az arcfelismerő funkció kamera-előkészítésen keresztüli megvalósításához.view a GUI képernyőn egy egyszerű LVGL grafikus felülettel, plample az SLN-TLHMI-IOT kártyán. A pályázati feljegyzésben az exampA le egy LVGL GUI képernyőt mutat be kamerávalview és néhány gomb az arc regisztrálásának, felismerésének és eltávolításának indításához. A regisztrált arcadatokat a Flash egy kicsit tárolja file rendszer.

Magas szinten a pályázati feljegyzés az alábbi tartalmat tartalmazza:

  • Engedélyezze az arcfelismerő funkciót a keretrendszeren.
  • Adjon hozzá arcadatbázis-támogatást a keretrendszerhez a következőn keresztül file rendszer Flash-en.
  • Valósítsa meg az LVGL GUI alkalmazást. A fenti bevezetéseken keresztül ez a dokumentum segít a fejlesztőknek:
  • Mélyebben ismerje meg a keretrendszert és az intelligens HMI-megoldó szoftvert.
  • Fejlessze AI&ML arcfelismerésüket keretrendszeren az LVGL GUI alkalmazással.

A keret végeview
A megoldásszoftver elsősorban a keretrendszer-architektúra felhasználására készült, amely több különböző részből áll:

  • Eszközkezelők – a fő rész
  • Hardver absztrakciós réteg (HAL) eszközök
  • Üzenetek/Események

Amint az 1. ábrán látható, az overview a keret mechanizmusa a következő:

Az eszközkezelők felelősek a rendszer által használt eszközök kezeléséért. Minden eszköztípusnak (bemenet, kimenet és így tovább) megvan a saját típusspecifikus eszközkezelője. Ha az eszközkezelő az eszközök regisztrálása után indul el, a regisztrált eszközök inicializálása és elindítása után egy üzenetet vár és ellenőrzi, hogy adatokat továbbítson az eszközöknek és más kezelőknek. A HAL-eszközök az alsóbb szintű illesztőprogram-kód tetejére vannak írva, és sok mögöttes részlet absztrahálásával segítik a kód érthetőségét.

Az események egy olyan eszköz, amellyel a különböző eszközök a menedzsereken keresztül információt közvetítenek. Amikor egy esemény elindul, az eseményt először fogadó eszköz közli az eseményt a kezelőjével, majd értesíti a többi, az esemény fogadására kijelölt kezelőt.

NXP-AN14263-Implement-LVGL-GUI Arcfelismerés-on-Framewor-fig- (1)

A keret építészeti tervezésének középpontjában három fő cél állt:

  1. Könnyű használhatóság
  2. Rugalmasság/hordozhatóság
  3. Teljesítmény

A keretrendszert azzal a céllal tervezték, hogy felgyorsítsa a látás és más gépi tanulási alkalmazások piacra kerülését. A gyors piacra kerülés érdekében rendkívül fontos, hogy maga a szoftver könnyen érthető és módosítható legyen. Ezt a célt szem előtt tartva a keretrendszer architektúrája könnyen módosítható anélkül, hogy korlátozná, és a teljesítmény rovására menne.
A keretrendszerrel kapcsolatos további részletekért lásd a Smart HMI szoftverfejlesztési felhasználói kézikönyvet (MCU-SMHMI-SDUG dokumentum).

Light and Versatile Graphics Library (LVGL)
Az LVGL (Light and Versatile Graphics Library) egy ingyenes és nyílt forráskódú grafikus könyvtár, amely mindent tartalmaz, amire szüksége van egy beágyazott grafikus felhasználói felület létrehozásához, könnyen használható grafikus elemekkel, gyönyörű vizuális effektusokkal és alacsony memóriaigénnyel.

GUI útmutató
A GUI Guider egy felhasználóbarát grafikus felhasználói felületfejlesztő eszköz az NXP-től, amely lehetővé teszi kiváló minőségű kijelzők gyors fejlesztését a nyílt forráskódú LVGL grafikus könyvtárral. A GUI Guider drag-and-drop szerkesztője megkönnyíti az LVGL számos funkciójának használatát, mint például a widgetek, animációk és stílusok, hogy olyan grafikus felhasználói felületet hozzon létre, amely minimális vagy semmilyen kódolást nem tartalmaz.

Egy gombnyomással futtathatja az alkalmazást szimulált környezetben, vagy exportálhatja egy célprojektbe. A GUI Guider által generált kód könnyen hozzáadható a projekthez, felgyorsítva a fejlesztési folyamatot, és zökkenőmentesen hozzáadhat egy beágyazott felhasználói felületet az alkalmazáshoz. A GUI Guider ingyenesen használható az NXP általános célú és crossover MCU-ival, és beépített projektsablonokat tartalmaz számos támogatott platformhoz. Ha többet szeretne megtudni a GUI Guider LVGL és GUI fejlesztéséről, nézze meg a Light and Versatile Graphics Library és a GUI Guider részt.

Fejlesztőkörnyezet

Először készítse elő és állítsa be a hardver- és szoftverkörnyezetet az example a kereten.

Hardver környezet
A hardverkörnyezet az example:

  • Az NXP i.MX RT117H alapú intelligens HMI fejlesztőkészlet (az SLN_TLHMI_IOT készlet)
  • SEGGER J-Link 9 tűs Cortex-M adapterrel és V7.84a vagy az illesztőprogram újabb verziójával

Szoftverkörnyezet
A szoftverkörnyezet az example:

  • MCUXpresso IDE V11.7.0
  • GUI Guider V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – plampa második alkalmazási jegyzet kódja, mint a fejlesztés alapszoftvere. A részletekért lásd https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 – a fejlesztés kódforrásaként.
  • SLN-TLHMI-IOT szoftver V1.1.2 – intelligens HMI-forráskód, amely az NXP GitHub tárhelyén jelent meg a fejlesztés kódforrásaként. A részletekért lásd: GitHub – NXP/mcu-smhmi a v1.1.2-nél

A szoftverkörnyezet beszerzésével és beállításával kapcsolatos részletekért lásd: Kezdő lépések az SLN-TLHMI-IOT-val.

Jövőkép architektúra a keretrendszeren

A keretrendszer látásarchitektúrája a 2. ábrán látható. A vision algo HAL (OASIS_HAL) az alábbi folyamatokkal rendelkezik:

  • Végezzen arcregisztrációt és -felismerést az AI&ML látási algoritmus modelljén keresztül, miután megkapta a kapcsolódó eseményeket a kimeneti UI HAL-ból. Értesítse az algoritmusmodellből származó következtetési eredményeket a kimeneti UI HAL-nak.
  • Hozzáfér (hozzáadás, törlés…) az arcjellemzők adatbázisához a kicsi alapján file rendszert a FaceDB HAL API-k meghívásával, miután megkapta a kapcsolódó eseményeket a kimeneti UI HAL-ból.
  • Arcregisztráció és -felismerés során kérje le a kamera videokockáját a kamera HAL-tól.

NXP-AN14263-Implement-LVGL-GUI Arcfelismerés-on-Framewor-fig- (3)

Alkalmazza az arcfelismerést a kereten

Az LVGL GUI arcfelismerő plample (az example később közöljük) a keretrendszeren az example kódok Implement LVGL GUI Camera Preview a keretrendszeren (AN14147 dokumentum).

Az arcfelismerés bemutatásáért az example, a GUI alkalmazás alapvető funkciója (lásd a fő képernyőt a 3. ábrán) az alábbiak szerint van kialakítva:

  • A GUI alkalmazás elindítja az arc regisztrációs vagy felismerési eseményét a kimeneti UI HAL-ban, amikor a Regisztráció vagy a Felismerés gombra kattint. A kimeneti UI HAL pedig értesíti a felhasználó felvételét a vision algo HAL-ba, miután az arc regisztrációja sikeres volt.
  • A GUI alkalmazás elindítja a felhasználó törlését a kimeneti UI HAL-ból, amikor a Felhasználó arcának felismerése után a Felhasználó törlése gombra kattint.
  • A GUI-alkalmazás elindítja az oázis-algo leállítását a kimeneti UI HAL felé, amikor a képernyőre kattintanak a gombokon és képeken kívül.

NXP-AN14263-Implement-LVGL-GUI Arcfelismerés-on-Framewor-fig- (10)

Készítse elő a szoftvercsomagot az example.

  • Az alapszoftver klónozása: lvgl_gui_camera_preview_cm7. Módosítsa a projekt nevét és a fő filenevet lvgl_gui_face_rec_cm7.
  • A keretrendszert frissíteni kell a szoftverben, mivel a keretrendszer magjának forráskódjai az 1.1.2-es verziótól kezdve nyilvánosak lettek a GitHubon.
  • Cserélje ki a keretmappát a GitHub V1.1.2-es verziójával, kivéve a files fwk_log.h és fwk_common.h az inc\ alatt, mivel azokat az alkalmazási megjegyzés sorozathoz módosították. A műveleteket a 4. ábra mutatja:NXP-AN14263-Implement-LVGL-GUI Arcfelismerés-on-Framewor-fig- (11)
  • Törölje a framework_cm7 mappát a libs csoport alatt, és távolítsa el a framework_cm7 könyvtárat és annak keresési útvonalát a Projekt > Tulajdonságok > C/C++ Build > Settings > Tool Settings > MCU C++ Linker > Libraries menüpontban, mivel a mag forráskódja rendelkezésre áll.

Engedélyezze az arcfelismerő funkciót a keretrendszeren
Az arcfelismerő funkció az ML látási algoritmus modelljére épül, amely statikus könyvtárként biztosított – az NXP oasis lite futásidejű könyvtára. A könyvtár egy apró, rendkívül hatékony, testreszabott és optimalizált AI-könyvtár. A modell arcfelismerést, arcfelismerést, üvegfelismerést és élénkségérzékelést tartalmaz. Főleg az OASISLT_run_extended() API-t biztosítja az arcfelismerő folyamat futtatásához, miközben esemény-visszahívásokon keresztül frissíti az eredményeket a hívó felé, és az arcadatbázis-visszahívásokon keresztül arcokat ad hozzá/frissít/töröl az adatbázisban, miután megadta a forrás keretinformációit, a visszahívásokat és a memóriát. a könyvtár által használt pool egy másik API OASISLT_init() meghívásával inicializáláskor. Az API-k meghívása és a visszahívási függvények a keretrendszer vision algo HAL-jában vannak megvalósítva.

Adjon hozzá vision algo modellkönyvtárat

  1. Másolja a könyvtárat és a kapcsolódó fejlécet tartalmazó mappa oázist file a smart HMI\coffee_machine\cm7\libs\ mappából az ex libs mappájábaample SW.
  2. Adja hozzá a fejléc keresési útvonalát file a Project > Properties > C/C++ Build > Settings > Tool Settings > MCU C fordító > Includes and MCU C++ fordító > Tartalmazza: "${workspace_loc:/${ProjName}/libs/oasis/include}" pontban.
  3. Adja hozzá a lib-et és a keresési útvonalát a Project > Properties > C/C++ Build > Settings > MCU C+ + Linker > Libraries menüpontban: liboasis_lite2D_DEFAULT_117f_ae.a „${workspace_loc:/${ProjName}/libs/oasis}”, és a makródefiníciót engedélyezze a funkciót a Projekt > Tulajdonságok > C/C++ Build > Beállítások > Eszközbeállítások > MCU C fordító > Előfeldolgozó és MCU C++ fordító > Előfeldolgozó: SMART_TLHMI_2D

A vision algo HAL engedélyezése
A vision algo HAL működésre készteti a vision algo modellt, és az eredményeket a HAL felhasználói felület kimenetére reagálja, miután megkapta az eseményeket.

Az engedélyezéséhez klónozza a meglévő hasonló HAL-illesztőprogramot file ahol az alábbi funkciók valósulnak meg:

  • Valósítsa meg az arcadatbázis-műveletek és az események kezelésének visszahívásait.
  • Működtesse a vision algot az oázis könyvtár API-jainak meghívásával.
  • Hozzáférés a felhasználói arcok adatbázisához és az alkalmazásadatbázishoz (nem szükséges a plample).
  • Események fogadása és eredmények elküldése a kimeneti UI HAL-hoz.

A főbb munkálatok a HAL megvalósításán az exampezek vannak:

  • Klónozza a létező hasonló HAL illesztőprogramot file és módosítsa a kapcsolódó neveket.
  • Távolítsa el az alkalmazásadat-műveletekhez kapcsolódó kódokat.
  • Frissítse a definíciókat és függvényeket az események kezeléséhez a kimeneti UI HAL-ból az ex szerintamptervezés.
  • Adja hozzá az oázis inicializálásához szükséges konfigurációkat.

A részletes lépések az alábbiak:

  1. A hal_vision_algo_oasis_coffeemachine.c klónozása. Változtasd meg a filea hal_vision_algo_oasis_guifacerec.c nevet. És cserélje ki az összes CoffeeMachine karakterláncot GUIFaceRec-re a file.
  2. Távolítsa el az alkalmazásadatbázishoz kapcsolódó coffeedb karakterláncot tartalmazó kódokat (plample, #include hal_sln_coffeedb.h.
  3. Módosítsa a HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() függvényt a kimeneti felhasználói felület HAL eseményeinek kezelésére.
    • Az eseménykezeléshez módosítsa a kEventFaceRecId_RegisterCoffeeSelection eseménydefiníciót kEventFaceRecId_RegisterUserFace értékre, a regCoffeeSelection szerkezeti karakterláncot pedig regGUIFaceRec értékre, hogy új arcvonásadatokat adjon az adatbázishoz.
    • Az arcfelismerő műveletek standard folyamatának bemutatása a plample, módosítsa a kezelést a kEventFaceRecID_OasisSetState esetén az állapotok definícióival:
      • kOASISLiteState
      • Regisztráció kOASISLiteState
      • Elismerés kOASISLiteState
      • Megállt
  4. Adja hozzá és módosítsa a fenti lépésben említett események definícióit.
    • Másolja ki a fejlécet file smart_tlhmi_event_descriptor.h a smart HMI\coffee_machine \cm7\source\event_handlers\ mappából az ex mappa forrásábaample SW. Frissítse a file az alábbiak szerint:
    • Módosítsa a kEventFaceRecId_RegisterCoffeeSelection eseménydefiníciót kEventFaceRecId_RegisterUserFace értékre az _event_smart_tlhmi_id enumtípusban, a regCoffeeSelection szerkezeti karakterláncot pedig regGUIFaceRec értékre a struct _event_smart_t struktúrában. Tehát módosítsa a regCoffeeSelection register_coffee_selection_event_t struktúráját a register_gui_facerec_event_t értékre.
    • Törölje a kávéfőző alkalmazáshoz használt egyéb tartalmat, plample, a hangról szóló kódsor: #include „hal_event_descriptor_voice.h”.
    • Adja hozzá a kOASISLiteState_Stopped és kOASISLiteState_Running típusokat az oasis_lite_state_t enumtípushoz a hal_vision_algo.h fájlban a framework>hal>vision alatt a projektben az alábbiak szerint:
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • Futás, kOASISLiteState
      • Leállítva, kOASISLiteState
      • Elismerés,
      • kOASISLiteState
      • Regisztráció, kOASISLiteState
      • Regisztráció törlése, kOASISLiteState
      • RemoteRegistration, kOASISLiteState
      • Gróf
    • Használja a fent frissített oasis_lite_state_t struct oasis_state_event_t struktúrát a hal_event_descriptor_face_rec.h fájlban a framework>hal>vision alatt a projektben az alábbiak szerint: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
  5. Módosítsa az összes kEventInfo_Remote-ot kEventInfo_Local-ra, hogy eseményeket küldhessen a vision algo HAL-ból más HAL-okba, amelyek ugyanazon a magon futnak, mint az egymagos használat helyett a kétmagos.ample.
  6. Adja hozzá és módosítsa az alábbi konfigurációkat az oázis inicializálásához az OASISLT_init()-ben:
    • Adja hozzá a makródefiníciókat és a memóriarészeket a videokockához a board_define.h fájlban: #define OASIS_RGB_FRAME_WIDTH 800
      • #define OASIS_RGB_FRAME_HEIGHT 600
      • #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
      • #define OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
      • #define AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
      • __attribute__((section(.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __attribute__((aligned(alignbytes)))
    • Konfigurálja a memória-hozzárendelést a fenti fb_sh_mem memóriarészhez a Project > Properties > C/C++ Build > MCU Settings alatt, az 5. ábrán látható módon:NXP-AN14263-Implement-LVGL-GUI Arcfelismerés-on-Framewor-fig- (12)
    • Deklarálja a g_DTCOPBuf globális változót az lvgl_gui_face_rec_cm7.cpp fájlban: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • Folytassa a fenti változóban használt definíciók hozzáadásával:
    • Határozza meg a fenti szakaszt a board_define.h fájlban:
      • #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
      • attribútum__((section(.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • attribútum__((aligned(alignbytes)))
    • Tartalmazza a fejlécet file hal_vision_algo.h, amely tartalmazza a DTC_OPTIMIZE_BUFFER_SIZE makródefiníciót az app_config.h fájlban, amely az lvgl_gui_face_rec_cm7.cpp fájlban található.
  7. Állítsa igazra az s_debugOption változót az arcfelismerés folyamatállapotának megjelenítéséhez.
  8. Adja hozzá a fejléc keresési útvonalát fileHAL vízió s-i a Projekt > Tulajdonságok > C/C++ Build > Beállítások > Eszközbeállítások > MCU C fordító > Tartalmazza és az MCU C++ fordítót > Tartalmazza: „${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. Adja hozzá az alábbi definíciót a vision algo HAL engedélyezéséhez a board_define.h fájlban: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

A kimeneti UI HAL engedélyezése
A kimeneti UI HAL értesíti az eseményeket a HAL vision algo számára, és válaszol a HAL vision algo következtetési eredményeire. A GUI alkalmazásban az eseményeket általában az alkalmazás váltja ki, és az eredmények megjelennek az alkalmazásban.

Az engedélyezéséhez klónozza a meglévő hasonló HAL-illesztőprogramot file ahol általában az alábbi funkciókat hajtják végre:

  • Értesítse az eseményeket az arcfelismeréshez és az adatbázis-hozzáféréshez.
  • Az események elindításához hajtsa végre a GUI-alkalmazás visszahívásait.
  • Kezelje a látásalgo modulból származó következtetéseket.
  • Mutassa meg az eseménykezelés folyamatát és eredményeit a felhasználói felületen az időzítőkkel és az arcvezető téglalappal vezérelt folyamatjelző sáv segítségével.

A főbb munkálatok a HAL megvalósításán az exampEbben a dokumentumban a következőket használjuk:

  • Klónozza a létező hasonló HAL illesztőprogramot file és módosítsa a kapcsolódó neveket.
  • Távolítsa el az alkalmazáshoz kapcsolódó kódokat.
  • Frissítse az eseményértesítés és az eredmények válasz funkcióit az examptervezés.
  • Adja hozzá a GUI-alkalmazás visszahívásait az események elindításához.

A részletes lépések az alábbiak:

  1. A hal_output_ui_coffee_machine.c klónozása. Változtasd meg a filea hal_ output_ui_guifacerec.c nevet.
  2. Cserélje ki az összes CoffeeMachine karakterláncot GUIFaceRec-re file.
  3. Távolítsa el az alkalmazáshoz – kávéfőzőhöz kapcsolódó kódokat.
    • Távolítsa el a WakeUp() és _StandBy() függvényeket és a kapcsolódó kódokat (keresheti a wake_up és a készenléti karakterláncot).
    • Távolítsa el az előview mód eseményei, amelyek a kapcsolódó kódokat kezelik a HAL_OutputDev_UiGUIFaceRec_Input Notify()-ban.
    • Távolítsa el az UI_xxx_Callback() függvényeket és a gui_ karakterláncot tartalmazó kódokat és a kávéfőző GUI-jához kapcsolódó képernyőt, kivéve a gui_set_virtual_face() a preview mód funkció.
    • Távolítsa el a kávéfőző alkalmazáshoz kapcsolódó s_IsWaitingAnotherSelection és s_IsWaitingRegisterSelection változókkal kapcsolatos összes kódot.
    • Távolítsa el a hanghoz, hanghoz és nyelvhez kapcsolódó kódokat. Plample:
      • #include „hal_voice_algo_asr_local.h”,
      • #include „hal_event_descriptor_voice.h”
  4. A különféle események értesítéséhez valósítsa meg az új _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() és DeregisterGUIFaceRec() függvényeket, hivatkozva a _StopFaceRec(), _RegisterCoffeeSelection() és DeregisterCoffeeSdeleting(Coffee) függvényekre.
    • Az _OutputManagerNotify() az alapvető eseménykimeneti függvényt valósítja meg, hogy eseményt küldjön a vision algo HAL-nak. Az alábbi funkciók saját eseményeik elküldésére hívják.
    • A _SetFaceRec() elküldi a kEventFaceRecID_OasisSetState eseményt, hogy elindítsa a látásalgot az arcok regisztrálásához, felismeréséhez és az algoritmus leállításához.
    • A _RegisterGUIFaceRec() elküldi a smart_tlhmi_event_descriptor.h fájlban definiált kEventFaceRecId_RegisterGUIFaceRec eseményt, hogy az arc jellemzőinek adatait hozzáadja az adatbázishoz, amikor a regisztráció rendben van.
    • A DeregisterGUIFaceRec() elküldi a kEventFaceRecID_DelUser eseményt, hogy az arcfelismerés átadásakor törölje az arcvonás adatait az adatbázisból.
  5. Frissítse a kódokat a megfelelő műveletek elvégzéséhez, beleértve a grafikus felhasználói felület frissítését az API-k meghívásával az LVGL grafikus felhasználói felület alkalmazásból az arcregisztráció és -felismerés következtetéseinek eredményéhez az _InferComplete_Vision() függvényben az ex szerint.ample tervezése. Plampha sikeres az arcregisztráció,
    • A folyamat leállítása a _FaceRecProcess_Stop();
    • Állítsa le az arc regisztrációját a _SetFaceRec(kOASISLiteState_Stopped) meghívásával;
    • A sikeres eredmény megjelenítése a grafikus felhasználói felületen: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Regisztrálja az arcadatokat az adatbázisba: _RegisterUserFace(s_UserId);
  6. UI visszahívási funkciók hozzáadása az események kezeléséhez: preview, arcregisztráció, felismerés és felhasználó törlése a grafikus felhasználói felületről aktiválva. Plample, az arcregisztrációs visszahívás: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • És adja hozzá a _FaceRecProcess_Start() és _FaceRecProcess_Stop() függvényeket a különböző események és eredmények előrehaladásának és állapotának megjelenítéséhez.
    • Frissítse a _SessionTimer_Callback() időzítő ISR visszahívási függvényét, hogy kezelje az időtúllépést a következő meghívásával: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. Adja hozzá az alábbi definíciókat a UI kimenet HAL engedélyezéséhez a board_define.h fájlban: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

Értesítés:
Az arcfelismerő funkció jobb bemutatása érdekében tartsa meg az arcfelismerés folyamatát és eredményeit megjelenítő funkciót a kimeneti UI HAL-ban. A funkció leírása az alábbiak szerint történik

  • Az arcvezető téglalap kék színű, a folyamatjelző pedig az arcregisztráció vagy -felismerés indításakor az előrehaladást mutatja.
  • Sikeres arcregisztráció esetén az arcvezető téglalap pirosan jelenik meg.
  • Az arcvezető téglalap zölden jelenik meg, ha az arcfelismerés sikeres.
  • Az arcvezető téglalap kék marad, és a folyamatjelző sáv a teljes előrehaladást mutatja, ha a művelet sikertelen az időzítő lejárta után. Ekkor állítsa le az arc regisztrálását vagy felismerését.

A folyamatjelző sáv és az arcvezető téglalap az erőforrás binárisba beépített ikonokként jelennek meg file Flash-be kell programozni. Az SDRAM-on lévő ikonadatokra mutató mutatók a LoadIcons(APP_ICONS_BASE) függvényben vannak beállítva, amelyet a kimeneti UI HAL eszköz inicializálása hív meg a kimeneti UI HAL-ban. Meg kell valósítania az ikonok támogatását a funkcióhoz.

Végezze el az ikonok támogatását

  1. Építse fel az erőforrást az ikonok és az LVGL GUI alkalmazásban használt képekkel kombinálva:
    • Klónozza a négy ikon fejlécét files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h és virtual_face_red_420x426.h az intelligens HMI-től
      \coffee machine\resource\icons\ az új mappa ikonjaihoz az ex erőforrásmappája alattample SW.
    • Adja hozzá a keresési útvonalat a négy ikonhoz files a camera_preview_resource.txt file az erőforrás mappában, plample: icon ../resource/icons/process_bar_240x14.h
    • Végezze el a camera_pre parancsotview_resource_build.bat a tároló létrehozásához szükséges képek és ikonok erőforrásainak létrehozásához file camera_preview_resource.bin és az információ file resource_information_table.txt (lásd: 6. ábra).NXP-AN14263-Implement-LVGL-GUI Arcfelismerés-on-Framewor-fig- (13)
  2. Határozza meg az SDRAM kezdőcímét és az ikonok méretét az app_config.h fájlban. A cím a GUI-alkalmazás képei mellett kezdődik. A méret az infóban van generálva file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. Frissítse a res_sh_mem nevű memóriarész hozzárendelt méretét 0x200000-re az app_config.h fájl újradefiniálásával: #define RES_SHMEM_TOTAL_SIZE 0x200000 és a megfelelő beállítás a Projekt > Tulajdonságok > C/C++ Build > MCU beállítások menüpontban.
  4. Adja hozzá az ikonméretet a Flash-ből az SDRAM-ba betöltött erőforrás teljes méretéhez a fő APP_LoadResource() függvényében. file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

Értesítés: Az arcfelismerő funkció befejezéséhez az LVGL GUI alkalmazás támogatása szükséges. A kimeneti UI HAL felhasználói felület visszahívási funkcióit az LVGL GUI alkalmazás hívja meg az események kezeléséhez a felhasználói felület képernyőjéről. Másrészt a kimeneti felhasználói felület HAL meghívja az API-kat az LVGL grafikus felhasználói felület alkalmazásból, hogy frissítse a felhasználói felületet az eredmény és az állapot megjelenítéséhez. Az LVGL GUI alkalmazás fejlesztése viszonylag független, és a 4.3. szakaszban mutatjuk be.

4.1.5 Indítsa el a HAL eszközöket és kezelőket az arcfelismeréshez
Az engedélyezett vision algo HAL és UI kimenet HAL és menedzsereik elindulnak a főben file
lvgl_gui_face_rec_cm7.cpp a fejlesztési konverziókat követve a keretrendszeren az alábbiak szerint:

  1. Tartalmazza a fejlécet file a két HAL-menedzserhez kapcsolódik a kódsor hozzáadásával:
    • #include ” fwk_output_manager.h ”
    • #include „fwk_vision_algo_manager.h”
  2. A HAL eszközök deklarálása:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. Regisztrálja a HAL eszközöket:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
  4. Inicializálja a vezetőket:
    • FWK_MANAGER_INIT(VisionAlgoManager, ret);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. Indítsa el a menedzsereket:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. Határozza meg a vezetői feladatok prioritását:
    • #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #define OUTPUT_MANAGER_TASK_PRIORITY 1

Adjon hozzá arcadatbázis-támogatást a keretrendszerhez
A regisztrált arcjellemzők adatai a Flash-en tárolt arcadatbázisban egy kis segítségével érhetők el file rendszer. Az arcadatbázis támogatás hozzáadásának lépéseit az alábbiakban ismertetjük.

Illesztőprogramok hozzáadása a Flash tárolóhoz
Másolja a Flash interfész FlexSPI illesztőprogramját files fsl_flexspi.c és fsl_flexspi.h, valamint az adattitkosítási illesztőprogram files fsl_caam.c és fsl_caam.h az SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ útvonalról az ex illesztőprogramok mappájábaample SW.

Adjon hozzá tábla szintű támogatást

  1. Adja hozzá a FlexSPI definícióit a fedélzeten lévő Flash-eszközhöz a board.h-ban:
    • #define BOARD_FLEXSPI FLEXSPI1
    • #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. Másolja át az operátorokat és a konfigurációkat files a Flash-eszköz flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h és sln_flash_ops.h mappája a smart HMI\coffelash_the_smart HMI\coffeample SW.
    • Törölje a jelet az „Erőforrás kizárása a buildből” jelölőnégyzetből a C/C++ Build > Beállítások menüben, miután jobb gombbal kattintott a filenevét, és megnyitja a Tulajdonságokat, hogy beépíthesse őket a projektbe.
  3. Módosítsa a mellékelt fejlécet fileaz sln_flash_config.h és az sln_flash_config_w25q256jvs.h nevet az sln_flash_config.c és a flexspi_nor_flash_ops.h fájlokban.
  4. Állítsa be a FlexSPI1 órajelforrást a file clock_config.c a kávéfőző alkalmazásra hivatkozva.

Adapter és középszintű támogatás hozzáadása

  1. Másolja a files sln_flash.c, sln_flash.h, sln_encrypt.c és sln_encrypt.h illesztőprogramként a file rendszer és alkalmazás az intelligens HMI\coffee_machine\cm7\source\ útvonaltól az ex mappaforrásáigample. Frissítse az újat files:
    • Távolítsa el a jelet az „Erőforrás kizárása a buildből” jelölőnégyzetből az építkezéshez.
    • Módosítsa az összes mellékelt fejlécet file az sln_flash_config.h neve az sln_flash_config_w25q256jvs.h-ra.
  2. Másolja a mappát filerendszer, amely a kicsik számára készült API-kat tartalmazza filerendszer és HAL illesztőprogram az intelligens HMI \coffee_machine\cm7\source\-tól az example SW. És frissítés az új mappához:
    • Törölje a jelet az „Erőforrás kizárása a buildből” jelölőnégyzetből.
    • Adja hozzá a beillesztési útvonalat a projektbeállításokhoz: „${workspace_loc:/${ProjName}/filerendszer}"
    • Módosítsa a mellékelt fejlécet file az sln_flash_config.h nevet az sln_flash_config_w25q256jvs.h, a fica_definition.h pedig az app_config.h fájlt file sln_flash_littlefs.h.
  3. Másolja a littlefs mappát, amely a középső ware-t tartalmazza – little filerendszer az SDK_2_13_0_ MIMXRT1170-EVK\middleware\ elérési útról a voltample SW. És frissítse az új mappát:
    • Törölje a jelet az „Erőforrás kizárása a buildből” jelölőnégyzetből.
    • Adja hozzá a belefoglalási útvonalat a projektbeállításokhoz: „${workspace_loc:/${ProjName}/littlefs}”

Adjon hozzá HAL illesztőprogramokat 

  • Két HAL eszköz van – file rendszer és arcadatbázis HAL támogatja az adatbázis-elérési funkciót, és ezek már változtatás nélkül implementálva vannak a keretrendszerben. Engedélyezze őket az alábbi definíciók hozzáadásával a board_define.h fájlban:
    • #define ENABLE_FLASH_DEV_Littlefs
    • #define ENABLE_FACEDB

És változtassa meg az arc adatbázis nevét az example: #define OASIS_FACE_DB_DIR „oasis_gui_face_rec”

Alkalmazásszintű támogatás hozzáadása

  1. Frissítse a fő file lvgl_gui_face_rec_cm7.cpp:
    • Tartalmazza a fejlécet file a Flash-hez kapcsolódik file rendszer HAL-kezelője a következő kódsor hozzáadásával: #include „fwk_flash.h”
    • Nyilatkozni és regisztrálni file rendszer HAL eszköz:
      • HAL_FLASH_DEV_DECLARE(Littlefs);
      • HAL_FLASH_DEV_REGISTER(Littlefs, ret);
        Jegyzet: A file rendszer HAL eszközt regisztrálni kell, mielőtt az összes eszközkezelőt inicializálná az APP_InitFramework() függvényben.
    • Hívja a BOARD_ConfigMPU() függvényt az APP_BoardInit()-ben az MPU konfigurálásához.
  2. Állítsa be a file rendszer hozzárendelése a Flash-en a file app_config.h fájlban a használt makródefiníciók meghatározásával file sln_flash_littlefs.h:
    • #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #define FICA_FILE_SYS_SIZE (0x280000)

Konfigurációk
Néhány Flash-hez kapcsolódó kód a megfelelő teljesítmény érdekében az SRAM ITC területén fut le. Másolja a linker konfigurációkat tartalmazó mappa linkscriptjeit a smart HMI\coffee_machine\cm7\ elérési útról az example SW.

Valósítson meg egy LVGL grafikus felhasználói felületet
A keretrendszeren alapuló LVGL GUI-alkalmazás fejlesztése a kimeneti UI HAL-ból hívja meg az API-kat, és biztosítja az API-kat a kimeneti UI HAL-hoz (lásd a 4.1.3. szakaszt a kimeneti UI HAL megvalósításához).

Az LVGL GUI-alkalmazások részletes megvalósítása azonban az alkalmazás követelményeitől és kialakításától függ. A GUI-alkalmazás ebben az example van kialakítva a 4. szakasz elején leírtak szerint.

Az alábbiakban bemutatjuk a megvalósítást:

  1. A testreszabott kódok a GUI Guider által a GUI Guider projekt és a beágyazott rendszer projekt közötti interfészként megadott custom.c és custom.h fájlokban valósulnak meg.
    •  Adja hozzá a gui_xxx() nevű új függvényeket a custom.c-ben az alábbi függvények eléréséhez:
      • A kimeneti UI HAL és GUI alkalmazáshoz a felhasználói felület frissítéséhez.
      • Ahhoz, hogy a GUI-alkalmazás eseményeket indítson el a felhasználói felület visszahívási függvényeinek meghívásával a kimeneti UI HAL-ból.
        Plample, az új gui_event_face_rec_action() függvény a felhasználói felület visszahívási függvényeit hívja meg az arcregisztráció, az arcfelismerés és a felhasználó törlésének egyik eseményének kezelésére, amely a GUI alkalmazásból indul ki, amikor a kapcsolódó gombra kattintanak.
        Megjegyzés: A gui_set_virtual_face() függvény meghívott a kimeneti UI HAL for preview módot kell megvalósítani a custom.c-ben:
    •  A gui_set_virtual_face() függvény klónozása intelligens HMI\coffee_machine\cm4\custom \custom.c fájlból.
    •  Módosítsa a widget nevét home_img_cameraPreview a screen_img_camera_preview a függvényben.
    •  Valósítsa meg a felhasználói felület visszahívási funkcióit ugyanazzal a prototípussal a kimeneti UI HAL összes funkciójában a custom.c #ifndef RT_PLATFORM makródefiníciójának vezérlése alatt, hogy kompatibilisek legyenek a GUI Guider projekttel, mivel ezek a kimeneti UI HAL függvények függenek a beágyazott platform. A custom.c-ben ezek a GUI útmutatón lévő szimulátortól függenek, és függetlenek a beágyazott platformtól. Plample, az arcregisztrációs visszahívás az alábbiak szerint valósul meg a futó GUI Guider szimulátornál: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; Visszatérés; }
      Jegyzet: Lásd a 6. szakasz 4.1.3. lépésében bemutatott funkció ugyanazt a prototípusát
      Az RT_PLATFORM makródefiníció az MCUXpresso projektbeállításain van beállítva, a 7. ábrán látható módon:NXP-AN14263-Implement-LVGL-GUI Arcfelismerés-on-Framewor-fig- (14)
    • Deklarálja az összes UI_xxx_Callback() és gui_xxx() nevű függvényt a custom.h fájlban, és adja hozzá a smart_tlhmi_event_descriptor.h fájlban található custom.h fájlt, hogy megosszák a GUI API-kat a felhasználói felület HAL kimenetével.
  2. A GUI fejlesztése a GUI Guiderben:
    • Klónozza a mappát a kamera előview amely tartalmazza a GUI Guider projektszoftvert az lvgl_gui_camera_pre alapszoftvercsomag gui_guider mappájábanview_cm7. Módosítsa a kapcsolódó camera_pre nevetview hogy face_rec az új exnekample.
    • Másolja ki a fenti frissített custom.c és custom fájlt. h az új GUI Guider projektszoftverhez.
    •  Nyissa meg az új face_rec projektet a GUI Guiderben. Frissítés az alábbiak szerint:
      • Adja hozzá a Felhasználó törlése feliratú új gombot. Adja hozzá a Rejtett jelzőt, hogy a gomb el legyen rejtve, amikor a GUI alkalmazás elindul.
      • Adja hozzá az API gui_event_face_rec_action() meghívó kódsorát különböző eseményazonosító paraméterekkel az összes Regisztráció, Felismerés és Felhasználó törlése gomb eseménybeállításának „Released” triggeréhez az arcregisztrációs, arcfelismerési és felhasználótörlési események kiváltására. A 8. ábra a Regisztráció gomb eseményének kódját mutatja:NXP-AN14263-Implement-LVGL-GUI Arcfelismerés-on-Framewor-fig- (15)
  3. Frissítse a GUI Guiderból generált kódot az MCUXpresso projektre.
    • Cserélje ki az MCUXpresso project SW által generált mappában lévő mappaképek kivételével a tartalmat a GUI Guider project SW által generált mappában lévő megfelelőkre.

Jegyzet: A fent bemutatott módosításokkal kapcsolatos további részletekért tekintse meg a plample szoftver at https://mcuxpresso.nxp.com/appcodehub.

Ellenőrzések az example projekt

Hogy megkapja az exampAz alkalmazási megjegyzéshez szükséges erőforrásokat és eszközöket tartalmazó szoftvercsomagot látogassa meg: https://mcuxpresso.nxp.com/appcodehub. Nyissa meg az example projekt MCUXpresso IDE-n. Építsd meg és programozd az .axf file a 0x30000000 címre, és programozza be az erőforrástálcát file camera_preview_resource.bin a 0x30800000 címre.

Az LVGL GUI arcfelismerő plampnormál módon működik az alábbiak szerint:

  • Előttiview: Bekapcsoláskor a kamera által rögzített videofolyamok megjelennek a kamera előtti adott területenview a GUI képernyőn. Az állapotcímkén az „Preview…”. A részletekért lásd a 3. ábrát. A Felhasználó törlése gomb rejtett. A gombokon és képeken kívüli területre kattintva megjelenik az előview az arcregisztrációs vagy -felismerési művelet befejezése után a fentiek szerint.
  • Bejegyzés:
    • tartup: Ha a Regisztráció gombra kattint, elindul az arcregisztráció. Az állapotcímke a „Regisztráció…” feliratra változik, az arcvezető téglalap kék színnel jelenik meg, és a folyamatjelző sáv elkezdi mutatni az előrehaladást. Győződjön meg arról, hogy a felhasználó arca megjelenik a kék arcvezető téglalapban a regisztrációhoz.
    • sikert: Az állapotcímkén megjelenik a „Regisztráció… OK” és a regisztrált felhasználói azonosító szám, az arcvezető téglalap piros színűvé válik, ha az arcregisztráció sikeres volt, mielőtt a folyamat megtelt a sávon.
    • Hiba -> Időtúllépés: Az állapotcímke „Regisztráció… Időtúllépés” üzenetet mutat, ha az arcregisztráció továbbra is sikertelen, amikor a folyamat megtelt a sávon.
    • Hiba -> Másolás: Az állapotcímke „Regisztráció… Sikertelen” üzenetet mutat, az arcvezető téglalap zöld színűvé válik, ha a regisztrált arc felismerése még azelőtt megjelenik, hogy a sávon a folyamat megtelt.
  • felismerés:
    • Indítás: Ha a Felismerés gombra kattint, elindul az arcfelismerés. Az állapotcímke „Felismerő… Győződjön meg arról, hogy a felhasználó arca megjelenik a kék arcvezető téglalapban a regisztrációhoz.
    • sikert: Az állapotcímkén megjelenik a „Felismerés…OK” és a felismert felhasználói azonosító szám, az arcvezető téglalap zöld színűvé válik, ha az arcfelismerés sikeres volt, mielőtt a folyamat a sávon megtelt. Ezen a ponton megjelenik a Felhasználó törlése gomb. Ez azt jelenti, hogy a felhasználó csak akkor törölhető, ha felismeri.
    • gyengélkedés: Az állapotcímkén a „Felismerés…Időtúllépés” jelenik meg, ha az arcfelismerés továbbra is sikertelen, amikor a sávon a folyamat megtelt.
  • Felhasználó törlése: Ha a „Felhasználó törlése” gombra kattint, az arcfelismerés sikeressége után az állapotcímke a „Felhasználó törlése… OK” feliratra vált, az arcvezető téglalap kék színűvé válik, és a sávon a folyamat teljes látható. A Felhasználó törlése gomb ismét el van rejtve. A felismert arc/felhasználó törlődik az adatbázisból. Ez azt jelenti, hogy ezt az arcot/felhasználót nem lehet felismerni, amíg újra nem regisztrálják.

Megjegyzés a dokumentumban található forráskóddal kapcsolatban
ExampA dokumentumban látható kód a következő szerzői joggal és BSD-3-Clause licenccel rendelkezik:

Copyright 2024 NXP A forrás- és bináris formátumban történő újraterjesztés és felhasználás módosítással vagy anélkül megengedett, feltéve, hogy a következő feltételek teljesülnek:

  1. A forráskód újraterjesztésekor meg kell őrizni a fenti szerzői jogi megjegyzést, ezt a feltétellistát és a következő felelősségkizárást.
  2. A bináris formában történő újraterjesztésnek tartalmaznia kell a fenti szerzői jogi megjegyzést, a feltétellistát és a következő felelősségkizárást a dokumentációban és/vagy egyéb anyagokban a terjesztéshez mellékelni kell.
  3. Sem a szerzői jog tulajdonosának, sem közreműködőinek neve nem használható fel a szoftverből származó termékek támogatására vagy reklámozására külön előzetes írásbeli engedély nélkül.

EZT A SZOFTVERT A SZERZŐI JOGOK TULAJDONOSAI ÉS A KÖZTÁRULÓK „ÁLLAPOTÁBAN” BIZTOSÍTJÁK, ÉS BÁRMILYEN KIFEJEZETT VAGY VÉLEMEZTETETT GARANCIÁT, BELEÉRTVE, DE NEM KIZÁRÓLAGOS AZ ELADHATÓSÁGRA ÉS A KÖZVETÍTETT FELTÉTELEKRE VONATKOZÓ ALKALMAZHATÓSÁGRA VONATKOZÓ VÉLEMEZETT GARANCIÁT. A SZERZŐI JOG TULAJDONOSA VAGY HOZZÁJÁRULÓI SEMMILYEN ESETBEN NEM FELELŐSÜK SEMMILYEN KÖZVETLEN, KÖZVETETT, VÉLETLENES, KÜLÖNLEGES, PÉLDA, VAGY KÖVETKEZMÉNYES KÁROKÉRT (BEÉLETETETT, DE NEM KIZÁRÓLAG A SZOLGÁLTATÁST, AZ ADATOK HASZNÁLATÁT; VAGY NYERESÉG; VAGY VÁLLALKOZÁS SZAKADÁSA), AKÁR BÁRMILYEN FELELŐSSÉG ELMÉLETE AKÁR AKÁR SZERZŐDÉSBŐL, SZIGORÚ FELELŐSSÉGBŐL, VAGY AZ EZBŐL KÍVÜL EREDMÉNYESÜL TÖRTÉNŐ KÖVETKEZTETÉSEKBŐL (BELEÉRVE A HINDULÁST VAGY EGYÉBEN) ILYEN KÁROK LEHETŐSÉGE.

Revíziótörténet

NXP-AN14263-Implement-LVGL-GUI Arcfelismerés-on-Framewor-fig- (16)

Jogi információk

Meghatározások
Piszkozat – A dokumentum piszkozat állapota azt jelzi, hogy a tartalom még mindig belső állapot alatt vanview és formális jóváhagyástól függően, ami módosításokat vagy kiegészítéseket eredményezhet. Az NXP Semiconductors nem vállal felelősséget vagy garanciát a dokumentum tervezet változatában szereplő információk pontosságáért vagy teljességéért, és nem vállal felelősséget az ilyen információk felhasználásának következményeiért.

Jogi nyilatkozat

  • Korlátozott garancia és felelősség — A dokumentumban szereplő információk pontosak és megbízhatóak. Az NXP Semiconductors azonban nem vállal semmilyen kifejezett vagy hallgatólagos nyilatkozatot vagy garanciát az ilyen információk pontosságára vagy teljességére vonatkozóan, és nem vállal felelősséget az ilyen információk felhasználásának következményeiért. Az NXP Semiconductors nem vállal felelősséget a jelen dokumentum tartalmáért, ha azt az NXP Semiconductors-on kívüli információforrás szolgáltatja.
    Az NXP Semiconductors semmilyen esetben sem vállal felelősséget semmilyen közvetett, véletlen, büntető jellegű, különleges vagy következményes kárért (beleértve – korlátozás nélkül – az elmaradt nyereséget, az elveszett megtakarításokat, az üzlet megszakítását, a termékek eltávolításával vagy cseréjével kapcsolatos költségeket vagy az átdolgozási költségeket), függetlenül attól, hogy vagy az ilyen károk jogsértésen (beleértve a gondatlanságot is), garancián, szerződésszegésen vagy bármely más jogi elméleten alapulnak.
    Az ügyfél bármely okból esetlegesen elszenvedett kárától függetlenül az NXP Semiconductors összesített és halmozott felelőssége a vásárlóval szemben az itt leírt termékekért az NXP Semiconductors kereskedelmi értékesítésének feltételeivel összhangban korlátozott.
  • A változtatás joga — Az NXP Semiconductors fenntartja a jogot, hogy bármikor és előzetes értesítés nélkül módosítsa a jelen dokumentumban közzétett információkat, beleértve a korlátozások nélkül a specifikációkat és a termékleírásokat. Ez a dokumentum hatályon kívül helyez és felváltja a közzététel előtt közölt összes információt.
  • Használatra való alkalmasság — Az NXP Semiconductors termékeket nem úgy tervezték, engedélyezték vagy nem garantálják, hogy alkalmasak legyenek életfenntartó, életfontosságú vagy biztonsági szempontból kritikus rendszerekben vagy berendezésekben való használatra, sem olyan alkalmazásokra, ahol az NXP Semiconductors termék meghibásodása vagy hibás működése ésszerűen várhatóan személyi sérülés, halál vagy súlyos anyagi vagy környezeti kár. Az NXP Semiconductors és beszállítói nem vállalnak felelősséget az NXP Semiconductors termékek ilyen berendezésekbe vagy alkalmazásokba való beépítéséért és/vagy használatáért, ezért az ilyen beépítés és/vagy felhasználás az ügyfél saját felelősségére történik.
  • Alkalmazások — Az itt leírt alkalmazások e termékekre csak illusztrációs célt szolgálnak. Az NXP Semiconductors nem vállal felelősséget és nem vállal garanciát arra vonatkozóan, hogy az ilyen alkalmazások további tesztelés vagy módosítás nélkül alkalmasak lesznek a meghatározott felhasználásra.
    Az ügyfelek felelősek az NXP Semiconductors termékeket használó alkalmazásaik és termékeik tervezéséért és működtetéséért, az NXP Semiconductors pedig nem vállal felelősséget az alkalmazásokhoz vagy az ügyfél terméktervezéséhez nyújtott segítségért. Az ügyfél kizárólagos felelőssége annak megállapítása, hogy az NXP Semiconductors termék alkalmas-e és alkalmas-e az ügyfél által tervezett alkalmazásokhoz és termékekhez, valamint az ügyfél harmadik fél vásárlóinak tervezett alkalmazásához és használatához. Az ügyfeleknek megfelelő tervezési és üzemeltetési biztosítékokat kell biztosítaniuk az alkalmazásaikkal és termékeikkel kapcsolatos kockázatok minimalizálása érdekében. Az NXP Semiconductors nem vállal semmilyen felelősséget olyan nemteljesítéssel, kárral, költséggel vagy problémával kapcsolatban, amely az ügyfél alkalmazásaiban vagy termékeiben, illetve az ügyfél harmadik fél ügyfele(i) általi alkalmazásban vagy használaton alapul. Az Ügyfél felelős azért, hogy minden szükséges tesztelést elvégezzen az ügyfél alkalmazásainál és termékeinél az NXP Semiconductors termékeket használva, hogy elkerülje az alkalmazások és a termékek, illetve az alkalmazás vagy az ügyfél harmadik fél vásárlói általi használatának alapértelmezett állapotát. Az NXP nem vállal felelősséget ezzel kapcsolatban.
  • A kereskedelmi értékesítés feltételei — Az NXP Semiconductors termékek értékesítése a kereskedelmi értékesítés általános feltételeinek megfelelően történik, a https://www.nxp.com/pro oldalonfile/feltételek, hacsak érvényes írásos egyedi megállapodás másként nem rendelkezik. Egyedi megállapodás megkötése esetén csak az adott szerződés feltételei érvényesek. Az NXP Semiconductors ezennel kifejezetten tiltakozik az ügyfél általános szerződési feltételeinek alkalmazása ellen az NXP Semiconductors termékek vásárló általi vásárlása tekintetében.
  • Exportellenőrzés — Ez a dokumentum, valamint az itt leírt cikk(ek)re az exportellenőrzési szabályok vonatkozhatnak. A kivitelhez szükség lehet az illetékes hatóságok előzetes engedélyére.
  • Alkalmasság nem gépjármű-minősítésű termékekben való használatra — Hacsak ez a dokumentum kifejezetten nem mondja ki, hogy ez az adott NXP Semiconductors termék autóipari minősítésű, a termék nem alkalmas autóipari használatra. Nem minősítették és nem is tesztelték az autóipari tesztelési vagy alkalmazási követelményeknek megfelelően. Az NXP Semiconductors nem vállal felelősséget a nem gépjármű-minősítésű termékek autóipari berendezésekben vagy alkalmazásokban való szerepeltetéséért és/vagy használatáért.
    Abban az esetben, ha az ügyfél a terméket az autóipari előírásoknak és szabványoknak megfelelő autóipari alkalmazásokban történő tervezésre és felhasználásra használja, az ügyfél (a) köteles a terméket az NXP Semiconductors által a termékre vonatkozó jótállás nélkül használni az ilyen autóipari alkalmazásokhoz, felhasználáshoz és specifikációkhoz, és ( b) amikor az ügyfél a terméket az NXP Semiconductors specifikációitól eltérően autóipari alkalmazásokhoz használja, az ilyen felhasználást kizárólag az ügyfél saját kockázatára végezheti, és (c) az ügyfél teljes mértékben kártalanítja az NXP Semiconductors-t minden felelősségért, kárért vagy meghiúsult termékkövetelésért, amely az ügyfél tervezéséből és használatából ered. az NXP Semiconductors szabványos garanciáján és az NXP Semiconductors termékspecifikációin túlmutató autóipari alkalmazásokhoz.
  • Fordítások – A dokumentum nem angol nyelvű (lefordított) változata, beleértve a dokumentumban található jogi információkat is, csak referenciaként szolgál. A lefordított és az angol nyelvű változat közötti eltérések esetén az angol nyelvű változat az irányadó.
  • Biztonság — Az Ügyfél tudomásul veszi, hogy az összes NXP termék azonosítatlan sérülékenységnek lehet kitéve, vagy ismert korlátozásokkal támogathatja a megállapított biztonsági szabványokat vagy specifikációkat. Az Ügyfél felelős alkalmazásai és termékei tervezéséért és üzemeltetéséért azok teljes életciklusa során, hogy csökkentse e sebezhetőségek hatását az ügyfél alkalmazásaira és termékeire. Az Ügyfél felelőssége kiterjed az NXP termékek által támogatott egyéb nyílt és/vagy szabadalmaztatott technológiákra is, amelyeket az ügyfél alkalmazásaiban használnak. Az NXP semmilyen sebezhetőségért nem vállal felelősséget. Az Ügyfélnek rendszeresen ellenőriznie kell az NXP biztonsági frissítéseit, és a megfelelő nyomon követést kell végeznie. Az Ügyfél köteles kiválasztani azokat a biztonsági jellemzőkkel rendelkező termékeket, amelyek a legjobban megfelelnek a tervezett alkalmazás szabályainak, előírásainak és szabványainak, és meghozza a végső tervezési döntéseket termékeivel kapcsolatban, és kizárólagos felelősséggel tartozik a termékeivel kapcsolatos valamennyi jogi, szabályozási és biztonsági követelmény betartásáért, függetlenül attól, az NXP által biztosított bármely információról vagy támogatásról.

Az NXP rendelkezik egy termékbiztonsági eseményekre reagáló csoporttal (PSIRT) (elérhető a PSIRT@nxp.com címen), amely felügyeli az NXP-termékek biztonsági réseinek kivizsgálását, jelentését és a megoldások kiadását.
NXP BV — Az NXP BV nem működő vállalat, és nem forgalmaz vagy értékesít termékeket.

Védjegyek
Értesítés: Minden hivatkozott márka, terméknév, szolgáltatásnév és védjegy a megfelelő tulajdonosok tulajdona.

NXP — a szó és a logó az NXP BV védjegyei

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 – az Arm Limited (vagy leányvállalatai vagy leányvállalatai) védjegyei és/vagy bejegyzett védjegyei az Egyesült Államokban és/vagy máshol. A kapcsolódó technológiát szabadalom, szerzői jog, formatervezési minta és üzleti titok bármelyike ​​vagy mindegyike védheti. Minden jog fenntartva.

  • i.MX — az NXP BV védjegye
  • J-Link — a SEGGER Microcontroller GmbH védjegye.

A Microsoft, az Azure és a ThreadX – a Microsoft vállalatcsoport védjegyei.

Kérjük, vegye figyelembe, hogy a jelen dokumentumra és az itt leírt termék(ek)re vonatkozó fontos megjegyzések a „Jogi információk” részben találhatók.

© 2024 NXP BV
További információért látogasson el a következő oldalra: https://www.nxp.com

  • Kiadás dátuma: 19. április 2024
  • Dokumentumazonosító: AN14263

GYIK

K: Mi ennek a terméknek a fő célja?
V: A fő cél az arcfelismerő funkció engedélyezése egy AI&ML látási algoritmus modellel egy egyszerű LVGL grafikus felhasználói felülettel, pl.ample az SLN-TLHMI-IOT kártyán.

K: Hogyan profitálhatnak a fejlesztők ebből az alkalmazásjegyzetből?
V: A fejlesztők lépésről lépésre megtanulhatják, hogyan valósítsák meg az arcfelismerést a keretrendszeren a mellékelt exampés megértse az érintett eszközkezelőket, HAL-eszközöket és eseménymechanizmusokat.

Dokumentumok / Források

NXP AN14263 Az LVGL GUI arcfelismerés megvalósítása a keretrendszeren [pdf] Felhasználói útmutató
AN14263 Az LVGL GUI arcfelismerés megvalósítása a kereten, az AN14263, az LVGL GUI arcfelismerés megvalósítása a kereten, az LVGL GUI arcfelismerés a kereten, az arcfelismerés a kereten, a felismerés a kereten, a keretrendszer

Hivatkozások

Hagyj megjegyzést

E-mail címét nem tesszük közzé. A kötelező mezők meg vannak jelölve *