nxp-logo

NXP AN14263 Laksanakan LVGL GUI Face Recognition pada Framewor

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-product

Maklumat Produk

Spesifikasi

  • Nama Produk: LVGL GUI Pengecaman Wajah pada Rangka Kerja
  • Semakan Dokumen: 1 – 19 April 2024
  • Kata kunci: Pengecaman muka, GUI LVGL, Rangka Kerja

Arahan Penggunaan Produk

  1. Berakhirview
    Produk ini membolehkan model algoritma penglihatan AI&ML untuk pengecaman muka pada rangka kerja untuk melaksanakan fungsi pengecaman muka dengan GUI LVGL mudah example pada papan SLN-TLHMI-IOT.
  2. Rangka Kerja Berakhirview
    Perisian penyelesaian direka bentuk mengikut seni bina rangka kerja yang merangkumi pengurus peranti yang bertanggungjawab mengurus peranti, peranti HAL untuk mengabstrakkan butiran asas dan peristiwa untuk komunikasi antara peranti yang berbeza.
  3. Ciri-ciri
    Produk ini membenarkan pelaksanaan fungsi pengecaman muka melalui pra kameraview pada skrin GUI dengan butang untuk mencetuskan pendaftaran muka, pengecaman dan pengalihan keluar. Data muka berdaftar disimpan pada Flash melalui a file sistem.
  4. Kandungan Nota Permohonan
    Nota aplikasi mempersembahkan skrin GUI LVGL dengan pra kameraview dan butang untuk tindakan berkaitan muka. Ia membantu pembangun memahami rangka kerja dan cara melaksanakan pengecaman muka menggunakan bekas yang disediakanample.

Berakhirview

NXP telah melancarkan kit pembangunan penyelesaian bernama SLN-TLHMI-IOT yang memfokuskan pada aplikasi HMI pintar. Ia membolehkan HMI pintar dengan UI penglihatan, suara dan grafik ML dilaksanakan pada satu NXP i.MX RT117H MCU. Berdasarkan SDK, perisian penyelesaian dibina pada reka bentuk yang dipanggil rangka kerja yang menyokong reka bentuk fleksibel dan penyesuaian fungsi penglihatan dan suara. Untuk membantu pengguna menggunakan platform perisian dengan lebih baik, beberapa dokumen asas disediakan, contohnyaample, panduan pengguna pembangunan perisian. Panduan ini memperkenalkan reka bentuk perisian asas dan seni bina aplikasi yang meliputi semua komponen penyelesaian termasuk rangka kerja untuk membantu pembangun dengan lebih mudah dan cekap melaksanakan aplikasi mereka menggunakan SLN-TLHMI-IOT.
Untuk butiran lanjut tentang penyelesaian dan dokumen yang berkaitan, lawati laman web web halaman Penyelesaian HMI Pintar NXP EdgeReady Berdasarkan i.MX RT117H dengan ML Vision, Suara dan UI Grafik. Walau bagaimanapun, masih tidak begitu mudah bagi pembangun untuk melaksanakan aplikasi HMI pintar mereka merujuk kepada panduan asas ini. Satu siri nota aplikasi dirancang untuk membantu mengkaji pembangunan pada rangka kerja langkah demi langkah. Nota aplikasi ini adalah berdasarkan Implement LVGL GUI Camera Praview pada Rangka Kerja (dokumen AN14147). Nota aplikasi ini menerangkan cara mendayakan model algoritma penglihatan AI&ML untuk pengecaman muka pada rangka kerja untuk melaksanakan fungsi pengecaman muka melalui pra kameraview pada skrin GUI dengan GUI LVGL mudah example pada papan SLN-TLHMI-IOT. Dalam nota permohonan, bekasample mempersembahkan skrin GUI LVGL dengan pra kameraview dan beberapa butang untuk mencetuskan pendaftaran muka, pengecaman dan pengalihan keluar. Data muka yang didaftarkan disimpan pada Flash melalui sedikit file sistem.

Pada tahap tinggi, nota permohonan mengandungi kandungan di bawah:

  • Dayakan ciri pengecaman muka pada rangka kerja.
  • Tambah sokongan pangkalan data muka pada rangka kerja melalui file sistem pada Flash.
  • Laksanakan apl GUI LVGL. Melalui pengenalan di atas, dokumen ini membantu pembangun untuk:
  • Fahami rangka kerja dan perisian penyelesaian HMI pintar dengan lebih mendalam.
  • Bangunkan pengecaman muka AI&ML mereka pada rangka kerja dengan apl GUI LVGL.

Rangka kerja tamatview
Perisian penyelesaian direka terutamanya di sekitar penggunaan seni bina rangka kerja yang terdiri daripada beberapa bahagian berbeza:

  • Pengurus peranti – bahagian teras
  • Peranti Lapisan Abstraksi Perkakasan (HAL).
  • Mesej/Peristiwa

Seperti yang ditunjukkan dalam Rajah 1, lebihview daripada mekanisme rangka kerja ialah:

Pengurus peranti bertanggungjawab mengurus peranti yang digunakan oleh sistem. Setiap jenis peranti (input, output dan sebagainya) mempunyai pengurus peranti khusus jenisnya sendiri. Dengan pengurus peranti bermula selepas peranti didaftarkan kepadanya, ia menunggu dan menyemak mesej untuk memindahkan data ke peranti dan pengurus lain selepas memulakan dan memulakan peranti yang didaftarkan. Peranti HAL ditulis di atas kod pemacu peringkat rendah, membantu meningkatkan kefahaman kod dengan mengabstrakkan banyak butiran asas.

Acara ialah satu cara untuk menyampaikan maklumat antara peranti yang berbeza melalui pengurus mereka. Apabila peristiwa dicetuskan, peranti yang mula-mula menerima acara tersebut menyampaikan acara tersebut kepada pengurusnya, kemudian ia memberitahu pengurus lain yang ditetapkan untuk menerima acara tersebut.

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

Reka bentuk seni bina rangka kerja itu berpusat pada tiga matlamat utama:

  1. Kemudahan penggunaan
  2. Fleksibiliti/Kemudahalihan
  3. Prestasi

Rangka kerja ini direka bentuk dengan matlamat untuk mempercepatkan masa untuk memasarkan visi dan aplikasi pembelajaran mesin yang lain. Untuk memastikan masa yang cepat untuk memasarkan, adalah penting bahawa perisian itu sendiri mudah difahami dan diubah suai. Dengan mengingati matlamat ini, seni bina rangka kerja mudah diubah suai tanpa mengehadkan dan tanpa melibatkan kos prestasi.
Untuk butiran lanjut tentang rangka kerja, lihat Panduan Pengguna Pembangunan Perisian Pintar HMI (dokumen MCU-SMHMI-SDUG).

Perpustakaan Grafik Ringan dan Serbaguna (LVGL)
LVGL (Perpustakaan Grafik Ringan dan Serbaguna) ialah perpustakaan grafik percuma dan sumber terbuka yang menyediakan semua yang anda perlukan untuk mencipta GUI terbenam dengan elemen grafik yang mudah digunakan, kesan visual yang cantik dan jejak memori yang rendah.

