nxp-logo

NXP AN14263 Toteuta LVGL GUI -kasvojentunnistus Frameworissa

NXP-AN14263-Implement-LVGL-GUI-kasvojentunnistus-kehys-tuote

Tuotetiedot

Tekniset tiedot

  • Tuotteen nimi: LVGL GUI kasvojentunnistus kehyksessä
  • Asiakirjan versio: 1.–19
  • Avainsanat: Kasvojentunnistus, LVGL GUI, Framework

Tuotteen käyttöohjeet

  1. Yliview
    Tämä tuote mahdollistaa AI&ML-näköalgoritmimallin kasvojentunnistukseen kehyksessä kasvojentunnistustoiminnon toteuttamiseksi yksinkertaisella LVGL-käyttöliittymällä, esim.ample SLN-TLHMI-IOT-kortilla.
  2. Framework ohiview
    Ratkaisuohjelmisto on suunniteltu kehysarkkitehtuurin ympärille, joka sisältää laitteiden hallinnasta vastaavat laitehallijat, HAL-laitteet taustalla olevien yksityiskohtien tiivistämiseen sekä tapahtumia eri laitteiden väliseen viestintään.
  3. Ominaisuudet
    Tuote mahdollistaa kasvojentunnistustoiminnon toteuttamisen kameran esikatselun kauttaview GUI-näytössä painikkeilla, jotka käynnistävät kasvojen rekisteröinnin, tunnistuksen ja poiston. Rekisteröidyt kasvotiedot tallennetaan Flashiin a file järjestelmä.
  4. Sovellushuomautuksen sisältö
    Sovellusmuistiinpanossa on LVGL GUI -näyttö, jossa on esikameraview ja painikkeet kasvoihin liittyviin toimiin. Se auttaa kehittäjiä ymmärtämään kehyksen ja kuinka kasvojentunnistus voidaan ottaa käyttöön toimitetun example.

Yliview

NXP on julkaissut SLN-TLHMI-IOT-nimisen ratkaisukehityspaketin, joka keskittyy älykkäisiin käyttöliittymäsovelluksiin. Se mahdollistaa älykkään käyttöliittymän, jossa on ML-näkö-, ääni- ja grafiikkakäyttöliittymä, joka on toteutettu yhdessä NXP i.MX RT117H MCU:ssa. SDK:hen perustuva ratkaisuohjelmisto on rakennettu kehykseksi kutsutun suunnittelun pohjalta, joka tukee joustavia suunnittelua ja visio- ja puhetoimintojen mukauttamista. Jotta käyttäjät voisivat käyttää ohjelmistoalustaa paremmin, mukana on joitain perusasiakirjoja, esimample, ohjelmistokehityksen käyttöopas. Oppaassa esitellään sovellusten perusohjelmistosuunnittelu ja -arkkitehtuuri, joka kattaa kaikki ratkaisun komponentit, mukaan lukien viitekehyksen, jotta kehittäjät voivat ottaa sovelluksensa käyttöön helpommin ja tehokkaammin SLN-TLHMI-IOT:n avulla.
Lisätietoja ratkaisusta ja asiaankuuluvista asiakirjoista on osoitteessa web NXP EdgeReady Smart HMI -ratkaisun sivu Perustuu i.MX RT117H:hen, jossa on ML Vision, Voice ja Graphical UI. Kehittäjien ei kuitenkaan ole vieläkään niin helppoa toteuttaa älykkäitä HMI-sovelluksiaan näihin perusoppaisiin viitaten. Suunnitteilla on joukko sovellushuomautuksia, jotka auttavat tutkimaan kehyksen kehitystä askel askeleelta. Tämä sovellushuomautus perustuu Implement LVGL GUI Camera Pre -sovellukseenview on Framework (asiakirja AN14147). Tämä sovellushuomautus kuvaa, kuinka AI&ML-näköalgoritmimalli otetaan käyttöön kasvojentunnistuksessa kehyksessä kasvojentunnistustoiminnon toteuttamiseksi kameran esikatselun kautta.view GUI-näytössä yksinkertaisella LVGL-käyttöliittymällä, esimample SLN-TLHMI-IOT-kortilla. Hakemusilmoituksessa example esittelee LVGL GUI -näytön, jossa on esikameraview ja joitain painikkeita kasvojen rekisteröinnin, tunnistuksen ja poistamisen käynnistämiseksi. Rekisteröidyt kasvotiedot tallennetaan Flashiin hieman file järjestelmä.

Korkealla tasolla hakemusmuistio sisältää seuraavan sisällön:

  • Ota kasvojentunnistusominaisuus käyttöön kehyksessä.
  • Lisää kasvotietokantatuki kehykseen kautta file järjestelmä Flashissa.
  • Ota LVGL GUI -sovellus käyttöön. Yllä olevien johdannon kautta tämä asiakirja auttaa kehittäjiä:
  • Ymmärrä puitteet ja älykäs HMI-ratkaisuohjelmisto syvällisemmin.
  • Kehitä heidän AI&ML-kasvojentunnistustaan ​​LVGL GUI -sovelluksella.

Puitteet ohiview
Ratkaisuohjelmisto on suunniteltu ensisijaisesti useista eri osista koostuvan kehysarkkitehtuurin käytön ympärille:

  • Laitehallinta - ydinosa
  • Hardware Abstraction Layer (HAL) -laitteet
  • Viestit/tapahtumat

Kuten kuvasta 1 näkyy, yliview kehyksen mekanismi on:

Laitevastaavat vastaavat järjestelmän käyttämien laitteiden hallinnasta. Jokaisella laitetyypillä (tulo, lähtö ja niin edelleen) on oma tyyppikohtainen laitehallinta. Kun laitehallinta käynnistyy sen jälkeen, kun laitteet on rekisteröity siihen, se odottaa ja tarkistaa viestin tietojen siirtämiseksi laitteisiin ja muihin hallintalaitteisiin rekisteröityjen laitteiden alustuksen ja käynnistämisen jälkeen. HAL-laitteet on kirjoitettu alemman tason ajurikoodin päälle, mikä auttaa lisäämään koodin ymmärrettävyyttä poistamalla monia taustalla olevia yksityiskohtia.

Tapahtumat ovat väline, jolla tiedot välitetään eri laitteiden välillä niiden johtajien kautta. Kun tapahtuma käynnistetään, tapahtuman ensimmäisenä vastaanottanut laite ilmoittaa tapahtumasta esimiehelleen, minkä jälkeen se vuorostaan ​​ilmoittaa muille tapahtuman vastaanottajille määrätyille johtajille.

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

Kehyksen arkkitehtoninen suunnittelu keskittyi kolmeen päätavoitteeseen:

  1. Helppokäyttöisyys
  2. Joustavuus/kannettavuus
  3. Suorituskyky

Kehys on suunniteltu nopeuttamaan visio- ja muiden koneoppimissovellusten markkinoille tuloa. Nopean markkinoilletulon varmistamiseksi on tärkeää, että itse ohjelmisto on helppo ymmärtää ja muokata. Tämä tavoite mielessä pitäen kehyksen arkkitehtuuria on helppo muokata ilman, että se on rajoittava ja suorituskyvyn kustannuksella.
Lisätietoja viitekehyksestä on Smart HMI -ohjelmistokehityksen käyttöoppaassa (asiakirja MCU-SMHMI-SDUG).

Light and Versatile Graphics Library (LVGL)
LVGL (Light and Versatile Graphics Library) on ilmainen ja avoimen lähdekoodin grafiikkakirjasto, joka tarjoaa kaiken, mitä tarvitset sulautetun graafisen käyttöliittymän luomiseen, jossa on helppokäyttöisiä graafisia elementtejä, kauniita visuaalisia tehosteita ja vähän muistia.

