NXP AN14263 Framewor-da LVGL GUI Üz Tanınmasını Tətbiq edin
Məhsul haqqında məlumat
Spesifikasiyalar
- Məhsulun adı: Çərçivədə LVGL GUI Üz Tanınması
- Sənədin təftişi: 1-19 aprel 2024-cü il
- Açar sözlər: Üz tanıma, LVGL GUI, Framework
Məhsuldan İstifadə Təlimatları
- Bitdiview
Bu məhsul sadə LVGL GUI keçmişi ilə üz tanıma funksiyasını həyata keçirmək üçün çərçivədə üz tanınması üçün AI və ML görmə alqoritmi modelinə imkan verir.ampSLN-TLHMI-IOT lövhəsində. - Çərçivə Bitdiview
Həll proqramı, cihazların idarə edilməsinə cavabdeh olan cihaz menecerlərini, əsas təfərrüatları mücərrəd etmək üçün HAL cihazlarını və müxtəlif cihazlar arasında əlaqə üçün hadisələri əhatə edən çərçivə arxitekturası ətrafında hazırlanmışdır. - Xüsusiyyətlər
Məhsul sifətin tanınması funksiyasını əvvəlcədən kamera vasitəsilə həyata keçirməyə imkan verirview Üz qeydiyyatını, tanınmasını və silinməsini işə salmaq üçün düymələri olan GUI ekranında. Qeydə alınmış üz məlumatları a vasitəsilə Flash-da saxlanılır file sistemi. - Tətbiq qeydinin məzmunu
Tətbiq qeydi kamera ilə LVGL GUI ekranını təqdim edirview və üzlə əlaqəli hərəkətlər üçün düymələr. O, tərtibatçılara çərçivəni başa düşməyə kömək edir və təqdim edilmiş keçmişdən istifadə edərək sifətin tanınmasını necə həyata keçirə bilərample.
Bitdiview
NXP, ağıllı HMI tətbiqlərinə diqqət yetirən SLN-TLHMI-IOT adlı həll inkişaf dəstini işə saldı. O, bir NXP i.MX RT117H MCU-da həyata keçirilən ML görmə, səs və qrafik interfeysi ilə ağıllı HMI-yə imkan verir. SDK-ya əsaslanaraq, həll proqramı çevik dizaynları və görmə və səs funksiyalarının fərdiləşdirilməsini dəstəkləyən çərçivə adlı dizayn üzərində qurulub. İstifadəçilərin proqram platformasından daha yaxşı istifadə etməsinə kömək etmək üçün bəzi əsas sənədlər təqdim olunur, məsələnample, proqram təminatının inkişafı üzrə istifadəçi təlimatı. Təlimat, tərtibatçılara SLN-TLHMI-IOT-dan istifadə edərək tətbiqlərini daha asan və səmərəli şəkildə həyata keçirməyə kömək etmək üçün çərçivə də daxil olmaqla, həllin bütün komponentlərini əhatə edən əsas proqram dizaynını və tətbiqlərin arxitekturasını təqdim edir.
Həll və müvafiq sənədlər haqqında daha ətraflı məlumat üçün ziyarət edin web ML Vision, Səs və Qrafik UI ilə i.MX RT117H əsasında NXP EdgeReady Smart HMI Həllinin səhifəsi. Bununla belə, tərtibatçılar üçün bu əsas təlimatlara istinad edərək ağıllı HMI tətbiqlərini həyata keçirmək o qədər də asan deyil. Çərçivə üzərində inkişafı addım-addım öyrənməyə kömək etmək üçün bir sıra tətbiq qeydləri planlaşdırılır. Bu proqram qeydi Implement LVGL GUI Camera Pre-yə əsaslanırview Çərçivə üzrə (sənəd AN14147). Bu proqram qeydi sifətin tanınması üçün AI və ML görmə alqoritmi modelinin kameradan qabaq kamera vasitəsilə üz tanıma funksiyasını həyata keçirmək üçün çərçivədə necə aktivləşdiriləcəyini təsvir edir.view sadə LVGL GUI ex ilə GUI ekranındaampSLN-TLHMI-IOT lövhəsində. Ərizə qeydində keçmişample ön kamerası olan LVGL GUI ekranını təqdim edirview və üz qeydiyyatını, tanınmasını və silinməsini işə salmaq üçün bəzi düymələr. Qeydə alınmış üz məlumatları bir az vasitəsilə Flash-da saxlanılır file sistemi.
Yüksək səviyyədə tətbiq qeydi aşağıdakı məzmunu ehtiva edir:
- Çərçivədə üz tanıma funksiyasını aktiv edin.
- vasitəsilə çərçivəyə üz verilənlər bazası dəstəyi əlavə edin file Flash-da sistem.
- LVGL GUI tətbiqini həyata keçirin. Yuxarıdakı təqdimatlar vasitəsilə bu sənəd tərtibatçılara kömək edir:
- Çərçivəni və ağıllı HMI həlli proqramını daha dərindən anlayın.
- LVGL GUI tətbiqi ilə çərçivədə AI və ML üz tanınmasını inkişaf etdirin.
Çərçivə bitdiview
Həll proqramı, ilk növbədə, bir neçə fərqli hissədən ibarət olan çərçivə arxitekturasının istifadəsi ətrafında hazırlanmışdır:
- Cihaz menecerləri - əsas hissə
- Aparat Abstraksiya Layeri (HAL) Cihazları
- Mesajlar/Tədbirlər
Şəkil 1-də göstərildiyi kimi, artıqview çərçivənin mexanizmi belədir:
Cihaz menecerləri sistem tərəfindən istifadə olunan cihazların idarə edilməsinə cavabdehdirlər. Hər bir cihaz növü (giriş, çıxış və s.) özünəməxsus tipli cihaz menecerinə malikdir. Cihazlar qeydiyyata alındıqdan sonra işə başlayan cihaz meneceri ilə o, qeydiyyatdan keçmiş cihazları işə saldıqdan və işə saldıqdan sonra məlumatları cihazlara və digər menecerlərə ötürmək üçün mesajı gözləyir və yoxlayır. HAL cihazları aşağı səviyyəli sürücü kodunun üstündə yazılır və bir çox əsas detalları mücərrəd etməklə kodun başa düşülməsini artırmağa kömək edir.
Hadisələr müxtəlif cihazlar arasında menecerləri vasitəsilə məlumatların ötürülməsi vasitəsidir. Hadisə işə salındıqda, hadisəni ilk qəbul edən cihaz həmin hadisəni menecerinə çatdırır, sonra isə hadisəni qəbul etmək üçün təyin edilmiş digər menecerləri xəbərdar edir.
Çərçivənin memarlıq dizaynı üç əsas məqsəd üzərində cəmlənmişdir:
- İstifadə asanlığı
- Çeviklik/Daşıma qabiliyyəti
- Performans
Çərçivə görmə və digər maşın öyrənmə tətbiqləri üçün bazara çıxma müddətini sürətləndirmək məqsədi ilə hazırlanmışdır. Tez bazara çıxmağı təmin etmək üçün proqram təminatının özünün başa düşülməsi və dəyişdirilməsi asan olması vacibdir. Bu məqsədi nəzərə alaraq, çərçivənin arxitekturasını məhdudlaşdırmadan və performans bahasına gəlmədən dəyişdirmək asandır.
Çərçivə haqqında daha ətraflı məlumat üçün Smart HMI Proqram Təminatının İnkişafı İstifadəçi Təlimatına (MCU-SMHMI-SDUG sənədi) baxın.
Yüngül və çox yönlü qrafika kitabxanası (LVGL)
LVGL (Yüngül və Çox Yönlü Qrafik Kitabxanası) istifadəsi asan qrafik elementləri, gözəl vizual effektləri və aşağı yaddaş yeri ilə daxili GUI yaratmaq üçün lazım olan hər şeyi təmin edən pulsuz və açıq mənbəli qrafik kitabxanadır.
GUI Bələdçisi
GUI Guider, açıq mənbəli LVGL qrafik kitabxanası ilə yüksək keyfiyyətli displeylərin sürətli inkişafına imkan verən NXP-dən istifadəçi dostu qrafik istifadəçi interfeysi inkişaf etdirmə vasitəsidir. GUI Guider-in sürüklə və burax redaktoru minimal və ya ümumiyyətlə kodlaşdırma olmadan GUI yaratmaq üçün vidjetlər, animasiyalar və üslublar kimi LVGL-in bir çox xüsusiyyətlərindən istifadə etməyi asanlaşdırır.
Bir düyməni basmaqla siz tətbiqinizi simulyasiya edilmiş mühitdə işlədə və ya hədəf layihəyə ixrac edə bilərsiniz. GUI Guider-dən yaradılan kod asanlıqla layihənizə əlavə oluna bilər, bu, inkişaf prosesini sürətləndirir və tətbiqinizə daxil edilmiş istifadəçi interfeysini problemsiz şəkildə əlavə etməyə imkan verir. GUI Guider NXP-nin ümumi təyinatlı və krossover MCU-ları ilə istifadə etmək pulsuzdur və bir neçə dəstəklənən platformalar üçün daxili layihə şablonlarını ehtiva edir. GUI Guider-də LVGL və GUI inkişafı haqqında daha çox öyrənmək üçün İşıq və Çox yönlü Qrafika Kitabxanasına və GUI Bələdçisinə baxın.
İnkişaf mühiti
Birincisi, köhnəni həyata keçirmək üçün aparat və proqram təminatı mühitini hazırlayın və qurunampçərçivə üzərində.
Aparat mühiti
Aparat mühiti keçmişi yoxlamaq üçün qurulubample:
- NXP i.MX RT117H əsasında ağıllı HMI inkişaf dəsti (SLN_TLHMI_IOT dəsti)
- 9 pinli Cortex-M adapter və V7.84a və ya sürücünün daha yeni versiyası ilə SEGGER J-Link
Software mühit
Proqram mühiti keçmişin inkişafı üçün qurulubample:
- MCUXpresso IDE V11.7.0
- GUI Bələdçisi V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – məsampinkişafın əsas proqram təminatı kimi ikinci proqram qeydinin kodu. Ətraflı məlumat üçün bax https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – inkişaf üçün kod mənbəyi kimi.
- SLN-TLHMI-IOT proqramı V1.1.2 – inkişaf üçün kod resursu kimi NXP GitHub deposunda buraxılmış ağıllı HMI mənbə kodu. Təfərrüatlar üçün baxın: GitHub – NXP/mcu-smhmi v1.1.2-də
Proqram mühitinin əldə edilməsi və qurulması haqqında təfərrüatlar üçün baxın: SLN-TLHMI-IOT ilə işə başlama.
Çərçivə üzərində görmə arxitekturası
Çərçivədəki görmə arxitekturası Şəkil 2-də göstərilmişdir. Görmə alqosu HAL (OASIS_HAL) aşağıdakı proseslərə malikdir:
- UI HAL çıxışından əlaqəli hadisələri aldıqdan sonra AI&ML görmə alqoritmi modeli vasitəsilə üz qeydiyyatını və tanınmasını həyata keçirin. Alqoritm modelindən çıxan nəticəni UI HAL çıxışına bildirin.
- Kiçik əsaslara əsaslanaraq üz xüsusiyyətləri bazasına daxil olur (əlavə edin, silin...). file UI HAL çıxışından əlaqəli hadisələri aldıqdan sonra FaceDB HAL-ın API-lərinə zəng edərək sistem.
- Üz qeydiyyatı və tanınması zamanı kamera HAL-dan kameranın video çərçivəsini tələb edin.
Çərçivədə üz tanınmasını tətbiq edin
LVGL GUI üz tanıma, məsələnample (keçmişample daha sonra verilir) çərçivəsində keçmiş əsasında həyata keçirilirampImplement LVGL GUI Camera Pre-nin kodlarıview Çərçivə üzrə (sənəd AN14147).
Keçmişdə sifətin tanınmasını nümayiş etdirdiyinə görəample, GUI tətbiqinin əsas funksiyası (Şəkil 3-də əsas ekrana baxın) aşağıda təsvir edildiyi kimi tərtib edilmişdir:
- GUI proqramı Qeydiyyat və ya Tanınma düyməsini kliklədikdə üz qeydiyyatı və ya tanınma hadisəsini UI HAL çıxışına tetikler. Və çıxış UI HAL üz qeydiyyatı uğurlu olduqdan sonra istifadəçinin görmə alqo HAL-a əlavə edilməsi hadisəsini xəbərdar edir.
- GUI tətbiqi istifadəçinin siması tanındıqdan sonra İstifadəçini Sil düyməsini kliklədikdə istifadəçinin UI HAL çıxışında silinməsi hadisəsini tetikler.
- GUI proqramı düymələr və şəkillərdən kənar ekrana kliklədikdə UI HAL çıxışına çalışan oazis alqosunun dayandırılması hadisəsini tetikler.
Keçmişin həyata keçirilməsi üçün proqram paketini hazırlayınample.
- Əsas proqramı lvgl_gui_camera_pre klonlayınview_cm7. Layihənin adını və əsasını dəyişdirin fileadı lvgl_gui_face_rec_cm7.
- Çərçivə nüvəsi üçün mənbə kodları GitHub-da 1.1.2 versiyasından ictimai olmağa başladığı üçün çərçivənin proqram təminatında yenilənməsi lazımdır.
- Çərçivə qovluğunu GitHub-dan V1.1.2 surəti ilə əvəz edin files fwk_log.h və fwk_common.h inc\ altındadır, çünki onlar tətbiq qeydləri seriyası üçün dəyişdirilmişdir. Əməliyyatlar Şəkil 4-də göstərilmişdir:
- Liblər qrupunun altında olan framework_cm7 qovluğunu silin və nüvənin mənbə kodu təmin olunduğundan, framework_cm7 kitabxanasını və Layihə > Xüsusiyyətlər > C/C++ Quraşdırma > parametrlər > Alət Parametrləri > MCU C++ Bağlayıcı > Kitabxanalarda konfiqurasiya edilmiş axtarış yolunu silin.
Çərçivədə üz tanıma funksiyasını aktivləşdirin
Üzün tanınması xüsusiyyəti NXP tərəfindən statik kitabxana kimi təqdim edilən ML görmə alqoritmi modeli üzərində qurulub – oasis lite işləmə vaxtı kitabxanası. Kitabxana kiçik, yüksək səmərəli, fərdiləşdirilmiş və optimallaşdırılmış AI kitabxanasıdır. Modelə üz aşkarlama, üz tanıma, şüşə aşkarlama və canlılığın aşkarlanması daxildir. O, əsasən, OASISLT_run_extended() API-ni hadisə geri çağırışları vasitəsilə zəng edənə nəticələri yeniləyərkən üz tanıma boru kəmərini işə salmaq və mənbə çərçivə məlumatını, geri çağırışları və yaddaşı təyin etdikdən sonra üz verilənlər bazası geri çağırışları vasitəsilə verilənlər bazasına üzləri əlavə etmək/yeniləmək/silmək üçün təmin edir. inisializasiya zamanı başqa API OASISLT_init() çağıraraq kitabxana tərəfindən istifadə edilən hovuz. API-lərin çağırılması və geri çağırış funksiyaları çərçivənin görmə alqo HAL-da həyata keçirilir.
Görmə alqo model kitabxanası əlavə edin
- Kitabxananı və əlaqəli başlığı ehtiva edən qovluq vahəsini kopyalayın file smart HMI\coffee_machine\cm7\libs\-dən keçmişin qovluq kitablarınaample SW.
- Başlığın axtarış yolunu əlavə edin file Layihə > Xüsusiyyətlər > C/C++ Quraşdırma > Parametrlər > Alət Parametrləri > MCU C tərtibçisi > Daxildir və MCU C++ tərtibçisi > Daxildir: “${workspace_loc:/${ProjName}/libs/oasis/include}”
- Layihə > Xüsusiyyətlər > C/C++ Quraşdırma > Parametrlər > MCU C+ + Bağlayıcı > Kitabxanalar: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” və makro tərifi üzərinə lib və onun axtarış yolunu əlavə edin Layihə > Xüsusiyyətlər > C/C++ Quraşdırma > Parametrlər > Alət Parametrləri > MCU C kompilyatoru > Preprocessor və MCU C++ kompilyatorunda funksiyanı aktivləşdirin > Preprosessor: SMART_TLHMI_2D
Görmə alqo HAL-ı aktivləşdirin
Görmə alqo HAL görmə alqo modelini işə salır və hadisələri ondan aldıqdan sonra nəticələrə UI çıxışı HAL-a cavab verir.
Onu aktivləşdirmək üçün mövcud oxşar HAL sürücüsünü klonlayın file burada aşağıdakı funksiyalar həyata keçirilir:
- Üz verilənlər bazası əməliyyatlarının və hadisələrin idarə edilməsinin geri çağırışlarını həyata keçirin.
- Oazis kitabxanasının API-lərinə zəng edərək görmə alqosunu işə sürün.
- İstifadəçi siması verilənlər bazasına və proqramlar verilənlər bazasına daxil olun (keçmişdə bu lazım deyilample).
- Hadisələri qəbul edin və nəticələri UI HAL çıxışına göndərin.
Əsas işlər keçmiş üçün HAL-ı həyata keçirmək üçün çalışırampbunlardır:
- Mövcud oxşar HAL sürücüsünü klonlayın file və əlaqəli adları dəyişdirin.
- Proqram data əməliyyatları ilə bağlı kodları silin.
- Keçmiş üçün UI HAL çıxışından hadisələri idarə etmək üçün tərifləri və funksiyaları yeniləyinample dizayn.
- Oasisin işə salınmasında tələb olunan konfiqurasiyaları əlavə edin.
Ətraflı addımlar aşağıdakı kimidir:
- klon hal_vision_algo_oasis_coffeemachine.c. dəyişdirin filead hal_vision_algo_oasis_guifacerec.c. Və bütün CoffeeMachine sətirlərini GUIFaceRec ilə əvəz edin file.
- Tətbiq verilənlər bazası ilə əlaqəli coffeedb sətirini (həssas deyil) ehtiva edən kodları silin, məsələnample, #include hal_sln_coffeedb.h.
- HAL UI çıxışından hadisələri idarə etmək üçün HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() funksiyasını dəyişdirin.
- Verilənlər bazasına yeni üz xüsusiyyəti datası əlavə etmək üçün hadisənin tərifini kEventFaceRecId_RegisterCoffeeSelection ilə kEventFaceRecId_RegisterUserFace və regCoffeeSelection struktur sətirini hadisənin idarə edilməsi üçün regGUIFaceRec olaraq dəyişdirin.
- Keçmişdə üz tanıma hərəkətlərinin standart prosesini göstərməkample, vəziyyətlərin tərifləri ilə kEventFaceRecID_OasisSetState vəziyyətində idarəetməni dəyişdirin:
- kOASISLiteState
- Qeydiyyat kOASISLiteState
- tanınması kOASISLiteState
- Dayandı
- Yuxarıdakı addımda qeyd olunan hadisələrin təriflərini əlavə edin və dəyişdirin.
- Başlığı kopyalayın file smart HMI\coffee_machine \cm7\source\event_handlers\-dən smart_tlhmi_event_descriptor.h köhnə mənbənin qovluğunaample SW. yeniləyin file aşağıdakı kimi:
- kEventFaceRecId_RegisterCoffeeSelection hadisə tərifini _event_smart_tlhmi_id enum növündə kEventFaceRecId_RegisterUserFace və regCoffeeSelection struktur sətirini _event_smart_tlhmi strukturunda regGUIFaceRec olaraq dəyişdirin. Beləliklə, regCoffeeSelection üçün register_coffee_selection_event_t strukturunu register_gui_facerec_event_t olaraq dəyişdirin.
- Qəhvə maşını proqramı üçün istifadə edilən başqa məzmunu silin, məsələnample, səs haqqında kod xətti: #include “hal_event_descriptor_voice.h”.
- Layihədə framework>hal>vision altında hal_vision_algo.h-də oasis_lite_state_t enum növünə kOASISLiteState_Stopped və kOASISLiteState_Running növlərini aşağıdakı kimi əlavə edin:
typedef enum _oasis_lite_state {- kOASISLiteState
- Çalışır, kOASISLiteState
- Dayandı, kOASISLiteState
- tanınma,
- kOASISLiteState
- Qeydiyyat, kOASISLiteState
- Qeydiyyatın ləğvi, kOASISLiteState
- Uzaqdan Qeydiyyat, kOASISLiteState
- saymaq
- Layihədə framework>hal>vision altında hal_event_descriptor_face_rec.h-də oasis_state_event_t strukturunu aşağıdakı kimi təkmilləşdirmək üçün yuxarıda yenilənmiş oasis_lite_state_t strukturundan istifadə edin: typedef struct _oasis_state_event_t { oasis_lite_state_t; } oasis_state_event_t;
- Hadisələri görmə alqo HAL-dan eyni nüvədə işləyən digər HAL-lara göndərmək üçün bütün kEventInfo_Remote-ni kEventInfo_Local olaraq dəyişdirin, çünki keçmişdə iki nüvəli deyil, tək nüvədən istifadə olunur.ample.
- OASISLT_init()-də vahənin işə salınması üçün aşağıdakı konfiqurasiyaları əlavə edin və dəyişdirin:
- board_define.h-də video çərçivə üçün makro tərifləri və yaddaş bölmələrini əlavə edin: #define OASIS_RGB_FRAME_WIDTH 800
- #OASIS_RGB_FRAME_HEIGHT 600 təyin edin
- #OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB müəyyən edin
- #OASIS_RGB_FRAME_BYTE_PER_PIXEL 3 müəyyən edin
- #AT_FB_SHMEM_SECTION_ALGN təyin edin (var, alignbayt) \
- __attribute__((bölmə(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __atribut__((düzləşdirilmiş(alignbayt)))
- Layihə > Xüsusiyyətlər > C/C++ Quraşdırma > Şəkil 5-də göstərilən MCU Parametrlərində yuxarıdakı fb_sh_mem yaddaş bölməsinə yaddaş təyinatını konfiqurasiya edin:
- lvgl_gui_face_rec_cm7.cpp-də g_DTCOPBuf qlobal dəyişənini elan edin: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Yuxarıdakı dəyişəndə istifadə olunan tərifləri əlavə etməyə davam edin:
- board_define.h-də yuxarıdakı bölməni təyin edin:
- #AT_NONCACHEABLE_SECTION_ALIGN_DTC (var, alignbytes) təyin edin \
- atribut__((bölmə(“.bss.$SRAM_DTC_cm7,\”aw\",%nobits @”))) var
- atribut__((düzləşdirilmiş(alignbayt)))
- Başlığı daxil edin file hal_vision_algo.h lvgl_gui_face_rec_cm7.cpp-ə daxil edilmiş app_config.h-də DTC_OPTIMIZE_BUFFER_SIZE makro tərifini ehtiva edir.
- board_define.h-də video çərçivə üçün makro tərifləri və yaddaş bölmələrini əlavə edin: #define OASIS_RGB_FRAME_WIDTH 800
- Üz tanınmasında irəliləyiş vəziyyətini göstərmək üçün s_debugOption dəyişənini doğru olaraq təyin edin.
- Başlığın axtarış yolunu əlavə edin files of the vision HAL on Project > Properties >C/C++ Build > settings > Tool Settings > MCU C compiler > Includes and MCU C++ compiler > Daxildir: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- board_define.h-də görmə alqo HAL-ı aktivləşdirmək üçün aşağıdakı tərifi əlavə edin: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
UI HAL çıxışını aktivləşdirin
Çıxış UI HAL hadisələri görmə alqo HAL-a bildirir və görmə alqo HAL-dan çıxan nəticəyə cavab verir. GUI tətbiqi ilə hadisələr ümumiyyətlə proqram tərəfindən tetiklenir və nəticələr tətbiqdə göstərilir.
Onu aktivləşdirmək üçün mövcud oxşar HAL sürücüsünü klonlayın file burada ümumiyyətlə aşağıdakı funksiyalar həyata keçirilir:
- Üz tanıma və verilənlər bazasına giriş üçün hadisələri xəbərdar edin.
- Hadisələri işə salmaq üçün GUI tətbiqi üçün geri çağırışları həyata keçirin.
- Görmə alqo modulundan nəticə çıxarın.
- Taymerlər və üz bələdçisi düzbucaqlı ilə idarə olunan tərəqqi paneli ilə UI-də hadisələrin idarə edilməsi prosesini və nəticələrini göstərin.
Əsas işlər keçmiş üçün HAL-ı həyata keçirmək üçün çalışırampBu sənəddə istifadə olunanlar:
- Mövcud oxşar HAL sürücüsünü klonlayın file və əlaqəli adları dəyişdirin.
- Proqramla əlaqəli kodları silin.
- Hadisələr haqqında bildiriş və nəticələrə reaksiya funksiyalarını keçmişə görə yeniləyinample dizayn.
- Hadisələri işə salmaq üçün GUI tətbiqi üçün geri zəngləri əlavə edin.
Ətraflı addımlar aşağıdakı kimidir:
- klon hal_output_ui_coffee_machine.c. dəyişdirin filead hal_ output_ui_guifacerec.c.
- CoffeeMachine bütün sətirlərini GUIFaceRec ilə əvəz edin file.
- Tətbiqlə əlaqəli kodları silin - qəhvə maşını.
- WakeUp() və _StandBy() funksiyalarını və əlaqəli kodları silin (onlar üçün wake_up və gözləmə sətirində axtarış edə bilər).
- Əvvəlcədən çıxarınview HAL_OutputDev_UiGUIFaceRec_Input Notify() proqramında əlaqəli kodları idarə edən rejim hadisələri.
- UI_xxx_Callback() funksiyalarını və gui_ sətrini və qəhvə maşınının GUI-si ilə əlaqəli ekranı ehtiva edən kodları gui_set_virtual_face() istisna olmaqla silin.view rejimi xüsusiyyəti.
- Qəhvə maşını proqramı ilə əlaqəli s_IsWaitingAnotherSelection və s_IsWaitingRegisterSelection dəyişənləri ilə əlaqəli bütün kodları silin.
- Səs, audio və dillə əlaqəli kodları silin. məsələnample:
- #daxil edin “hal_voice_algo_asr_local.h”,
- #daxil edin “hal_event_descriptor_voice.h”
- Müxtəlif hadisələr bildirişləri üçün _StopFaceRec(), _RegisterCoffeeSelection() və RegisterCoffeeSelection()Selection() funksiyalarına istinad edərək, _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() və DeregisterGUIFaceRec() funksiyalarını həyata keçirin.
- _OutputManagerNotify() hadisəni görmə alqo HAL-a göndərmək üçün əsas hadisə çıxış funksiyasını həyata keçirir. Aşağıdakı funksiyalar onu öz hadisələrini göndərmək üçün çağırır.
- _SetFaceRec() üzün qeydiyyatı, tanınması və alqo dayandırılması üçün görmə alqosunu işə salmaq üçün kEventFaceRecID_OasisSetState hadisəsini göndərir.
- _RegisterGUIFaceRec() qeydiyyat OK olduqda verilənlər bazasına üz xüsusiyyətləri məlumatlarını əlavə etmək üçün smart_tlhmi_event_descriptor.h-də müəyyən edilmiş kEventFaceRecId_RegisterGUIFaceRec hadisəsini göndərir.
- DeregisterGUIFaceRec() üzün tanınmasını keçərkən verilənlər bazasından üz xüsusiyyəti məlumatlarını silmək üçün kEventFaceRecID_DelUser hadisəsini göndərir.
- _InferComplete_Vision() funksiyasında üz qeydiyyatı və tanınması ilə bağlı nəticə çıxarmaq üçün LVGL GUI tətbiqindən API-lərə zəng edərək GUI-ni yeniləmək də daxil olmaqla, müvafiq tədbirlər görmək üçün kodları yeniləyin.ampdizaynı. məsələnample, üz qeydiyyatı uğurlu olduqda,
- _FaceRecProcess_Stop();
- _SetFaceRec(kOASISLiteState_Stopped) nömrəsinə zəng edərək üz qeydiyyatını dayandırın;
- GUI-də uğurlu nəticəni göstərin: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Üz məlumatlarını verilənlər bazasında qeyd edin: _RegisterUserFace(s_UserId);
- Hadisələri idarə etmək üçün UI geri çağırış funksiyaları əlavə edin: preview, üz qeydiyyatı, tanınması və istifadəçinin silinməsi GUI-dən işə salınır. məsələnample, üz qeydiyyatının geri çağırışı: etibarsız UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- Və müxtəlif hadisələrdə və nəticələrdə irəliləyiş və statusu göstərmək üçün _FaceRecProcess_Start() və _FaceRecProcess_Stop() funksiyalarını əlavə edin.
- Taymeri ISR geri çağırış funksiyasını _SessionTimer_Callback() yeniləyin: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- board_define.h-də HAL UI çıxışını aktivləşdirmək üçün aşağıdakı tərifləri əlavə edin: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Qeyd:
Üz tanıma funksiyasını daha yaxşı təqdim etmək üçün UI HAL çıxışında üz tanıma prosesini və nəticələrini göstərmək funksiyasını saxlayın. Funksiya aşağıdakı kimi təsvir edilmişdir
- Üz bələdçisi düzbucaqlı mavi rəngi, tərəqqi paneli isə üzün qeydiyyatı və ya tanınmasına başladıqda gedişatı göstərir.
- Üz qeydiyyatı uğurlu olduqda üz bələdçisi düzbucaqlı qırmızı rəng göstərir.
- Üz bələdçisi düzbucaqlı üzün tanınması uğurlu olduqda yaşıl rəng göstərir.
- Üz bələdçisi düzbucaqlı mavi rəngdə qalır və taymerin müddəti bitdikdən sonra əməliyyat uğursuz olduqda tərəqqi paneli tam tərəqqi göstərir. Bu zaman üz qeydiyyatını və ya tanınmasını dayandırın.
Tərəqqi çubuğu və üz bələdçisi düzbucaqlı resurs binarına daxil edilmiş nişanlar kimi təqdim olunur file Flash-a proqramlaşdırılmalıdır. SDRAM-dakı nişanlar məlumatlarına göstəricilər UI HAL çıxışında çıxış UI HAL cihazının işə salınması zamanı çağırılan LoadIcons(APP_ICONS_BASE) funksiyasında qurulur. O, funksiya üçün ikona dəstəyini həyata keçirməlidir.
Nişanlar dəstəyini həyata keçirin
- LVGL GUI tətbiqində istifadə olunan şəkillərlə nişanları birləşdirən resurs yaradın:
- Dörd simvol başlığını klonlayın filesmart HMI-dən proses_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h və virtual_face_red_420x426.h
\qəhvə maşını\resurs\ikonlar\ köhnənin resurs qovluğunun altındakı yeni qovluq nişanlarınaample SW. - Dörd simvol üçün axtarış yolunu əlavə edin files kamerada_preview_resource.txt file resurs qovluğunda, məsələnample: icon ../resource/icons/process_bar_240x14.h
- camera_pre icra edinview_resource_build.bat zibil qutusunu yaratmaq üçün şəkillər və nişanlar resurslarını yaratmaq üçün file kamera_preview_resource.bin və məlumat file resource_information_table.txt (Şəkil 6-a baxın).
- Dörd simvol başlığını klonlayın filesmart HMI-dən proses_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h və virtual_face_red_420x426.h
- SDRAM-da başlanğıc ünvanını və app_config.h-də nişanların ölçüsünü müəyyən edin. Ünvan GUI tətbiqinin şəkillərinin yanında başlayır. Ölçü məlumatda yaradılır file. #APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) müəyyən edin #APP_ICONS_SIZE 0x107c40 müəyyən edin
- res_sh_mem adlı yaddaş bölməsinin təyin olunmuş ölçüsünü app_config.h-də yenidən təyin etməklə 0x200000-ə yeniləyin: #define RES_SHMEM_TOTAL_SIZE 0x200000 və Layihə > Xüsusiyyətlər > C/C++ Quraşdırma > MCU parametrlərində müvafiq parametrləri təyin edin.
- Əsas proqramda APP_LoadResource() funksiyasında Flash-dan SDRAM-a yüklənmiş resursun ümumi ölçüsünə nişan ölçüsünü əlavə edin. file lvgl_gui_face_rec_cm7.cpp: memcpy((boş *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Xəbərdarlıq: Üz tanıma funksiyasını tamamlamaq üçün LVGL GUI tətbiq dəstəyi lazımdır. UI HAL çıxışında UI geri çağırış funksiyaları UI ekranından hadisələri idarə etmək üçün LVGL GUI proqramı tərəfindən çağırılır. Digər tərəfdən, çıxış UI HAL nəticə və statusu göstərmək üçün UI-ni yeniləmək üçün LVGL GUI tətbiqindən API-ləri çağırır. LVGL GUI proqramının inkişafı nisbətən müstəqildir və Bölmə 4.3-də təqdim olunur.
4.1.5 Üz tanınması üçün HAL cihazlarını və menecerlərini işə salın
Aktivləşdirilmiş görmə alqo HAL və UI çıxışı HAL və onların menecerləri əsas olaraq işə salınır file
lvgl_gui_face_rec_cm7.cpp aşağıdakı kimi çərçivədə inkişaf çevrilmələrindən sonra:
- Başlığı daxil edin file kod xəttini əlavə etməklə iki HAL meneceri ilə əlaqəli:
- #include ” fwk_output_manager.h “
- #daxil edin “fwk_vision_algo_manager.h”
- HAL cihazlarını elan edin:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- HAL cihazlarını qeydiyyatdan keçirin:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Menecerləri işə salın:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- Menecerləri işə salın:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, təkrar);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, təkrar);
- Menecerin vəzifələrinin prioritetini müəyyənləşdirin:
- #VISION_ALGO_MANAGER_TASK_PRIORITY 3-ü müəyyən edin
- #NƏTİCƏ_MƏDƏCƏCİSİNİN_TASKİ_PRİORİTİTİNİ müəyyən edin
Çərçivəyə üz verilənlər bazası dəstəyi əlavə edin
Qeydə alınmış üz xüsusiyyəti məlumatlarına Flash-da saxlanılan üz məlumat bazasında bir az vasitəsilə daxil olur file sistemi. Üz verilənlər bazası dəstəyini əlavə etmək üçün addımlar aşağıda təsvir edilmişdir.
Flash yaddaş üçün sürücüləri əlavə edin
Flash interfeysi FlexSPI sürücüsünü kopyalayın files fsl_flexspi.c və fsl_flexspi.h və məlumat şifrələmə sürücüsü files fsl_caam.c və fsl_caam.h SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ yolundan keçmiş sürücünün sürücülər qovluğunaample SW.
Lövhə səviyyəsində dəstək əlavə edin
- board.h-də flaş cihazı üçün istifadə edilən FlexSPI təriflərini əlavə edin:
- #BOARD_FLEXSPI FLEXSPI1-i müəyyən edin
- #BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1 təyin edin
- #BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE-ni müəyyən edin
- Operatorları və konfiqurasiyaları kopyalayın fileflexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h və sln_flash_ops.h-nin s-ni pathee_fisource\cm_smart_michig\ne\ qovluğuna köçürün keçmişdənample SW.
- C/C++ Quraşdırma > Parametrlər bölməsində siçan düyməsini sağ kliklədikdən sonra “Resurs qurmaqdan xaric et” seçimini silin. files' adını və onların layihəyə daxil edilməsini təmin etmək üçün Xüsusiyyətləri açın.
- Daxil olan başlığı dəyişdirin filesln_flash_config.c və flexspi_nor_flash_ops.h-də sln_flash_config_w25q256jvs.h olaraq sln_flash_config.h adını verin.
- FlexSPI1 saat mənbəyini seçin file clock_config.c qəhvə maşını proqramına istinad edir.
Adapter və orta səviyyəli dəstək əlavə edin
- kopyalayın filesln_flash.c, sln_flash.h, sln_encrypt.c və sln_encrypt.h üçün adapter sürücüləri kimi file sistem və proqram smart HMI\coffee_machine\cm7\source\ yolundan keçmiş qovluq mənbəyinəample. Yenisini yeniləyin files:
- Tikinti üçün onların üzərində "Resurs qurmaqdan xaric et" seçimini silin.
- Daxil olan bütün başlığı dəyişdirin file sln_flash_config.h adını sln_flash_config_w25q256jvs.h-a qoyun.
- Qovluğu kopyalayın filekiçiklər üçün API-ləri ehtiva edən sistem filesmart HMI \coffee_machine\cm7\source\-dan keçmişə qədər sistem və HAL sürücüsüample SW. Və yeni qovluq üçün yeniləmə:
- Tikinti üçün "Resurs qurmaqdan xaric et" seçimini silin.
- Layihə parametrlərində onun daxiletmə yolunu əlavə edin: “${workspace_loc:/${ProjName}/filesistem}”
- Daxil olan başlığı dəyişdirin file sln_flash_config.h-ni sln_flash_config_w25q256jvs.h və fica_definition.h-ni app_config.h olaraq adlandırın. file sln_flash_littlefs.h.
- Orta qabı ehtiva edən littlefs qovluğunu kopyalayın – az filesistem SDK_2_13_0_ MIMXRT1170-EVK\middleware\ yolundan keçmişəample SW. Və yeni qovluğu yeniləyin:
- Tikinti üçün "Resurs qurmaqdan xaric et" seçimini silin.
- Layihə parametrlərində bunun üçün daxiletmə yolunu əlavə edin: “${workspace_loc:/${ProjName}/littlefs}”
HAL sürücüləri əlavə edin
- İki HAL cihazı var - file sistem və üz verilənlər bazası HAL verilənlər bazasına giriş funksiyası üçün dəstəklənir və onlar artıq heç bir dəyişiklik edilmədən çərçivədə həyata keçirilir. board_define.h-də aşağıdakı tərifləri əlavə etməklə onları aktivləşdirin:
- #ENABLE_FLASH_DEV_Littlefs-i təyin edin
- #ENABLE_FACEDB-ni təyin edin
Və keçmiş üçün üz verilənlər bazası adını dəyişdirinample: #OASIS_FACE_DB_DIR “oasis_gui_face_rec” təyin edin
Tətbiq səviyyəsində dəstək əlavə edin
- Əsası yeniləyin file lvgl_gui_face_rec_cm7.cpp:
- Başlığı daxil edin file Flash ilə bağlıdır file kod xəttini əlavə edərək sistem HAL meneceri: #include “fwk_flash.h”
- Bildirin və qeydiyyatdan keçin file sistem HAL cihazı:
- HAL_FLASH_DEV_DECLARE(Kiçiklər);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Qeyd: The file sistem HAL cihazı bütün cihaz menecerləri APP_InitFramework() funksiyasında işə salınmazdan əvvəl qeydiyyatdan keçməlidir.
- MPU-nu konfiqurasiya etmək üçün APP_BoardInit()-də BOARD_ConfigMPU() funksiyasına zəng edin.
- təyin edin file Flash-da sistem təyinatı file app_config.h proqramında istifadə olunan makro tərifləri təyin etməklə file sln_flash_littlefs.h:
- #FICA_IMG_ təyin edinFILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #FICA_ müəyyən edinFILE_SYS_SIZE (0x280000)
Konfiqurasiyalar
Bəzi Flash ilə əlaqəli kodlar kifayət qədər performans üçün SRAM ITC sahəsində icra edilir. Linker konfiqurasiyalarını ehtiva edən qovluq linkskriptlərini smart HMI\coffee_machine\cm7\ yolundan keçmişə köçürün.ample SW.
LVGL GUI tətbiqini həyata keçirin
Çərçivə əsasında LVGL GUI tətbiqinin inkişafı UI HAL çıxışından API-ləri çağırır və API-ləri UI HAL çıxışı üçün təmin edir (çıxış UI HAL-ın həyata keçirilməsi üçün Bölmə 4.1.3-ə baxın).
Bununla belə, LVGL GUI tətbiqinin təfərrüatlı tətbiqi tətbiqin tələblərindən və dizaynından asılıdır. Bu köhnə GUI tətbiqiample 4-cü bölmənin əvvəlində təsvir edildiyi kimi tərtib edilmişdir.
Aşağıda həyata keçirilməsi ilə bağlı təqdimatlar verilmişdir:
- Fərdiləşdirilmiş kodlar GUI Guider layihəsi ilə daxili sistem layihəsi arasında interfeys kimi GUI Guider tərəfindən verilən custom.c və custom.h-də həyata keçirilir.
- Aşağıdakı funksiyalara nail olmaq üçün custom.c-də gui_xxx() adlı yeni funksiyaları əlavə edin:
- Çıxış UI HAL və UI yeniləmək üçün GUI tətbiqi üçün.
- GUI tətbiqi üçün UI HAL çıxışından UI geri çağırış funksiyalarına zəng etməklə hadisələri işə salmaq.
məsələnample, yeni funksiya gui_event_face_rec_action() əlaqədar düyməyə kliklədikdə GUI tətbiqindən işə salınan üz qeydiyyatı, üz tanınması və istifadəçinin silinməsi hadisələrindən birini idarə etmək üçün UI geri çağırış funksiyalarını çağırır.
Qeyd: gui_set_virtual_face() funksiyası əvvəlcədən üçün UI HAL çıxışında çağırılırview rejimi custom.c-də həyata keçirmək lazımdır:
- smart HMI\coffee_machine\cm4\custom \custom.c-dən gui_set_virtual_face() funksiyasını klonlayın.
- Vidcetin adını home_img_cameraPre dəyişdirinview screen_img_camera_pre üçünview funksiyasında.
- GUI Guider layihəsi ilə uyğun olmaq üçün custom.c-də #ifndef RT_PLATFORM makro tərifinin nəzarəti altında UI HAL çıxışında olanların hamısına eyni prototiplə UI geri çağırış funksiyalarını həyata keçirin, çünki çıxış UI HAL-dakı bu funksiyalar istifadəçi interfeysindən asılıdır. quraşdırılmış platforma. custom.c-də onlar GUI yönləndiricisindəki simulyatordan asılıdır və quraşdırılmış platformadan müstəqildirlər. məsələnample, üz qeydiyyatının geri çağırışı işləyən GUI Guider simulyatoru üçün aşağıdakı kimi həyata keçirilir: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; qayıtmaq; }
Qeyd: Bölmə 6-ün 4.1.3-cı addımında təqdim edilmiş funksiyanın eyni prototipinə baxın
RT_PLATFORM makro tərifi Şəkil 7-də göstərildiyi kimi MCUXpresso-nun layihə parametrlərində quraşdırılmışdır: - custom.h-də UI_xxx_Callback() və gui_xxx() adlı bütün funksiyaları elan edin və GUI API-lərini UI çıxışı HAL ilə bölüşmək üçün smart_tlhmi_event_descriptor.h-ə daxil edilmiş custom.h əlavə edin.
- Aşağıdakı funksiyalara nail olmaq üçün custom.c-də gui_xxx() adlı yeni funksiyaları əlavə edin:
- GUI Guider-də GUI-ni inkişaf etdirin:
- Əvvəlcədən qovluq kamerasını klonlayınview lvgl_gui_camera_pre əsas proqram paketində gui_guider qovluğunda GUI Guider layihə proqramını ehtiva edirview_cm7. Əlaqədar adı camera_pre dəyişdirinview yeni keçmiş üçün face_recample.
- Yuxarıda yenilənmiş custom.c və custom faylını kopyalayın. h yeni GUI Guider layihə proqramına.
- GUI Bələdçisində yeni face_rec layihəsini açın. Aşağıdakı kimi yeniləyin:
- İstifadəçi Sil etiketli yeni düyməni əlavə edin. GUI proqramı işə salındıqda düymənin gizlədilməsi üçün ona Gizli bayrağı əlavə edin.
- Üz qeydiyyatı, sifətin tanınması və istifadəçinin silinməsi hadisələrini işə salmaq üçün bütün Qeydiyyat, Tanınma və İstifadəçini Sil düymələrinin Hadisə Parametrində “Buraxılmış” tetikleyicisində müxtəlif hadisə ID parametri ilə API gui_event_face_rec_action() çağırmaq üçün kod xətti əlavə edin. Şəkil 8-də Qeydiyyat düyməsinin hadisə kodu göstərilir:
- GUI Guider-dən yaradılan kodu MCUXpresso layihəsinə yeniləyin.
- MCUXpresso layihəsi SW-nin yaradılan qovluğundakı qovluq şəkilləri istisna olmaqla, məzmunu GUI Guider layihəsi SW-də yaradılan qovluqdakı müvafiq olanlarla əvəz edin.
Qeyd: Yuxarıda təqdim edilən dəyişikliklər haqqında ətraflı məlumat üçün keçmişampproqram təminatı ilə https://mcuxpresso.nxp.com/appcodehub.
Keçmiş ilə yoxlamalaramplayihə
Keçmişi almaq üçünampBu proqram üçün resurs və alətləri ehtiva edən proqram paketi qeyd edin, ziyarət edin: https://mcuxpresso.nxp.com/appcodehub. Keçmişi açınampMCUXpresso IDE-də layihə. .axf qurun və proqramlaşdırın file 0x30000000 ünvanına yazın və resurs qutusunu proqramlaşdırın file kamera_preview_resource.bin ünvanına 0x30800000.
LVGL GUI üz tanıma, məsələnample normal olaraq aşağıdakı kimi işləyir:
- Preview: Güc işə salındıqda, kamera tərəfindən çəkilmiş video axınları kameranın əvvəlcədən xüsusi sahəsində göstərilirview GUI ekranında. Vəziyyət etiketində “Preview…”. Təfərrüatlar üçün Şəkil 3-ə baxın. İstifadəçini Sil düyməsi gizlidir. Düymələrin və şəkillərin xaricindəki sahəyə kliklədikdə, bu, əvvəlcədən göstərirview sifətin qeydiyyatı və ya tanınması əməliyyatı bitdikdən sonra yuxarıdakı kimi qeyd edin.
- Qeydiyyat:
- tartup: Qeydiyyat düyməsi kliklədikdə, üz qeydiyyatı başlayır. Vəziyyət etiketi “Qeydiyyat…” göstərmək üçün dəyişir, üz bələdçisi düzbucaqlı mavi rəngdə görünür və tərəqqi paneli gedişatı göstərməyə başlayır. Qeydiyyat üçün istifadəçinin üzünün mavi üz bələdçisi düzbucağında göstərildiyinə əmin olun.
- uğur: Vəziyyət etiketində “Qeydiyyat… OK” və qeydiyyatdan keçmiş istifadəçi ID nömrəsi göstərilir, tərəqqi barda tam göstərilməzdən əvvəl üz qeydiyyatı uğurlu olarsa, üz bələdçisi düzbucaqlı qırmızı olur.
- Uğursuzluq -> Vaxt bitdi: Tərəqqi paneldə tam olaraq görünəndə üz qeydiyyatı hələ də uğursuz olarsa, status etiketində “Qeydiyyat... Vaxt aşımı” göstərilir.
- Uğursuzluq -> Dublikasiya: Vəziyyət etiketində “Qeydiyyat…Uğursuz” göstərilir, tərəqqi barda tam göstərilməzdən əvvəl qeydə alınmış üz tanınırsa, üz bələdçisi düzbucaqlı yaşıl olur.
- tanınma:
- Başlanğıc: Tanınma düyməsi kliklədikdə, üz tanınması başlayır. Vəziyyət etiketi “Tanınma…” göstərmək üçün dəyişir, üz bələdçisi düzbucaqlı mavi rəngdə görünür və tərəqqi paneli irəliləyişləri göstərməyə başlayır. Qeydiyyat üçün istifadəçinin üzünün mavi üz bələdçisi düzbucağında göstərildiyinə əmin olun.
- uğur: Vəziyyət etiketində “Tanınma…OK” və tanınan istifadəçi ID nömrəsi göstərilir, tərəqqi barda tam olaraq görünməzdən əvvəl üz tanınması uğurlu olarsa, üz bələdçisi düzbucaqlı yaşıl olur. Bu nöqtədə İstifadəçini Sil düyməsi görünür. Bu o deməkdir ki, istifadəçi yalnız tanındıqda silinməyə icazə verilir.
- hal: İrəliləyiş barda tam olaraq göründüyü zaman üz tanınması hələ də uğursuz olarsa, status etiketində “Tanım... Vaxt aşımı” göstərilir.
- İstifadəçini silin: “İstifadəçini Sil” düyməsi kliklədikdə, üz tanınması uğurlu olduqdan sonra status etiketi “İstifadəçini Sil…OK” yazısını göstərəcək və üz bələdçisi düzbucaqlı mavi rəngə çevrilir və tərəqqi barda tam göstərilir. İstifadəçini Sil düyməsi yenidən gizlədilir. Tanınmış üz/istifadəçi verilənlər bazasından silinir. Bu o deməkdir ki, bu üz/istifadəçi yenidən qeydiyyatdan keçənə qədər tanınmayacaq.
Sənəddəki mənbə kodu haqqında qeyd edin
ExampBu sənəddə göstərilən kodun aşağıdakı müəllif hüququ və BSD-3-Maddə lisenziyası var:
Müəlliflik hüququ 2024 NXP Aşağıdakı şərtlər yerinə yetirildiyi təqdirdə yenidən bölüşdürülməsi və mənbə və binar formalarda istifadəsinə, dəyişdirilməklə və ya dəyişdirilmədən icazə verilir:
- Mənbə kodunun yenidən paylanması yuxarıdakı müəllif hüququ bildirişini, bu şərtlər siyahısını və aşağıdakı imtina bildirişini saxlamalıdır.
- İkili formada təkrar paylamalar yuxarıda göstərilən müəllif hüququ bildirişini, bu şərtlərin siyahısını və sənədlərdə və/və ya digər materiallarda aşağıdakı imtina bildirişini əks etdirməlidir.
- Nə müəllif hüququ sahibinin adı, nə də onun ianəçilərinin adları əvvəlcədən xüsusi yazılı icazə olmadan bu proqram təminatından əldə edilən məhsulları dəstəkləmək və ya təşviq etmək üçün istifadə edilə bilməz.
BU PROQRAM TƏMİNATI MÜƏLLİF HÜQUQ SAHİBLƏRİ VƏ ƏMƏKÇİLƏR TƏRƏFİNDƏN “OLDUĞU KİMİ” VƏ TİCARƏ SAHİBƏNİN MÜALİCƏSİNƏ YAXŞI DÜZEYLİ ZƏMANƏTLƏR O cümlədən, lakin bununla məhdudlaşmır, hər hansı açıq və ya dolayısı ilə təmin edilir. TƏQDİM EDİLMİŞDİR. MÜƏLLİF HÜQUQ SAHİBİ VƏ YA TƏHMƏKÇİLƏR HİÇ BİR HALDA BİRBAŞA, DOLAYI, TASADİF, XÜSUSİ, NÜMUNƏVİYYƏTLİ VƏ YA NƏTİCƏLİ ZƏRƏRƏ (O cümlədən, lakin MƏHDUDİYYƏT OLMAYAN) MƏSULİYYƏT OLMAYIR. XİDMƏTLƏR; İSTİFADƏ, MƏLUMAT VƏ YA MƏNFƏTİN İTİRİLMƏSİ və ya MÜQAVİLƏDƏN OLDUĞUNDA VƏ HƏR HƏR MƏSULİYYƏ NƏZƏRİYYƏSİ ÜZƏRİNDƏ (DİGƏR DƏYƏRLƏNMƏK OLMALIDAN) BU PROGRAM TƏMİNATININ İSTİFADƏSİ, BELƏ ZƏRƏRLƏRİN MÜMKÜNLƏRİNDƏN MƏSLƏHƏT OLUNSA belə.
Təftiş tarixi
Hüquqi məlumat
Təriflər
Qaralama — Sənəddəki qaralama statusu məzmunun hələ də daxili revizyon altında olduğunu göstərirview və dəyişikliklər və ya əlavələrlə nəticələnə bilən rəsmi təsdiqə tabedir. NXP Semiconductors, sənədin qaralama variantına daxil edilmiş məlumatların düzgünlüyünə və ya tamlığına dair heç bir təqdimat və ya zəmanət vermir və belə məlumatdan istifadənin nəticələrinə görə heç bir məsuliyyət daşımır.
İmtina
- Məhdud zəmanət və məsuliyyət — Bu sənəddəki məlumatların dəqiq və etibarlı olduğuna inanılır. Bununla belə, NXP Semiconductors bu cür məlumatların düzgünlüyünə və ya tamlığına dair açıq və ya nəzərdə tutulmuş heç bir ifadə və ya zəmanət vermir və belə məlumatdan istifadənin nəticələrinə görə heç bir məsuliyyət daşımır. NXP Semiconductors, NXP Semiconductors xaricində məlumat mənbəyi tərəfindən təmin edildiyi təqdirdə bu sənəddəki məzmuna görə heç bir məsuliyyət daşımır.
Heç bir halda NXP Yarımkeçiriciləri hər hansı dolayı, təsadüfi, cəza, xüsusi və ya nəticəli ziyana görə məsuliyyət daşımır (o cümlədən – məhdudlaşdırılmadan – itirilmiş mənfəət, itirilmiş qənaət, biznesin dayandırılması, hər hansı məhsulun çıxarılması və ya dəyişdirilməsi ilə bağlı xərclər və ya yenidən işlənmə xərcləri). və ya belə zərərlər dələduzluq (səhlənkarlıq daxil olmaqla), zəmanət, müqavilənin pozulması və ya hər hansı digər hüquqi nəzəriyyəyə əsaslanmır.
Müştərinin hər hansı səbəbdən vura biləcəyi hər hansı ziyana baxmayaraq, NXP Yarımkeçiricilərinin burada təsvir edilən məhsullara görə müştəri qarşısında məcmu və məcmu məsuliyyəti NXP Yarımkeçiricilərinin kommersiya satışının Qayda və şərtlərinə uyğun olaraq məhdudlaşdırılacaqdır. - Dəyişiklik etmək hüququ — NXP Semiconductors istənilən vaxt və xəbərdarlıq etmədən bu sənəddə dərc edilmiş məlumatlara, o cümlədən məhdudiyyətsiz spesifikasiyalar və məhsul təsvirlərinə dəyişiklik etmək hüququnu özündə saxlayır. Bu sənəd dərc olunmazdan əvvəl verilmiş bütün məlumatları əvəz edir və əvəz edir.
- İstifadəyə uyğunluq — NXP Semiconductors məhsulları həyat təminatı, həyat üçün kritik və ya təhlükəsizlik baxımından kritik sistemlər və ya avadanlıqlarda, nə də NXP Semiconductors məhsulunun nasazlığının və ya nasazlığının əsaslı şəkildə aşağıdakılarla nəticələnə biləcəyi tətbiqlərdə istifadə üçün nəzərdə tutulmayıb, icazə verilməyib və ya zəmanət verilməyib. şəxsi zədə, ölüm və ya ciddi əmlaka və ya ətraf mühitə zərər. NXP Semiconductors və onun təchizatçıları NXP Semiconductors məhsullarının bu cür avadanlıq və ya tətbiqlərə daxil edilməsi və/və ya istifadəsi üçün heç bir məsuliyyət daşımır və buna görə də belə daxiletmə və/və ya istifadə riski müştərinin öz üzərinə düşür.
- Tətbiqlər — Bu məhsullardan hər hansı biri üçün burada təsvir edilən tətbiqlər yalnız təsvir məqsədləri üçündür. NXP Semiconductors əlavə sınaq və ya dəyişiklik edilmədən bu cür tətbiqlərin müəyyən edilmiş istifadə üçün uyğun olacağına dair heç bir bəyanat və ya zəmanət vermir.
Müştərilər NXP Semiconductors məhsullarından istifadə edərək tətbiqlərinin və məhsullarının dizaynına və istismarına cavabdehdirlər və NXP Semiconductors proqramlar və ya müştəri məhsulunun dizaynı ilə bağlı hər hansı yardıma görə heç bir məsuliyyət daşımır. NXP Semiconductors məhsulunun müştərinin proqramlarına və planlaşdırılan məhsullarına, həmçinin müştərinin üçüncü tərəf müştəri(lər)inin planlaşdırılan tətbiqi və istifadəsi üçün uyğun olub olmadığını müəyyən etmək yalnız müştərinin məsuliyyətidir. Müştərilər öz tətbiqləri və məhsulları ilə bağlı riskləri minimuma endirmək üçün müvafiq dizayn və əməliyyat təminatlarını təmin etməlidirlər. NXP Semiconductors müştərinin tətbiqləri və ya məhsullarındakı hər hansı zəiflik və ya defolt, yaxud müştərinin üçüncü tərəf müştəri(lər)i tərəfindən tətbiq və ya istifadəyə əsaslanan hər hansı defolt, zədə, xərc və ya problemlə bağlı heç bir məsuliyyət daşımır. Müştəri NXP Semiconductors məhsullarından istifadə edərək müştərinin tətbiqləri və məhsulları üçün bütün lazımi sınaqların aparılmasına cavabdehdir ki, tətbiqlərin və məhsulların və ya tətbiqin defoltuna yol verməmək və ya müştərinin üçüncü tərəf müştəri(lər)i tərəfindən istifadə etməkdir. NXP bu baxımdan heç bir məsuliyyət daşımır. - Kommersiya satışının şərtləri — NXP Semiconductors məhsulları https://www.nxp.com/pro saytında dərc edilən kommersiya satışının ümumi şərtlərinə uyğun olaraq satılır.file/şərtlər, əgər qüvvədə olan yazılı fərdi müqavilədə başqa hal nəzərdə tutulmayıbsa. Fərdi müqavilə bağlandıqda, yalnız müvafiq müqavilənin şərtləri tətbiq edilir. NXP Semiconductors, müştəri tərəfindən NXP Semiconductors məhsullarının alınması ilə bağlı müştərinin ümumi şərtlərinin tətbiqinə açıq şəkildə etiraz edir.
- İxrac nəzarəti — Bu sənəd, eləcə də burada təsvir edilən bənd(lər) ixrac nəzarəti qaydalarına tabe ola bilər. İxrac səlahiyyətli orqanlardan əvvəlcədən icazə tələb edə bilər.
- Qeyri-avtomobil keyfiyyətinə malik məhsullarda istifadə üçün uyğunluq — Bu sənəd bu xüsusi NXP Semiconductors məhsulunun avtomobil üçün uyğun olduğunu açıq şəkildə bildirməsə, məhsul avtomobil istifadəsi üçün uyğun deyil. O, avtomobil sınaqlarına və ya tətbiq tələblərinə uyğun olaraq nə ixtisaslı, nə də sınaqdan keçirilmir. NXP Yarımkeçiricilər avtomobil avadanlığı və ya tətbiqlərində qeyri-avtomobil keyfiyyətinə malik məhsulların daxil edilməsi və/və ya istifadəsi üçün heç bir məsuliyyət daşımır.
Müştəri avtomobilin texniki xüsusiyyətlərinə və standartlarına uyğun dizayn və avtomobil tətbiqlərində istifadə üçün məhsuldan istifadə edərsə, müştəri (a) məhsuldan NXP Semiconductors zəmanəti olmadan belə avtomobil tətbiqləri, istifadəsi və spesifikasiyası üçün istifadə etməlidir və ( b) müştəri məhsulu NXP Semiconductors spesifikasiyalarından kənar avtomobil tətbiqləri üçün istifadə etdikdə belə istifadə riski yalnız müştərinin üzərinə düşür və (c) müştəri NXP Semiconductors-u müştərinin dizaynı və istifadəsi nəticəsində yaranan hər hansı məsuliyyət, zərər və ya uğursuz məhsul iddialarına görə tam kompensasiya edir. NXP Semiconductors'un standart zəmanəti və NXP Semiconductors'un spesifikasiyalarından kənarda avtomobil tətbiqləri üçün məhsul. - Tərcümələr — Sənədin ingilis dilində olmayan (tərcümə edilmiş) versiyası, o cümlədən həmin sənəddəki hüquqi məlumatlar yalnız istinad üçündür. Tərcümə edilmiş və ingilis dilində olan versiyalar arasında hər hansı uyğunsuzluq olduqda ingilis versiyası üstünlük təşkil edəcəkdir.
- Təhlükəsizlik — Müştəri başa düşür ki, bütün NXP məhsulları naməlum zəifliklərə məruz qala bilər və ya müəyyən edilmiş təhlükəsizlik standartlarını və ya məlum məhdudiyyətlərlə spesifikasiyaları dəstəkləyə bilər. Müştəri, bu zəifliklərin müştərinin tətbiqləri və məhsullarına təsirini azaltmaq üçün bütün həyat dövrləri boyunca tətbiqlərinin və məhsullarının dizaynına və istismarına cavabdehdir. Müştərinin məsuliyyəti həmçinin müştərinin tətbiqlərində istifadə üçün NXP məhsulları tərəfindən dəstəklənən digər açıq və/yaxud mülkiyyət texnologiyalarına da şamil edilir. NXP hər hansı zəifliyə görə heç bir məsuliyyət daşımır. Müştəri müntəzəm olaraq NXP-dən təhlükəsizlik yeniləmələrini yoxlamalı və müvafiq qaydada izləməlidir. Müştəri nəzərdə tutulan tətbiqin qaydalarına, qaydalarına və standartlarına ən yaxşı cavab verən təhlükəsizlik xüsusiyyətlərinə malik məhsulları seçməli və məhsulları ilə bağlı son dizayn qərarlarını verməlidir və məhsulu ilə bağlı bütün qanuni, tənzimləyici və təhlükəsizlik tələblərinə uyğunluğuna görə məsuliyyət daşıyır. NXP tərəfindən təmin oluna biləcək hər hansı məlumat və ya dəstək.
NXP-də NXP məhsullarının təhlükəsizlik zəifliklərinin təhqiqatını, hesabatını və həllinin buraxılmasını idarə edən Məhsul Təhlükəsizliyi Hadisələrinə Müdaxilə Qrupu (PSIRT) (PSIRT@nxp.com ünvanında əldə etmək olar) var.
NXP B.V. — NXP B.V. əməliyyat şirkəti deyil və məhsul yaymır və ya satmır.
Ticarət nişanları
Xəbərdarlıq: Bütün istinad edilmiş brendlər, məhsul adları, xidmət adları və ticarət nişanları müvafiq sahiblərinin mülkiyyətidir.
NXP — söz nişanı və loqo NXP BV-nin ticarət nişanlarıdır
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 — ABŞ və/və ya Arm Limited-in (və ya onun törəmə və ya filiallarının) ticarət nişanları və/yaxud qeydə alınmış ticarət nişanlarıdır. başqa yerdə. Müvafiq texnologiya hər hansı və ya bütün patentlər, müəllif hüquqları, dizaynlar və ticarət sirləri ilə qoruna bilər. Bütün hüquqlar qorunur.
- i.MX — NXP BV-nin ticarət nişanıdır
- J-Link — SEGGER Microcontroller GmbH şirkətinin ticarət nişanıdır.
Microsoft, Azure və ThreadX — Microsoft şirkətlər qrupunun ticarət nişanlarıdır.
Nəzərə alın ki, bu sənəd və burada təsvir olunan məhsul(lar)la bağlı mühüm bildirişlər "Hüquqi məlumat" bölməsinə daxil edilib.
© 2024 NXP BV
Ətraflı məlumat üçün müraciət edin: https://www.nxp.com
- Buraxılış tarixi: 19 aprel 2024-cü il
- Sənəd identifikatoru: AN14263
Tez-tez verilən suallar
S: Bu məhsulun əsas məqsədi nədir?
Cavab: Əsas məqsəd sadə LVGL GUI keçmişi ilə AI və ML görmə alqoritmi modelindən istifadə edərək üz tanıma funksiyasını aktivləşdirməkdir.ampSLN-TLHMI-IOT lövhəsində.
S: Tərtibatçılar bu proqram qeydindən necə faydalana bilər?
Cavab: Tərtibatçılar təqdim olunan keçmiş proqramdan istifadə edərək addım-addım çərçivədə üz tanınmasını necə həyata keçirməyi öyrənə bilərlər.ampcihaz menecerlərini, HAL cihazlarını və iştirak edən hadisə mexanizmlərini anlayın.
Sənədlər / Resurslar
![]() |
NXP AN14263 Framewor-da LVGL GUI Üz Tanınmasını Tətbiq edin [pdf] İstifadəçi təlimatı AN14263 Framewor-da LVGL GUI Üz Tanınması, AN14263, Çərçivədə LVGL GUI Üz Tanınması, Çərçivədə LVGL GUI Üz Tanınması, Çərçivədə Üz Tanınması, Çərçivədə Tanınması, Çərçivədə Tanınması |