Pemandu GUI
GUI Guider ialah alat pembangunan antara muka pengguna grafik mesra pengguna daripada NXP yang membolehkan pembangunan pantas paparan berkualiti tinggi dengan perpustakaan grafik LVGL sumber terbuka. Editor drag-and-drop GUI Guider memudahkan anda menggunakan banyak ciri LVGL seperti widget, animasi dan gaya untuk mencipta GUI dengan pengekodan minimum atau tiada langsung.

Dengan klik butang, anda boleh menjalankan aplikasi anda dalam persekitaran simulasi atau mengeksportnya ke projek sasaran. Kod yang dihasilkan daripada GUI Guider boleh ditambah dengan mudah pada projek anda, mempercepatkan proses pembangunan dan membolehkan anda menambah antara muka pengguna terbenam dengan lancar pada aplikasi anda. Panduan GUI adalah percuma untuk digunakan dengan tujuan umum NXP dan MCU silang dan termasuk templat projek terbina dalam untuk beberapa platform yang disokong. Untuk mengetahui lebih lanjut tentang pembangunan LVGL dan GUI pada Panduan GUI, semak Perpustakaan Grafik Ringan dan Serbaguna dan Panduan GUI.

Persekitaran pembangunan

Pertama, sediakan dan sediakan persekitaran perkakasan dan perisian untuk melaksanakan example pada rangka kerja.

Persekitaran perkakasan
Persekitaran perkakasan disediakan untuk mengesahkan bekasample:

  • Kit pembangunan HMI pintar berdasarkan NXP i.MX RT117H (kit SLN_TLHMI_IOT)
  • SEGGER J-Link dengan penyesuai Cortex-M 9-pin dan V7.84a atau versi pemacu yang lebih baharu

Persekitaran perisian
Persekitaran perisian disediakan untuk membangunkan bekasample:

  • MCUXpresso IDE V11.7.0
  • Panduan GUI V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – cthample kod nota aplikasi kedua sebagai perisian asas pembangunan. Untuk butiran, lihat https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 – sebagai sumber kod untuk pembangunan.
  • Perisian SLN-TLHMI-IOT V1.1.2 – kod sumber HMI pintar dikeluarkan pada repositori NXP GitHub sebagai sumber kod untuk pembangunan. Untuk butiran, lihat: GitHub – NXP/mcu-smhmi pada v1.1.2

Untuk butiran tentang perolehan dan persediaan persekitaran perisian, lihat: Bermula dengan SLN-TLHMI-IOT.

Seni bina penglihatan pada rangka kerja

Seni bina penglihatan pada rangka kerja ditunjukkan dalam Rajah 2. Algo penglihatan HAL (OASIS_HAL) mempunyai proses di bawah:

  • Lakukan pendaftaran dan pengiktirafan muka melalui model algoritma penglihatan AI&ML selepas menerima acara berkaitan daripada UI HAL keluaran. Maklumkan hasil inferens daripada model algoritma kepada output UI HAL.
  • Mengakses (tambah, padam…) pangkalan data ciri wajah berdasarkan yang kecil file sistem dengan memanggil API FaceDB HAL selepas menerima peristiwa berkaitan daripada UI HAL output.
  • Minta bingkai video kamera daripada HAL kamera semasa melakukan pendaftaran muka dan pengecaman.

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

Laksanakan pengecaman muka pada rangka kerja

Pengecaman muka GUI LVGL example (example disediakan kemudian) pada rangka kerja dilaksanakan berdasarkan exampkod Laksanakan LVGL GUI Camera Praview pada Rangka Kerja (dokumen AN14147).

Untuk menunjukkan pengecaman muka pada bekasampOleh itu, fungsi asas apl GUI (lihat skrin utama dalam Rajah 3) direka bentuk seperti yang diterangkan di bawah:

  • Apl GUI mencetuskan acara pendaftaran atau pengecaman muka kepada UI HAL output apabila mengklik butang Pendaftaran atau Pengecaman. Dan output UI HAL memberitahu acara penambahan pengguna pada vision algo HAL selepas pendaftaran muka berjaya.
  • Apl GUI mencetuskan peristiwa pemadaman pengguna kepada UI HAL output apabila mengklik butang Padam Pengguna selepas wajah pengguna dikenali.
  • Apl GUI mencetuskan peristiwa menghentikan algo oasis yang berjalan ke UI HAL output apabila mengklik skrin di luar butang dan imej.

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

Sediakan pakej perisian untuk pelaksanaan example.

  • Klonkan perisian asas lvgl_gui_camera_preview_cm7. Tukar nama projek dan utama filenamakan kepada lvgl_gui_face_rec_cm7.
  • Rangka kerja diperlukan untuk dikemas kini dalam perisian kerana kod sumber untuk teras rangka kerja telah mula didedahkan di GitHub dari versi 1.1.2.
  • Gantikan folder rangka kerja dengan salinan V1.1.2 daripada GitHub kecuali untuk files fwk_log.h dan fwk_common.h di bawah inc\ kerana ia telah diubah suai untuk siri nota permohonan. Operasi ditunjukkan dalam Rajah 4:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (11)
  • Padam folder framework_cm7 di bawah kumpulan libs dan alih keluar framework_cm7 perpustakaan dan laluan cariannya yang dikonfigurasikan dalam Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries kerana kod sumber teras disediakan.

Dayakan ciri pengecaman muka pada rangka kerja
Ciri pengecaman muka dibina pada model algoritma penglihatan ML yang disediakan sebagai perpustakaan statik - perpustakaan masa jalan lite oasis oleh NXP. Perpustakaan ialah perpustakaan AI yang kecil, sangat cekap, disesuaikan dan dioptimumkan. Model ini termasuk pengesanan muka, pengecaman muka, pengesanan kaca dan pengesanan keaktifan. Ia terutamanya menyediakan API OASISLT_run_extended() untuk menjalankan saluran paip pengecaman muka sambil mengemas kini keputusan kepada pemanggil melalui panggilan balik acara, dan menambah/kemas kini/padam muka dalam pangkalan data melalui panggilan balik pangkalan data muka selepas menentukan maklumat bingkai sumber, panggilan balik dan memori pool yang digunakan oleh pustaka dengan memanggil API OASISLT_init() yang lain pada permulaan. Panggilan API dan fungsi panggil balik dilaksanakan dalam visi algo HAL rangka kerja.

Tambah perpustakaan model algo penglihatan

  1. Salin folder oasis yang mengandungi perpustakaan dan pengepala berkaitan file daripada smart HMI\coffee_machine\cm7\libs\ ke dalam folder libs bekasample SW.
  2. Tambahkan laluan carian pengepala file dalam Project > Properties > C/C++ Build > tetapan > Tetapan Alat > MCU C compiler > Includes dan MCU C++ compiler > Termasuk: “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. Tambahkan lib dan laluan cariannya pada Project > Properties > C/C++ Build > tetapan > MCU C+ + Linker > Libraries: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” dan definisi makro kepada dayakan ciri pada Project > Properties > C/C++ Build > tetapan > Tetapan Alat > MCU C compiler > Preprocessor dan MCU C++ compiler > Preprocessor: SMART_TLHMI_2D

