NXP AN14263 Menerapkan Pengenalan Wajah GUI LVGL pada Framewor
Informasi Produk
Spesifikasi
- Nama Produk: Pengenalan Wajah GUI LVGL pada Kerangka
- Revisi Dokumen: 1 – 19 April 2024
- Kata kunci: Pengenalan wajah, GUI LVGL, Kerangka
Petunjuk Penggunaan Produk
- Lebihview
Produk ini memungkinkan model algoritma visi AI&ML untuk pengenalan wajah pada kerangka kerja untuk mengimplementasikan fungsi pengenalan wajah dengan LVGL GUI ex sederhanaample di papan SLN-TLHMI-IOT. - Kerangka Berakhirview
Perangkat lunak solusi dirancang berdasarkan arsitektur kerangka kerja yang mencakup manajer perangkat yang bertanggung jawab mengelola perangkat, perangkat HAL untuk mengabstraksi detail mendasar, dan peristiwa untuk komunikasi antar perangkat yang berbeda. - Fitur
Produk ini memungkinkan penerapan fungsi pengenalan wajah melalui kamera praview pada layar GUI dengan tombol untuk memicu registrasi wajah, pengenalan, dan penghapusan. Data wajah yang terdaftar disimpan di Flash melalui a file sistem. - Konten Catatan Aplikasi
Catatan aplikasi menyajikan layar GUI LVGL dengan kamera preview dan tombol untuk tindakan terkait wajah. Ini membantu pengembang memahami kerangka kerja dan cara menerapkan pengenalan wajah menggunakan contoh yang disediakanampsaya.
Lebihview
NXP telah meluncurkan kit pengembangan solusi bernama SLN-TLHMI-IOT yang berfokus pada aplikasi HMI pintar. Hal ini memungkinkan HMI cerdas dengan visi ML, suara, dan UI grafis yang diimplementasikan pada satu MCU NXP i.MX RT117H. Berdasarkan SDK, perangkat lunak solusi dibangun pada desain yang disebut kerangka kerja yang mendukung desain fleksibel dan penyesuaian fungsi penglihatan dan suara. Untuk membantu pengguna menggunakan platform perangkat lunak dengan lebih baik, beberapa dokumen dasar disediakan, misalnyaample, panduan pengguna pengembangan perangkat lunak. Panduan ini memperkenalkan desain perangkat lunak dasar dan arsitektur aplikasi yang mencakup semua komponen solusi termasuk kerangka kerja untuk membantu pengembang mengimplementasikan aplikasi mereka dengan lebih mudah dan efisien menggunakan SLN-TLHMI-IOT.
Untuk detail selengkapnya tentang solusi dan dokumen terkait, kunjungi web halaman Solusi Smart HMI NXP EdgeReady Berbasis i.MX RT117H dengan ML Vision, Voice, dan Graphical UI. Namun, masih tidak mudah bagi para pengembang untuk mengimplementasikan aplikasi HMI pintar mereka dengan mengacu pada panduan dasar ini. Serangkaian catatan aplikasi direncanakan untuk membantu mempelajari pengembangan kerangka kerja langkah demi langkah. Catatan aplikasi ini didasarkan pada Implementasi LVGL GUI Camera Preview tentang Kerangka (dokumen AN14147). Catatan aplikasi ini menjelaskan cara mengaktifkan model algoritma visi AI&ML untuk pengenalan wajah pada kerangka kerja untuk mengimplementasikan fungsi pengenalan wajah melalui pra kamera.view pada layar GUI dengan LVGL GUI sederhana example di papan SLN-TLHMI-IOT. Dalam catatan lamaran, example menyajikan layar GUI LVGL dengan kamera preview dan beberapa tombol untuk memicu registrasi, pengenalan, dan penghapusan wajah. Data wajah yang terdaftar disimpan di Flash melalui sedikit file sistem.
Pada tingkat tinggi, catatan aplikasi berisi konten di bawah ini:
- Aktifkan fitur pengenalan wajah pada kerangka.
- Tambahkan dukungan basis data wajah pada kerangka kerja melalui file sistem pada Flash.
- Menerapkan aplikasi GUI LVGL. Melalui perkenalan di atas, dokumen ini membantu pengembang untuk:
- Pahami kerangka kerja dan perangkat lunak solusi HMI cerdas lebih dalam.
- Kembangkan pengenalan wajah AI&ML pada kerangka kerja dengan aplikasi GUI LVGL.
Kerangka selesaiview
Perangkat lunak solusi terutama dirancang berdasarkan penggunaan arsitektur kerangka kerja yang terdiri dari beberapa bagian berbeda:
- Pengelola perangkat – bagian inti
- Perangkat Lapisan Abstraksi Perangkat Keras (HAL).
- Pesan/Acara
Seperti yang ditunjukkan pada Gambar 1, di atasview mekanisme kerangka tersebut adalah:
Manajer perangkat bertanggung jawab untuk mengelola perangkat yang digunakan oleh sistem. Setiap jenis perangkat (input, output, dan sebagainya) memiliki pengelola perangkat khusus jenisnya sendiri. Dengan pengelola perangkat yang dimulai setelah perangkat didaftarkan, ia menunggu dan memeriksa pesan untuk mentransfer data ke perangkat dan pengelola lainnya setelah menginisialisasi dan memulai perangkat yang terdaftar. Perangkat HAL ditulis di atas kode driver tingkat rendah, membantu meningkatkan pemahaman kode dengan mengabstraksi banyak detail mendasar.
Peristiwa adalah sarana di mana informasi dikomunikasikan antara perangkat yang berbeda melalui manajernya. Ketika suatu kejadian dipicu, perangkat yang pertama kali menerima kejadian tersebut mengkomunikasikan kejadian tersebut kepada manajernya, kemudian pada gilirannya memberitahukan manajer lain yang ditunjuk untuk menerima kejadian tersebut.
Desain arsitektur kerangka ini dipusatkan pada tiga tujuan utama:
- Kemudahan penggunaan
- Fleksibilitas/Portabilitas
- Pertunjukan
Kerangka kerja ini dirancang dengan tujuan mempercepat waktu pemasaran vision dan aplikasi pembelajaran mesin lainnya. Untuk memastikan waktu pemasaran yang cepat, perangkat lunak itu sendiri harus mudah dipahami dan dimodifikasi. Dengan mengingat tujuan ini, arsitektur kerangka kerja mudah dimodifikasi tanpa harus membatasi, dan tanpa mengorbankan kinerja.
Untuk detail lebih lanjut tentang kerangka kerja ini, lihat Panduan Pengguna Pengembangan Perangkat Lunak Smart HMI (dokumen MCU-SMHMI-SDUG).
Perpustakaan Grafis Ringan dan Serbaguna (LVGL)
LVGL (Perpustakaan Grafik Ringan dan Serbaguna) adalah perpustakaan grafis sumber terbuka dan gratis yang menyediakan semua yang Anda perlukan untuk membuat GUI tertanam dengan elemen grafis yang mudah digunakan, efek visual yang indah, dan jejak memori yang rendah.
Pemandu GUI
GUI Guider adalah alat pengembangan antarmuka pengguna grafis yang mudah digunakan dari NXP yang memungkinkan pengembangan cepat tampilan berkualitas tinggi dengan perpustakaan grafis LVGL sumber terbuka. Editor drag-and-drop GUI Guider memudahkan penggunaan banyak fitur LVGL seperti widget, animasi, dan gaya untuk membuat GUI dengan minimal atau tanpa pengkodean sama sekali.
Dengan mengklik sebuah tombol, Anda dapat menjalankan aplikasi Anda di lingkungan simulasi atau mengekspornya ke proyek target. Kode yang dihasilkan dari GUI Guider dapat dengan mudah ditambahkan ke proyek Anda, mempercepat proses pengembangan dan memungkinkan Anda menambahkan antarmuka pengguna tertanam ke aplikasi Anda dengan lancar. GUI Guider gratis untuk digunakan dengan tujuan umum NXP dan MCU crossover serta menyertakan templat proyek bawaan untuk beberapa platform yang didukung. Untuk mempelajari lebih lanjut tentang LVGL dan pengembangan GUI di GUI Guider, lihat Light and Versatile Graphics Library dan GUI Guider.
Pengembangan lingkungan
Pertama, mempersiapkan dan menyiapkan lingkungan perangkat keras dan perangkat lunak untuk mengimplementasikan example pada kerangka.
Lingkungan perangkat keras
Lingkungan perangkat keras diatur untuk memverifikasi mantanampsaya:
- Kit pengembangan HMI cerdas berdasarkan NXP i.MX RT117H (kit SLN_TLHMI_IOT)
- SEGGER J-Link dengan adaptor Cortex-M 9-pin dan driver V7.84a atau versi yang lebih baru
Lingkungan perangkat lunak
Lingkungan perangkat lunak diatur untuk mengembangkan exampsaya:
- MCUXpresso IDE V11.7.0
- Panduan GUI V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – misample kode catatan aplikasi kedua sebagai perangkat lunak dasar pengembangan. Untuk detailnya, lihat https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – sebagai sumber kode untuk pengembangan.
- Perangkat lunak SLN-TLHMI-IOT V1.1.2 – kode sumber HMI pintar dirilis di repositori NXP GitHub sebagai sumber kode untuk pengembangan. Untuk detailnya, lihat: GitHub – NXP/mcu-smhmi di v1.1.2
Untuk detail tentang perolehan dan pengaturan lingkungan perangkat lunak, lihat: Memulai SLN-TLHMI-IOT.
Arsitektur visi pada kerangka kerja
Arsitektur visi pada kerangka kerja ditunjukkan pada Gambar 2. Vision algo HAL (OASIS_HAL) memiliki proses di bawah ini:
- Lakukan registrasi dan pengenalan wajah melalui model algoritma visi AI&ML setelah menerima peristiwa terkait dari keluaran UI HAL. Beritahukan hasil inferensi dari model algoritma ke output UI HAL.
- Mengakses (menambah, menghapus…) database fitur wajah berdasarkan sedikit file sistem dengan memanggil API FaceDB HAL setelah menerima kejadian terkait dari output UI HAL.
- Minta bingkai video kamera dari kamera HAL saat melakukan registrasi dan pengenalan wajah.
Menerapkan pengenalan wajah pada kerangka kerja
Pengenalan wajah LVGL GUI example (mantanample disediakan kemudian) pada kerangka kerja yang diimplementasikan berdasarkan example kode Implementasi LVGL GUI Camera Preview tentang Kerangka (dokumen AN14147).
Untuk mendemonstrasikan pengenalan wajah di example, fungsi dasar aplikasi GUI (lihat layar utama pada Gambar 3) dirancang seperti dijelaskan di bawah ini:
- Aplikasi GUI memicu peristiwa registrasi atau pengenalan wajah ke output UI HAL ketika mengklik tombol Registrasi atau Pengenalan. Dan outputnya UI HAL memberitahukan kejadian penambahan pengguna ke vision algo HAL setelah registrasi wajah berhasil.
- Aplikasi GUI memicu peristiwa penghapusan pengguna ke output UI HAL ketika mengklik tombol Hapus Pengguna setelah wajah pengguna dikenali.
- Aplikasi GUI memicu peristiwa penghentian algo oasis yang berjalan ke output UI HAL ketika mengklik layar di luar tombol dan gambar.
Siapkan paket perangkat lunak untuk implementasi exampsaya.
- Kloning perangkat lunak dasar lvgl_gui_camera_preview_cm7. Ubah nama proyek dan utama filenama menjadi lvgl_gui_face_rec_cm7.
- Kerangka kerja ini perlu diperbarui dalam perangkat lunak karena kode sumber untuk inti kerangka kerja sudah mulai dipublikasikan di GitHub mulai versi 1.1.2.
- Ganti folder framework dengan salinan V1.1.2 dari GitHub kecuali untuk files fwk_log.h dan fwk_common.h di bawah inc\ karena telah dimodifikasi untuk rangkaian catatan aplikasi. Operasi ditunjukkan pada Gambar 4:
- Hapus folder framework_cm7 di bawah grup libs dan hapus pustaka framework_cm7 dan jalur pencariannya yang dikonfigurasi di Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries karena kode sumber inti disediakan.
Aktifkan fitur pengenalan wajah pada kerangka kerja
Fitur pengenalan wajah dibangun pada model algoritma visi ML yang disediakan sebagai perpustakaan statis – perpustakaan runtime oasis lite oleh NXP. Perpustakaan ini adalah perpustakaan AI yang kecil, sangat efisien, dapat disesuaikan, dan dioptimalkan. Model tersebut mencakup deteksi wajah, pengenalan wajah, deteksi kaca, dan deteksi keaktifan. Ini terutama menyediakan API OASISLT_run_exended() untuk menjalankan pipeline pengenalan wajah sambil memperbarui hasil ke pemanggil melalui callback peristiwa, dan menambahkan/memperbarui/menghapus wajah dalam database melalui callback database wajah setelah menentukan informasi frame sumber, callback, dan memori kumpulan yang digunakan oleh perpustakaan dengan memanggil API lain OASISLT_init() pada inisialisasi. Pemanggilan API dan fungsi panggilan balik diimplementasikan dalam visi algo HAL kerangka kerja.
Tambahkan perpustakaan model vision algo
- Salin folder oasis yang berisi perpustakaan dan header terkait file dari smart HMI\coffee_machine\cm7\libs\ ke dalam folder libs example SW.
- Tambahkan jalur pencarian header file di Proyek > Properti > Pembuatan C/C++ > pengaturan > Pengaturan Alat > Kompiler MCU C > Termasuk dan kompiler MCU C++ > Termasuk: “${workspace_loc:/${ProjName}/libs/oasis/include}”
- Tambahkan lib dan jalur pencariannya di Project > Properties > C/C++ Build > settings > MCU C+ + Linker > Libraries: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” dan definisi makro ke aktifkan fitur di Project > Properties > C/C++ Build > settings > Tool Settings > MCU C compiler > Preprocessor dan MCU C++ compiler > Preprocessor: SMART_TLHMI_2D
Aktifkan visi algo HAL
Vision algo HAL mendorong model vision algo untuk bekerja dan merespons hasil HAL keluaran UI setelah menerima peristiwa darinya.
Untuk mengaktifkannya, kloning driver HAL serupa yang ada file di mana fungsi-fungsi di bawah ini diterapkan:
- Menerapkan callback operasi database wajah dan penanganan kejadian.
- Dorong visi agar berfungsi dengan memanggil API perpustakaan oasis.
- Akses database wajah pengguna dan database aplikasi (tidak diperlukan di exampsaya).
- Menerima acara dari dan mengirimkan hasilnya ke output UI HAL.
Pekerjaan utama untuk mengimplementasikan HAL untuk exampsaya adalah:
- Kloning driver HAL serupa yang ada file dan mengubah nama terkait.
- Hapus kode yang terkait dengan operasi data aplikasi.
- Perbarui definisi dan fungsi untuk menangani peristiwa dari keluaran UI HAL per mantanampdesain.
- Tambahkan konfigurasi yang diperlukan dalam inisialisasi oasis.
Langkah-langkah rincinya adalah sebagai berikut:
- Klon hal_vision_algo_oasis_coffeemachine.c. Mengubah filenama menjadi hal_vision_algo_oasis_guifacerec.c. Dan ganti semua string CoffeeMachine dengan GUIFaceRec di file.
- Hapus kode yang berisi string coffeedb (tidak peka huruf besar-kecil) yang terkait dengan database aplikasi, misalnyaample, #termasuk hal_sln_coffeedb.h.
- Ubah fungsi HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() untuk menangani kejadian dari output UI HAL.
- Ubah definisi peristiwa kEventFaceRecId_RegisterCoffeeSelection menjadi kEventFaceRecId_RegisterUserFace dan string struktur regCoffeeSelection menjadi regGUIFaceRec untuk penanganan peristiwa guna menambahkan data fitur wajah baru ke database.
- Untuk menunjukkan proses standar tindakan pengenalan wajah di example, ubah penanganan dalam kasus kEventFaceRecID_OasisSetState dengan definisi status:
- koASISLiteState
- Registrasi koasislitestate
- Pengakuan koASISLiteState
- Berhenti
- Tambahkan dan ubah definisi peristiwa yang disebutkan pada langkah di atas.
- Salin tajuknya file smart_tlhmi_event_descriptor.h dari smart HMI\coffee_machine \cm7\source\event_handlers\ ke dalam folder sumber example SW. Perbarui file seperti dibawah ini:
- Ubah definisi peristiwa kEventFaceRecId_RegisterCoffeeSelection menjadi kEventFaceRecId_RegisterUserFace dalam tipe enum _event_smart_tlhmi_id dan string struktur regCoffeeSelection menjadi regGUIFaceRec di struct _event_smart_tlhmi. Jadi, ubah struct register_coffee_selection_event_t untuk regCoffeeSelection menjadi register_gui_facerec_event_t.
- Hapus konten lain yang digunakan untuk aplikasi mesin kopi, misalnyaample, baris kode tentang suara: #include “hal_event_descriptor_voice.h”.
- Tambahkan tipe kOASISLiteState_Stopped dan kOASISLiteState_Running ke tipe enum oasis_lite_state_t di hal_vision_algo.h di bawah framework>hal>vision dalam proyek seperti di bawah ini:
typedef enum _oasis_lite_state {- koASISLiteState
- Berjalan, kOASISLiteState
- Berhenti, kOASISLiteState
- Pengakuan,
- koASISLiteState
- Pendaftaran, koASISLiteState
- DeRegistrasi, kOASISLiteState
- Registrasi Jarak Jauh, kOASISLiteState
- Menghitung
- Gunakan struct oasis_lite_state_t yang diperbarui di atas untuk menyempurnakan struct oasis_state_event_t di hal_event_descriptor_face_rec.h di bawah framework>hal>vision dalam proyek seperti di bawah ini: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- Ubah semua kEventInfo_Remote menjadi kEventInfo_Local untuk mengirim peristiwa dari visi algo HAL ke HAL lain yang berjalan pada inti yang sama dengan inti tunggal, bukan inti ganda yang digunakan di exampsaya.
- Tambahkan dan ubah konfigurasi di bawah ini untuk inisialisasi oasis di OASISLT_init():
- Tambahkan definisi makro dan bagian memori untuk bingkai video di board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- #tentukan OASIS_RGB_FRAME_HEIGHT 600
- #tentukan OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
- #tentukan OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
- #define AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __attribute__((bagian(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __atribut__((selaras(alignbytes)))
- Konfigurasikan penetapan memori ke bagian memori di atas fb_sh_mem pada Project > Properties > C/C++ Build > MCU Settings yang ditunjukkan pada Gambar 5:
- Deklarasikan variabel global g_DTCOPBuf di lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Lanjutkan menambahkan definisi yang digunakan pada variabel di atas:
- Tentukan bagian di atas di board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- atribut__((bagian(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- atribut__((selaras(alignbytes)))
- Sertakan headernya file hal_vision_algo.h berisi definisi makro DTC_OPTIMIZE_BUFFER_SIZE di app_config.h yang disertakan dalam lvgl_gui_face_rec_cm7.cpp.
- Tambahkan definisi makro dan bagian memori untuk bingkai video di board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- Setel variabel s_debugOption ke true untuk menampilkan status kemajuan pengenalan wajah.
- Tambahkan jalur pencarian header files visi HAL pada Proyek > Properti >C/C++ Build > pengaturan > Pengaturan Alat > Kompiler MCU C > Termasuk dan kompiler MCU C++ > Termasuk: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- Tambahkan definisi di bawah ini untuk mengaktifkan vision algo HAL di board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Aktifkan keluaran UI HAL
Output UI HAL memberitahukan kejadian ke vision algo HAL dan merespon hasil inferensi dari vision algo HAL. Dengan aplikasi GUI, kejadian umumnya dipicu oleh aplikasi dan hasilnya ditampilkan di aplikasi.
Untuk mengaktifkannya, kloning driver HAL serupa yang ada file di mana secara umum fungsi-fungsi di bawah ini diterapkan:
- Beritahu kejadian untuk pengenalan wajah dan akses database.
- Terapkan callback untuk aplikasi GUI untuk memicu peristiwa.
- Tangani hasil inferensi dari modul vision algo.
- Tampilkan proses dan hasil penanganan peristiwa di UI melalui bilah kemajuan yang dikontrol dengan pengatur waktu dan persegi panjang panduan wajah.
Pekerjaan utama untuk mengimplementasikan HAL untuk example yang digunakan dalam dokumen ini adalah:
- Kloning driver HAL serupa yang ada file dan mengubah nama terkait.
- Hapus kode yang terkait dengan aplikasi.
- Perbarui fungsi untuk pemberitahuan acara dan respons hasil sesuai contohampdesain.
- Tambahkan callback untuk aplikasi GUI untuk memicu kejadian.
Langkah-langkah rincinya adalah sebagai berikut:
- Klon hal_output_ui_coffee_machine.c. Mengubah filenama menjadi hal_ output_ui_guifacerec.c.
- Ganti semua string CoffeeMachine dengan GUIFaceRec di file.
- Hapus kode yang terkait dengan aplikasi – mesin kopi.
- Hapus fungsi WakeUp() dan _StandBy() serta kode terkait (dapat mencari string wake_up dan standby untuk keduanya).
- Hapus praview peristiwa mode yang menangani kode terkait di HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Hapus fungsi UI_xxx_Callback() dan kode yang berisi string gui_ dan layar yang terkait dengan GUI mesin kopi kecuali gui_set_virtual_face() untuk praview fitur mode.
- Hapus semua kode yang terkait dengan variabel s_IsWaitingAnotherSelection dan s_IsWaitingRegisterSelection yang terkait dengan aplikasi mesin kopi.
- Hapus kode yang terkait dengan suara, audio, dan bahasa. Misalnyaampsaya:
- #sertakan “hal_voice_algo_asr_local.h”,
- #sertakan “hal_event_descriptor_voice.h”
- Untuk notifikasi berbagai peristiwa, implementasikan fungsi baru _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), dan DeregisterGUIFaceRec() yang mengacu pada fungsi _StopFaceRec(), _RegisterCoffeeSelection(), dan DeregisterCoffeeSelection() sebelum menghapusnya.
- _OutputManagerNotify() mengimplementasikan fungsi keluaran peristiwa dasar untuk mengirim peristiwa ke visi algo HAL. Fungsi di bawah ini memanggilnya untuk mengirim acaranya sendiri.
- _SetFaceRec() mengirimkan acara kEventFaceRecID_OasisSetState untuk memicu algo visi untuk registrasi wajah, pengenalan, dan menghentikan algo.
- _RegisterGUIFaceRec() mengirimkan acara kEventFaceRecId_RegisterGUIFaceRec yang ditentukan dalam smart_tlhmi_event_descriptor.h untuk menambahkan data fitur wajah ke database saat pendaftaran OK.
- DeregisterGUIFaceRec() mengirimkan acara kEventFaceRecID_DelUser untuk menghapus data fitur wajah dari database saat meneruskan pengenalan wajah.
- Perbarui kode untuk mengambil tindakan yang sesuai termasuk menyegarkan GUI dengan memanggil API dari aplikasi GUI LVGL untuk hasil inferensi pendaftaran dan pengenalan wajah dalam fungsi _InferComplete_Vision() misalnyaampdesain le. Misalnyaample, ketika pendaftaran wajah berhasil,
- Berhenti menampilkan kemajuan dengan menelepon _FaceRecProcess_Stop();
- Hentikan registrasi wajah dengan menelepon _SetFaceRec(kOASISLiteState_Stopped);
- Tampilkan hasil sukses di GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Daftarkan data wajah ke database: _RegisterUserFace(s_UserId);
- Tambahkan fungsi panggilan balik UI untuk menangani kejadian: praview, registrasi wajah, pengenalan, dan penghapusan pengguna yang dipicu dari GUI. Misalnyaample, panggilan balik pendaftaran wajah: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- Dan tambahkan fungsi _FaceRecProcess_Start() dan _FaceRecProcess_Stop() untuk menunjukkan kemajuan dan status dalam berbagai peristiwa dan hasil.
- Perbarui fungsi panggilan balik ISR pengatur waktu _SessionTimer_Callback() untuk menangani kasus batas waktu dengan memanggil: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Tambahkan definisi di bawah ini untuk mengaktifkan HAL keluaran UI di board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Melihat:
Untuk menghadirkan fitur pengenalan wajah dengan lebih baik, tetap pertahankan fungsi untuk menampilkan proses dan hasil pengenalan wajah pada keluaran UI HAL. Fungsinya dijelaskan seperti di bawah ini
- Persegi panjang panduan wajah menunjukkan warna biru, dan bilah kemajuan menunjukkan kemajuan saat memulai pendaftaran atau pengenalan wajah.
- Persegi panjang panduan wajah menunjukkan warna merah ketika registrasi wajah berhasil.
- Persegi panjang pemandu wajah menunjukkan warna hijau ketika pengenalan wajah berhasil.
- Persegi panjang panduan wajah tetap berwarna biru, dan bilah kemajuan menunjukkan kemajuan penuh ketika tindakan tidak berhasil setelah penghitung waktu berakhir. Pada saat itu, hentikan registrasi atau pengenalan wajah.
Bilah kemajuan dan persegi panjang panduan wajah disajikan sebagai ikon yang dibangun ke dalam biner sumber daya file untuk diprogram ke dalam Flash. Penunjuk ke data ikon di SDRAM diatur dalam fungsi LoadIcons(APP_ICONS_BASE) yang dipanggil pada inisialisasi perangkat HAL UI keluaran di HAL UI keluaran. Itu harus mengimplementasikan dukungan ikon untuk fungsi tersebut.
Terapkan dukungan ikon
- Bangun sumber daya yang menggabungkan ikon dengan gambar yang digunakan dalam aplikasi GUI LVGL:
- Kloning empat ikon header files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, dan virtual_face_red_420x426.h dari smart HMI
\mesin kopi\resource\icons\ ke ikon folder baru di bawah folder sumber daya example SW. - Tambahkan jalur pencarian untuk ikon empat fileada di kamera_preview_resource.txt file di folder sumber daya, misalnyaample: ikon ../resource/icons/process_bar_240x14.h
- Jalankan camera_preview_resource_build.bat untuk membangun sumber daya gambar dan ikon untuk menghasilkan bin file kamera_preview_resource.bin dan infonya file resource_information_table.txt (Lihat Gambar 6).
- Kloning empat ikon header files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, dan virtual_face_red_420x426.h dari smart HMI
- Tentukan alamat awal pada SDRAM dan ukuran ikon di app_config.h. Alamatnya dimulai di sebelah gambar aplikasi GUI. Ukuran dihasilkan di info file. #tentukan APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #tentukan APP_ICONS_SIZE 0x107c40
- Perbarui ukuran yang ditetapkan dari bagian memori bernama res_sh_mem menjadi 0x200000 dengan mendefinisikan ulang di app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 dan pengaturan yang sesuai di Project > Properties > C/C++ Build > MCU settings.
- Tambahkan ukuran ikon ke ukuran total sumber daya yang dimuat dari Flash ke SDRAM di fungsi APP_LoadResource() di main file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Melihat: Untuk melengkapi fitur pengenalan wajah, diperlukan dukungan aplikasi LVGL GUI. Fungsi panggilan balik UI di keluaran UI HAL dipanggil oleh aplikasi GUI LVGL untuk menangani kejadian dari layar UI. Di sisi lain, output UI HAL memanggil API dari aplikasi GUI LVGL untuk memperbarui UI guna menampilkan hasil dan status. Pengembangan aplikasi GUI LVGL relatif independen dan diperkenalkan di Bagian 4.3.
4.1.5 Mulai perangkat dan pengelola HAL untuk pengenalan wajah
Visi yang diaktifkan algo HAL dan keluaran UI HAL dan manajernya dimulai di bagian utama file
lvgl_gui_face_rec_cm7.cpp mengikuti konversi pengembangan pada framework seperti di bawah ini:
- Sertakan headernya file terkait dengan dua manajer HAL dengan menambahkan baris kode:
- #termasuk ” fwk_output_manager.h “
- #sertakan “fwk_vision_algo_manager.h”
- Deklarasikan perangkat HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Daftarkan perangkat HAL:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, purnawirawan);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Inisialisasi manajer:
- FWK_MANAGER_INIT(VisionAlgoManager, purnawirawan);
- FWK_MANAGER_INIT(Manajer Keluaran, ret);
- Mulai manajer:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, purnawirawan);
- FWK_MANAGER_START(Manajer Keluaran, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Tentukan prioritas tugas manajer:
- #tentukan VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #tentukan OUTPUT_MANAGER_TASK_PRIORITY 1
Tambahkan dukungan basis data wajah pada kerangka kerja
Data fitur wajah yang terdaftar diakses dalam database wajah yang disimpan di Flash melalui sedikit file sistem. Langkah-langkah untuk menambahkan dukungan database wajah dijelaskan di bawah ini.
Tambahkan driver untuk penyimpanan Flash
Salin driver FlexSPI antarmuka Flash files fsl_flexspi.c dan fsl_flexspi.h, dan driver enkripsi data files fsl_caam.c dan fsl_caam.h dari jalur SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ ke folder driver example SW.
Tambahkan dukungan tingkat dewan
- Tambahkan definisi FlexSPI yang digunakan untuk perangkat Flash on board di board.h:
- #definisikan BOARD_FLEXSPI FLEXSPI1
- #tentukan BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #tentukan BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Salin operator dan konfigurasinya files perangkat Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h di bawah jalur smart HMI\coffee_machine\cm7\source\flash_config\ ke papan folder example SW.
- Hapus centang “Kecualikan sumber daya dari build” di C/C++ Build > Pengaturan setelah mengklik kanan pada filenama s dan membuka Properti untuk memungkinkannya dimasukkan ke dalam proyek.
- Ubah header yang disertakan fileberi nama sln_flash_config.h ke sln_flash_config_w25q256jvs.h di sln_flash_config.c dan flexspi_nor_flash_ops.h.
- Atur sumber jam FlexSPI1 di file clock_config.c mengacu pada aplikasi mesin kopi.
Tambahkan adaptor dan dukungan tingkat menengah
- Salin files sln_flash.c, sln_flash.h, sln_encrypt.c, dan sln_encrypt.h sebagai driver adaptor untuk file sistem dan aplikasi dari jalur HMI\coffee_machine\cm7\source\ pintar ke folder sumber example. Perbarui yang baru files:
- Hapus centang "Kecualikan sumber daya dari pembangunan" pada mereka untuk pembangunan.
- Ubah semua header yang disertakan file nama sln_flash_config.h ke sln_flash_config_w25q256jvs.h.
- Salin foldernya filesistem yang berisi API untuk si kecil filesistem dan driver HAL dari smart HMI \coffee_machine\cm7\source\ ke example SW. Dan perbarui untuk folder baru:
- Hapus centang "Kecualikan sumber daya dari pembangunan" di atasnya untuk pembangunan.
- Tambahkan jalur penyertaannya dalam pengaturan proyek: “${workspace_loc:/${ProjName}/filesistem}"
- Ubah header yang disertakan file beri nama sln_flash_config.h ke sln_flash_config_w25q256jvs.h dan fica_definition.h ke app_config.h di file sln_flash_littlefs.h.
- Copy folder littlefs yang berisi middle ware – little filesistem dari jalur SDK_2_13_0_ MIMXRT1170-EVK\middleware\ ke example SW. Dan perbarui folder baru:
- Hapus centang "Kecualikan sumber daya dari pembangunan" di atasnya untuk pembangunan.
- Tambahkan jalur penyertaannya di pengaturan proyek: “${workspace_loc:/${ProjName}/littlefs}”
Tambahkan driver HAL
- Ada dua perangkat HAL – file sistem dan database wajah HAL didukung untuk fitur akses database dan sudah diimplementasikan dalam kerangka kerja tanpa perubahan apa pun. Aktifkan dengan menambahkan definisi di bawah ini di board_define.h:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
Dan ubah nama database wajah yang example: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”
Tambahkan dukungan tingkat aplikasi
- Perbarui yang utama file lvgl_gui_face_rec_cm7.cpp:
- Sertakan headernya file berhubungan dengan Flash file manajer HAL sistem dengan menambahkan baris kode: #include “fwk_flash.h”
- Nyatakan dan daftarkan file perangkat sistem HAL:
- HAL_FLASH_DEV_DECLARE(Anak Kecil);
- HAL_FLASH_DEV_REGISTER(Littlefs, purnawirawan);
Catatan: : Itu file perangkat HAL sistem harus didaftarkan sebelum semua pengelola perangkat diinisialisasi dalam fungsi APP_InitFramework().
- Panggil fungsi BOARD_ConfigMPU() di APP_BoardInit() untuk mengonfigurasi MPU.
- Mengatur file penugasan sistem pada Flash di file app_config.h dengan mendefinisikan definisi makro yang digunakan di file sln_flash_littlefs.h:
- #tentukan FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #definisikan FICA_FILE_SYS_SIZE (0x280000)
Konfigurasi
Beberapa kode terkait Flash dijalankan di area SRAM ITC untuk kinerja yang cukup. Copy folder linkscripts yang berisi konfigurasi linker dari path smart HMI\coffee_machine\cm7\ ke example SW.
Menerapkan aplikasi GUI LVGL
Pengembangan aplikasi GUI LVGL berdasarkan kerangka kerja memanggil API dari keluaran UI HAL dan menyediakan API ke keluaran UI HAL (Lihat Bagian 4.1.3 untuk implementasi keluaran UI HAL).
Namun, implementasi mendetail dari aplikasi GUI LVGL bergantung pada persyaratan dan desain aplikasi. Aplikasi GUI di ex iniample dirancang seperti yang dijelaskan di awal bagian Bagian 4.
Di bawah ini adalah pengenalan implementasi:
- Kode yang disesuaikan diimplementasikan dalam custom.c dan custom.h yang diberikan oleh GUI Guider sebagai antarmuka antara proyek GUI Guider dan proyek sistem tertanam.
- Tambahkan fungsi baru bernama gui_xxx() di custom.c untuk mencapai fungsi di bawah ini:
- Untuk keluaran UI HAL dan aplikasi GUI untuk memperbarui UI.
- Agar aplikasi GUI memicu peristiwa dengan memanggil fungsi panggilan balik UI dari keluaran UI HAL.
Misalnyaample, fungsi baru gui_event_face_rec_action() memanggil fungsi panggilan balik UI untuk menangani salah satu peristiwa pendaftaran wajah, pengenalan wajah, dan penghapusan pengguna yang dipicu dari aplikasi GUI ketika tombol terkait diklik.
Catatan: Fungsi gui_set_virtual_face() dipanggil di output UI HAL untuk praview mode perlu diterapkan di custom.c:
- Fungsi kloning gui_set_virtual_face() dari HMI\coffee_machine\cm4\custom \custom.c pintar.
- Ubah nama widget home_img_cameraPreview ke screen_img_camera_preview dalam fungsinya.
- Menerapkan fungsi panggilan balik UI dengan prototipe yang sama ke semua yang ada di keluaran UI HAL di bawah kendali definisi makro #ifndef RT_PLATFORM di custom.c agar kompatibel dengan proyek GUI Guider karena fungsi-fungsi ini di keluaran UI HAL bergantung dengan platform tertanam. Di custom.c, mereka bergantung pada simulator pada pemandu GUI dan tidak bergantung pada platform yang disematkan. Misalnyaample, callback registrasi wajah diimplementasikan seperti di bawah ini untuk simulator GUI Guider yang berjalan: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = salah; kembali; }
Catatan: Lihat prototipe fungsi yang sama yang diperkenalkan pada langkah 6 Bagian 4.1.3
Definisi makro RT_PLATFORM diatur pada pengaturan proyek MCUXpresso seperti yang ditunjukkan pada Gambar 7: - Deklarasikan semua fungsi bernama UI_xxx_Callback() dan gui_xxx() di custom.h dan tambahkan custom.h yang disertakan dalam smart_tlhmi_event_descriptor.h untuk membagikan API GUI ke HAL keluaran UI.
- Tambahkan fungsi baru bernama gui_xxx() di custom.c untuk mencapai fungsi di bawah ini:
- Kembangkan GUI di GUI Guider:
- Kloning folder kamera sebelumnyaview berisi perangkat lunak proyek GUI Guider di folder gui_guider dalam paket perangkat lunak dasar lvgl_gui_camera_preview_cm7. Ubah nama terkait camera_preview ke face_rec untuk mantan baruampsaya.
- Salin custom.c dan custom yang diperbarui di atas. h ke perangkat lunak proyek GUI Guider baru.
- Buka proyek face_rec baru di GUI Guider. Perbarui seperti di bawah ini:
- Tambahkan tombol baru berlabel Hapus Pengguna. Tambahkan bendera Tersembunyi ke dalamnya sehingga tombol akan disembunyikan saat aplikasi GUI dijalankan.
- Tambahkan baris kode pemanggilan API gui_event_face_rec_action() dengan parameter ID peristiwa berbeda pada pemicu “Dirilis” di Pengaturan Peristiwa semua tombol Pendaftaran, Pengakuan, dan Hapus Pengguna untuk memicu peristiwa pendaftaran wajah, pengenalan wajah, dan penghapusan pengguna. Gambar 8 menunjukkan kode event tombol Registrasi:
- Perbarui kode yang dihasilkan dari GUI Guider ke proyek MCUXpresso.
- Ganti isinya kecuali gambar folder di folder yang dihasilkan proyek SW MCUXpresso dengan yang sesuai di folder yang dihasilkan proyek GUI Guider SW.
Catatan: Untuk detail lebih lanjut tentang modifikasi yang diperkenalkan di atas, periksa example perangkat lunak di https://mcuxpresso.nxp.com/appcodehub.
Verifikasi dengan mantanampproyek
Untuk mendapatkan mantanample paket perangkat lunak yang berisi sumber daya dan alat untuk catatan aplikasi ini, kunjungi: https://mcuxpresso.nxp.com/appcodehub. Buka mantanample proyek di MCUXpresso IDE. Bangun dan program .axf file ke alamat 0x30000000 dan memprogram resource bin file kamera_preview_resource.bin ke alamat 0x30800000.
Pengenalan wajah LVGL GUI example berfungsi normal seperti di bawah ini:
- Praview: Dengan pengaktifan, aliran video yang diambil oleh kamera ditampilkan pada area tertentu di depan kameraview di layar GUI. Label status menampilkan “Praview… ”. Untuk lebih jelasnya lihat Gambar 3. Tombol Hapus Pengguna disembunyikan. Saat mengklik area di luar tombol dan gambar, ini menunjukkan gambar sebelumnyaview nyatakan seperti di atas setelah tindakan registrasi atau pengenalan wajah berakhir.
- Pendaftaran:
- kue tart: Bila tombol Registrasi diklik, registrasi wajah dimulai. Label status berubah menjadi menampilkan “Registrasi…”, persegi panjang panduan wajah menunjukkan warna biru, dan bilah kemajuan mulai menunjukkan kemajuan. Pastikan wajah pengguna ditampilkan pada kotak panduan wajah berwarna biru untuk registrasi.
- keberhasilan: Label status menunjukkan “Registrasi…OK” dan nomor ID pengguna yang terdaftar, persegi panjang panduan wajah menjadi merah jika pendaftaran wajah berhasil sebelum kemajuannya menunjukkan penuh pada bilah.
- Gagal -> Waktu habis: Label status menunjukkan “Registrasi…Waktu habis” jika pendaftaran wajah masih gagal ketika kemajuan menunjukkan penuh pada bilah.
- Kegagalan -> Duplikasi: Label status menunjukkan “Registrasi…Gagal”, persegi panjang panduan wajah menjadi hijau jika wajah yang didaftarkan dikenali sebelum kemajuannya menunjukkan penuh pada bilah.
- ecognition:
- Startup: Ketika tombol Pengenalan diklik, pengenalan wajah dimulai. Label status berubah menjadi menampilkan “Pengenalan…”, persegi panjang panduan wajah menunjukkan warna biru, dan bilah kemajuan mulai menunjukkan kemajuan. Pastikan wajah pengguna ditampilkan dalam kotak panduan wajah berwarna biru untuk registrasi.
- keberhasilan: Label status menunjukkan “Pengenalan…OK” dan nomor ID pengguna yang dikenali, persegi panjang panduan wajah menjadi hijau jika pengenalan wajah berhasil sebelum kemajuan menunjukkan penuh pada bilah. Pada titik ini, tombol Hapus Pengguna muncul. Artinya pengguna hanya boleh dihapus jika sudah dikenali.
- penyakit: Label status menunjukkan “Pengenalan…Waktu habis” jika pengenalan wajah masih gagal ketika kemajuan menunjukkan penuh pada bilah.
- Hapus Pengguna: Ketika tombol “Hapus Pengguna” diklik, setelah pengenalan wajah berhasil, label status berubah menjadi menampilkan “Hapus Pengguna…OK” dengan persegi panjang panduan wajah menjadi biru dan kemajuan ditampilkan penuh pada bilah. Tombol Hapus Pengguna disembunyikan lagi. Wajah/pengguna yang dikenali dihapus dari database. Artinya wajah/pengguna ini tidak dapat dikenali sampai didaftarkan kembali.
Catatan tentang kode sumber dalam dokumen
Exampkode file yang ditampilkan dalam dokumen ini memiliki hak cipta dan lisensi BSD-3-Clause berikut:
Hak Cipta 2024 NXP Redistribusi dan penggunaan dalam bentuk sumber dan biner, dengan atau tanpa modifikasi, diizinkan asalkan kondisi berikut terpenuhi:
- Distribusi ulang kode sumber harus mempertahankan pemberitahuan hak cipta di atas, daftar ketentuan ini, dan penafian berikut.
- Redistribusi dalam bentuk biner harus mereproduksi pemberitahuan hak cipta di atas, daftar ketentuan ini dan penafian berikut dalam dokumentasi dan/atau materi lain harus disertakan bersama distribusi.
- Baik nama pemegang hak cipta maupun nama kontributornya tidak boleh digunakan untuk mendukung atau mempromosikan produk yang berasal dari perangkat lunak ini tanpa izin tertulis khusus sebelumnya.
PERANGKAT LUNAK INI DISEDIAKAN OLEH PEMEGANG HAK CIPTA DAN KONTRIBUTOR "SEBAGAIMANA ADANYA" DAN SETIAP JAMINAN TERSURAT ATAU TERSIRAT, TERMASUK, NAMUN TIDAK TERBATAS PADA, JAMINAN TERSIRAT TENTANG KEMAMPUAN DIPERDAGANGKAN DAN KESESUAIAN UNTUK TUJUAN TERTENTU DISANGKAL. DALAM KEADAAN APA PUN, PEMEGANG HAK CIPTA ATAU KONTRIBUTOR TIDAK BERTANGGUNG JAWAB ATAS SEGALA KERUGIAN LANGSUNG, TIDAK LANGSUNG, INSIDENTAL, KHUSUS, TELADAN, ATAU KONSEKUENSIAL (TERMASUK, NAMUN TIDAK TERBATAS PADA, PENGADAAN BARANG ATAU JASA PENGGANTI; HILANGNYA PENGGUNAAN, DATA, ATAU KEUNTUNGAN; ATAU GANGGUAN BISNIS) BAGAIMANA PUN PENYEBABNYA DAN ATAS TEORI TANGGUNG JAWAB APA PUN, BAIK DALAM KONTRAK, TANGGUNG JAWAB MUTLAK, ATAU GUGATAN (TERMASUK KELALAIAN ATAU LAINNYA) YANG TIMBUL DALAM CARA APA PUN DARI PENGGUNAAN PERANGKAT LUNAK INI, BAHKAN JIKA TELAH DIBERITAHUKAN TENTANG KEMUNGKINAN KERUGIAN TERSEBUT.
Riwayat revisi
Informasi hukum
Definisi
Draf — Status draf pada dokumen menunjukkan bahwa konten masih dalam tahap revisi internal.view dan tunduk pada persetujuan formal, yang dapat mengakibatkan modifikasi atau penambahan. NXP Semiconductors tidak memberikan pernyataan atau jaminan apa pun mengenai keakuratan atau kelengkapan informasi yang disertakan dalam versi draf dokumen dan tidak bertanggung jawab atas konsekuensi penggunaan informasi tersebut.
Penafian
- Garansi dan tanggung jawab terbatas — Informasi dalam dokumen ini diyakini akurat dan dapat diandalkan. Namun, NXP Semiconductors tidak memberikan pernyataan atau jaminan apa pun, tersurat maupun tersirat, mengenai keakuratan atau kelengkapan informasi tersebut dan tidak bertanggung jawab atas konsekuensi penggunaan informasi tersebut. Semikonduktor NXP tidak bertanggung jawab atas konten dalam dokumen ini jika disediakan oleh sumber informasi di luar Semikonduktor NXP.
Dalam keadaan apa pun NXP Semiconductors tidak bertanggung jawab atas kerugian tidak langsung, insidental, hukuman, khusus, atau konsekuensial (termasuk – tanpa batasan - kehilangan keuntungan, kehilangan tabungan, gangguan bisnis, biaya yang terkait dengan penghapusan atau penggantian produk atau biaya pengerjaan ulang) baik atau tidak kerusakan tersebut didasarkan pada kesalahan (termasuk kelalaian), jaminan, pelanggaran kontrak atau teori hukum lainnya.
Terlepas dari kerusakan apa pun yang mungkin dialami pelanggan karena alasan apa pun, kewajiban agregat dan kumulatif NXP Semiconductors terhadap pelanggan untuk produk yang dijelaskan di sini akan dibatasi sesuai dengan Syarat dan ketentuan penjualan komersial NXP Semiconductors. - Hak untuk membuat perubahan — NXP Semiconductors berhak untuk membuat perubahan pada informasi yang dipublikasikan dalam dokumen ini, termasuk tanpa batasan spesifikasi dan deskripsi produk, kapan saja dan tanpa pemberitahuan. Dokumen ini menggantikan dan menggantikan semua informasi yang diberikan sebelum publikasi dokumen ini.
- Kesesuaian untuk digunakan — Produk NXP Semiconductors tidak dirancang, disahkan, atau dijamin sesuai untuk digunakan dalam sistem atau peralatan pendukung kehidupan, kritis-keselamatan, atau kritis, atau dalam aplikasi di mana kegagalan atau malfungsi produk NXP Semiconductors dapat secara wajar diharapkan mengakibatkan cedera pribadi, kematian atau kerusakan harta benda atau lingkungan yang parah. NXP Semiconductors dan pemasoknya tidak bertanggung jawab atas penyertaan dan/atau penggunaan produk NXP Semiconductors dalam peralatan atau aplikasi tersebut dan oleh karena itu penyertaan dan/atau penggunaan tersebut merupakan risiko pelanggan sendiri.
- Aplikasi — Aplikasi yang dijelaskan di sini untuk salah satu produk ini hanya untuk tujuan ilustrasi. Semikonduktor NXP tidak membuat pernyataan atau jaminan bahwa aplikasi tersebut akan sesuai untuk penggunaan yang ditentukan tanpa pengujian atau modifikasi lebih lanjut.
Pelanggan bertanggung jawab atas desain dan pengoperasian aplikasi dan produk mereka menggunakan produk NXP Semiconductors, dan NXP Semiconductors tidak bertanggung jawab atas bantuan apa pun terkait aplikasi atau desain produk pelanggan. Merupakan tanggung jawab pelanggan sepenuhnya untuk menentukan apakah produk Semikonduktor NXP sesuai dan cocok untuk aplikasi pelanggan dan produk yang direncanakan, serta untuk rencana penerapan dan penggunaan pelanggan pihak ketiga pelanggan. Pelanggan harus memberikan perlindungan desain dan pengoperasian yang sesuai untuk meminimalkan risiko yang terkait dengan aplikasi dan produk mereka. Semikonduktor NXP tidak menerima tanggung jawab apa pun terkait dengan wanprestasi, kerusakan, biaya, atau masalah apa pun yang didasarkan pada kelemahan atau wanprestasi apa pun dalam aplikasi atau produk pelanggan, atau aplikasi atau penggunaan oleh pelanggan pihak ketiga milik pelanggan. Pelanggan bertanggung jawab untuk melakukan semua pengujian yang diperlukan untuk aplikasi dan produk pelanggan yang menggunakan produk NXP Semiconductors untuk menghindari kegagalan aplikasi dan produk atau aplikasi atau penggunaan oleh pelanggan pihak ketiga Pelanggan. NXP tidak menerima tanggung jawab apa pun dalam hal ini. - Syarat dan ketentuan penjualan komersial — Produk Semikonduktor NXP dijual dengan tunduk pada syarat dan ketentuan umum penjualan komersial, sebagaimana dipublikasikan di https://www.nxp.com/profile/terms, kecuali jika disetujui lain dalam perjanjian individual tertulis yang sah. Dalam hal perjanjian individu disimpulkan hanya syarat dan ketentuan dari perjanjian masing-masing yang akan berlaku. NXP Semiconductors dengan ini secara tegas menolak penerapan syarat dan ketentuan umum pelanggan sehubungan dengan pembelian produk NXP Semiconductors oleh pelanggan.
- Kontrol ekspor — Dokumen ini serta item yang dijelaskan di sini mungkin tunduk pada peraturan kontrol ekspor. Ekspor mungkin memerlukan otorisasi sebelumnya dari otoritas yang berwenang.
- Kesesuaian untuk digunakan dalam produk berkualitas non-otomotif — Kecuali jika dokumen ini secara tegas menyatakan bahwa produk Semikonduktor NXP khusus ini memenuhi syarat otomotif, produk tersebut tidak cocok untuk penggunaan otomotif. Itu tidak memenuhi syarat atau diuji sesuai dengan pengujian otomotif atau persyaratan aplikasi. Semikonduktor NXP tidak bertanggung jawab atas penyertaan dan/atau penggunaan produk berkualifikasi non-otomotif dalam peralatan atau aplikasi otomotif.
Dalam hal pelanggan menggunakan produk untuk desain dan penggunaan dalam aplikasi otomotif dengan spesifikasi dan standar otomotif, pelanggan (a) harus menggunakan produk tanpa garansi Semikonduktor NXP produk untuk aplikasi, penggunaan dan spesifikasi otomotif tersebut, dan ( b) setiap kali pelanggan menggunakan produk untuk aplikasi otomotif di luar spesifikasi NXP Semiconductors, penggunaan tersebut sepenuhnya menjadi risiko pelanggan sendiri, dan (c) pelanggan memberikan ganti rugi penuh kepada NXP Semiconductors atas segala kewajiban, kerusakan, atau klaim produk yang gagal akibat desain dan penggunaan pelanggan produk untuk aplikasi otomotif di luar garansi standar NXP Semiconductors dan spesifikasi produk NXP Semiconductors. - Terjemahan — Versi dokumen non-Inggris (diterjemahkan), termasuk informasi hukum dalam dokumen itu, hanya untuk referensi. Versi bahasa Inggris akan berlaku jika ada perbedaan antara versi terjemahan dan bahasa Inggris.
- Keamanan — Pelanggan memahami bahwa semua produk NXP mungkin tunduk pada kerentanan yang tidak teridentifikasi atau dapat mendukung standar atau spesifikasi keamanan yang ditetapkan dengan batasan yang diketahui. Pelanggan bertanggung jawab atas desain dan pengoperasian aplikasi dan produknya di sepanjang siklus hidupnya untuk mengurangi dampak kerentanan ini pada aplikasi dan produk pelanggan. Tanggung jawab Pelanggan juga meluas ke teknologi terbuka dan/atau hak milik lainnya yang didukung oleh produk NXP untuk digunakan dalam aplikasi pelanggan. NXP tidak bertanggung jawab atas kerentanan apa pun. Pelanggan harus secara teratur memeriksa pembaruan keamanan dari NXP dan menindaklanjutinya dengan tepat. Pelanggan harus memilih produk dengan fitur keamanan yang paling sesuai dengan peraturan, regulasi, dan standar aplikasi yang dimaksudkan dan membuat keputusan desain akhir terkait produknya dan sepenuhnya bertanggung jawab untuk mematuhi semua persyaratan terkait hukum, peraturan, dan keamanan terkait produknya, terlepas dari informasi atau dukungan apa pun yang mungkin disediakan oleh NXP.
NXP memiliki Product Security Incident Response Team (PSIRT) (dapat dihubungi di PSIRT@nxp.com) yang mengelola investigasi, pelaporan, dan rilis solusi terhadap kerentanan keamanan produk NXP.
NXP B.V. — NXP B.V. bukan perusahaan yang beroperasi dan tidak mendistribusikan atau menjual produk.
Merek Dagang
Melihat: Semua merek yang direferensikan, nama produk, nama layanan, dan merek dagang adalah milik dari pemiliknya masing-masing.
NXP — merek kata dan logo adalah merek dagang NXP BV
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Diaktifkan, NEON, POP, NyataView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — adalah merek dagang dan/atau merek dagang terdaftar dari Arm Limited (atau anak perusahaan atau afiliasinya) di AS dan/atau di tempat lain. Teknologi terkait dapat dilindungi oleh salah satu atau semua paten, hak cipta, desain, dan rahasia dagang. Seluruh hak cipta.
- saya.MX — adalah merek dagang dari NXP BV
- J-Link — adalah merek dagang dari SEGGER Mikrokontroler GmbH.
Microsoft, Azure, dan ThreadX — adalah merek dagang dari grup perusahaan Microsoft.
Harap diperhatikan bahwa pemberitahuan penting mengenai dokumen ini dan produk yang dijelaskan di sini, telah disertakan di bagian 'Informasi hukum'.
Hak cipta © 2024 NXP BV
Untuk informasi lebih lanjut, silakan kunjungi: https://www.nxp.com
- Tanggal rilis: 19 April 2024
- Pengidentifikasi dokumen: AN14263
Tanya Jawab Umum
T: Apa tujuan utama produk ini?
J: Tujuan utamanya adalah untuk mengaktifkan fungsi pengenalan wajah menggunakan model algoritma visi AI&ML dengan GUI LVGL sederhana, misalnyaample di papan SLN-TLHMI-IOT.
T: Apa manfaat yang bisa diperoleh pengembang dari catatan aplikasi ini?
J: Pengembang dapat mempelajari cara menerapkan pengenalan wajah pada kerangka kerja langkah demi langkah menggunakan contoh yang disediakanample dan pahami pengelola perangkat, perangkat HAL, dan mekanisme acara yang terlibat.
Dokumen / Sumber Daya
![]() |
NXP AN14263 Menerapkan Pengenalan Wajah GUI LVGL pada Framewor [Bahasa Indonesia:] Panduan Pengguna AN14263 Mengimplementasikan Pengenalan Wajah LVGL GUI pada Framewor, AN14263, Mengimplementasikan Pengenalan Wajah LVGL GUI pada Framewor, Pengenalan Wajah LVGL GUI pada Framewor, Pengenalan Wajah pada Framewor, Pengenalan pada Framewor, Framewor |