NXP AN14263 Çerçevede LVGL GUI Yüz Tanıma Uygulaması
Ürün Bilgileri
Özellikler
- Ürün Adı: Çerçevede LVGL GUI Yüz Tanıma
- Belge Revizyonu: 1 – 19 Nisan 2024
- Anahtar kelimeler: Yüz tanıma, LVGL GUI, Çerçeve
Ürün Kullanım Talimatları
- Üzerindeview
Bu ürün, basit bir LVGL GUI ex ile yüz tanıma işlevini uygulamaya yönelik bir çerçeve üzerinde yüz tanıma için AI&ML görüş algoritması modelini etkinleştirir.ampSLN-TLHMI-IOT kartındaki dosya. - Çerçeve Bittiview
Çözüm yazılımı, cihazları yönetmekten sorumlu cihaz yöneticilerini, temel ayrıntıları soyutlamak için HAL cihazlarını ve farklı cihazlar arasındaki iletişim olaylarını içeren çerçeve mimarisi etrafında tasarlanmıştır. - Özellikler
Ürün, kamera ön izlemesi yoluyla yüz tanıma fonksiyonunun uygulanmasına olanak sağlar.view GUI ekranında yüz kaydını, tanımayı ve kaldırmayı tetikleyen düğmelerle birlikte. Kayıtlı yüz verileri Flash'ta bir file sistem. - Uygulama Notu İçeriği
Uygulama notu, kamera ön izleme özelliğine sahip bir LVGL GUI ekranı sunar.view ve yüzle ilgili eylemler için düğmeler. Geliştiricilerin çerçeveyi anlamalarına ve sağlanan eski sürümü kullanarak yüz tanımanın nasıl uygulanacağını anlamalarına yardımcı olur.ampley.
Üzerindeview
NXP, akıllı HMI uygulamalarına odaklanan SLN-TLHMI-IOT adlı bir çözüm geliştirme kitini piyasaya sürdü. Bir NXP i.MX RT117H MCU'da uygulanan ML vizyonu, ses ve grafik kullanıcı arayüzü ile akıllı HMI'ya olanak tanır. Çözüm yazılımı, SDK'yı temel alarak, esnek tasarımları ve görme ve ses işlevlerinin özelleştirilmesini destekleyen, çerçeve adı verilen bir tasarım üzerine inşa edilmiştir. Kullanıcıların yazılım platformunu daha iyi kullanmalarına yardımcı olmak için bazı temel belgeler sağlanmıştır;ample, yazılım geliştirme kullanıcı kılavuzu. Kılavuz, geliştiricilerin uygulamalarını SLN-TLHMI-IOT kullanarak daha kolay ve verimli bir şekilde uygulamalarına yardımcı olmak için çerçeve de dahil olmak üzere çözümün tüm bileşenlerini kapsayan uygulamaların temel yazılım tasarımını ve mimarisini tanıtıyor.
Çözüm ve ilgili belgeler hakkında daha fazla ayrıntı için şu adresi ziyaret edin: web ML Vision, Ses ve Grafiksel Kullanıcı Arayüzü ile i.MX RT117H Tabanlı NXP EdgeReady Akıllı HMI Çözümü sayfası. Ancak geliştiricilerin akıllı HMI uygulamalarını bu temel kılavuzlara dayanarak hayata geçirmeleri hala o kadar kolay değil. Çerçevedeki gelişimin adım adım incelenmesine yardımcı olmak amacıyla bir dizi uygulama notu planlanmıştır. Bu uygulama notu, LVGL GUI Kamera Ön Programının Uygulanmasına dayanmaktadır.view Çerçeve hakkında (AN14147 belgesi). Bu uygulama notu, kamera ön izlemesi aracılığıyla yüz tanıma işlevini uygulamak üzere çerçeve üzerinde yüz tanıma için AI&ML görüş algoritması modelinin nasıl etkinleştirileceğini açıklamaktadır.view basit bir LVGL GUI ex ile GUI ekranındaampSLN-TLHMI-IOT kartındaki dosya. Başvuru notunda eskiampdosya, kamera ön hazırlıklı bir LVGL GUI ekranı sunarview ve yüz kaydını, tanımayı ve kaldırmayı tetikleyen bazı düğmeler. Kayıtlı yüz verileri Flash'ta küçük bir file sistem.
Başvuru notu yüksek düzeyde aşağıdaki içerikleri içerir:
- Çerçevede yüz tanıma özelliğini etkinleştirin.
- Çerçeveye yüz veritabanı desteği ekleyin file Sistem Flash'ta.
- LVGL GUI uygulamasını uygulayın. Yukarıdaki tanıtımlar aracılığıyla bu belge, geliştiricilerin şunları yapmasına yardımcı olur:
- Çerçeveyi ve akıllı HMI çözüm yazılımını daha derinlemesine anlayın.
- LVGL GUI uygulamasıyla AI&ML yüz tanımalarını çerçeve üzerinde geliştirin.
Çerçeve bittiview
Çözüm yazılımı öncelikle birkaç farklı parçadan oluşan çerçeve mimarisinin kullanımı etrafında tasarlanmıştır:
- Cihaz yöneticileri – temel kısım
- Donanım Soyutlama Katmanı (HAL) Cihazları
- Mesajlar/Olaylar
Şekil 1'de gösterildiği gibi,view çerçevenin mekanizması şöyledir:
Cihaz yöneticileri, sistem tarafından kullanılan cihazların yönetilmesinden sorumludur. Her cihaz tipinin (giriş, çıkış vb.) kendi tipine özel cihaz yöneticisi vardır. Cihazların kendisine kaydedilmesinden sonra başlayan bir cihaz yöneticisi ile, kayıtlı cihazları başlatıp başlattıktan sonra cihazlara ve diğer yöneticilere veri aktarmak için bir mesaj bekler ve kontrol eder. HAL aygıtları, alt düzey sürücü kodunun üzerine yazılır ve temel ayrıntıların çoğunu soyutlayarak kodun anlaşılırlığını artırmaya yardımcı olur.
Olaylar, bilgilerin farklı cihazlar arasında yöneticileri aracılığıyla iletildiği bir araçtır. Bir olay tetiklendiğinde, olayı ilk alan cihaz bu olayı yöneticisine iletir ve ardından olayı almak üzere belirlenen diğer yöneticilere bildirimde bulunur.
Çerçevenin mimari tasarımı üç temel hedefe odaklanmıştır:
- Kullanım kolaylığı
- Esneklik/Taşınabilirlik
- Performans
Çerçeve, vizyon ve diğer makine öğrenimi uygulamaları için pazara sunma süresini hızlandırmak amacıyla tasarlandı. Hızlı bir şekilde pazara sunulabilmesi için yazılımın anlaşılmasının ve değiştirilmesinin kolay olması kritik öneme sahiptir. Bu hedefi akılda tutarak, çerçevenin mimarisini kısıtlayıcı olmadan ve performanstan ödün vermeden değiştirmek kolaydır.
Çerçeve hakkında daha fazla ayrıntı için bkz. Smart HMI Yazılım Geliştirme Kullanıcı Kılavuzu (MCU-SMHMI-SDUG belgesi).
Hafif ve Çok Yönlü Grafik Kitaplığı (LVGL)
LVGL (Hafif ve Çok Yönlü Grafik Kitaplığı), kullanımı kolay grafik öğeleri, güzel görsel efektler ve düşük bellek alanı ile yerleşik bir GUI oluşturmak için ihtiyacınız olan her şeyi sağlayan ücretsiz ve açık kaynaklı bir grafik kitaplığıdır.
GUI Rehberi
GUI Guider, NXP'nin açık kaynaklı LVGL grafik kütüphanesi ile yüksek kaliteli ekranların hızlı bir şekilde geliştirilmesini sağlayan, kullanıcı dostu bir grafik kullanıcı arayüzü geliştirme aracıdır. GUI Guider'ın sürükle ve bırak düzenleyicisi, LVGL'nin widget'lar, animasyonlar ve stiller gibi birçok özelliğinin kullanımını, çok az kodlamayla veya hiç kodlama olmadan bir GUI oluşturmak için kullanmayı kolaylaştırır.
Bir düğmeye tıklayarak uygulamanızı simüle edilmiş bir ortamda çalıştırabilir veya bir hedef projeye aktarabilirsiniz. GUI Guider'dan oluşturulan kod projenize kolayca eklenebilir, bu da geliştirme sürecini hızlandırır ve uygulamanıza sorunsuz bir şekilde gömülü bir kullanıcı arayüzü eklemenizi sağlar. GUI Guider'ın NXP'nin genel amaçlı ve çapraz MCU'larıyla kullanımı ücretsizdir ve desteklenen çeşitli platformlar için yerleşik proje şablonları içerir. GUI Guider'da LVGL ve GUI geliştirme hakkında daha fazla bilgi edinmek için Light and Versatile Graphics Library ve GUI Guider'ı kontrol edin.
Geliştirme ortamı
Öncelikle eski sürümün uygulanması için donanım ve yazılım ortamını hazırlayın ve kurun.ampçerçeveye bakalım.
donanım ortamı
Donanım ortamı, ex'in doğrulanması için ayarlanmıştır.amptarih:
- NXP i.MX RT117H'yi (SLN_TLHMI_IOT kiti) temel alan akıllı HMI geliştirme kiti
- 9 pinli Cortex-M adaptörü ve V7.84a veya sürücünün daha yeni bir sürümüyle SEGGER J-Link
Yazılım ortamı
Yazılım ortamı eskiyi geliştirmek için ayarlanmıştır.amptarih:
- MCUXpresso IDE V11.7.0
- GUI Kılavuzu V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – eskiampGeliştirmenin temel yazılımı olarak ikinci uygulama notunun dosya kodu. Ayrıntılar için bkz. https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – geliştirme için kod kaynağı olarak.
- SLN-TLHMI-IOT yazılımı V1.1.2 – geliştirme için kod kaynağı olarak NXP GitHub deposunda yayımlanan akıllı HMI kaynak kodu. Ayrıntılar için bkz. GitHub – NXP/mcu-smhmi, v1.1.2'de
Yazılım ortamının edinilmesi ve kurulumuyla ilgili ayrıntılar için bkz.: SLN-TLHMI-IOT'a Başlarken.
Çerçeve üzerinde vizyon mimarisi
Çerçevedeki vizyon mimarisi Şekil 2'de gösterilmektedir. HAL (OASIS_HAL) vizyon algoritması aşağıdaki süreçlere sahiptir:
- İlgili olayları UI HAL çıkışından aldıktan sonra AI&ML vizyon algoritması modeli aracılığıyla yüz kaydı ve tanıma yapın. Algoritma modelindeki çıkarım sonuçlarını çıkış kullanıcı arayüzü HAL'sine bildirin.
- Küçük verilere dayanarak yüz özelliği veritabanına erişir (ekler, siler…). file UI HAL çıkışından ilgili olayları aldıktan sonra FaceDB HAL API'lerini çağırarak sistem.
- Yüz kaydı ve tanıma yaparken kamera HAL'sinden kamera video karesini isteyin.
Çerçevede yüz tanımayı uygulayın
LVGL GUI yüz tanıma eskiample (eskiample daha sonra sağlanır) çerçeve eski temel alınarak uygulanırampLVGL GUI Kamera Ön Uygulamasının dosya kodlarıview Çerçeve hakkında (AN14147 belgesi).
Eski sürümde yüz tanımayı göstermek içinampDosyada, GUI uygulamasının temel işlevi (Şekil 3'teki ana ekrana bakın) aşağıda açıklandığı gibi tasarlanmıştır:
- GUI uygulaması, Kayıt veya Tanıma düğmesine basıldığında UI HAL çıkışına yüz kaydı veya tanıma olayını tetikler. Ve UI HAL çıkışı, yüz kaydı başarılı olduktan sonra HAL görüş algoritmasına bir kullanıcı ekleme olayını bildirir.
- GUI uygulaması, kullanıcının yüzü tanındıktan sonra Kullanıcıyı Sil düğmesine basıldığında kullanıcı arayüzü HAL çıkışına bir kullanıcıyı silme olayını tetikler.
- GUI uygulaması, düğmelerin ve görüntülerin dışındaki ekrana tıklandığında, UI HAL çıkışına çalışan oasis algoritmasının durdurulması olayını tetikler.
Eski uygulamanın uygulanması için yazılım paketini hazırlayınampley.
- Temel yazılımı klonlayın lvgl_gui_camera_preview_cm7. Proje adını ve ana projeyi değiştirin filelvgl_gui_face_rec_cm7 olarak adlandırın.
- Çerçeve çekirdeğinin kaynak kodları 1.1.2 sürümünden itibaren GitHub'da herkese açık hale gelmeye başladığından, çerçevenin yazılımda güncellenmesi gerekiyor.
- Çerçeve klasörünü GitHub'daki V1.1.2 kopyasıyla değiştirin; fileUygulama notu serisi için değiştirildiği için inc\ altında fwk_log.h ve fwk_common.h. İşlemler Şekil 4'te gösterilmektedir:
- Libs grubu altındaki framework_cm7 klasörünü silin ve çekirdeğin kaynak kodu sağlandığı için Framework_cm7 kitaplığını ve Proje > Özellikler > C/C++ Yapı > ayarlar > Araç Ayarları > MCU C++ Bağlayıcı > Kitaplıklar bölümünde yapılandırılan arama yolunu kaldırın.
Çerçevede yüz tanıma özelliğini etkinleştirin
Yüz tanıma özelliği, NXP'nin bir oasis lite çalışma zamanı kitaplığı olan statik bir kitaplık olarak sağlanan ML görme algoritması modeli üzerine kurulmuştur. Kitaplık küçük, son derece verimli, özelleştirilmiş ve optimize edilmiş bir yapay zeka kitaplığıdır. Model, yüz algılama, yüz tanıma, cam algılama ve canlılık algılamayı içerir. Temel olarak, olay geri aramaları yoluyla arayan kişiye sonuçları güncellerken yüz tanıma ardışık düzenini çalıştırmak ve kaynak çerçeve bilgilerini, geri aramaları ve belleği belirledikten sonra yüz veritabanı geri aramaları aracılığıyla veritabanına yüzleri eklemek/güncellemek/silmek için API OASISLT_run_extished()'i sağlar. Başlatma sırasında başka bir API OASISLT_init() çağrılarak kütüphane tarafından kullanılan havuz. API'lerin çağrılması ve geri arama işlevleri, çerçevenin HAL vizyon algoritmasında uygulanır.
Görme algoritması modeli kitaplığı ekleme
- Kütüphaneyi ve ilgili başlığı içeren klasör vahasını kopyalayın file akıllı HMI\coffee_machine\cm7\libs\'den eski cihazın libs klasörüneample SW.
- Başlığın arama yolunu ekleyin file Proje > Özellikler > C/C++ Derlemesi > ayarlar > Araç Ayarları > MCU C derleyicisi > İçerir ve MCU C++ derleyicisi > Şunları içerir: “${workspace_loc:/${ProjName}/libs/oasis/include}”
- Proje > Özellikler > C/C++ Build > ayarlar > MCU C+ + Bağlayıcı > Kitaplıklar'a lib'i ve arama yolunu ekleyin: liboasis_lite2D_DEFAULT_117f_ae.a "${workspace_loc:/${ProjName}/libs/oasis}" ve makro tanımını şuraya ekleyin: Proje > Özellikler > C/C++ Yapısı > ayarlar > Araç Ayarları > MCU C derleyicisi > Önişlemci ve MCU C++ derleyicisi > Önişlemci: SMART_TLHMI_2D'de özelliği etkinleştirin
HAL görüntü algoritmasını etkinleştir
Görme algoritması HAL, görme algoritması modelini çalışmaya yönlendirir ve sonuçları, olayları aldıktan sonra UI çıkışı HAL'e yanıt verir.
Bunu etkinleştirmek için mevcut benzer HAL sürücüsünü kopyalayın file aşağıdaki işlevlerin uygulandığı yer:
- Yüz veritabanı işlemlerinin ve olay işlemenin geri aramalarını uygulayın.
- Oasis kütüphanesinin API'lerini çağırarak vizyon algoritmasını çalışmaya yönlendirin.
- Kullanıcı yüzü veritabanına ve uygulama veritabanına erişin (eski sürümde gerekli değildir)ample).
- Olayları alın ve sonuçları UI HAL çıkışına gönderin.
Eski HAL'i uygulamaya yönelik başlıca çalışmalarampbunlar:
- Mevcut benzer HAL sürücüsünü klonlayın file ve ilgili adları değiştirin.
- Uygulama veri işlemleriyle ilgili kodları kaldırın.
- Olayları eski sürüme göre çıktı UI HAL'sinden işlemeye yönelik tanımları ve işlevleri güncelleyinamptasarım.
- Oasis'in başlatılmasında gereken yapılandırmaları ekleyin.
Ayrıntılı adımlar aşağıdaki gibidir:
- hal_vision_algo_oasis_coffeemachine.c'yi klonlayın. Değiştir filehal_vision_algo_oasis_guifacerec.c olarak adlandırın. Ve tüm CoffeeMachine dizelerini GUIFaceRec ile değiştirin. file.
- Örneğin, uygulama veritabanıyla ilgilicoffeedb dizesini (büyük/küçük harfe duyarlı değil) içeren kodları kaldırın.ample, #hal_sln_coffeedb.h'yi dahil edin.
- HAL çıkışındaki olayları işlemek için HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() işlevini değiştirin.
- Veritabanına yeni yüz özelliği verileri eklemek amacıyla olay işleme için kEventFaceRecId_RegisterCoffeeSelection olay tanımını kEventFaceRecId_RegisterUserFace olarak ve regCoffeeSelection yapı dizesini regGUIFaceRec olarak değiştirin.
- Eski yüz tanıma eylemlerinin standart sürecini göstermek içinampdosyasında, kEventFaceRecID_OasisSetState durumunda işlemeyi durum tanımlarıyla değiştirin:
- koASISLiteState
- Kayıt koASISLiteState
- Tanınma koASISLiteState
- Durduruldu
- Yukarıdaki adımda bahsedilen olayların tanımlarını ekleyin ve değiştirin.
- Başlığı kopyala file smart_tlhmi_event_descriptor.h, smart HMI\coffee_machine \cm7\source\event_handlers\'den eski klasörün kaynağına kopyalayınample SW. Güncelleme file Aşağıdaki gibi:
- _event_smart_tlhmi_id numaralandırma türünde kEventFaceRecId_RegisterCoffeeSelection olay tanımını kEventFaceRecId_RegisterUserFace olarak ve regCoffeeSelection yapı dizesini _event_smart_tlhmi yapısında regGUIFaceRec olarak değiştirin. Bu nedenle, regCoffeeSelection'ın Register_coffee_selection_event_t yapısını Register_gui_facerec_event_t olarak değiştirin.
- Örneğin kahve makinesi uygulaması için kullanılan diğer içerikleri silinample, sesle ilgili kod satırı: #include “hal_event_descriptor_voice.h”.
- Aşağıdaki gibi projede framework>hal>vision altında hal_vision_algo.h içindeki oasis_lite_state_t numaralandırma türüne koASISLiteState_Stopped ve kOASISLiteState_Running türlerini ekleyin:
typedef enum _oasis_lite_state {- koASISLiteState
- Çalıştırılıyor, koASISLiteState
- Durduruldu, koASISLiteState
- Tanıma,
- koASISLiteState
- Kayıt, koASISLiteState
- Kayıt Silme, koASISLiteState
- Uzaktan Kayıt, koASISLiteState
- Saymak
- Projede framework>hal>vision altında hal_event_descriptor_face_rec.h içindeki oasis_state_event_t yapısını aşağıdaki gibi hassaslaştırmak için yukarıdaki güncellenmiş oasis_lite_state_t yapısını kullanın: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- Olayları görüntü algoritması HAL'den aynı çekirdek üzerinde çalışan diğer HAL'lere göndermek için tüm kEventInfo_Remote'u kEventInfo_Local olarak değiştirin; eski sürümde çift çekirdek yerine tek çekirdek kullanıldıampley.
- OASISLT_init()'te oasis başlatma için aşağıdaki konfigürasyonları ekleyin ve değiştirin:
- Board_define.h dosyasına video karesi için makro tanımlarını ve bellek bölümlerini ekleyin: #define OASIS_RGB_FRAME_WIDTH 800
- #define OASIS_RGB_FRAME_HEIGHT 600
- #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
- #define OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
- #define AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __attribute__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __attribute__((aligned(alignbytes)))
- Bellek atamasını, Şekil 5'te gösterilen Proje > Özellikler > C/C++ Yapısı > MCU Ayarları'nda yukarıdaki fb_sh_mem bellek bölümüne yapılandırın:
- g_DTCOPBuf global değişkenini lvgl_gui_face_rec_cm7.cpp dosyasında bildirin: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Yukarıdaki değişkende kullanılan tanımları eklemeye devam edin:
- Board_define.h'de yukarıdaki bölümü tanımlayın:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- nitelik__((bölüm(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- özellik__((hizalanmış(alignbytes)))
- Başlığı dahil et file lvgl_gui_face_rec_cm7.cpp'de bulunan app_config.h'deki DTC_OPTIMIZE_BUFFER_SIZE makro tanımını içeren hal_vision_algo.h.
- Board_define.h dosyasına video karesi için makro tanımlarını ve bellek bölümlerini ekleyin: #define OASIS_RGB_FRAME_WIDTH 800
- Yüz tanımadaki ilerleme durumunu göstermek için s_debugOption değişkenini true olarak ayarlayın.
- Başlığın arama yolunu ekleyin fileProject > Özellikler >C/C++ Yapısı > ayarlar > Araç Ayarları > MCU C derleyicisi > İçerir ve MCU C++ derleyicisi > Şunları içerir: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- Board_define.h'de görüntü algoritması HAL'yi etkinleştirmek için aşağıdaki tanımı ekleyin: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Çıkış kullanıcı arayüzü HAL'sini etkinleştir
UI HAL çıkışı, olayları HAL vizyon algoritmasına bildirir ve HAL vizyon algosunun çıkarım sonuçlarına yanıt verir. GUI uygulamasında olaylar genellikle uygulama tarafından tetiklenir ve sonuçlar uygulamada gösterilir.
Bunu etkinleştirmek için mevcut benzer HAL sürücüsünü kopyalayın file genel olarak aşağıdaki işlevlerin uygulandığı yer:
- Yüz tanıma ve veritabanı erişimi için olayları bildirin.
- Olayları tetiklemek için GUI uygulamasına yönelik geri aramaları uygulayın.
- Görme algoritması modülünden elde edilen çıkarım sonuçlarını kullanın.
- Zamanlayıcılar ve yüz kılavuzu dikdörtgeni ile kontrol edilen ilerleme çubuğu ile kullanıcı arayüzünde olayların işlenmesine ilişkin süreci ve sonuçları gösterin.
Eski HAL'i uygulamaya yönelik başlıca çalışmalarampBu belgede kullanılan dosyalar şunlardır:
- Mevcut benzer HAL sürücüsünü klonlayın file ve ilgili adları değiştirin.
- Uygulamayla ilgili kodları kaldırın.
- Olay bildirimi ve sonuç yanıtına ilişkin işlevleri eski duruma göre güncelleyinamptasarım.
- Olayları tetiklemek için GUI uygulamasına yönelik geri aramaları ekleyin.
Ayrıntılı adımlar aşağıdaki gibidir:
- hal_output_ui_coffee_machine.c'yi klonlayın. Değiştir filehal_output_ui_guifacerec.c'ye ad verin.
- Tüm CoffeeMachine dizelerini GUIFaceRec ile değiştirin. file.
- Uygulama – kahve makinesi ile ilgili kodları kaldırın.
- WakeUp() ve _StandBy() işlevlerini ve ilgili kodları kaldırın (bunlar için Wake_up ve standby dizesini arayabilir).
- Önünü kaldırview HAL_OutputDev_UiGUIFaceRec_Input Notify()'daki ilgili kodları işleyen mod olayları.
- UI_xxx_Callback() işlevlerini ve ön ayar için gui_set_virtual_face() haricinde kahve makinesinin GUI'sine ilişkin gui_ dizesini ve ekranı içeren kodları kaldırın.view mod özelliği.
- Kahve makinesi uygulamasıyla ilgili s_IsWaitingAnotherSelection ve s_IsWaitingRegisterSelection değişkenleriyle ilgili tüm kodları kaldırın.
- Ses, ses ve dil ile ilgili kodları kaldırın. Eski içinamptarih:
- #include “hal_voice_algo_asr_local.h”,
- #include “hal_event_descriptor_voice.h”
- Çeşitli olay bildirimleri için, silmeden önce _StopFaceRec(), _RegisterCoffeeSelection() ve DeregisterCoffeeSelection() işlevlerine atıfta bulunarak yeni _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() ve DeregisterGUIFaceRec() işlevlerini uygulayın.
- _OutputManagerNotify(), HAL görüntü algoritmasına bir olay göndermek için temel olay çıktı fonksiyonunu uygular. Aşağıdaki işlevler bunu kendi olaylarını göndermek için çağırır.
- _SetFaceRec(), yüz kaydı, tanıma için görme algoritmasını tetiklemek ve algoritmayı durdurmak için kEventFaceRecID_OasisSetState olayını gönderir.
- _RegisterGUIFaceRec(), kayıt tamamlandığında veritabanına yüz özelliği verileri eklemek için smart_tlhmi_event_descriptor.h'de tanımlanan kEventFaceRecId_RegisterGUIFaceRec olayını gönderir.
- DeregisterGUIFaceRec(), yüz tanımayı geçerken yüz özelliği verilerini veritabanından silmek için kEventFaceRecID_DelUser olayını gönderir.
- Eski sürüme göre _InferComplete_Vision() işlevinde yüz kaydı ve tanımanın çıkarım sonuçları için LVGL GUI uygulamasından API'leri çağırarak GUI'yi yenilemek de dahil olmak üzere ilgili eylemleri gerçekleştirmek için kodları güncelleyin.amphaydi tasarlayalım. Eski içinample, yüz kaydı başarılı olduğunda,
- _FaceRecProcess_Stop();'u çağırarak ilerlemeyi göstermeyi durdurun;
- _SetFaceRec(kOASISLiteState_Stopped); öğesini çağırarak yüz kaydını durdurun.
- Başarılı sonucu GUI'de gösterin: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Yüz verilerini veritabanına kaydedin: _RegisterUserFace(s_UserId);
- Olayları işlemek için kullanıcı arayüzü geri çağırma işlevlerini ekleyin: önviewGUI'den tetiklenen yüz kaydı, tanıma ve kullanıcı silme. Eski içinampdosya, yüz kaydı geri araması: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- Farklı olaylar ve sonuçlardaki ilerlemeyi ve durumu göstermek için _FaceRecProcess_Start() ve _FaceRecProcess_Stop() işlevlerini ekleyin.
- Zaman aşımı durumunu ele almak için zamanlayıcı ISR geri çağırma işlevini _SessionTimer_Callback() şu çağrıyı yaparak güncelleyin: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Board_define.h'de UI çıkış HAL'sini etkinleştirmek için aşağıdaki tanımları ekleyin: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Fark etme:
Yüz tanıma özelliğini daha iyi sunmak için, yüz tanıma sürecini ve sonuçlarını UI HAL çıktısında gösterme işlevini koruyun. Fonksiyon aşağıda açıklanmıştır
- Yüz kılavuzu dikdörtgeni mavi renkte görünür ve ilerleme çubuğu, yüz kaydı veya tanıma işlemi başlatıldığında ilerlemeyi gösterir.
- Yüz kaydı başarılı olduğunda yüz kılavuzu dikdörtgeni kırmızı renkte görünür.
- Yüz tanıma başarılı olduğunda yüz kılavuzu dikdörtgeni yeşil renkte görünür.
- Yüz kılavuzu dikdörtgeni mavi renkte kalır ve zamanlayıcının süresi dolduktan sonra eylem başarısız olduğunda ilerleme çubuğu tam ilerlemeyi gösterir. Bu noktada yüz kaydını veya tanımayı durdurun.
İlerleme çubuğu ve yüz kılavuzu dikdörtgeni, kaynak ikili dosyasında yerleşik simgeler olarak sunulur file Flash'a programlanacak. SDRAM üzerindeki simge verilerine yönelik işaretçiler, UI HAL çıkışındaki çıkış UI HAL cihazının başlatılmasında çağrılan LoadIcons(APP_ICONS_BASE) işlevinde ayarlanır. İşlev için simge desteğini uygulamalıdır.
Simge desteğini uygulayın
- Simgeleri LVGL GUI uygulamasında kullanılan görsellerle birleştirerek kaynağı oluşturun:
- Dört simge başlığını klonlayın fileAkıllı HMI'dan proses_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h ve virtual_face_red_420x426.h
\coffee machine\resource\icons\'u eski kaynak klasörünün altındaki yeni klasör simgelerine taşıyınample SW. - Dört simge için arama yolunu ekleyin filekamera_pre'deview_kaynak.txt file örneğin kaynak klasöründeampdosya: simge ../resource/icons/process_bar_240x14.h
- Camera_pre'yi çalıştırview_resource_build.bat, çöp kutusunu oluşturmak için görüntüleri ve simge kaynaklarını oluşturmak için file kamera_preview_resource.bin ve bilgi file Resource_information_table.txt (Bkz. Şekil 6).
- Dört simge başlığını klonlayın fileAkıllı HMI'dan proses_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h ve virtual_face_red_420x426.h
- SDRAM'deki başlangıç adresini ve app_config.h dosyasındaki simgelerin boyutunu tanımlayın. Adres, GUI uygulamasının resimlerinin yanında başlar. Boyut bilgide oluşturulur file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Res_sh_mem adlı bellek bölümünün atanan boyutunu app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000'de ve Proje > Özellikler > C/C++ Build > MCU ayarlarında ilgili ayarı yeniden tanımlayarak 0x200000 olarak güncelleyin.
- Ana menüdeki APP_LoadResource() işlevinde, simge boyutunu Flash'tan SDRAM'a yüklenen kaynağın toplam boyutuna ekleyin. file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Fark etme: Yüz tanıma özelliğini tamamlamak için LVGL GUI uygulaması desteği gereklidir. UI HAL çıkışındaki UI geri çağırma işlevleri, UI ekranındaki olayları yönetmek için LVGL GUI uygulaması tarafından çağrılır. Öte yandan, çıkış kullanıcı arayüzü HAL, sonucu ve durumu gösterecek şekilde kullanıcı arayüzünü güncellemek için LVGL GUI uygulamasından API'leri çağırır. LVGL GUI uygulamasının gelişimi nispeten bağımsızdır ve Bölüm 4.3'te tanıtılmıştır.
4.1.5 Yüz tanıma için HAL cihazlarını ve yöneticilerini başlatın
Etkinleştirilen görüntü algoritması HAL ve kullanıcı arayüzü çıktısı HAL ve yöneticileri ana sayfada başlatılır file
lvgl_gui_face_rec_cm7.cpp, çerçevedeki geliştirme dönüşümlerini aşağıdaki gibi takip ediyor:
- Başlığı dahil et file kod satırını ekleyerek iki HAL yöneticisiyle ilişkilendirilebilir:
- #include ” fwk_output_manager.h “
- #include “fwk_vision_algo_manager.h”
- HAL cihazlarını bildirin:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- HAL cihazlarını kaydedin:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Yöneticileri başlat:
- FWK_MANAGER_INIT(VisionAlgoManager, geri);
- FWK_MANAGER_INIT(OutputManager, geri);
- Yöneticileri başlatın:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, geri);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, geri);
- Yönetici görevlerinin önceliğini tanımlayın:
- #VISION_ALGO_MANAGER_TASK_PRIORITY 3'ü tanımlayın
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Çerçeveye yüz veritabanı desteği ekleyin
Kayıtlı yüz özelliği verilerine, Flash'ta saklanan yüz veritabanında küçük bir araçla erişilir. file sistem. Yüz veritabanı desteğini ekleme adımları aşağıda anlatılmıştır.
Flash depolama için sürücüler ekleyin
Flash arayüzü FlexSPI sürücüsünü kopyalayın filefsl_flexspi.c ve fsl_flexspi.h ve veri şifreleme sürücüsü filefsl_caam.c ve fsl_caam.h'yi SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ yolundan eski sürücünün sürücüler klasörüne götürünample SW.
Yönetim kurulu düzeyinde destek ekleyin
- Board.h'ye karttaki Flash cihazı için kullanılan FlexSPI tanımlarını ekleyin:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Operatörleri ve yapılandırmaları kopyalayın fileFlash cihazının flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h ve sln_flash_ops.h dosyaları, smart HMI\coffee_machine\cm7\source\flash_config\ yolu altında eski cihazın klasör panosuna gönderilir.ample SW.
- C/C++ Build > Ayarlar'da sağ tıkladıktan sonra "Kaynağı derlemeden hariç tut" seçeneğinin işaretini kaldırın. fileisimlerini yazıp projeye dahil edilmelerini sağlamak için Özellikler'i açıyoruz.
- Dahil edilen başlığı değiştirin filesln_flash_config.h dosyasını sln_flash_config.c ve flexspi_nor_flash_ops.h dosyasında sln_flash_config_w25q256jvs.h olarak adlandırın.
- FlexSPI1 saat kaynağını şurada ayarlayın: file Clock_config.c kahve makinesi uygulamasına atıfta bulunur.
Adaptör ve orta düzey destek ekleyin
- Kopyala fileiçin adaptör sürücüleri olarak sln_flash.c, sln_flash.h, sln_encrypt.c ve sln_encrypt.h file akıllı HMI\coffee_machine\cm7\source\ yolundan eski klasörün kaynağına kadar sistem ve uygulamaample. Yeniyi güncelle files:
- Oluşturma için üzerlerindeki "Kaynağı derlemeden hariç tut" seçeneğinin işaretini kaldırın.
- Dahil edilen tüm başlığı değiştirin file sln_flash_config.h'yi sln_flash_config_w25q256jvs.h olarak adlandırın.
- Klasörü kopyala fileküçükler için API'leri içeren sistem fileakıllı HMI \coffee_machine\cm7\source\'dan eski sürüme sistem ve HAL sürücüsüample SW. Ve yeni klasör için güncelleme:
- Bina için "Kaynağı derlemeden hariç tut" seçeneğinin işaretini kaldırın.
- Proje ayarlarına dahil etme yolunu ekleyin: “${workspace_loc:/${ProjName}/filesistem}”
- Dahil edilen başlığı değiştirin file sln_flash_config.h'yi sln_flash_config_w25q256jvs.h olarak ve fica_definition.h'yi app_config.h olarak adlandırın. file sln_flash_littlefs.h.
- Orta eşyayı içeren littlefs klasörünü kopyalayın – little filesistem SDK_2_13_0_ MIMXRT1170-EVK\middleware\ yolundan eski sürümeample SW. Ve yeni klasörü güncelleyin:
- Bina için "Kaynağı derlemeden hariç tut" seçeneğinin işaretini kaldırın.
- Proje ayarlarına dahil etme yolunu ekleyin: “${workspace_loc:/${ProjName}/littlefs}”
HAL sürücülerini ekleyin
- İki HAL cihazı vardır – file veritabanı erişim özelliği için sistem ve yüz veritabanı HAL desteklidir ve bunlar halihazırda çerçevede hiçbir değişiklik yapılmadan uygulanmaktadır. Board_define.h dosyasına aşağıdaki tanımları ekleyerek bunları etkinleştirin:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
Ve eski sevgilinin yüz veritabanı adını değiştirampdosya: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”
Uygulama düzeyinde destek ekleyin
- Ana güncelleme file lvgl_gui_face_rec_cm7.cpp:
- Başlığı dahil et file Flash ile ilgili file sistem HAL yöneticisi şu kod satırını ekleyerek: #include “fwk_flash.h”
- Beyan et ve kayıt ol file sistem HAL cihazı:
- HAL_FLASH_DEV_DECLARE(Küçükler);
- HAL_FLASH_DEV_REGISTER(Küçükler, geri);
Not: : file Tüm cihaz yöneticilerinin APP_InitFramework() işlevinde başlatılmasından önce sistem HAL cihazının kaydedilmesi gerekir.
- MPU'yu yapılandırmak için APP_BoardInit() içindeki BOARD_ConfigMPU() fonksiyonunu çağırın.
- Ayarla file Flash'ta sistem ataması file app_config.h'de kullanılan makro tanımlarını tanımlayarak file sln_flash_littlefs.h:
- #FICA_IMG_'yi tanımlaFILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #FICA_'yı tanımlaFILE_SYS_SIZE (0x280000)
Yapılandırmalar
Yeterli performans için Flash ile ilgili bazı kodlar SRAM ITC alanında yürütülür. Bağlayıcı yapılandırmalarını içeren linkscripts klasörünü smart HMI\coffee_machine\cm7\ yolundan ex'e kopyalayın.ample SW.
Bir LVGL GUI uygulaması uygulayın
Çerçeveye dayalı bir LVGL GUI uygulamasının geliştirilmesi, API'leri çıktı UI HAL'sinden çağırır ve API'lerin çıktı UI HAL'sini sağlar (Çıktı UI HAL'nin uygulanması için bkz. Bölüm 4.1.3).
Ancak bir LVGL GUI uygulamasının ayrıntılı uygulaması, uygulamanın gereksinimlerine ve tasarımına bağlıdır. Bu eski sürümdeki GUI uygulamasıampDosya Bölüm 4'ün başında açıklandığı gibi tasarlanmıştır.
Aşağıda uygulama tanıtımları yer almaktadır:
- Özelleştirilmiş kodlar, GUI Guider projesi ile gömülü sistem projesi arasındaki arayüz olarak GUI Guider tarafından verilen özel.c ve özel.h'de uygulanır.
- Aşağıdaki işlevleri elde etmek için gui_xxx() adlı yeni işlevleri Custom.c dosyasına ekleyin:
- Çıkış kullanıcı arayüzü HAL ve kullanıcı arayüzünü güncellemek için GUI uygulaması için.
- GUI uygulamasının, UI HAL çıkışından UI geri çağırma işlevlerini çağırarak olayları tetiklemesi için.
ÖrneğinampDosyada, yeni gui_event_face_rec_action() işlevi, yüz kaydı, yüz tanıma ve ilgili düğme tıklandığında GUI uygulamasından tetiklenen kullanıcıyı silme olaylarından birini işlemek için UI geri çağırma işlevlerini çağırır.
Not: UI HAL çıkışında ön hazırlık için çağrılan gui_set_virtual_face() işleviview modun özel.c'de uygulanması gerekiyor:
- Akıllı HMI\coffee_machine\cm4\custom \custom.c'den gui_set_virtual_face() işlevini klonlayın.
- Widget'ın adını değiştirin home_img_cameraPreview screen_img_camera_pre'yeview fonksiyonda.
- UI geri çağırma işlevlerini, GUI Guider projesiyle uyumlu olması için özel.c'deki #ifndef RT_PLATFORM makro tanımının kontrolü altında, UI HAL çıkışındaki tüm işlevlere aynı prototiple uygulayın çünkü UI HAL çıkışındaki bu işlevler, gömülü platform. Custom.c'de, GUI kılavuzundaki simülatöre bağımlıdırlar ve gömülü platformdan bağımsızdırlar. Eski içinampDosyada, çalışan GUI Guider simülatörü için yüz kaydı geri araması aşağıdaki gibi uygulanır: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = yanlış; geri dönmek; }
Not: Bölüm 6'ün 4.1.3. adımında tanıtılan fonksiyonun aynı prototipine bakın.
RT_PLATFORM makro tanımı, Şekil 7'de gösterildiği gibi MCUXpresso'nun proje ayarlarında ayarlanır: - GUI API'lerini UI çıkışı HAL ile paylaşmak için UI_xxx_Callback() ve gui_xxx() adlı tüm işlevleri Custom.h'de bildirin ve smart_tlhmi_event_descriptor.h'de bulunancustom.h'yi ekleyin.
- Aşağıdaki işlevleri elde etmek için gui_xxx() adlı yeni işlevleri Custom.c dosyasına ekleyin:
- GUI Guider'da GUI'yi geliştirin:
- Klasör kamerasını önceden klonlayınview GUI Guider proje yazılımını lvgl_gui_camera_pre temel yazılım paketindeki gui_guider klasöründe içerirview_cm7. İlgili kamera_pre adını değiştirinview yeni eski sevgili için face_rec'eampley.
- Yukarıda güncellenen özel.c'yi ve özel.c'yi kopyalayın. h'yi yeni GUI Guider proje yazılımına aktarın.
- GUI Guider'da yeni face_rec projesini açın. Aşağıdaki gibi güncelleyin:
- Kullanıcıyı Sil etiketli yeni düğmeyi ekleyin. GUI uygulaması başlatıldığında düğmenin gizlenmesi için Gizli bayrağını ekleyin.
- Yüz kaydı, yüz tanıma ve kullanıcıyı silme olaylarını tetiklemek için tüm Kayıt, Tanıma ve Kullanıcıyı Sil düğmelerinin Etkinlik Ayarındaki "Yayınlandı" tetikleyicisine farklı olay kimliği parametresiyle API gui_event_face_rec_action() çağrılması kod satırını ekleyin. Şekil 8, Kayıt düğmesinin olay kodunu göstermektedir:
- Oluşturulan kodu GUI Guider'dan MCUXpresso projesine güncelleyin.
- MCUXpresso projesi SW tarafından oluşturulan klasördeki klasör görüntüleri dışındaki içerikleri, GUI Guider projesi SW tarafından oluşturulan klasördeki karşılık gelenlerle değiştirin.
Not: Yukarıda yapılan değişiklikler hakkında daha fazla ayrıntı için eskiampdosya yazılımı https://mcuxpresso.nxp.com/appcodehub.
Eski sevgiliyle doğrulamalarampproje
Eski sevgiliyi elde etmek içinampBu uygulama notuna ilişkin kaynakları ve araçları içeren yazılım paketi için şu adresi ziyaret edin: https://mcuxpresso.nxp.com/appcodehub. Eskiyi açampMCUXpresso IDE'deki proje. .axf dosyasını oluşturun ve programlayın file 0x30000000 adresine gidin ve kaynak kutusunu programlayın file kamera_preview_resource.bin dosyasını 0x30800000 adresine kopyalayın.
LVGL GUI yüz tanıma eskiample normal olarak aşağıdaki gibi çalışır:
- Önview: Güç açıldığında, kameranın yakaladığı video akışları kamera ön panelinin belirli bir alanında gösterilir.view GUI ekranında. Durum etiketinde “Önview…”. Ayrıntılar için bkz. Şekil 3. Kullanıcıyı Sil düğmesi gizlidir. Düğmelerin ve görsellerin dışındaki alana tıklandığında önview Yüz kaydı veya tanıma eylemi sona erdikten sonra yukarıdaki gibi belirtin.
- Kayıt:
- tartup: Kayıt butonuna tıklandığında yüz kaydı başlar. Durum etiketi "Kayıt..." görüntüleyecek şekilde değişir, yüz kılavuzu dikdörtgeni mavi renkte görünür ve ilerleme çubuğu ilerlemeyi göstermeye başlar. Kayıt için kullanıcının yüzünün mavi yüz kılavuzu dikdörtgeninin içinde göründüğünden emin olun.
- başarı: Durum etiketi "Kayıt…Tamam" ve kayıtlı kullanıcı kimlik numarasını gösterir; ilerleme çubukta tam olarak görünmeden önce yüz kaydı başarılı olursa yüz kılavuzu dikdörtgeni kırmızı olur.
- Başarısızlık -> Zaman Aşımı: Çubukta ilerleme tam olarak gösterildiğinde yüz kaydı hala başarısızsa durum etiketi "Kayıt…Zaman Aşımı" ifadesini gösterir.
- Hata -> Çoğaltma: Durum etiketi “Kayıt…Başarısız” ifadesini gösterir; kayıtlı yüz, ilerleme çubukta tam olarak gösterilmeden önce tanınırsa yüz kılavuzu dikdörtgeni yeşil olur.
- eCognition:
- Başlatma: Tanıma butonuna basıldığında yüz tanıma başlar. Durum etiketi "Tanıma..." görüntüleyecek şekilde değişir, yüz kılavuzu dikdörtgeni mavi renkte görünür ve ilerleme çubuğu ilerlemeyi göstermeye başlar. Kayıt için kullanıcının yüzünün mavi yüz kılavuzu dikdörtgeninde gösterildiğinden emin olun.
- başarı: Durum etiketi "Tanıma…Tamam" ve tanınan kullanıcı kimlik numarasını gösterir; ilerleme çubukta tam olarak görünmeden önce yüz tanıma başarılı olursa yüz kılavuzu dikdörtgeni yeşil olur. Bu noktada Kullanıcıyı Sil düğmesi görünür. Bu, kullanıcının yalnızca tanındığında silinmesine izin verildiği anlamına gelir.
- hastalık: Çubukta ilerleme tam olarak gösterildiğinde yüz tanıma hala başarısızsa durum etiketi "Tanıma…Zaman Aşımı" ifadesini gösterir.
- Kullanıcıyı Sil: “Kullanıcıyı Sil” düğmesine tıklandığında, yüz tanıma başarılı olduktan sonra, durum etiketi “Kullanıcıyı Sil…Tamam” görüntüleyecek şekilde değişir ve yüz kılavuzu dikdörtgeni maviye döner ve ilerleme çubukta tam olarak gösterilir. Kullanıcıyı Sil düğmesi tekrar gizlenir. Tanınan yüz/kullanıcı veritabanından silinir. Bu, bu yüzün/kullanıcının tekrar kaydedilene kadar tanınamayacağı anlamına gelir.
Belgedeki kaynak kodu hakkında not
ExampBu belgede gösterilen dosya kodu aşağıdaki telif hakkına ve BSD-3-Madde lisansına sahiptir:
Telif hakkı 2024 NXP Yeniden dağıtıma ve kaynak ve ikili biçimlerde, değişiklik yaparak veya değiştirmeden kullanıma, aşağıdaki koşulların karşılanması koşuluyla izin verilir:
- Kaynak kodunun yeniden dağıtımlarında yukarıdaki telif hakkı bildirimi, bu koşullar listesi ve aşağıdaki feragatname korunmalıdır.
- İkili biçimdeki yeniden dağıtımlar, yukarıdaki telif hakkı bildirimini, bu koşullar listesini ve aşağıdaki sorumluluk reddini belgelerde ve/veya diğer materyallerde dağıtımla birlikte sağlanmalıdır.
- Ne telif hakkı sahibinin adı ne de ona katkıda bulunanların adları, önceden özel yazılı izin alınmadan bu yazılımdan türetilen ürünleri onaylamak veya tanıtmak için kullanılamaz.
BU YAZILIM, TELİF HAKKI SAHİPLERİ VE KATKIDA BULUNANLAR TARAFINDAN "OLDUĞU GİBİ" SAĞLANMAKTADIR VE TİCARİ ELVERİŞLİLİK VE BELİRLİ BİR AMACA UYGUNLUK GARANTİLERİ DAHİL ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE HERHANGİ BİR AÇIK VEYA ZIMNİ GARANTİ REDDEDİLMEKTEDİR. TELİF HAKKI SAHİBİ VEYA KATKIDA BULUNANLAR, HİÇBİR DURUMDA, DOĞRUDAN, DOLAYLI, ARIZİ, ÖZEL, ÖRNEK NİTELİĞİNDE VEYA SONUÇ OLARAK OLUŞAN ZARARLARDAN (YEDEK MAL VEYA HİZMETLERİN TEDARİKİ; KULLANIM, VERİ VEYA KÂR KAYBI; İŞ KESİNTİSİ DAHİL, ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE) NASIL OLUŞURSA OLSUN VE SÖZLEŞMESEL, KESİN SORUMLULUK VEYA HAKSIZ FİİL (İHMAL VEYA BAŞKA ŞEKİLDE DAHİL) OLSUN, BU YAZILIMIN KULLANIMINDAN HERHANGİ BİR ŞEKİLDE DOĞAN, BÖYLE BİR ZARAR OLASILIĞI KENDİLERİNE BİLDİRİLMİŞ OLSA BİLE, SORUMLU TUTULAMAZLAR.
Revizyon geçmişi
Yasal bilgiler
Tanımlar
Taslak — Bir belgedeki taslak durumu, içeriğin hala dahili inceleme altında olduğunu gösterir.view ve değişikliklere veya eklemelere yol açabilecek resmi onaya tabidir. NXP Semiconductors, bir belgenin taslak versiyonunda yer alan bilgilerin doğruluğu veya eksiksizliği konusunda hiçbir beyanda bulunmaz veya garanti vermez ve bu tür bilgilerin kullanımının sonuçlarından sorumlu tutulamaz.
Sorumluluk reddi
- Sınırlı garanti ve sorumluluk — Bu belgedeki bilgilerin doğru ve güvenilir olduğuna inanılmaktadır. Bununla birlikte, NXP Semiconductors, bu tür bilgilerin doğruluğu veya eksiksizliği konusunda açık veya zımni hiçbir beyan veya garanti vermez ve bu bilgilerin kullanımının sonuçları için hiçbir sorumluluk kabul etmez. NXP Semiconductors dışında bir bilgi kaynağı tarafından sağlanmışsa, NXP Semiconductors bu belgedeki içerikten sorumlu değildir.
NXP Semiconductors hiçbir durumda dolaylı, arızi, cezai, özel veya sonuç olarak ortaya çıkan zararlardan (kar kaybı, tasarruf kaybı, iş kesintisi, herhangi bir ürünün çıkarılması veya değiştirilmesi veya yeniden işleme ücretleri dahil - bunlarla sınırlı olmamak üzere) sorumlu olmayacaktır. veya bu tür zararlar haksız fiile (ihmal dahil), garantiye, sözleşmenin ihlaline veya diğer herhangi bir yasal teoriye dayanmaz.
Müşterinin herhangi bir nedenle maruz kalabileceği herhangi bir zarara bakılmaksızın, NXP Semiconductors'ın burada açıklanan ürünler için müşteriye karşı toplam ve kümülatif sorumluluğu, NXP Semiconductors'ın ticari satışının Hüküm ve koşullarına uygun olarak sınırlandırılacaktır. - Değişiklik yapma hakkı — NXP Semiconductors, herhangi bir zamanda ve bildirimde bulunmaksızın, spesifikasyonlar ve ürün açıklamaları dahil ancak bunlarla sınırlı olmamak üzere bu belgede yayınlanan bilgilerde değişiklik yapma hakkını saklı tutar. Bu belge, burada yayımlanmadan önce sağlanan tüm bilgilerin yerine geçer ve onun yerine geçer.
- Kullanıma uygunluk — NXP Semiconductors ürünleri, yaşam desteği, hayati önem taşıyan veya güvenlik açısından kritik sistemler veya ekipmanlarda veya bir NXP Semiconductors ürününün arızasının veya arızasının makul olarak sonuçlanmasının beklenebileceği uygulamalarda kullanım için uygun olarak tasarlanmamıştır, yetkilendirilmemiştir veya garanti edilmemiştir. kişisel yaralanma, ölüm veya ciddi mal veya çevre hasarı. NXP Semiconductors ve tedarikçileri, NXP Semiconductors ürünlerinin bu tür ekipman veya uygulamalara dahil edilmesi ve/veya kullanılması konusunda hiçbir sorumluluk kabul etmez ve bu nedenle bu tür dahil etme ve/veya kullanım riski müşterinin kendisine aittir.
- Uygulamalar — Bu ürünlerden herhangi biri için burada açıklanan uygulamalar yalnızca açıklama amaçlıdır. NXP Semiconductors, bu tür uygulamaların daha fazla test veya değişiklik yapılmadan belirtilen kullanım için uygun olacağına dair hiçbir beyanda bulunmaz veya garanti vermez.
Müşteriler, NXP Semiconductors ürünlerini kullanan uygulamalarının ve ürünlerinin tasarımından ve çalıştırılmasından sorumludur ve NXP Semiconductors, uygulamalar veya müşteri ürün tasarımıyla ilgili herhangi bir yardım konusunda hiçbir sorumluluk kabul etmez. NXP Semiconductors ürününün müşterinin uygulamalarına ve planlanan ürünlere, ayrıca müşterinin üçüncü taraf müşterilerinin planlanan uygulamasına ve kullanımına uygun olup olmadığını belirlemek yalnızca müşterinin sorumluluğundadır. Müşteriler, uygulamaları ve ürünleriyle ilgili riskleri en aza indirmek için uygun tasarım ve işletim önlemlerini sağlamalıdır. NXP Semiconductors, müşterinin uygulamalarında veya ürünlerinde veya müşterinin üçüncü taraf müşterilerinin uygulamasında veya kullanımında herhangi bir zayıflık veya temerrüde dayalı herhangi bir temerrüt, hasar, maliyet veya sorunla ilgili herhangi bir sorumluluk kabul etmez. Müşteri, uygulamalarda ve ürünlerde veya uygulamada veya müşterinin üçüncü taraf müşterileri tarafından kullanılmasında bir hata oluşmasını önlemek amacıyla, NXP Semiconductors ürünlerini kullanan müşterinin uygulamaları ve ürünleri için gerekli tüm testlerin yapılmasından sorumludur. NXP bu konuda herhangi bir sorumluluk kabul etmez. - Ticari satış şartları ve koşulları — NXP Semiconductors ürünleri, https://www.nxp.com/pro adresinde yayınlanan ticari satışın genel hüküm ve koşullarına tabi olarak satılmaktadır.file/şartlar, geçerli bir yazılı bireysel sözleşmede aksi kararlaştırılmadıkça. Bireysel bir sözleşme yapılması durumunda, yalnızca ilgili sözleşmenin hüküm ve koşulları geçerli olacaktır. NXP Semiconductors, müşteri tarafından NXP Semiconductors ürünlerinin satın alınmasıyla ilgili olarak müşterinin genel hüküm ve koşullarının uygulanmasına açıkça itiraz eder.
- İhracat kontrolü — Bu belge ve burada açıklanan kalem(ler) ihracat kontrol düzenlemelerine tabi olabilir. İhracat, yetkili makamlardan önceden izin alınmasını gerektirebilir.
- Otomotiv nitelikli olmayan ürünlerde kullanıma uygunluk — Bu belge, bu spesifik NXP Semiconductors ürününün otomotiv için uygun olduğunu açıkça belirtmediği sürece, ürün otomotivde kullanıma uygun değildir. Otomotiv testi veya uygulama gerekliliklerine uygun olarak kalifiye edilmemiştir veya test edilmemiştir. NXP Semiconductors, otomotiv ekipmanı veya uygulamalarına otomotiv dışı nitelikli ürünlerin dahil edilmesi ve/veya kullanılması konusunda hiçbir sorumluluk kabul etmez.
Müşterinin ürünü otomotiv spesifikasyonları ve standartlarına göre otomotiv uygulamalarında tasarım ve kullanım için kullanması durumunda, müşteri (a) ürünü bu tür otomotiv uygulamaları, kullanımı ve spesifikasyonları için NXP Semiconductors'ın ürün garantisi olmadan kullanacaktır ve ( b) müşteri ürünü NXP Semiconductors'ın spesifikasyonlarının ötesinde otomotiv uygulamaları için kullandığında, bu tür kullanım riski yalnızca müşterinin kendi sorumluluğunda olacaktır ve (c) müşteri, NXP Semiconductors'ı müşteri tasarımı ve kullanımından kaynaklanan herhangi bir sorumluluk, hasar veya başarısız ürün iddiaları için tamamen tazmin eder. NXP Semiconductors'ın standart garantisinin ve NXP Semiconductors'ın ürün özelliklerinin ötesinde otomotiv uygulamalarına yönelik ürün. - Çeviriler — Bir belgenin İngilizce olmayan (çevrilmiş) bir versiyonu, o belgedeki yasal bilgiler de dahil olmak üzere, yalnızca referans amaçlıdır. Çevrilmiş ve İngilizce sürümler arasında herhangi bir tutarsızlık olması durumunda İngilizce sürüm geçerli olacaktır.
- Güvenlik — Müşteri, tüm NXP ürünlerinin tanımlanamayan güvenlik açıklarına tabi olabileceğini veya yerleşik güvenlik standartlarını veya belirtimlerini bilinen sınırlamalarla destekleyebileceğini anlar. Müşteri, uygulamalarının ve ürünlerinin yaşam döngüleri boyunca bu güvenlik açıklarının kendi uygulamaları ve ürünleri üzerindeki etkisini azaltmak için tasarlanmasından ve çalıştırılmasından sorumludur. Müşterinin sorumluluğu, müşterinin uygulamalarında kullanım için NXP ürünleri tarafından desteklenen diğer açık ve/veya tescilli teknolojileri de kapsar. NXP herhangi bir güvenlik açığı için sorumluluk kabul etmez. Müşteri, NXP'den güvenlik güncellemelerini düzenli olarak kontrol etmeli ve uygun şekilde takip etmelidir. Müşteri, amaçlanan uygulamanın kurallarına, düzenlemelerine ve standartlarına en uygun güvenlik özelliklerine sahip ürünleri seçecek ve ürünleriyle ilgili nihai tasarım kararlarını verecek ve ürünleriyle ilgili tüm yasal, düzenleyici ve güvenlikle ilgili gerekliliklere uyumdan yalnızca Müşteri sorumlu olacaktır. NXP tarafından sağlanabilecek herhangi bir bilgi veya desteğin.
NXP'nin, NXP ürünlerinin güvenlik açıklarına yönelik araştırmayı, raporlamayı ve çözüm yayınlamayı yöneten bir Ürün Güvenliği Olay Müdahale Ekibi (PSIRT) (PSIRT@nxp.com adresinden erişilebilir) vardır.
NXP BV — NXP BV faaliyet gösteren bir şirket değildir ve ürün dağıtmaz veya satmaz.
Ticari markalar
Fark etme: Referans verilen tüm markalar, ürün adları, hizmet adları ve ticari markalar ilgili sahiplerinin mülkiyetindedir.
NXP — kelime işareti ve logo NXP BV'nin ticari markalarıdır
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Etkin, NEON, POP, GerçekView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — Arm Limited'in (veya yan kuruluşlarının veya bağlı kuruluşlarının) ABD'deki ticari markaları ve/veya tescilli ticari markalarıdır ve/veya başka yerde. İlgili teknoloji, patentlerin, telif haklarının, tasarımların ve ticari sırların herhangi biri veya tamamı ile korunabilir. Her hakkı saklıdır.
- i.MX — NXP BV'nin ticari markasıdır
- J-Link — SEGGER Microcontroller GmbH'nin ticari markasıdır.
Microsoft, Azure ve ThreadX — Microsoft şirketler grubunun ticari markalarıdır.
Bu belge ve burada açıklanan ürün(ler)le ilgili önemli bildirimlerin 'Yasal bilgiler' bölümünde yer aldığını lütfen unutmayın.
© 2024 NXP BV
Daha fazla bilgi için lütfen ziyaret edin: https://www.nxp.com
- Yayın tarihi: 19 Nisan 2024
- Belge tanımlayıcı: AN14263
SSS
S: Bu ürünün asıl amacı nedir?
C: Temel amaç, basit bir LVGL GUI ex ile bir AI&ML görüş algoritması modeli kullanarak yüz tanıma işlevini etkinleştirmektir.ampSLN-TLHMI-IOT kartındaki dosya.
S: Geliştiriciler bu uygulama notundan nasıl yararlanabilir?
C: Geliştiriciler, sağlanan örneği kullanarak çerçeve üzerinde yüz tanımayı adım adım nasıl uygulayacaklarını öğrenebilirler.ampİlgili cihaz yöneticilerini, HAL cihazlarını ve olay mekanizmalarını öğrenin ve anlayın.
Belgeler / Kaynaklar
![]() |
NXP AN14263 Çerçevede LVGL GUI Yüz Tanıma Uygulaması [pdf] Kullanıcı Kılavuzu AN14263 Framewor'da LVGL GUI Yüz Tanıma'yı Uygulama, AN14263, Framewor'da LVGL GUI Yüz Tanıma'yı Uygulama, Framewor'da LVGL GUI Yüz Tanıma, Framewor'da Yüz Tanıma, Framewor'da Tanıma, Framewor |