Dayakan penglihatan algo HAL
HAL algo penglihatan memacu model algo penglihatan untuk berfungsi dan bertindak balas keputusan kepada HAL keluaran UI selepas menerima peristiwa daripadanya.

Untuk mendayakannya, klon pemacu HAL serupa yang sedia ada file di mana fungsi di bawah dilaksanakan:

  • Laksanakan panggilan balik operasi pangkalan data muka dan pengendalian acara.
  • Dorong algo visi untuk berfungsi dengan memanggil API perpustakaan oasis.
  • Akses pangkalan data muka pengguna dan pangkalan data aplikasi (ia tidak diperlukan dalam example).
  • Terima acara daripada dan hantar hasil ke output UI HAL.

Tugas utama untuk melaksanakan HAL untuk bekasampialah:

  • Klon pemacu HAL serupa yang wujud file dan menukar nama yang berkaitan.
  • Alih keluar kod yang berkaitan dengan operasi data apl.
  • Kemas kini takrifan dan fungsi untuk mengendalikan acara daripada UI HAL keluaran setiap bekasampreka bentuk.
  • Tambahkan konfigurasi yang diperlukan dalam permulaan oasis.

Langkah terperinci adalah seperti di bawah:

  1. Klon hal_vision_algo_oasis_coffeemachine.c. Tukar filenamakan kepada hal_vision_algo_oasis_guifacerec.c. Dan gantikan semua rentetan CoffeeMachine dengan GUIFaceRec dalam file.
  2. Alih keluar kod yang mengandungi rentetan coffeedb (bukan sensitif huruf besar-besaran) yang berkaitan dengan pangkalan data apl, contohnyaample, #include hal_sln_coffeedb.h.
  3. Ubah suai fungsi HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() untuk mengendalikan acara daripada UI HAL output.
    • Tukar definisi acara kEventFaceRecId_RegisterCoffeeSelection kepada kEventFaceRecId_RegisterUserFace dan rentetan struktur regCoffeeSelection kepada regGUIFaceRec untuk pengendalian acara untuk menambah data ciri wajah baharu pada pangkalan data.
    • Untuk menunjukkan proses standard tindakan pengecaman muka dalam bekasample, ubah suai pengendalian dalam kes kEventFaceRecID_OasisSetState dengan takrifan keadaan:
      • kOASISLiteState
      • Pendaftaran kOASISLiteState
      • Pengiktirafan kOASISLiteState
      • Berhenti
  4. Tambah dan ubah suai takrifan peristiwa yang dinyatakan dalam langkah di atas.
    • Salin pengepala file smart_tlhmi_event_descriptor.h daripada smart HMI\coffee_machine \cm7\source\event_handlers\ ke dalam sumber folder bekasample SW. Kemas kini file seperti di bawah:
    • Tukar definisi acara kEventFaceRecId_RegisterCoffeeSelection kepada kEventFaceRecId_RegisterUserFace dalam jenis enum _event_smart_tlhmi_id dan rentetan struktur regCoffeeSelection kepada regGUIFaceRec dalam struct _event_smart_tlhmi. Jadi, tukar struct register_coffee_selection_event_t untuk regCoffeeSelection kepada register_gui_facerec_event_t.
    • Padamkan kandungan lain yang digunakan untuk apl mesin kopi, contohnyaampiaitu, baris kod tentang suara: #include “hal_event_descriptor_voice.h”.
    • Tambahkan jenis kOASISLiteState_Stopped dan kOASISLiteState_Running kepada jenis enum oasis_lite_state_t dalam hal_vision_algo.h di bawah framework>hal>vision dalam projek seperti di bawah:
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • Berlari, kOASISLiteState
      • Berhenti, kOASISLiteState
      • pengiktirafan,
      • kOASISLiteState
      • Pendaftaran, kOASISLiteState
      • Batal Pendaftaran, kOASISLiteState
      • Pendaftaran Jauh, kOASISLiteState
      • Kira
    • Gunakan struct oasis_lite_state_t yang dikemas kini di atas untuk memperhalusi struct oasis_state_event_t dalam hal_event_descriptor_face_rec.h di bawah framework>hal>vision dalam projek seperti di bawah: typedef struct _oasis_state_event_t { keadaan oasis_lite_state_t; } oasis_state_event_t;
  5. Tukar semua kEventInfo_Remote kepada kEventInfo_Local untuk menghantar acara daripada vision algo HAL kepada HAL lain yang berjalan pada teras yang sama seperti teras tunggal dan bukannya dwi-teras digunakan dalam bekasample.
  6. Tambah dan ubah suai konfigurasi di bawah untuk permulaan oasis dalam OASISLT_init():
    • Tambahkan takrifan makro dan bahagian memori untuk bingkai video dalam board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
      • #define OASIS_RGB_FRAME_HEIGHT 600
      • #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
      • #define OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
      • #define AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
      • __attribute__((bahagian(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __attribute__((aligned(alignbait)))
    • Konfigurasi penugasan memori ke bahagian memori di atas fb_sh_mem pada Project > Properties > C/C++ Build > MCU Settings yang ditunjukkan dalam Rajah 5:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (12)
    • Isytiharkan pembolehubah global g_DTCOPBuf dalam lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • Teruskan menambah takrifan yang digunakan dalam pembolehubah di atas:
    • Tentukan bahagian di atas dalam board_define.h:
      • #define AT_NONCACCHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
      • atribut__((bahagian(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • atribut__((diselaraskan(alignbait)))
    • Sertakan pengepala file hal_vision_algo.h mengandungi takrifan makro DTC_OPTIMIZE_BUFFER_SIZE dalam app_config.h disertakan dalam lvgl_gui_face_rec_cm7.cpp.
  7. Tetapkan pembolehubah s_debugOption kepada benar untuk menunjukkan status kemajuan pada pengecaman muka.
  8. Tambahkan laluan carian pengepala files visi HAL pada Project > Properties >C/C++ Build > tetapan > Tetapan Alat > MCU C compiler > Includes dan MCU C++ compiler > Termasuk: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. Tambahkan takrifan di bawah untuk mendayakan vision algo HAL dalam board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

Dayakan output UI HAL
UI HAL keluaran memberitahu peristiwa kepada HAL algo penglihatan dan bertindak balas kepada hasil inferens daripada HAL algo penglihatan. Dengan apl GUI, peristiwa biasanya dicetuskan oleh apl dan hasilnya ditunjukkan pada apl.

Untuk mendayakannya, klon pemacu HAL serupa yang sedia ada file di mana secara amnya fungsi di bawah dilaksanakan:

  • Maklumkan peristiwa untuk pengecaman muka dan akses pangkalan data.
  • Laksanakan panggilan balik untuk apl GUI untuk mencetuskan peristiwa.
  • Mengendalikan keputusan inferens daripada modul algo penglihatan.
  • Tunjukkan proses dan hasil pengendalian acara pada UI oleh bar kemajuan yang dikawal dengan pemasa dan segi empat tepat panduan muka.

Tugas utama untuk melaksanakan HAL untuk bekasampyang digunakan dalam dokumen ini ialah:

  • Klon pemacu HAL serupa yang wujud file dan menukar nama yang berkaitan.
  • Alih keluar kod yang berkaitan dengan apl.
  • Kemas kini fungsi untuk pemberitahuan acara dan respons hasil bagi setiap bekasampreka bentuk.
  • Tambahkan panggilan balik untuk apl GUI untuk mencetuskan acara.

Langkah terperinci adalah seperti di bawah:

  1. Klon hal_output_ui_coffee_machine.c. Tukar filenamakan kepada hal_ output_ui_guifacerec.c.
  2. Gantikan semua rentetan CoffeeMachine dengan GUIFaceRec dalam file.
  3. Alih keluar kod yang berkaitan dengan aplikasi - mesin kopi.
    • Alih keluar fungsi WakeUp() dan _StandBy() dan kod yang berkaitan (boleh mencari rentetan wake_up dan standby untuknya).
    • Keluarkan praview acara mod mengendalikan kod berkaitan dalam HAL_OutputDev_UiGUIFaceRec_Input Notify().
    • Alih keluar fungsi UI_xxx_Callback() dan kod yang mengandungi rentetan gui_ dan skrin yang berkaitan dengan GUI mesin kopi kecuali gui_set_virtual_face() untuk praview ciri mod.
    • Alih keluar semua kod yang terlibat dengan pembolehubah s_IsWaitingAnotherSelection dan s_IsWaitingRegisterSelection yang berkaitan dengan apl mesin kopi.
    • Alih keluar kod yang berkaitan dengan suara, audio dan bahasa. Untuk example:
      • #include “hal_voice_algo_asr_local.h”,
      • #include “hal_event_descriptor_voice.h”
  4. Untuk pemberitahuan pelbagai acara, laksanakan fungsi baharu _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), dan DeregisterGUIFaceRec() merujuk kepada fungsi _StopFaceRec(), _RegisterCoffeeSelection(), dan Deregister()CoffeeRec() merujuk kepada fungsi _StopFaceRec(), _RegisterCoffeeSelection(), dan Deregister()CoffeeSelection.
    • _OutputManagerNotify() melaksanakan fungsi output acara asas untuk menghantar acara ke HAL algo visi. Fungsi di bawah memanggilnya untuk menghantar acara mereka sendiri.
    • _SetFaceRec() menghantar acara kEventFaceRecID_OasisSetState untuk mencetuskan algo penglihatan untuk pendaftaran muka, pengecaman dan menghentikan algo.
    • _RegisterGUIFaceRec() menghantar acara kEventFaceRecId_RegisterGUIFaceRec yang ditakrifkan dalam smart_tlhmi_event_descriptor.h untuk menambah data ciri wajah pada pangkalan data apabila pendaftaran OK.
    • DeregisterGUIFaceRec() menghantar acara kEventFaceRecID_DelUser untuk memadam data ciri wajah daripada pangkalan data apabila lulus pengecaman muka.
  5. Kemas kini kod untuk mengambil tindakan yang sepadan termasuk muat semula GUI dengan memanggil API daripada apl LVGL GUI untuk keputusan inferens pendaftaran muka dan pengecaman dalam fungsi _InferComplete_Vision() setiap bekasampreka bentuk le. Untuk example, apabila pendaftaran muka berjaya,
    • Berhenti menunjukkan kemajuan dengan memanggil _FaceRecProcess_Stop();
    • Hentikan pendaftaran muka dengan memanggil _SetFaceRec(kOASISLiteState_Stopped);
    • Tunjukkan hasil yang berjaya pada GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Daftarkan data muka ke pangkalan data: _RegisterUserFace(s_UserId);
  6. Tambah fungsi panggil balik UI untuk mengendalikan acara: praview, pendaftaran muka, pengecaman dan pemadaman pengguna yang dicetuskan daripada GUI. Untuk example, panggilan balik pendaftaran muka: batal UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • Dan tambahkan fungsi _FaceRecProcess_Start() dan _FaceRecProcess_Stop() untuk menunjukkan kemajuan dan status dalam acara dan keputusan yang berbeza.
    • Kemas kini pemasa fungsi panggil balik ISR _SessionTimer_Callback() untuk mengendalikan kes tamat masa dengan memanggil: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. Tambahkan takrifan di bawah untuk mendayakan output UI HAL dalam board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

Notis:
Untuk mempersembahkan ciri pengecaman muka dengan lebih baik, kekalkan fungsi untuk menunjukkan proses dan hasil pengecaman muka dalam UI HAL keluaran. Fungsi tersebut diterangkan seperti di bawah

  • Segi empat tepat panduan muka menunjukkan biru, dan bar kemajuan menunjukkan kemajuan apabila memulakan pendaftaran atau pengecaman muka.
  • Segi empat tepat panduan muka menunjukkan merah apabila pendaftaran muka berjaya.
  • Segi empat tepat panduan muka menunjukkan hijau apabila pengecaman muka berjaya.
  • Segi empat tepat panduan muka kekal biru dan bar kemajuan menunjukkan kemajuan penuh apabila tindakan tidak berjaya selepas tamat tempoh pemasa. Pada ketika itu, hentikan pendaftaran atau pengecaman muka.

Bar kemajuan dan segi empat tepat panduan muka dibentangkan sebagai ikon yang dibina ke dalam binari sumber file untuk diprogramkan ke dalam Flash. Penunjuk kepada data ikon pada SDRAM disediakan dalam fungsi LoadIcons(APP_ICONS_BASE) yang dipanggil pada permulaan peranti UI HAL output dalam UI HAL output. Ia mesti melaksanakan sokongan ikon untuk fungsi tersebut.

Laksanakan sokongan ikon

  1. Bina sumber yang menggabungkan ikon dengan imej yang digunakan dalam apl LVGL GUI:
    • Klonkan empat pengepala ikon files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h dan virtual_face_red_420x426.h daripada smart HMI
      \coffee machine\resource\icons\ kepada ikon folder baharu di bawah folder sumber bekasample SW.
    • Tambahkan laluan carian untuk empat ikon files dalam camera_preview_resource.txt file dalam folder sumber, contohnyaample: icon ../resource/icons/process_bar_240x14.h
    • Laksanakan camera_preview_resource_build.bat untuk membina sumber imej dan ikon untuk menjana tong file kamera_praview_resource.bin dan maklumat file resource_information_table.txt (Lihat Rajah 6).NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (13)
  2. Tentukan alamat mula pada SDRAM dan saiz ikon dalam app_config.h. Alamat bermula di sebelah imej apl GUI. Saiz dijana dalam maklumat file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. Kemas kini saiz yang ditetapkan bagi bahagian memori bernama res_sh_mem kepada 0x200000 dengan mentakrifkannya semula dalam app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 dan tetapan yang sepadan dalam Project > Properties > C/C++ Build > tetapan MCU.
  4. Tambahkan saiz ikon kepada jumlah saiz sumber yang dimuatkan daripada Flash ke SDRAM dalam fungsi APP_LoadResource() dalam bahagian utama file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

Notis: Untuk melengkapkan ciri pengecaman muka, sokongan apl LVGL GUI diperlukan. Fungsi panggil balik UI dalam UI HAL output dipanggil oleh apl LVGL GUI untuk mengendalikan acara daripada skrin UI. Sebaliknya, UI output HAL memanggil API daripada apl LVGL GUI untuk mengemas kini UI untuk menunjukkan hasil dan status. Pembangunan apl LVGL GUI adalah agak bebas dan diperkenalkan dalam Bahagian 4.3.

4.1.5 Mulakan peranti dan pengurus HAL untuk pengecaman muka
Visi yang didayakan algo HAL dan UI keluaran HAL dan pengurus mereka dimulakan di bahagian utama file
lvgl_gui_face_rec_cm7.cpp berikutan penukaran pembangunan pada rangka kerja seperti di bawah:

  1. Sertakan pengepala file berkaitan dengan dua pengurus HAL dengan menambahkan baris kod:
    • #include ” fwk_output_manager.h “
    • #include “fwk_vision_algo_manager.h”
  2. Isytiharkan peranti HAL:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. Daftar peranti HAL:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
  4. Mulakan pengurus:
    • FWK_MANAGER_INIT(VisionAlgoManager, ret);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. Mulakan pengurus:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. Tentukan keutamaan tugas pengurus:
    • #define VISI_ALGO_PENGURUS_TUGASAN_KEUTAMAAN 3
    • #define OUTPUT_MANAGER_TUGAS_PRIORITY 1

Tambah sokongan pangkalan data muka pada rangka kerja
Data ciri wajah yang didaftarkan diakses dalam pangkalan data wajah yang disimpan pada Flash melalui sedikit file sistem. Langkah-langkah untuk menambah sokongan pangkalan data wajah diterangkan di bawah.

Tambah pemacu untuk storan Flash
Salin antara muka Flash pemacu FlexSPI files fsl_flexspi.c dan fsl_flexspi.h, dan pemacu penyulitan data files fsl_caam.c dan fsl_caam.h dari laluan SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ ke folder pemacu bekasample SW.

Tambah sokongan peringkat papan

  1. Tambahkan takrifan FlexSPI yang digunakan untuk peranti Flash pada papan dalam papan.h:
    • #takrifkan BOARD_FLEXSPI FLEXSPI1
    • #takrifkan BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #takrifkan BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. Salin operator dan konfigurasi files daripada peranti Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, dansln_flash_ops.h di bawah laluan smart HMI\coffee_machine\cm7\source to\sourcesample SW.
    • Nyahtanda "Kecualikan sumber daripada binaan" dalam C/C++ Build > Settings selepas mengklik kanan pada files' dan membuka Properties untuk membolehkannya dibina ke dalam projek.
  3. Tukar pengepala yang disertakan filenamakan sln_flash_config.h kepada sln_flash_config_w25q256jvs.h dalam sln_flash_config.c dan flexspi_nor_flash_ops.h.
  4. Tetapkan sumber jam FlexSPI1 dalam file clock_config.c merujuk kepada apl mesin kopi.

Tambah penyesuai dan sokongan peringkat pertengahan

  1. Salin files sln_flash.c, sln_flash.h, sln_encrypt.c dan sln_encrypt.h sebagai pemacu penyesuai untuk file sistem dan aplikasi dari laluan HMI pintar\coffee_machine\cm7\source\ ke sumber folder bekasample. Kemas kini yang baharu files:
    • Nyahtanda "Kecualikan sumber daripada binaan" pada mereka untuk membina.
    • Tukar semua pengepala yang disertakan file namakan sln_flash_config.h kepada sln_flash_config_w25q256jvs.h.
  2. Salin folder filesistem yang mengandungi API untuk si kecil filesistem dan pemacu HAL daripada HMI pintar \coffee_machine\cm7\source\ kepada bekasample SW. Dan kemas kini untuk folder baharu:
    • Nyahtanda "Kecualikan sumber daripada binaan" padanya untuk membina.
    • Tambahkan laluan sertakan untuknya dalam tetapan projek: “${workspace_loc:/${ProjName}/filesistem}”
    • Tukar pengepala yang disertakan file namakan sln_flash_config.h kepada sln_flash_config_w25q256jvs.h dan fica_definition.h kepada app_config.h dalam file sln_flash_littlefs.h.
  3. Salin folder littlefs yang mengandungi perkakas tengah – sedikit filesistem daripada laluan SDK_2_13_0_ MIMXRT1170-EVK\middleware\ kepada bekasample SW. Dan kemas kini folder baharu:
    • Nyahtanda "Kecualikan sumber daripada binaan" padanya untuk membina.
    • Tambahkan laluan sertakan untuknya dalam tetapan projek: “${workspace_loc:/${ProjName}/littlefs}”

Tambah pemacu HAL 

  • Terdapat dua peranti HAL - file sistem dan pangkalan data muka HAL disokong untuk ciri capaian pangkalan data dan ia telah pun dilaksanakan dalam rangka kerja tanpa sebarang perubahan. Dayakannya dengan menambahkan takrifan di bawah dalam board_define.h:
    • #define ENABLE_FLASH_DEV_Littlefs
    • #define ENABLE_FACEDB

Dan tukar nama pangkalan data muka untuk bekasample: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"

Tambahkan sokongan peringkat apl

  1. Kemas kini utama file lvgl_gui_face_rec_cm7.cpp:
    • Sertakan pengepala file berkaitan dengan Flash file pengurus HAL sistem dengan menambah baris kod: #include “fwk_flash.h”
    • Istihar dan daftar file peranti HAL sistem:
      • HAL_FLASH_DEV_DECLARE(Littlefs);
      • HAL_FLASH_DEV_REGISTER(Littlefs, ret);
        Nota: The file peranti HAL sistem mesti didaftarkan sebelum semua pengurus peranti dimulakan dalam fungsi APP_InitFramework().
    • Panggil fungsi BOARD_ConfigMPU() dalam APP_BoardInit() untuk mengkonfigurasi MPU.
  2. Tetapkan file tugasan sistem pada Flash dalam file app_config.h dengan mentakrifkan takrifan makro yang digunakan dalam file sln_flash_littlefs.h:
    • #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #define FICA_FILE_SYS_SIZE (0x280000)

Konfigurasi
Beberapa kod berkaitan Flash dilaksanakan dalam kawasan SRAM ITC untuk prestasi yang mencukupi. Salin skrip pautan folder yang mengandungi konfigurasi pemaut dari laluan pintar HMI\coffee_machine\cm7\ ke bekasample SW.

Laksanakan apl GUI LVGL
Pembangunan apl GUI LVGL berdasarkan rangka kerja memanggil API daripada output UI HAL dan menyediakan API untuk mengeluarkan UI HAL (Lihat Bahagian 4.1.3 untuk pelaksanaan output UI HAL).

Walau bagaimanapun, pelaksanaan terperinci apl GUI LVGL bergantung pada keperluan dan reka bentuk aplikasi. Apl GUI dalam bekas iniample direka bentuk seperti yang diterangkan pada permulaan bahagian Bahagian 4.

Berikut ialah pengenalan pelaksanaan:

  1. Kod tersuai dilaksanakan dalam custom.c dan custom.h yang diberikan oleh GUI Guider sebagai antara muka antara projek GUI Guider dan projek sistem terbenam.
    •  Tambah fungsi baharu bernama gui_xxx() dalam custom.c untuk mencapai fungsi di bawah:
      • Untuk keluaran UI HAL dan apl GUI mengemas kini UI.
      • Untuk apl GUI mencetuskan peristiwa dengan memanggil fungsi panggil balik UI daripada output UI HAL.
        Untuk exampOleh itu, fungsi baharu gui_event_face_rec_action() memanggil fungsi panggil balik UI untuk mengendalikan salah satu peristiwa pendaftaran muka, pengecaman muka dan pemadaman pengguna yang dicetuskan daripada apl GUI apabila butang berkaitan diklik.
        Nota: Fungsi gui_set_virtual_face() dipanggil dalam output UI HAL untuk praview mod perlu dilaksanakan dalam custom.c:
    •  Fungsi klon gui_set_virtual_face() daripada smart HMI\coffee_machine\cm4\custom \custom.c.
    •  Tukar nama widget home_img_cameraPreview ke screen_img_camera_preview dalam fungsi.
    •  Laksanakan fungsi panggil balik UI dengan prototaip yang sama kepada semua yang dalam output UI HAL di bawah kawalan takrifan makro #ifndef RT_PLATFORM dalam custom.c kerana serasi dengan projek GUI Guider kerana fungsi ini dalam output UI HAL bergantung dengan platform terbenam. Dalam custom.c, mereka bergantung pada simulator pada pemandu GUI dan bebas kepada platform terbenam. Untuk exampOleh itu, panggilan balik pendaftaran muka dilaksanakan seperti di bawah untuk simulator Pemandu GUI yang berjalan: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = palsu; kembali; }
      Nota: Rujuk prototaip fungsi yang sama yang diperkenalkan dalam langkah 6 Bahagian 4.1.3
      Definisi makro RT_PLATFORM ditetapkan pada tetapan projek MCUXpresso seperti ditunjukkan dalam Rajah 7:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (14)
    • Isytiharkan semua fungsi yang dinamakan UI_xxx_Callback() dan gui_xxx() dalam custom.h dan tambah custom.h yang disertakan dalam smart_tlhmi_event_descriptor.h untuk berkongsi API GUI kepada UI output HAL.
  2. Membangunkan GUI pada GUI Guider:
    • Klon kamera folder praview mengandungi perisian projek GUI Guider dalam folder gui_guider dalam pakej perisian asas lvgl_gui_camera_preview_cm7. Tukar nama berkaitan camera_preview untuk face_rec untuk bekas baruample.
    • Salin custom.c dan custom yang dikemas kini di atas. h kepada perisian projek GUI Guider baharu.
    •  Buka projek face_rec baharu pada GUI Guider. Kemas kini seperti di bawah:
      • Tambah butang baharu berlabel Padam Pengguna. Tambahkan bendera Tersembunyi padanya supaya butang akan disembunyikan apabila apl GUI dimulakan.
      • Tambahkan baris kod untuk memanggil API gui_event_face_rec_action() dengan parameter ID peristiwa yang berbeza pada pencetus "Dikeluarkan" dalam Tetapan Acara bagi semua butang Pendaftaran, Pengecaman dan Padam Pengguna untuk mencetuskan peristiwa pendaftaran muka, pengecaman muka dan pemadaman pengguna. Rajah 8 menunjukkan kod untuk acara butang Pendaftaran:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (15)
  3. Kemas kini kod yang dijana daripada GUI Guider kepada projek MCUXpresso.
    • Gantikan kandungan kecuali untuk imej folder dalam folder yang dijana projek MCUXpresso SW dengan yang sepadan dalam folder yang dihasilkan oleh projek Pemandu GUI SW.

Nota: Untuk butiran lanjut tentang pengubahsuaian yang diperkenalkan di atas, semak exampperisian le di https://mcuxpresso.nxp.com/appcodehub.

Pengesahan dengan bekasampprojek itu

Untuk mendapatkan bekasamppakej perisian yang mengandungi sumber dan alatan untuk nota aplikasi ini, lawati: https://mcuxpresso.nxp.com/appcodehub. Buka bekasampprojek di MCUXpresso IDE. Bina dan atur cara .axf file ke alamat 0x30000000 dan programkan tong sumber file kamera_praview_resource.bin ke alamat 0x30800000.

Pengecaman muka GUI LVGL example berfungsi seperti biasa seperti di bawah:

  • Praview: Dengan kuasa meningkat, strim video yang ditangkap oleh kamera ditunjukkan pada kawasan khusus pra kameraview pada skrin GUI. Label status memaparkan "Praview…”. Untuk butiran, lihat Rajah 3. Butang Padam Pengguna disembunyikan. Apabila mengklik kawasan di luar butang dan imej, ia menunjukkan praview nyatakan seperti di atas selepas pendaftaran muka atau tindakan pengecaman tamat.
  • Pendaftaran:
    • tartup: Apabila butang Pendaftaran diklik, pendaftaran muka bermula. Label status berubah untuk memaparkan "Pendaftaran...", segi empat tepat panduan muka menunjukkan biru, dan bar kemajuan mula menunjukkan kemajuan. Pastikan muka pengguna ditunjukkan ke dalam segi empat tepat panduan muka biru untuk pendaftaran.
    • kejayaan: Label status menunjukkan “Pendaftaran…OK” dan nombor ID pengguna berdaftar, segi empat tepat panduan muka menjadi merah jika pendaftaran muka berjaya sebelum kemajuan menunjukkan penuh pada bar.
    • Kegagalan -> Tamat masa: Label status menunjukkan “Pendaftaran…Tamat masa” jika pendaftaran muka masih gagal apabila kemajuan menunjukkan penuh pada bar.
    • Kegagalan -> Penduaan: Label status menunjukkan "Pendaftaran...Gagal", segi empat tepat panduan muka menjadi hijau jika wajah berdaftar dikenali sebelum kemajuan menunjukkan penuh pada bar.
  • ecognition:
    • Permulaan: Apabila butang Pengecaman diklik, pengecaman muka bermula. Label status bertukar kepada memaparkan "Pengiktirafan...", segi empat tepat panduan muka menunjukkan biru, dan bar kemajuan mula menunjukkan kemajuan. Pastikan muka pengguna ditunjukkan ke dalam segi empat tepat panduan muka biru untuk pendaftaran.
    • kejayaan: Label status menunjukkan “Pengiktirafan…OK” dan nombor ID pengguna yang dikenali, segi empat tepat panduan muka menjadi hijau jika pengecaman muka berjaya sebelum kemajuan menunjukkan penuh pada bar. Pada ketika itu, butang Padam Pengguna muncul. Ini bermakna bahawa pengguna dibenarkan untuk dipadamkan hanya apabila ia dikenali.
    • ailure: Label status menunjukkan “Pengiktirafan…Masa tamat” jika pengecaman muka masih gagal apabila kemajuan menunjukkan penuh pada bar.
  • Padam Pengguna: Apabila butang “Padam Pengguna” diklik, selepas pengecaman muka berjaya, label status berubah untuk memaparkan “Padam Pengguna…OK” dengan segi empat tepat panduan muka menjadi biru dan kemajuan menunjukkan penuh pada bar. Butang Padam Pengguna disembunyikan lagi. Wajah/pengguna yang dikenali dipadamkan daripada pangkalan data. Maksudnya muka/pengguna ini tidak boleh dikenali sehingga didaftarkan semula.

Nota tentang kod sumber dalam dokumen
ExampKod yang ditunjukkan dalam dokumen ini mempunyai hak cipta dan lesen BSD-3-Clause berikut:

Hak Cipta 2024 Pengagihan semula NXP dan penggunaan dalam bentuk sumber dan binari, dengan atau tanpa pengubahsuaian, dibenarkan dengan syarat syarat berikut dipenuhi:

  1. Pengagihan semula kod sumber mesti mengekalkan notis hak cipta di atas, senarai syarat ini dan penafian berikut.
  2. Pengedaran semula dalam bentuk binari mesti mengeluarkan semula notis hak cipta di atas, senarai syarat ini dan penafian berikut dalam dokumentasi dan/atau bahan lain mesti disediakan bersama pengedaran.
  3. Nama pemegang hak cipta mahupun nama penyumbangnya tidak boleh digunakan untuk menyokong atau mempromosikan produk yang diperoleh daripada perisian ini tanpa kebenaran bertulis khusus terlebih dahulu.

PERISIAN INI DISEDIAKAN OLEH PEMEGANG HAK CIPTA DAN PENYUMBANG “SEBAGAIMANA ADANYA” DAN MANA-MANA ​​WARANTI NYATA ATAU TERSIRAT, TERMASUK, TETAPI TIDAK TERHAD KEPADA, WARANTI TERSIRAT KEBOLEHDAGANGAN DAN KESESUAIAN UNTUK TUJUAN TERTENTU. PEMEGANG HAK CIPTA ATAU PENYUMBANG TIDAK AKAN BERTANGGUNGJAWAB KE ATAS SEBARANG LANGSUNG, TIDAK LANGSUNG, SAMPINGAN, KHAS, TELADAN ATAU KEROSAKAN AKIBAT (TERMASUK, TETAPI TIDAK TERHAD KEPADA, PEROLEHAN BARANG PENGGANTI, PERKHIDMATAN; DATA, PERKHIDMATAN; PERKHIDMATAN; ATAU GANGGUAN PERNIAGAAN) WALAU CARA CARANYA DAN ATAS MANA-MANA ​​TEORI LIABILITI, SAMA ADA DALAM KONTRAK, LIABILITI KETAT ATAU TORT (TERMASUK KECUAIAN ATAU LAIN-LAIN) YANG TIMBUL DALAM APA-APA CARA KELUAR DARI PENGGUNAAN PERISIAN INI, WALAUPUN DAHSYAT.

Sejarah semakan

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

Maklumat undang-undang

Definisi
Draf — Status draf pada dokumen menunjukkan bahawa kandungan masih di bawah semula dalamanview dan tertakluk kepada kelulusan rasmi, yang mungkin mengakibatkan pengubahsuaian atau penambahan. Semikonduktor NXP tidak memberikan sebarang representasi atau jaminan tentang ketepatan atau kesempurnaan maklumat yang disertakan dalam versi draf dokumen dan tidak akan bertanggungjawab ke atas akibat penggunaan maklumat tersebut.

Penafian

  • Waranti dan liabiliti terhad — Maklumat dalam dokumen ini dipercayai tepat dan boleh dipercayai. Walau bagaimanapun, Semikonduktor NXP tidak memberikan sebarang representasi atau waranti, tersurat atau tersirat, tentang ketepatan atau kesempurnaan maklumat tersebut dan tidak akan bertanggungjawab ke atas akibat penggunaan maklumat tersebut. Semikonduktor NXP tidak bertanggungjawab ke atas kandungan dalam dokumen ini jika disediakan oleh sumber maklumat di luar Semikonduktor NXP.
    NXP Semiconductors tidak akan bertanggungjawab untuk sebarang kerosakan tidak langsung, sampingan, punitif, khas atau berbangkit (termasuk – tanpa had -kehilangan keuntungan, kehilangan simpanan, gangguan perniagaan, kos yang berkaitan dengan penyingkiran atau penggantian sebarang produk atau caj kerja semula) sama ada atau bukan ganti rugi sedemikian adalah berdasarkan tort (termasuk kecuaian), waranti, pelanggaran kontrak atau mana-mana teori undang-undang lain.
    Walau apa pun apa-apa kerosakan yang mungkin ditanggung oleh pelanggan atas apa jua sebab sekalipun, liabiliti agregat dan kumulatif NXP Semiconductors terhadap pelanggan untuk produk yang diterangkan di sini akan dihadkan mengikut Terma dan syarat jualan komersial NXP Semiconductors.
  • Hak untuk membuat perubahan — Semikonduktor NXP berhak untuk membuat perubahan pada maklumat yang diterbitkan dalam dokumen ini, termasuk tanpa batasan spesifikasi dan penerangan produk, pada bila-bila masa dan tanpa notis. Dokumen ini menggantikan dan menggantikan semua maklumat yang dibekalkan sebelum penerbitan ini.
  • Kesesuaian untuk digunakan — Produk Semikonduktor NXP tidak direka bentuk, dibenarkan atau dijamin sesuai untuk digunakan dalam sokongan hayat, sistem atau peralatan yang kritikal atau kritikal keselamatan, mahupun dalam aplikasi di mana kegagalan atau pincang fungsi produk Semikonduktor NXP secara munasabah boleh dijangka mengakibatkan kecederaan diri, kematian atau harta benda yang teruk atau kerosakan alam sekitar. NXP Semiconductors dan pembekalnya tidak menerima liabiliti untuk kemasukan dan/atau penggunaan produk NXP Semiconductor dalam peralatan atau aplikasi tersebut dan oleh itu kemasukan dan/atau penggunaan tersebut adalah atas risiko pelanggan sendiri.
  • Aplikasi — Aplikasi yang diterangkan di sini untuk mana-mana produk ini adalah untuk tujuan ilustrasi sahaja. Semikonduktor NXP tidak membuat pernyataan atau jaminan bahawa aplikasi tersebut akan sesuai untuk kegunaan tertentu tanpa ujian atau pengubahsuaian lanjut.
    Pelanggan bertanggungjawab ke atas reka bentuk dan pengendalian aplikasi dan produk mereka menggunakan produk Semikonduktor NXP, dan Semikonduktor NXP tidak bertanggungjawab untuk sebarang bantuan dengan aplikasi atau reka bentuk produk pelanggan. Adalah menjadi tanggungjawab pelanggan sepenuhnya untuk menentukan sama ada produk Semikonduktor NXP sesuai dan sesuai untuk aplikasi pelanggan dan produk yang dirancang, serta untuk aplikasi yang dirancang dan penggunaan pelanggan pihak ketiga pelanggan. Pelanggan harus menyediakan reka bentuk dan perlindungan operasi yang sesuai untuk meminimumkan risiko yang berkaitan dengan aplikasi dan produk mereka. NXP Semiconductors tidak menerima sebarang liabiliti yang berkaitan dengan sebarang keingkaran, kerosakan, kos atau masalah yang berdasarkan sebarang kelemahan atau keingkaran dalam aplikasi atau produk pelanggan, atau aplikasi atau penggunaan oleh pelanggan pihak ketiga pelanggan. Pelanggan bertanggungjawab untuk melakukan semua ujian yang diperlukan untuk aplikasi dan produk pelanggan menggunakan produk Semikonduktor NXP untuk mengelakkan lalai aplikasi dan produk atau aplikasi atau penggunaan oleh pelanggan pihak ketiga pelanggan. NXP tidak menerima sebarang liabiliti dalam hal ini.
  • Terma dan syarat jualan komersial — Produk NXP Semiconductors dijual tertakluk kepada terma dan syarat am jualan komersial, seperti yang diterbitkan di https://www.nxp.com/profile/terma, melainkan dipersetujui sebaliknya dalam perjanjian individu bertulis yang sah. Sekiranya perjanjian individu dibuat hanya terma dan syarat perjanjian masing-masing akan terpakai. NXP Semiconductors dengan ini secara nyata membantah untuk menggunakan terma dan syarat am pelanggan berkenaan dengan pembelian produk NXP Semiconductors oleh pelanggan.
  • Kawalan eksport — Dokumen ini serta item yang diterangkan di sini mungkin tertakluk kepada peraturan kawalan eksport. Eksport mungkin memerlukan kebenaran terlebih dahulu daripada pihak berkuasa yang berwibawa.
  • Kesesuaian untuk digunakan dalam produk berkelayakan bukan automotif — Melainkan dokumen ini menyatakan dengan jelas bahawa produk Semikonduktor NXP khusus ini adalah berkelayakan automotif, produk tersebut tidak sesuai untuk kegunaan automotif. Ia tidak layak mahupun diuji mengikut ujian automotif atau keperluan aplikasi. NXP Semiconductors tidak menerima liabiliti untuk kemasukan dan/atau penggunaan produk berkelayakan bukan automotif dalam peralatan atau aplikasi automotif.
    Sekiranya pelanggan menggunakan produk untuk reka bentuk dan penggunaan dalam aplikasi automotif kepada spesifikasi dan piawaian automotif, pelanggan (a) hendaklah menggunakan produk tersebut tanpa waranti NXP Semiconductors bagi produk untuk aplikasi, penggunaan dan spesifikasi automotif tersebut, dan ( b) bila-bila masa pelanggan menggunakan produk untuk aplikasi automotif melebihi spesifikasi NXP Semiconductor penggunaan sedemikian hendaklah semata-mata atas risiko pelanggan sendiri, dan (c) pelanggan menanggung rugi sepenuhnya NXP Semiconductors untuk sebarang liabiliti, kerosakan atau tuntutan produk yang gagal akibat reka bentuk dan penggunaan pelanggan produk untuk aplikasi automotif melebihi jaminan standard NXP Semiconductor dan spesifikasi produk NXP Semiconductor.
  • Terjemahan — Versi bukan bahasa Inggeris (terjemahan) dokumen, termasuk maklumat undang-undang dalam dokumen itu, adalah untuk rujukan sahaja. Versi Bahasa Inggeris akan diguna pakai sekiranya terdapat sebarang percanggahan antara versi terjemahan dan bahasa Inggeris.
  • Keselamatan — Pelanggan memahami bahawa semua produk NXP mungkin tertakluk kepada kelemahan yang tidak dikenal pasti atau mungkin menyokong piawaian atau spesifikasi keselamatan yang ditetapkan dengan pengehadan yang diketahui. Pelanggan bertanggungjawab ke atas reka bentuk dan pengendalian aplikasi dan produknya sepanjang kitaran hayat mereka untuk mengurangkan kesan kelemahan ini pada aplikasi dan produk pelanggan. Tanggungjawab pelanggan juga meliputi teknologi terbuka dan/atau proprietari lain yang disokong oleh produk NXP untuk digunakan dalam aplikasi pelanggan. NXP tidak menerima liabiliti untuk sebarang kelemahan. Pelanggan harus sentiasa menyemak kemas kini keselamatan daripada NXP dan membuat susulan dengan sewajarnya. Pelanggan hendaklah memilih produk dengan ciri keselamatan yang paling memenuhi peraturan, peraturan dan piawaian aplikasi yang dimaksudkan dan membuat keputusan reka bentuk muktamad berkenaan produknya dan bertanggungjawab sepenuhnya untuk mematuhi semua keperluan berkaitan undang-undang, peraturan dan keselamatan berkenaan produknya, tanpa mengira sebarang maklumat atau sokongan yang mungkin disediakan oleh NXP.

NXP mempunyai Pasukan Tindak Balas Insiden Keselamatan Produk (PSIRT) (boleh dihubungi di PSIRT@nxp.com) yang menguruskan penyiasatan, pelaporan dan pelepasan penyelesaian kepada kelemahan keselamatan produk NXP.
NXP BV — NXP BV bukan syarikat yang beroperasi dan ia tidak mengedar atau menjual produk.

Tanda dagangan
Notis: Semua jenama yang dirujuk, nama produk, nama perkhidmatan dan tanda dagangan adalah hak milik pemilik masing-masing.

NXP — tanda perkataan dan logo ialah tanda dagangan NXP BV

AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — ialah tanda dagangan dan/atau tanda dagangan berdaftar Arm Limited (atau anak syarikat atau sekutunya) di AS dan/atau tempat lain. Teknologi berkaitan mungkin dilindungi oleh mana-mana atau semua paten, hak cipta, reka bentuk dan rahsia perdagangan. Hak cipta terpelihara.

  • i.MX — ialah tanda dagangan NXP BV
  • J-Link — ialah tanda dagangan SEGGER Microcontroller GmbH.

Microsoft, Azure dan ThreadX — ialah tanda dagangan kumpulan syarikat Microsoft.

Sila ambil perhatian bahawa notis penting mengenai dokumen ini dan produk yang diterangkan di sini, telah disertakan dalam bahagian 'Maklumat undang-undang'.

© 2024 NXP BV
Untuk maklumat lanjut, sila layari: https://www.nxp.com

  • Tarikh keluaran: 19 April 2024
  • Pengecam dokumen: AN14263

Soalan Lazim

S: Apakah tujuan utama produk ini?
J: Tujuan utama adalah untuk membolehkan fungsi pengecaman muka menggunakan model algoritma penglihatan AI&ML dengan bekas GUI LVGL yang mudahample pada papan SLN-TLHMI-IOT.

S: Bagaimanakah pembangun boleh mendapat manfaat daripada nota aplikasi ini?
J: Pembangun boleh mempelajari cara melaksanakan pengecaman muka pada rangka kerja langkah demi langkah menggunakan ex yang disediakanampmemahami dan memahami pengurus peranti, peranti HAL dan mekanisme acara yang terlibat.

Dokumen / Sumber

NXP AN14263 Laksanakan LVGL GUI Face Recognition pada Framewor [pdf] Panduan Pengguna
AN14263 Laksanakan LVGL GUI Face Recognition pada Framewor, AN14263, Laksana LVGL GUI Face Recognition pada Framewor, LVGL GUI Face Recognition on Framewor, Face Recognition on Framewor, Recognition on Framewor, Framewor

Rujukan

Tinggalkan komen

Alamat e-mel anda tidak akan diterbitkan. Medan yang diperlukan ditanda *