GUI-opas
GUI Guider on NXP:n käyttäjäystävällinen graafisen käyttöliittymän kehitystyökalu, joka mahdollistaa korkealaatuisten näyttöjen nopean kehittämisen avoimen lähdekoodin LVGL-grafiikkakirjaston avulla. GUI Guiderin vedä ja pudota -editorin avulla on helppo käyttää monia LVGL:n ominaisuuksia, kuten widgetejä, animaatioita ja tyylejä, luodaksesi graafisen käyttöliittymän minimaalisella koodauksella tai ei ollenkaan.

Napin painalluksella voit ajaa sovelluksesi simuloidussa ympäristössä tai viedä sen kohdeprojektiin. GUI Guiderin luotu koodi voidaan helposti lisätä projektiisi, mikä nopeuttaa kehitysprosessia ja mahdollistaa saumattomasti sulautetun käyttöliittymän lisäämisen sovellukseesi. GUI Guideria voidaan käyttää ilmaiseksi NXP:n yleiskäyttöisten ja crossover-MCU:iden kanssa, ja se sisältää sisäänrakennetut projektimallit useille tuetuille alustoille. Lisätietoja LVGL- ja GUI-kehityksestä GUI Guiderissa on kohdassa Light and Versatile Graphics Library ja GUI Guider.

Kehitysympäristö

Valmistele ja määritä ensin laitteisto- ja ohjelmistoympäristö example rungossa.

Laitteistoympäristö
Laitteistoympäristö on määritetty exampseuraavat:

  • Älykäs HMI-kehityssarja, joka perustuu NXP i.MX RT117H:hen (SLN_TLHMI_IOT-sarja)
  • SEGGER J-Link 9-nastaisella Cortex-M-sovittimella ja V7.84a-ohjaimella tai uudemmalla versiolla

ohjelmisto ympäristö
Ohjelmistoympäristö on asetettu kehittämään exampseuraavat:

  • MCUXpresso IDE V11.7.0
  • GUI Guider V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – esimamptoisen sovellusmerkinnän le koodi kehitystyön perusohjelmistona. Katso lisätietoja https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 – kehityksen koodiresurssina.
  • SLN-TLHMI-IOT-ohjelmisto V1.1.2 – älykäs käyttöliittymän lähdekoodi, joka on julkaistu NXP GitHub -varastossa kehityksen koodiresurssina. Katso lisätietoja: GitHub – NXP/mcu-smhmi osoitteessa v1.1.2

Lisätietoja ohjelmistoympäristön hankinnasta ja määrityksestä on kohdassa SLN-TLHMI-IOT:n aloitusopas.

Visio-arkkitehtuuri kehyksessä

Kehyksen visioarkkitehtuuri on esitetty kuvassa 2. Visioalgo HAL (OASIS_HAL) sisältää seuraavat prosessit:

  • Suorita kasvojen rekisteröinti ja tunnistus AI&ML-näköalgoritmimallin avulla saatuasi liittyvät tapahtumat UI HAL:sta. Ilmoita algoritmimallin päättelytulokset lähtöliittymään HAL.
  • Käyttää (lisää, poista…) kasvopiirretietokantaa pienen perusteella file järjestelmä kutsumalla FaceDB HAL:n API-liittymiä saatuaan vastaavat tapahtumat ulostulokäyttöliittymästä HAL.
  • Pyydä kameran videokehys kameran HAL:lta, kun suoritat kasvojen rekisteröintiä ja tunnistusta.

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

Ota kasvojentunnistus käyttöön kehyksessä

LVGL GUI kasvojentunnistus example (example tarjotaan myöhemmin) on puitteet toteutettu exampImplement LVGL GUI Camera Preview on Framework (asiakirja AN14147).

Kasvojentunnistuksen esittelyyn exampGUI-sovelluksen perustoiminto (katso päänäyttö kuvassa 3) on suunniteltu alla kuvatulla tavalla:

  • GUI-sovellus käynnistää kasvojen rekisteröinnin tai tunnistustapahtuman UI HAL:iin, kun napsautat Rekisteröinti- tai Tunnistus-painiketta. Ja ulostulo UI HAL ilmoittaa käyttäjän lisäämisestä näköalgoon HAL sen jälkeen, kun kasvojen rekisteröinti on onnistunut.
  • GUI-sovellus laukaisee tapahtuman, jossa käyttäjä poistetaan UI HAL-tulostukseen, kun napsautat Poista käyttäjä -painiketta, kun käyttäjän kasvot on tunnistettu.
  • GUI-sovellus laukaisee tapahtuman, jossa oasis-algo pysähtyy UI HAL-lähtöön, kun napsautetaan näyttöä painikkeiden ja kuvien ulkopuolella.

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

Valmistele ohjelmistopaketti example.

  • Kloonaa perusohjelmisto lvgl_gui_camera_preview_cm7. Muuta projektin nimi ja pää filenimi lvgl_gui_face_rec_cm7:lle.
  • Kehys on päivitettävä ohjelmistoon, koska kehyksen ytimen lähdekoodit ovat alkaneet olla julkisia GitHubissa versiosta 1.1.2 alkaen.
  • Korvaa kehyskansio versiolla V1.1.2 GitHubista paitsi files fwk_log.h ja fwk_common.h kohdassa inc\, koska niitä on muokattu sovellushuomautuksen sarjaa varten. Toiminnot on esitetty kuvassa 4:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (11)
  • Poista kansio framework_cm7 libs-ryhmän alta ja poista kirjasto framework_cm7 ja sen hakupolku, joka on määritetty kohdassa Projekti > Ominaisuudet > C/C++ Build > Settings > Tool Settings > MCU C++ Linker > Libraries, koska ytimen lähdekoodi on toimitettu.

Ota kasvojentunnistustoiminto käyttöön kehyksessä
Kasvojentunnistusominaisuus perustuu ML-näköalgoritmimalliin, joka toimitetaan staattisena kirjastona – NXP:n oasis lite -ajonaikakirjastona. Kirjasto on pieni, erittäin tehokas, räätälöity ja optimoitu tekoälykirjasto. Malli sisältää kasvojentunnistuksen, kasvojentunnistuksen, lasintunnistuksen ja elävyyden tunnistuksen. Se tarjoaa pääasiassa API OASISLT_run_extended() kasvojentunnistusputken suorittamiseen samalla kun tulokset päivitetään soittajalle tapahtumien takaisinkutsujen kautta ja kasvojen lisääminen/päivitys/poistaminen tietokannassa kasvotietokannan takaisinkutsujen kautta sen jälkeen, kun lähdekehystiedot, takaisinkutsut ja muisti on määritetty. kirjaston käyttämä pooli kutsumalla toista API:ta OASISLT_init() alustuksen yhteydessä. API:iden kutsuminen ja takaisinkutsun toiminnot on toteutettu viitekehyksen visioalgossa HAL.

Lisää vision algo mallikirjasto

  1. Kopioi kirjaston ja siihen liittyvän otsikon sisältävä kansiokeidas file Smart HMI\coffee_machine\cm7\libs\ ex:n kansioon libsample SW.
  2. Lisää otsikon hakupolku file kohdassa Projekti > Ominaisuudet > C/C++ Build > Asetukset > Työkaluasetukset > MCU C-kääntäjä > Sisältää ja MCU C++ -kääntäjä > Sisältää: "${workspace_loc:/${ProjName}/libs/oasis/include}"
  3. Lisää lib ja sen hakupolku kohtaan Project > Properties > C/C++ Build > Settings > MCU C+ + Linker > Libraries: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” ja makromäärittely kohteeseen ota ominaisuus käyttöön kohdassa Projekti > Ominaisuudet > C/C++ Build > Asetukset > Työkaluasetukset > MCU C-kääntäjä > Esiprosessori ja MCU C++ -kääntäjä > Esiprosessori: SMART_TLHMI_2D

Ota vision algo HAL käyttöön
Visioalgo HAL ajaa visioalgo-mallin toimimaan ja vastaa tuloksista käyttöliittymän ulostuloon HAL saatuaan tapahtumat siltä.

Ota se käyttöön kloonaamalla olemassa oleva samanlainen HAL-ohjain file jossa seuraavat toiminnot on toteutettu:

  • Toteuta kasvotietokantatoimintojen ja tapahtumien käsittelyn takaisinkutsut.
  • Aja visioalgo toimimaan kutsumalla oasis-kirjaston sovellusliittymiä.
  • Käytä käyttäjäkasvotietokantaa ja sovellustietokantaa (se ei ole tarpeen esimample).
  • Vastaanota tapahtumia ja lähetä tulokset ulostuloon UI HAL.

Tärkeimmät työt HAL:n toteuttamiseksi exampne ovat:

  • Kloonaa olemassa oleva samanlainen HAL-ohjain file ja muuta niihin liittyvät nimet.
  • Poista sovelluksen datatoimintoihin liittyvät koodit.
  • Päivitä määritelmät ja toiminnot tapahtumien käsittelyä varten lähtöliittymästä HAL esimampdesign.
  • Lisää oasis-alustuksessa tarvittavat kokoonpanot.

Yksityiskohtaiset vaiheet ovat seuraavat:

  1. Kloonaa hal_vision_algo_oasis_coffeemachine.c. Vaihda filenimi hal_vision_algo_oasis_guifacerec.c:lle. Ja korvaa kaikki CoffeeMachine-kielet GUIFaceRecillä file.
  2. Poista koodit, jotka sisältävät sovellustietokantaan liittyvän merkkijonon coffeedb (ei kirjainkokoa), esimample, #include hal_sln_coffeedb.h.
  3. Muokkaa toimintoa HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() käsitelläksesi tapahtumia lähtökäyttöliittymästä HAL.
    • Muuta tapahtuman käsittelyn tapahtumamääritelmä kEventFaceRecId_RegisterCoffeeSelection arvoksi kEventFaceRecId_RegisterUserFace ja rakennemerkkijono regCoffeeSelection arvoksi regGUIFaceRec, jotta voit lisätä uusia kasvopiirretietoja tietokantaan.
    • Esittääksesi kasvojentunnistustoimintojen vakioprosessin example, muokkaa käsittelyä kEventFaceRecID_OasisSetState tapauksessa tilojen määritelmillä:
      • kOASISLiteState
      • Rekisteröinti kOASISLiteState
      • Tunnustus kOASISLiteState
      • Pysähtynyt
  4. Lisää ja muokkaa yllä olevassa vaiheessa mainittujen tapahtumien määritelmiä.
    • Kopioi otsikko file smart_tlhmi_event_descriptor.h älykkäästä käyttöliittymästä\coffee_machine \cm7\source\event_handlers\ ex:n kansiolähteeseenample SW. Päivitä file kuten alla:
    • Muuta tapahtumamääritelmä kEventFaceRecId_RegisterCoffeeSelection arvoon kEventFaceRecId_RegisterUserFace enum-tyypissä _event_smart_tlhmi_id ja rakennemerkkijono regCoffeeSelection arvoon regGUIFaceRec rakenteessa _event_smart_t. Muuta siis regCoffeeSelectionin struct register_coffee_selection_event_t arvoksi register_gui_facerec_event_t.
    • Poista kahvikonesovelluksessa käytetty muu sisältö, esimample, ääntä koskeva koodirivi: #include "hal_event_descriptor_voice.h".
    • Lisää tyypit kOASISLiteState_Stopped ja kOASISLiteState_Running enum-tyyppiin oasis_lite_state_t tiedostossa hal_vision_algo.h kohdassa framework>hal>vision projektissa seuraavasti:
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • Käynnissä, kOASISLiteState
      • Pysäytetty, kOASISLiteState
      • Tunnustus,
      • kOASISLiteState
      • Rekisteröinti, kOASISLiteState
      • Rekisteröinnin poistaminen, kOASISLiteState
      • RemoteRegistration, kOASISLiteState
      • Laskea
    • Käytä yllä päivitettyä struct oasis_lite_state_t tarkentaaksesi struct oasis_state_event_t tiedostossa hal_event_descriptor_face_rec.h kohdassa framework>hal>vision projektissa seuraavasti: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } keidas_tila_tapahtuma_t;
  5. Muuta kaikki kEventInfo_Remote muotoon kEventInfo_Local tapahtumien lähettämiseksi visioalgosta HAL muihin HAL-järjestelmiin, jotka toimivat samassa ytimessä, koska yksiytiminen on käytössä sen sijaan, että ex.ample.
  6. Lisää ja muokkaa alla olevia määrityksiä keidasalustusta varten OASISLT_init(:ssä):
    • Lisää makromääritykset ja muistiosat videokehykselle board_define.h:ssa: #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(muuttuja, tasatavuja) \
      • __attribute__((section(.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __attribute__((tasattu(alignbytes)))
    • Määritä muistin määritys yllä olevaan muistiosaan fb_sh_mem kohdassa Project > Properties > C/C++ Build > MCU Settings (kuvassa 5):NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (12)
    • Ilmoita globaali muuttuja g_DTCOPBuf tiedostossa lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • Jatka yllä olevassa muuttujassa käytettyjen määritelmien lisäämistä:
    • Määritä yllä oleva osio board_define.h:ssa:
      • #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(muuttuja, tasatavuja) \
      • attribuutti__((section(.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • attribuutti__((tasattu(alignbytes)))
    • Sisällytä otsikko file hal_vision_algo.h, joka sisältää makromäärityksen DTC_OPTIMIZE_BUFFER_SIZE tiedostossa app_config.h, joka sisältyy tiedostoon lvgl_gui_face_rec_cm7.cpp.
  7. Aseta muuttujan s_debugOption arvoksi tosi näyttääksesi kasvojentunnistuksen edistymisen.
  8. Lisää otsikon hakupolku fileVision HAL s Projektissa > Ominaisuudet > C/C++ Build > Asetukset > Työkaluasetukset > MCU C-kääntäjä > Sisältää ja MCU C++ -kääntäjän > Sisältää: "${workspace_loc:/${ProjName}/framework/hal/vision}"
  9. Ota vision algo HAL käyttöön board_define.h:ssa lisäämällä alla oleva määritelmä: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

Ota UI HAL käyttöön
Ulostulo UI HAL ilmoittaa tapahtumista näköalgolle HAL ja vastaa visioalgo HAL:n päättelytuloksiin. GUI-sovelluksella tapahtumat yleensä laukaisee sovellus ja tulokset näkyvät sovelluksessa.

Ota se käyttöön kloonaamalla olemassa oleva samanlainen HAL-ohjain file jossa yleensä seuraavat toiminnot toteutetaan:

  • Ilmoita tapahtumista kasvojentunnistusta ja tietokantaa varten.
  • Ota GUI-sovelluksen takaisinkutsut käyttöön tapahtumien käynnistämiseksi.
  • Käsittele visioalgo-moduulin päättelytulokset.
  • Näytä käyttöliittymän tapahtumien käsittelyprosessi ja tulokset edistymispalkilla, jota ohjataan ajastimilla ja kasvoohjaimen suorakulmiolla.

Tärkeimmät työt HAL:n toteuttamiseksi examptässä asiakirjassa käytettyjä ovat:

  • Kloonaa olemassa oleva samanlainen HAL-ohjain file ja muuta niihin liittyvät nimet.
  • Poista sovellukseen liittyvät koodit.
  • Päivitä tapahtumailmoitusten ja tulosvastausten toiminnot esimampdesign.
  • Lisää GUI-sovelluksen takaisinkutsut tapahtumien käynnistämiseksi.

Yksityiskohtaiset vaiheet ovat seuraavat:

  1. Kloonaa hal_output_ui_coffee_machine.c. Vaihda filenimi kohteeseen hal_ output_ui_guifacerec.c.
  2. Korvaa kaikki CoffeeMachine-merkkijonot GUIFaceRecillä file.
  3. Poista sovellukseen – kahvinkeittimeen liittyvät koodit.
    • Poista funktiot WakeUp() ja _StandBy() ja niihin liittyvät koodit (voi etsiä niitä merkkijonosta wake_up ja standby).
    • Poista esiview tilatapahtumat, jotka käsittelevät liittyviä koodeja HAL_OutputDev_UiGUIFaceRec_Input Notify() -sovelluksessa.
    • Poista funktiot UI_xxx_Callback() ja koodit, jotka sisältävät merkkijonon gui_ ja kahvinkeittimen graafiseen käyttöliittymään liittyvän näytön, paitsi gui_set_virtual_face() pre-view tilaominaisuus.
    • Poista kaikki koodit, jotka liittyvät kahvinkeitinsovellukseen liittyviin muuttujiin s_IsWaitingAnotherSelection ja s_IsWaitingRegisterSelection.
    • Poista ääneen, ääneen ja kieleen liittyvät koodit. esimampseuraavat:
      • #include "hal_voice_algo_asr_local.h",
      • #include "hal_event_descriptor_voice.h"
  4. Ota käyttöön eri tapahtumien ilmoituksia varten uudet funktiot _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() ja DeregisterGUIFaceRec(), jotka viittaavat funktioihin _StopFaceRec(), _RegisterCoffeeSelection() ja DeregisterCoffeeSdeleting(Coffe)eS.
    • _OutputManagerNotify() toteuttaa tapahtuman perustulostustoiminnon lähettääkseen tapahtuman visioalgolle HAL. Alla olevat toiminnot kutsuvat sitä lähettämään omia tapahtumiaan.
    • _SetFaceRec() lähettää tapahtuman kEventFaceRecID_OasisSetState käynnistääkseen näköalgon kasvojen rekisteröintiä, tunnistamista ja pysäyttämistä varten.
    • _RegisterGUIFaceRec() lähettää tapahtuman kEventFaceRecId_RegisterGUIFaceRec, joka on määritetty tiedostossa smart_tlhmi_event_descriptor.h kasvopiirteiden tietojen lisäämiseksi tietokantaan, kun rekisteröinti on OK.
    • DeregisterGUIFaceRec() lähettää tapahtuman kEventFaceRecID_DelUser kasvojen ominaisuustietojen poistamiseksi tietokannasta, kun se läpäisee kasvojentunnistuksen.
  5. Päivitä koodit suorittaaksesi vastaavat toimet, mukaan lukien graafisen käyttöliittymän päivittäminen kutsumalla API-liittymiä LVGL GUI -sovelluksesta kasvojen rekisteröinnin ja tunnistuksen päättelemiseksi funktiossa _InferComplete_Vision() ex:n mukaan.ampsuunnittelua. esimample, kun kasvojen rekisteröinti onnistuu,
    • Lopeta edistymisen näyttäminen kutsumalla _FaceRecProcess_Stop();
    • Lopeta kasvojen rekisteröinti kutsumalla _SetFaceRec(kOASISLiteState_Stopped);
    • Näytä onnistunut tulos graafisessa käyttöliittymässä: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Rekisteröi kasvotiedot tietokantaan: _RegisterUserFace(s_UserId);
  6. Lisää käyttöliittymän takaisinsoittotoimintoja tapahtumien käsittelemiseksi: preview, kasvojen rekisteröinti, tunnistus ja käyttäjän poistaminen käynnistetään graafisesta käyttöliittymästä. esimample, kasvojen rekisteröinnin takaisinsoitto: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • Ja lisää funktiot _FaceRecProcess_Start() ja _FaceRecProcess_Stop() näyttääksesi eri tapahtumien ja tulosten edistymisen ja tilan.
    • Päivitä ajastimen ISR-soittotoiminto _SessionTimer_Callback() käsittelemään aikakatkaisutapausta kutsumalla: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. Lisää alla olevat määritelmät ottaaksesi käyttöliittymän HAL käyttöön board_define.h:ssa: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

Huomautus:
Esittääksesi kasvojentunnistusominaisuuden paremmin, säilytä toiminto, joka näyttää kasvojentunnistuksen prosessin ja tulokset tulostetussa käyttöliittymässä HAL. Toiminto on kuvattu alla

  • Kasvoohjaimen suorakulmio näkyy sinisenä ja edistymispalkki näyttää edistymisen, kun kasvojen rekisteröinti tai tunnistus aloitetaan.
  • Kasvoohjaimen suorakulmio näkyy punaisena, kun kasvojen rekisteröinti on onnistunut.
  • Kasvoohjaimen suorakulmio näkyy vihreänä, kun kasvojentunnistus on onnistunut.
  • Kasvoohjaimen suorakulmio pysyy sinisenä ja edistymispalkki näyttää täydellisen edistymisen, jos toiminto epäonnistuu ajastimen umpeutumisen jälkeen. Lopeta siinä vaiheessa kasvojen rekisteröinti tai tunnistus.

Edistymispalkki ja kasvoohjaimen suorakulmio esitetään kuvakkeina, jotka on rakennettu resurssibinaariin file ohjelmoitavaksi Flashiin. Osoittimet SDRAM-muistissa oleviin kuvaketietoihin asetetaan LoadIcons(APP_ICONS_BASE) -toiminnossa, jota kutsutaan UI HAL -laitteen alustuslähtöön UI HAL:ssa. Sen on otettava käyttöön kuvakkeiden tuki toimintoa varten.

Ota käyttöön kuvakkeiden tuki

  1. Rakenna resurssi yhdistämällä kuvakkeet LVGL GUI -sovelluksessa käytettyihin kuviin:
    • Kloonaa neljän kuvakkeen otsikko files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h ja virtual_face_red_420x426.h älykkäästä käyttöliittymästä
      \kahvinkeitin\resurssi\kuvakkeet\ uusiin kansiokuvakkeisiin entisen resurssikansion allaample SW.
    • Lisää neljän kuvakkeen hakupolku files in the camera_preview_resurssi.txt file resurssikansiossa, esimample: icon ../resource/icons/process_bar_240x14.h
    • Suorita camera_preview_resource_build.bat luodaksesi kuvat ja kuvakkeet resurssit säiliön luomiseksi file camera_preview_resource.bin ja tiedot file resource_information_table.txt (katso kuva 6).NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (13)
  2. Määritä SDRAM-muistin aloitusosoite ja kuvakkeiden koko tiedostossa app_config.h. Osoite alkaa GUI-sovelluksen kuvien vierestä. Koko syntyy tiedoista file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. Päivitä res_sh_mem-nimisen muistiosan kooksi 0x200000 määrittämällä se uudelleen tiedostossa app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 ja vastaava asetus kohdassa Projekti > Ominaisuudet > C/C++ Build > MCU-asetukset.
  4. Lisää kuvakkeen koko Flashista SDRAM-muistiin ladatun resurssin kokonaiskokoon päätoiminnossa APP_LoadResource() file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

Huomaa: Kasvojentunnistusominaisuuden täydentämiseksi tarvitaan LVGL GUI -sovellustuki. LVGL GUI -sovellus kutsuu käyttöliittymän takaisinkutsutoimintoja ulostulon UI HAL:ssa tapahtumien käsittelemiseksi käyttöliittymänäytöstä. Toisaalta lähtökäyttöliittymä HAL kutsuu API:ita LVGL GUI -sovelluksesta päivittääkseen käyttöliittymän näyttämään tuloksen ja tilan. LVGL GUI -sovelluksen kehitys on suhteellisen itsenäinen ja esitelty osiossa 4.3.

4.1.5 Käynnistä HAL-laitteet ja hallintalaitteet kasvojentunnistusta varten
Päässä käynnistetään käytössä oleva visioalgo HAL ja käyttöliittymälähtö HAL ja niiden johtajat file
lvgl_gui_face_rec_cm7.cpp seuraamalla kehyksen kehitysmuunnoksia alla:

  1. Sisällytä otsikko file liittyvät kahteen HAL-johtajaan lisäämällä koodirivin:
    • #include ” fwk_output_manager.h ”
    • #include "fwk_vision_algo_manager.h"
  2. Ilmoita HAL-laitteet:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. Rekisteröi HAL-laitteet:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
  4. Alusta johtajat:
    • FWK_MANAGER_INIT(VisionAlgoManager, ret);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. Aloita johtajat:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. Määritä esimiehen tehtävien prioriteetti:
    • #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #define OUTPUT_MANAGER_TASK_PRIORITY 1

Lisää kasvotietokantatuki kehyksessä
Rekisteröityihin kasvojen ominaisuustietoihin pääsee käsiksi Flashiin tallennettuun kasvotietokantaan hieman file järjestelmä. Kasvotietokannan tuen lisäämisen vaiheet kuvataan alla.

Lisää ajurit Flash-tallennustilaa varten
Kopioi Flash-käyttöliittymän FlexSPI-ohjain files fsl_flexspi.c ja fsl_flexspi.h sekä tietojen salausohjain files fsl_caam.c ja fsl_caam.h polusta SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ ex:n ohjainkansioonample SW.

Lisää korttitason tuki

  1. Lisää FlexSPI-määritelmät, joita käytetään flash-laitteessa board.h:ssa:
    • #define BOARD_FLEXSPI FLEXSPI1
    • #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. Kopioi operaattorit ja kokoonpanot fileFlash-laitteen s flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h ja sln_flash_ops.h polun alla the smart HMI\coffelash_the_smart HMI\coffe_ample SW.
    • Poista valinta "Sulje resurssit pois rakentamisesta" C/C++ Buildissa > Asetukset, kun olet napsauttanut hiiren kakkospainikkeella files:n nimi ja Kiinteistöjen avaaminen, jotta ne voidaan integroida projektiin.
  3. Muuta mukana tulevaa otsikkoa filenimeä sln_flash_config.h arvoon sln_flash_config_w25q256jvs.h tiedostoissa sln_flash_config.c ja flexspi_nor_flash_ops.h.
  4. Aseta FlexSPI1-kellon lähde file clock_config.c viittaa kahvinkeitinsovellukseen.

Lisää sovitin ja keskitason tuki

  1. Kopioi files sln_flash.c, sln_flash.h, sln_encrypt.c ja sln_encrypt.h sovittimen ajureina file järjestelmä ja sovellus älykkään käyttöliittymän\coffee_machine\cm7\source\ polulta entisen kansiolähteeseenample. Päivitä uusi files:
    • Poista valinta "Sulje resurssit pois rakentamisesta" niiden kohdalla rakentamista varten.
    • Muuta kaikki mukana tuleva otsikko file nimi sln_flash_config.h kohtaan sln_flash_config_w25q256jvs.h.
  2. Kopioi kansio filejärjestelmä, joka sisältää API:t pienille filejärjestelmä ja HAL-ohjain älykkäästä HMI:stä \coffee_machine\cm7\source\ example SW. Ja päivitys uuteen kansioon:
    • Poista valinta "Sulje resurssit pois rakentamisesta" rakennuksesta.
    • Lisää sen sisällyspolku projektiasetuksiin: "${workspace_loc:/${ProjName}/filejärjestelmä}"
    • Muuta mukana tulevaa otsikkoa file nimi sln_flash_config.h muotoon sln_flash_config_w25q256jvs.h ja fica_definition.h osoitteeksi app_config.h file sln_flash_littlefs.h.
  3. Kopioi kansio littlefs, joka sisältää keskiosan – little filejärjestelmä polusta SDK_2_13_0_ MIMXRT1170-EVK\middleware\ entiseenample SW. Ja päivitä uusi kansio:
    • Poista valinta "Sulje resurssit pois rakentamisesta" rakennuksesta.
    • Lisää sen sisällyspolku projektiasetuksiin: "${workspace_loc:/${ProjName}/littlefs}"

Lisää HAL-ajurit 

  • HAL-laitteita on kaksi - file järjestelmä ja kasvotietokanta HAL tukevat tietokannan pääsyominaisuutta ja ne on jo toteutettu kehyksessä ilman muutoksia. Ota ne käyttöön lisäämällä alla olevat määritelmät hakemistoon board_define.h:
    • #define ENABLE_FLASH_DEV_Littlefs
    • #define ENABLE_FACEDB

Ja vaihda kasvotietokannan nimi example: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"

Lisää sovellustason tuki

  1. Päivitä pää file lvgl_gui_face_rec_cm7.cpp:
    • Sisällytä otsikko file liittyvät Flashiin file järjestelmän HAL-hallinta lisäämällä koodirivi: #include "fwk_flash.h"
    • Ilmoita ja rekisteröidy file järjestelmän HAL-laite:
      • HAL_FLASH_DEV_DECLARE(Pienet);
      • HAL_FLASH_DEV_REGISTER(Littlefs, ret);
        Huom: file järjestelmän HAL-laite on rekisteröitävä ennen kuin kaikki laitehallintalaitteet alustetaan funktiossa APP_InitFramework().
    • Soita funktio BOARD_ConfigMPU() sovelluksessa APP_BoardInit() määrittääksesi MPU:n.
  2. Aseta file järjestelmämääritys Flashissa file app_config.h määrittämällä makromääritykset, joita käytetään file sln_flash_littlefs.h:
    • #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #define FICA_FILE_SYS_SIZE (0x280000)

Kokoonpanot
Jotkut Flashiin liittyvät koodit suoritetaan SRAM ITC -alueella riittävän suorituskyvyn takaamiseksi. Kopioi linkittäjämääritykset sisältävät kansion linkkitiedostot polusta smart HMI\coffee_machine\cm7\ example SW.

Ota käyttöön LVGL GUI -sovellus
Kehyskehykseen perustuvan LVGL GUI -sovelluksen kehittäminen kutsuu API:t UI HAL:in tulosteesta ja tarjoaa API:t UI HAL:in tuottamiseen (katso kohta 4.1.3 tuotoksen UI HAL:ista).

LVGL GUI -sovelluksen yksityiskohtainen toteutus riippuu kuitenkin sovelluksen vaatimuksista ja suunnittelusta. GUI-sovellus tässä example on suunniteltu osion 4 alussa kuvatulla tavalla.

Alla on käyttöönottoesittelyt:

  1. Mukautetut koodit on toteutettu custom.c- ja custom.h-tiedostoissa, jotka GUI Guider on antanut GUI Guider -projektin ja sulautetun järjestelmän projektin väliseksi rajapinnaksi.
    •  Lisää uudet funktiot nimeltä gui_xxx() custom.c-tiedostoon saadaksesi seuraavat funktiot:
      • Ulostulokäyttöliittymä HAL ja GUI-sovellus päivittää käyttöliittymä.
      • GUI-sovellus käynnistää tapahtumia kutsumalla käyttöliittymän takaisinkutsutoimintoja UI HAL:sta.
        esimample, uusi funktio gui_event_face_rec_action() kutsuu käyttöliittymän takaisinkutsutoimintoja käsittelemään yhtä kasvojen rekisteröinnin, kasvojentunnistuksen ja käyttäjän poistamisen tapahtumista, jotka käynnistyvät GUI-sovelluksesta, kun vastaavaa painiketta napsautetaan.
        Huomautus: Funktio gui_set_virtual_face() kutsutaan UI HAL:n lähtöön preview tila on otettava käyttöön custom.c:ssä:
    •  Kloonaa funktio gui_set_virtual_face() älykkäästä käyttöliittymästä\coffee_machine\cm4\custom \custom.c.
    •  Muuta widgetin nimi home_img_cameraPreview kohtaan screen_img_camera_preview funktiossa.
    •  Toteuta käyttöliittymän takaisinkutsun toiminnot samalla prototyypillä kaikkiin tulosteen UI HAL-toimintoihin custom.c:n makromääritelmän #ifndef RT_PLATFORM ohjaamana, jotta ne ovat yhteensopivia GUI Guider -projektin kanssa, koska nämä UI HALin tulosteen toiminnot ovat riippuvaisia sulautettu alusta. Custom.c:ssä ne riippuvat GUI-ohjaimen simulaattorista ja ovat riippumattomia sulautetusta alustasta. esimample, kasvojen rekisteröinnin takaisinkutsu toteutetaan alla kuvatulla tavalla käynnissä olevalle GUI Guider -simulaattorille: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; palata; }
      Huom: Katso osion 6 vaiheessa 4.1.3 esitellyn toiminnon sama prototyyppi
      Makromäärittely RT_PLATFORM on asetettu MCUXpresson projektiasetuksiin kuvan 7 mukaisesti:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (14)
    • Ilmoita kaikki funktiot nimeltä UI_xxx_Callback() ja gui_xxx() tiedostossa custom.h ja lisää custom.h, joka sisältyy tiedostoon smart_tlhmi_event_descriptor.h, jotta voit jakaa GUI-sovellusliittymät käyttöliittymän HAL-lähtöön.
  2. GUI-oppaan graafisen käyttöliittymän kehittäminen:
    • Kloonaa kansion kamera esiview joka sisältää GUI Guider -projektiohjelmiston perusohjelmistopaketin lvgl_gui_camera_pre kansiossa gui_guiderview_cm7. Muuta aiheeseen liittyvä nimi camera_preview uudelle exille face_recample.
    • Kopioi yllä oleva päivitetty custom.c ja custom. h uuteen GUI Guider -projektiohjelmistoon.
    •  Avaa uusi face_rec-projekti GUI Guiderissa. Päivitä seuraavasti:
      • Lisää uusi painike nimeltä Poista käyttäjä. Lisää siihen lippu Hidden, jotta painike piilotetaan, kun GUI-sovellus käynnistyy.
      • Lisää koodirivi, joka kutsuu API:n gui_event_face_rec_action() eri tapahtumatunnusparametrilla "Released"-liipaisuun kaikkien Rekisteröinti-, Tunnistus- ja Poista käyttäjä -painikkeiden Tapahtuma-asetuksissa kasvojen rekisteröinti-, kasvojentunnistuksen ja käyttäjän poistamisen tapahtumien käynnistämiseksi. Kuva 8 näyttää koodin rekisteröintipainikkeen tapahtumalle:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (15)
  3. Päivitä luotu koodi GUI Guiderista MCUXpresso-projektiin.
    • Korvaa sisältö MCUXpresso-projektin SW:n luoman kansion kansion kuvia lukuun ottamatta vastaavilla GUI Guider -projektin SW:n luoman kansion sisällöllä.

Huom: Jos haluat lisätietoja yllä tehdyistä muutoksista, katso esimampohjelmisto osoitteessa https://mcuxpresso.nxp.com/appcodehub.

Vahvistukset example projekti

Saadakseen exampOhjelmistopaketti, joka sisältää tämän sovellushuomautuksen resurssit ja työkalut, käy osoitteessa: https://mcuxpresso.nxp.com/appcodehub. Avaa example projekti MCUXpresso IDE:llä. Rakenna ja ohjelmoi .axf file osoitteeseen 0x30000000 ja ohjelmoi resurssisäiliö file camera_preview_resource.bin osoitteeseen 0x30800000.

LVGL GUI kasvojentunnistus example toimii normaalisti seuraavasti:

  • Preview: Kun virta kytketään päälle, kameran tallentamat videovirrat näkyvät tietyllä kameran esikatselualueellaview GUI-näytössä. Tilatarrassa lukee "Preview…”. Katso lisätietoja kuvasta 3. Poista käyttäjä -painike on piilotettu. Kun napsautat painikkeiden ja kuvien ulkopuolella olevaa aluetta, se näyttää esiview tilaan kuten yllä, kun kasvojen rekisteröinti tai tunnistustoiminto on päättynyt.
  • Rekisteröinti:
    • tartup: Kun rekisteröintipainiketta napsautetaan, kasvojen rekisteröinti alkaa. Tilatarra muuttuu näyttämään "Rekisteröinti...", kasvoohjaimen suorakulmio näkyy sinisenä ja edistymispalkki alkaa näyttää edistymistä. Varmista, että käyttäjän kasvot näkyvät sinisessä kasvojenohjaimen suorakulmiossa rekisteröintiä varten.
    • menestystä: Tilatarrassa näkyy “Rekisteröinti…OK” ja rekisteröity käyttäjätunnus. Kasvojenohjaimen suorakulmio muuttuu punaiseksi, jos kasvojen rekisteröinti onnistuu ennen kuin edistyminen näkyy palkissa täysi.
    • Epäonnistuminen -> Aikakatkaisu: Tilatarrassa näkyy "Rekisteröinti… Aikakatkaisu", jos kasvojen rekisteröinti epäonnistuu edelleen, kun edistyminen näkyy palkissa täysi.
    • Epäonnistuminen -> Kopiointi: Tilatarrassa lukee "Rekisteröinti...Epäonnistui", kasvojen ohjauksen suorakulmio muuttuu vihreäksi, jos rekisteröidyt kasvot tunnistetaan ennen kuin edistyminen näkyy palkissa.
  • tunnistus:
    • Käynnistys: Kun tunnistuspainiketta napsautetaan, kasvojentunnistus käynnistyy. Tilatarra muuttuu näyttämään "Tunnistaminen...", kasvojen ohjaimen suorakulmio näkyy sinisenä ja edistymispalkki alkaa näyttää edistymistä. Varmista, että käyttäjän kasvot näkyvät sinisessä kasvojenohjaimen suorakulmiossa rekisteröintiä varten.
    • menestystä: Tilatarrassa lukee ”Tunnistus…OK” ja tunnistetun käyttäjätunnuksen numero, kasvojen ohjaimen suorakulmio muuttuu vihreäksi, jos kasvojentunnistus onnistuu ennen kuin edistyminen näkyy palkissa täysi. Tässä kohdassa tulee näkyviin painike Poista käyttäjä. Se tarkoittaa, että käyttäjä saa poistaa vain, kun se tunnistetaan.
    • vaivoista: Tilatarrassa näkyy "Tunnistus...Aikakatkaisu", jos kasvojentunnistus epäonnistuu edelleen, kun edistyminen näkyy palkissa täysi.
  • Poista käyttäjä: Kun "Poista käyttäjä" -painiketta napsautetaan, sen jälkeen, kun kasvojentunnistus on onnistunut, tilamerkintä muuttuu tekstiksi "Poista käyttäjä...OK", kasvoohjaimen suorakulmio muuttuu siniseksi ja edistyminen näkyy palkissa. Poista käyttäjä -painike on jälleen piilotettu. Tunnistetut kasvot/käyttäjät poistetaan tietokannasta. Tämä tarkoittaa, että näitä kasvoja/käyttäjää ei voida tunnistaa ennen kuin se on rekisteröity uudelleen.

Huomautus asiakirjan lähdekoodista
ExampTässä asiakirjassa näkyvällä koodilla on seuraavat tekijänoikeudet ja BSD-3-lausekelisenssi:

Copyright 2024 NXP Uudelleenjakelu ja käyttö lähde- ja binäärimuodoissa muokattuina tai ilman niitä on sallittua, jos seuraavat ehdot täyttyvät:

  1. Lähdekoodin uudelleenjakelussa on säilytettävä yllä oleva tekijänoikeusilmoitus, tämä ehtoluettelo ja seuraava vastuuvapauslauseke.
  2. Binäärimuodossa tapahtuvissa jakeluissa on esitettävä yllä oleva tekijänoikeusilmoitus, tämä ehtojen luettelo ja seuraava vastuuvapauslauseke dokumentaatiossa ja/tai muussa materiaalissa on toimitettava jakelun mukana.
  3. Tekijänoikeuksien haltijan nimeä tai sen avustajien nimiä ei saa käyttää tästä ohjelmistosta johdettujen tuotteiden tukemiseen tai mainostamiseen ilman erityistä kirjallista lupaa.

TÄMÄN OHJELMISTON TOIMITTAVAT TEKIJÄNOIKEUDEN HALTIJAT JA TUOTTAJAT "SELLAISENAAN" SEKÄ KAIKKI NIMENOMAISET TAI OLUETUT TAKUUT, MUKAAN MUKAAN MUKAAN MUKAAN RAJOITTUMAAN MYYNTIKELPOISUUDEN JA KULKUVAIHTOEHTOJA KOSKEVAT TAKUUT. TEKIJÄNOIKEUDEN HALTIJA TAI TEKIJÄT EIVÄT OLE MISSÄÄN TAPAUKSESSA VASTUUSSA MISTÄÄN SUORISTA, EPÄSUORISTA, SATUNNAISISTA, ERITYISISTÄ, ESIMERKKEJISTÄ TAI VÄLILLISISTÄ VAHINGOISTA (MUKAAN LUKIEN PALVELU, KÄYTTÖ, HYVIEN KORVAUSTEN HANKINTA, MUTTA rajoittumatta TAI VOITOT TAI LIIKETOIMINNAN KESKEYTYS), JOKA JOHTOPÄÄN SOPIMUKSESSA JOHTOPAN SOPIMUKSESTA, TIRAN VASTUUTEORIASTA, TAI vahingonkorvausvastuusta, JOS SYNTYY MITEN TÄMÄN KÄYTTÖÖN POISSA. TÄLLAISEN VAHINGON MAHDOLLISUUS.

Versiohistoria

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

Lakitiedot

Määritelmät
Luonnos — Asiakirjan luonnoksen tila osoittaa, että sisältö on edelleen sisäisen uudelleenkäsittelyn allaview ja se edellyttää muodollista hyväksyntää, mikä voi johtaa muutoksiin tai lisäyksiin. NXP Semiconductors ei anna mitään vakuutuksia tai takuita asiakirjaluonnoksen sisältämien tietojen tarkkuudesta tai täydellisyydestä, eikä se ole vastuussa tällaisten tietojen käytön seurauksista.

Vastuuvapauslauseke

  • Rajoitettu takuu ja vastuu — Tämän asiakirjan tietojen uskotaan olevan tarkkoja ja luotettavia. NXP Semiconductors ei kuitenkaan anna mitään suoraa tai epäsuoraa esitystä tai takuita tällaisten tietojen tarkkuudesta tai täydellisyydestä, eikä se ole vastuussa tällaisten tietojen käytön seurauksista. NXP Semiconductors ei ota vastuuta tämän asiakirjan sisällöstä, jos se on peräisin NXP Semiconductorsin ulkopuolisesta tietolähteestä.
    NXP Semiconductors ei ole missään tapauksessa vastuussa mistään epäsuorista, satunnaisista, rankaisevista, erityisistä tai välillisistä vahingoista (mukaan lukien – rajoituksetta – menetetyt voitot, menetetyt säästöt, liiketoiminnan keskeytys, tuotteiden poistamiseen tai vaihtamiseen liittyvät kulut tai korjausmaksut) tai eivät tällaiset vahingot perustuvat vahingonkorvausvelvollisuuteen (mukaan lukien huolimattomuus), takuuseen, sopimusrikkomukseen tai mihin tahansa muuhun oikeudelliseen teoriaan.
    Huolimatta vahingoista, joita asiakkaalle voi aiheutua mistä tahansa syystä, NXP Semiconductorsin kokonais- ja kumulatiivinen vastuu asiakkaita kohtaan tässä kuvatuista tuotteista on rajoitettu NXP Semiconductorsin kaupallisen myynnin ehtojen ja ehtojen mukaisesti.
  • Oikeus tehdä muutoksia — NXP Semiconductors pidättää oikeuden tehdä muutoksia tässä asiakirjassa julkaistuihin tietoihin, mukaan lukien rajoituksetta tekniset tiedot ja tuotekuvaukset, milloin tahansa ja ilman erillistä ilmoitusta. Tämä asiakirja korvaa ja korvaa kaikki tiedot, jotka on toimitettu ennen tämän julkaisua.
  • Soveltuvuus käyttöön — NXP Semiconductors -tuotteita ei ole suunniteltu, valtuutettu tai taattu soveltuviksi elämää ylläpitävissä, elämänkriittisissä tai turvallisuuden kannalta kriittisissä järjestelmissä tai laitteissa eikä sovelluksissa, joissa NXP Semiconductors -tuotteen vian tai toimintahäiriön voidaan kohtuudella odottaa johtavan henkilövahinko, kuolema tai vakava omaisuus- tai ympäristövahinko. NXP Semiconductors ja sen toimittajat eivät ota vastuuta NXP Semiconductors -tuotteiden sisällyttämisestä ja/tai käytöstä tällaisiin laitteisiin tai sovelluksiin, ja siksi tällainen sisällyttäminen ja/tai käyttö on asiakkaan omalla vastuulla.
  • Sovellukset — Tässä kuvatut sovellukset mille tahansa näistä tuotteista ovat vain havainnollistavia. NXP Semiconductors ei takaa tai takaa, että tällaiset sovellukset soveltuvat määritettyyn käyttöön ilman lisätestausta tai muutoksia.
    Asiakkaat ovat vastuussa NXP Semiconductors -tuotteita käyttävien sovelluksiensa ja tuotteidensa suunnittelusta ja toiminnasta, eikä NXP Semiconductors ota vastuuta mistään avusta sovellusten tai asiakkaan tuotesuunnittelun kanssa. Asiakkaan yksin vastuulla on määrittää, sopiiko NXP Semiconductors -tuote asiakkaan sovelluksiin ja suunniteltuihin tuotteisiin sekä asiakkaan kolmannen osapuolen asiakkaan suunniteltuun sovellukseen ja käyttöön. Asiakkaiden tulee tarjota asianmukaisia ​​suunnittelu- ja käyttöturvatoimia sovelluksiinsa ja tuotteisiinsa liittyvien riskien minimoimiseksi. NXP Semiconductors ei ota mitään vastuuta mistään laiminlyönnistä, vaurioista, kustannuksista tai ongelmista, jotka perustuvat asiakkaan sovellusten tai tuotteiden heikkouksiin tai oletushäiriöihin tai asiakkaan kolmannen osapuolen asiakkaiden sovellukseen tai käyttöön. Asiakas on vastuussa kaikkien tarvittavien testausten tekemisestä asiakkaan sovelluksille ja tuotteille NXP Semiconductors -tuotteita käyttäville tuotteille, jotta vältetään sovellusten ja tuotteiden tai asiakkaan kolmannen osapuolen asiakkaan tai sovelluksen tai käytön oletusarvo. NXP ei ota tässä suhteessa mitään vastuuta.
  • Kaupallisen myynnin ehdot — NXP Semiconductors -tuotteita myydään kaupallisen myynnin yleisten ehtojen mukaisesti, jotka on julkaistu osoitteessa https://www.nxp.com/profile/ehdot, ellei voimassa olevassa kirjallisessa yksittäissopimuksessa ole toisin sovittu. Jos tehdään yksittäinen sopimus, sovelletaan vain kyseisen sopimuksen ehtoja. NXP Semiconductors vastustaa täten nimenomaisesti asiakkaan yleisten ehtojen soveltamista asiakkaan ostamien NXP Semiconductors -tuotteiden osalta.
  • Viennin valvonta — Tämä asiakirja sekä tässä kuvatut tuotteet voivat olla vientivalvontamääräysten alaisia. Vienti saattaa edellyttää toimivaltaisten viranomaisten ennakkolupaa.
  • Soveltuu käytettäväksi muissa kuin autoteollisuuden tuotteissa — Ellei tässä asiakirjassa nimenomaisesti mainita, että tämä tietty NXP Semiconductors -tuote on autokäyttöön tarkoitettu, tuote ei sovellu autokäyttöön. Sitä ei ole hyväksytty eikä testattu autojen testaus- tai sovellusvaatimusten mukaisesti. NXP Semiconductors ei ota vastuuta muiden kuin autoteollisuudelle hyväksyttyjen tuotteiden sisällyttämisestä ja/tai käytöstä autoteollisuuden laitteisiin tai sovelluksiin.
    Jos asiakas käyttää tuotetta suunnitteluun ja käyttöön autosovelluksissa autoteollisuuden teknisten vaatimusten ja standardien mukaisesti, asiakkaan (a) tulee käyttää tuotetta ilman NXP Semiconductorsin takuuta tuotteelle tällaisissa autoteollisuuden sovelluksissa, käytössä ja teknisissä tiedoissa, ja ( b) aina kun asiakas käyttää tuotetta autosovelluksiin, jotka ylittävät NXP Semiconductorsin määritykset, tällaisen käytön tulee tapahtua yksinomaan asiakkaan omalla riskillä, ja (c) asiakas korvaa NXP Semiconductorsin täysin vastuusta, vahingoista tai epäonnistuneista tuotevaatimuksista, jotka johtuvat asiakkaan suunnittelusta ja käytöstä tuote autosovelluksiin NXP Semiconductorsin vakiotakuun ja NXP Semiconductorsin tuotespesifikaatioiden ulkopuolella.
  • Käännökset — Asiakirjan muu kuin englanninkielinen (käännetty) versio, mukaan lukien asiakirjassa olevat oikeudelliset tiedot, on tarkoitettu vain viitteeksi. Englanninkielinen versio on ensisijainen, jos käännetyn ja englanninkielisen version välillä on eroja.
  • Turvallisuus — Asiakas ymmärtää, että kaikki NXP-tuotteet voivat olla tunnistamattomien haavoittuvuuksien alaisia ​​tai ne voivat tukea vakiintuneita tietoturvastandardeja tai -määrityksiä tunnetuin rajoituksin. Asiakas on vastuussa sovellusten ja tuotteiden suunnittelusta ja toiminnasta koko niiden elinkaaren ajan vähentääkseen näiden haavoittuvuuksien vaikutusta asiakkaan sovelluksiin ja tuotteisiin. Asiakkaan vastuu ulottuu myös muihin avoimiin ja/tai patentoituihin teknologioihin, joita NXP-tuotteet tukevat asiakkaan sovelluksissa käytettäväksi. NXP ei ota vastuuta mistään haavoittuvuudesta. Asiakkaan tulee säännöllisesti tarkistaa NXP:n tietoturvapäivitykset ja seurata niitä asianmukaisesti. Asiakkaan tulee valita tuotteet, joissa on turvaominaisuudet, jotka parhaiten vastaavat aiotun sovelluksen sääntöjä, määräyksiä ja standardeja, ja tekee lopulliset suunnittelupäätökset tuotteidensa suhteen ja on yksin vastuussa kaikkien tuotteisiinsa liittyvien lakien, säädösten ja turvallisuuteen liittyvien vaatimusten noudattamisesta riippumatta kaikista NXP:n tarjoamista tiedoista tai tuesta.

NXP:llä on Product Security Incident Response Team (PSIRT) -ryhmä (tavoitettavissa osoitteessa PSIRT@nxp.com), joka hallinnoi NXP-tuotteiden tietoturva-aukkojen tutkintaa, raportointia ja ratkaisujen julkaisua.
NXP BV — NXP BV ei ole toimiva yritys, eikä se jakele tai myy tuotteita.

Tavaramerkit
Huomaa: Kaikki viitatut tuotemerkit, tuotenimet, palvelunimet ja tavaramerkit ovat omistajiensa omaisuutta.

NXP — sanamerkki ja logo ovat NXP BV:n tavaramerkkejä

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 – ovat Arm Limitedin (tai sen tytäryhtiöiden tai tytäryhtiöiden) tavaramerkkejä ja/tai rekisteröityjä tavaramerkkejä Yhdysvalloissa ja/tai muualla. Asiaan liittyvä teknologia voi olla suojattu millä tahansa tai kaikilla patenteilla, tekijänoikeuksilla, malleilla ja liikesalaisuuksilla. Kaikki oikeudet pidätetään.

  • i.MX — on NXP BV:n tavaramerkki
  • J-Link — on SEGGER Microcontroller GmbH:n tavaramerkki.

Microsoft, Azure ja ThreadX ovat Microsoft-yritysryhmän tavaramerkkejä.

Huomaa, että tähän asiakirjaan ja tässä kuvattuihin tuotteisiin liittyvät tärkeät huomautukset on sisällytetty osioon "Lakitiedot".

© 2024 NXP BV
Lisätietoja on osoitteessa: https://www.nxp.com

  • Julkaisupäivä: 19. huhtikuuta 2024
  • Asiakirjan tunniste: AN14263

FAQ

K: Mikä on tämän tuotteen päätarkoitus?
V: Päätarkoituksena on ottaa käyttöön kasvojentunnistustoiminto käyttämällä AI&ML-näköalgoritmimallia yksinkertaisella LVGL-käyttöliittymällä esim.ample SLN-TLHMI-IOT-kortilla.

K: Miten kehittäjät voivat hyötyä tästä sovellushuomautuksesta?
V: Kehittäjät voivat oppia ottamaan kasvojentunnistuksen käyttöön kehyksessä vaihe vaiheelta käyttämällä toimitettua esimampja ymmärtää asiaan liittyvät laitehallintalaitteet, HAL-laitteet ja tapahtumamekanismit.

Asiakirjat / Resurssit

NXP AN14263 Toteuta LVGL GUI -kasvojentunnistus Frameworissa [pdfKäyttöopas
AN14263 Toteuta LVGL GUI -kasvontunnistus kehyksessä, AN14263, toteuta LVGL GUI -kasvojen tunnistus kehyksessä, LVGL GUI -kasvojen tunnistus kehyksessä, kasvojen tunnistus kehyksessä, tunnistus kehyksessä, kehysrakenne

Viitteet

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *