एनएक्सपी एएन14263 फ्रेमवर्क पर एलवीजीएल जीयूआई फेस रिकग्निशन लागू करें
उत्पाद की जानकारी
विशेष विवरण
- प्रोडक्ट का नाम: फ्रेमवर्क पर LVGL GUI फेस रिकॉग्निशन
- दस्तावेज़ संशोधन: 1 – 19 अप्रैल 2024
- कीवर्ड: चेहरा पहचान, एलवीजीएल जीयूआई, फ्रेमवर्क
उत्पाद उपयोग निर्देश
- ऊपरview
यह उत्पाद एक सरल LVGL GUI उदाहरण के साथ चेहरा पहचान फ़ंक्शन को लागू करने के लिए एक फ्रेमवर्क पर चेहरा पहचान के लिए AI&ML विज़न एल्गोरिदम मॉडल को सक्षम करता हैampSLN-TLHMI-IOT बोर्ड पर ले। - ढाँचा ख़त्मview
समाधान सॉफ्टवेयर को फ्रेमवर्क आर्किटेक्चर के आसपास डिज़ाइन किया गया है जिसमें उपकरणों के प्रबंधन के लिए जिम्मेदार डिवाइस मैनेजर, अंतर्निहित विवरणों को सारगर्भित करने के लिए HAL डिवाइस और विभिन्न उपकरणों के बीच संचार के लिए इवेंट शामिल हैं। - विशेषताएँ
यह उत्पाद कैमरा प्री के माध्यम से चेहरा पहचान कार्य के कार्यान्वयन की अनुमति देता हैview GUI स्क्रीन पर चेहरा पंजीकरण, पहचान और हटाने के लिए बटन हैं। पंजीकृत चेहरे का डेटा फ्लैश पर एक के माध्यम से संग्रहीत किया जाता है file प्रणाली। - एप्लिकेशन नोट सामग्री
एप्लिकेशन नोट कैमरा प्री के साथ एक LVGL GUI स्क्रीन प्रस्तुत करता हैview और चेहरे से संबंधित क्रियाओं के लिए बटन। यह डेवलपर्स को फ्रेमवर्क को समझने और दिए गए उदाहरण का उपयोग करके चेहरे की पहचान को लागू करने में मदद करता हैampले.
ऊपरview
एनएक्सपी ने एसएलएन-टीएलएचएमआई-आईओटी नाम से एक समाधान विकास किट लॉन्च की है जो स्मार्ट एचएमआई अनुप्रयोगों पर केंद्रित है। यह एक NXP i.MX RT117H MCU पर लागू एमएल विजन, वॉयस और ग्राफिक्स यूआई के साथ स्मार्ट एचएमआई को सक्षम बनाता है। एसडीके के आधार पर, समाधान सॉफ्टवेयर फ्रेमवर्क नामक एक डिजाइन पर बनाया गया है जो लचीले डिजाइन और दृष्टि और आवाज कार्यों के अनुकूलन का समर्थन करता है। उपयोगकर्ताओं को सॉफ़्टवेयर प्लेटफ़ॉर्म का बेहतर उपयोग करने में मदद करने के लिए, उदाहरण के लिए, कुछ बुनियादी दस्तावेज़ प्रदान किए जाते हैंample, सॉफ्टवेयर डेवलपमेंट यूजर गाइड। यह गाइड एप्लीकेशन के बुनियादी सॉफ्टवेयर डिजाइन और आर्किटेक्चर का परिचय देता है, जिसमें फ्रेमवर्क सहित समाधान के सभी घटक शामिल हैं, ताकि डेवलपर्स को SLN-TLHMI-IOT का उपयोग करके अपने एप्लीकेशन को अधिक आसानी से और कुशलता से लागू करने में मदद मिल सके।
समाधान और प्रासंगिक दस्तावेज़ों के बारे में अधिक जानकारी के लिए, पर जाएँ web एनएक्सपी एजरेडी स्मार्ट एचएमआई समाधान का पेज एमएल विजन, वॉयस और ग्राफिकल यूआई के साथ i.MX RT117H पर आधारित है। हालाँकि, डेवलपर्स के लिए इन बुनियादी गाइडों का संदर्भ देते हुए अपने स्मार्ट एचएमआई अनुप्रयोगों को लागू करना अभी भी इतना आसान नहीं है। फ्रेमवर्क पर चरण दर चरण विकास का अध्ययन करने में मदद करने के लिए एप्लिकेशन नोट्स की एक श्रृंखला की योजना बनाई गई है। यह एप्लिकेशन नोट LVGL GUI कैमरा प्री को लागू करने पर आधारित हैview फ़्रेमवर्क पर (दस्तावेज़ AN14147)। यह एप्लिकेशन नोट बताता है कि फ़्रेमवर्क पर चेहरा पहचान के लिए AI&ML विज़न एल्गोरिदम मॉडल को कैसे सक्षम किया जाए ताकि कैमरा प्री के माध्यम से चेहरा पहचान फ़ंक्शन को लागू किया जा सकेview एक साधारण LVGL GUI उदाहरण के साथ GUI स्क्रीन परampSLN-TLHMI-IOT बोर्ड पर ले। आवेदन नोट में, exampले एक कैमरा प्री के साथ एक एलवीजीएल जीयूआई स्क्रीन प्रस्तुत करता हैview और चेहरे का पंजीकरण, पहचान और हटाने को ट्रिगर करने के लिए कुछ बटन। पंजीकृत चेहरे का डेटा फ्लैश पर एक छोटे से माध्यम से संग्रहीत किया जाता है file प्रणाली।
उच्च स्तर पर, एप्लिकेशन नोट में निम्नलिखित सामग्री शामिल है:
- फ़्रेमवर्क पर चेहरा पहचान सुविधा सक्षम करें.
- फ़्रेमवर्क पर फेस डेटाबेस समर्थन जोड़ें file सिस्टम को फ्लैश पर चलाएं।
- LVGL GUI ऐप को लागू करें। उपरोक्त परिचय के माध्यम से, यह दस्तावेज़ डेवलपर्स की मदद करता है:
- फ्रेमवर्क और स्मार्ट एचएमआई समाधान सॉफ्टवेयर को अधिक गहराई से समझें।
- LVGL GUI ऐप के साथ फ्रेमवर्क पर अपना AI&ML फेस रिकग्निशन विकसित करें।
फ्रेमवर्क खत्मview
समाधान सॉफ़्टवेयर मुख्य रूप से फ़्रेमवर्क आर्किटेक्चर के उपयोग के आसपास डिज़ाइन किया गया है जो कई अलग-अलग हिस्सों से बना है:
- डिवाइस प्रबंधक – मुख्य भाग
- हार्डवेयर एब्स्ट्रेक्शन लेयर (HAL) डिवाइस
- संदेश/घटनाएँ
जैसा कि चित्र 1 में दिखाया गया है, ओवरview ढांचे का तंत्र है:
डिवाइस मैनेजर सिस्टम द्वारा उपयोग किए जाने वाले डिवाइस को प्रबंधित करने के लिए जिम्मेदार होते हैं। प्रत्येक डिवाइस प्रकार (इनपुट, आउटपुट, इत्यादि) का अपना स्वयं का प्रकार-विशिष्ट डिवाइस मैनेजर होता है। डिवाइस मैनेजर डिवाइस के पंजीकृत होने के बाद शुरू होता है, यह पंजीकृत डिवाइस को आरंभ करने और शुरू करने के बाद डिवाइस और अन्य प्रबंधकों को डेटा स्थानांतरित करने के लिए एक संदेश की प्रतीक्षा करता है और जांचता है। HAL डिवाइस निचले-स्तर के ड्राइवर कोड के शीर्ष पर लिखे जाते हैं, जो कई अंतर्निहित विवरणों को सारगर्भित करके कोड की समझ को बढ़ाने में मदद करते हैं।
ईवेंट एक ऐसा साधन है जिसके द्वारा विभिन्न उपकरणों के बीच उनके प्रबंधकों के माध्यम से जानकारी संचारित की जाती है। जब कोई ईवेंट ट्रिगर होता है, तो जिस डिवाइस ने सबसे पहले ईवेंट प्राप्त किया था, वह उस ईवेंट को अपने प्रबंधक को सूचित करता है, फिर बदले में वह ईवेंट प्राप्त करने के लिए नामित अन्य प्रबंधकों को सूचित करता है।
ढांचे का वास्तुशिल्प डिजाइन तीन प्राथमिक लक्ष्यों पर केंद्रित था:
- उपयोग में आसानी
- लचीलापन/पोर्टेबिलिटी
- प्रदर्शन
इस फ्रेमवर्क को विज़न और अन्य मशीन-लर्निंग अनुप्रयोगों के लिए बाज़ार में आने के समय को तेज़ करने के लक्ष्य के साथ डिज़ाइन किया गया है। बाज़ार में तेज़ी से आने के लिए, यह महत्वपूर्ण है कि सॉफ़्टवेयर को समझना और संशोधित करना आसान हो। इस लक्ष्य को ध्यान में रखते हुए, फ्रेमवर्क की वास्तुकला को बिना किसी प्रतिबंध के और प्रदर्शन की कीमत पर संशोधित करना आसान है।
फ्रेमवर्क के बारे में अधिक जानकारी के लिए, स्मार्ट एचएमआई सॉफ्टवेयर डेवलपमेंट उपयोगकर्ता गाइड (दस्तावेज़ MCU-SMHMI-SDUG) देखें।
लाइट और वर्सेटाइल ग्राफिक्स लाइब्रेरी (LVGL)
एलवीजीएल (लाइट एंड वर्सटाइल ग्राफिक्स लाइब्रेरी) एक स्वतंत्र और ओपन-सोर्स ग्राफिक्स लाइब्रेरी है जो आपको उपयोग में आसान ग्राफिकल तत्वों, सुंदर दृश्य प्रभावों और कम मेमोरी फ़ुटप्रिंट के साथ एक एम्बेडेड जीयूआई बनाने के लिए आवश्यक सभी चीजें प्रदान करती है।
जीयूआई गाइडर
जीयूआई गाइडर एनएक्सपी का एक उपयोगकर्ता के अनुकूल ग्राफिकल यूजर इंटरफेस डेवलपमेंट टूल है जो ओपन-सोर्स एलवीजीएल ग्राफिक्स लाइब्रेरी के साथ उच्च गुणवत्ता वाले डिस्प्ले के तेजी से विकास को सक्षम बनाता है। जीयूआई गाइडर का ड्रैग-एंड-ड्रॉप संपादक न्यूनतम या बिल्कुल भी कोडिंग के साथ जीयूआई बनाने के लिए एलवीजीएल की कई विशेषताओं जैसे विजेट, एनिमेशन और शैलियों का उपयोग करना आसान बनाता है।
एक बटन पर क्लिक करके, आप अपने एप्लिकेशन को सिम्युलेटेड वातावरण में चला सकते हैं या इसे किसी लक्ष्य प्रोजेक्ट में निर्यात कर सकते हैं। GUI Guider से जेनरेट किया गया कोड आसानी से आपके प्रोजेक्ट में जोड़ा जा सकता है, जिससे विकास प्रक्रिया में तेज़ी आती है और आप अपने एप्लिकेशन में एक एम्बेडेड यूजर इंटरफ़ेस को आसानी से जोड़ सकते हैं। GUI Guider NXP के सामान्य उद्देश्य और क्रॉसओवर MCU के साथ उपयोग करने के लिए निःशुल्क है और इसमें कई समर्थित प्लेटफ़ॉर्म के लिए अंतर्निहित प्रोजेक्ट टेम्पलेट शामिल हैं। GUI Guider पर LVGL और GUI विकास के बारे में अधिक जानने के लिए, लाइट और वर्सेटाइल ग्राफ़िक्स लाइब्रेरी और GUI Guider देखें।
विकास पर्यावरण
सबसे पहले, पूर्व को लागू करने के लिए हार्डवेयर और सॉफ्टवेयर वातावरण तैयार करें और स्थापित करेंampले ढांचे पर.
हार्डवेयर वातावरण
पूर्व को सत्यापित करने के लिए हार्डवेयर वातावरण स्थापित किया गया हैampपर:
- NXP i.MX RT117H पर आधारित स्मार्ट HMI विकास किट (SLN_TLHMI_IOT किट)
- SEGGER J-Link 9-पिन कॉर्टेक्स-एम एडाप्टर और V7.84a या ड्राइवर के नए संस्करण के साथ
सॉफ्टवेयर वातावरण
पूर्व को विकसित करने के लिए सॉफ्टवेयर वातावरण स्थापित किया गया हैampपर:
- MCUXpresso आईडीई V11.7.0
- GUI गाइडर V1.6.1-GA
- lvgl_gui_कैमरा_प्रीview_सेमी7 – पूर्वampविकास के आधार सॉफ्टवेयर के रूप में दूसरे आवेदन नोट का ले कोड। विवरण के लिए, देखें https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 - विकास के लिए कोड संसाधन के रूप में।
- SLN-TLHMI-IOT सॉफ़्टवेयर V1.1.2 – NXP GitHub रिपॉजिटरी पर विकास के लिए कोड संसाधन के रूप में जारी किया गया स्मार्ट HMI स्रोत कोड। विवरण के लिए, देखें: GitHub – NXP/mcu-smhmi v1.1.2 पर
सॉफ़्टवेयर वातावरण के अधिग्रहण और सेटअप के बारे में विवरण के लिए, देखें: SLN-TLHMI-IOT के साथ आरंभ करना।
फ्रेमवर्क पर विज़न आर्किटेक्चर
फ्रेमवर्क पर विज़न आर्किटेक्चर चित्र 2 में दिखाया गया है। विज़न एल्गो HAL (OASIS_HAL) में निम्नलिखित प्रक्रियाएँ हैं:
- आउटपुट UI HAL से संबंधित ईवेंट प्राप्त करने के बाद AI&ML विज़न एल्गोरिथम मॉडल के माध्यम से फेस रजिस्ट्रेशन और पहचान करें। एल्गोरिथम मॉडल से प्राप्त अनुमान परिणामों को आउटपुट UI HAL को सूचित करें।
- छोटे से आधार पर चेहरे की विशेषता डेटाबेस तक पहुँचता है (जोड़ता है, हटाता है...) file आउटपुट यूआई एचएएल से संबंधित ईवेंट प्राप्त करने के बाद फेसडीबी एचएएल के एपीआई को कॉल करके सिस्टम।
- चेहरा पंजीकरण और पहचान करते समय कैमरा HAL से कैमरा वीडियो फ्रेम का अनुरोध करें।
फ़्रेमवर्क पर चेहरा पहचान लागू करें
LVGL GUI चेहरा पहचान पूर्वampले (पूर्वampले को बाद में प्रदान किया गया है) ढांचे पर पूर्व के आधार पर कार्यान्वित किया गया हैampएलवीजीएल जीयूआई कैमरा प्री लागू करने के कोडview फ़्रेमवर्क पर (दस्तावेज़ AN14147)।
पूर्व में चेहरा पहचान प्रदर्शित करने के लिएampले, जीयूआई ऐप का मूल कार्य (चित्रा 3 में मुख्य स्क्रीन देखें) नीचे वर्णित अनुसार डिज़ाइन किया गया है:
- GUI ऐप पंजीकरण या पहचान बटन पर क्लिक करने पर आउटपुट UI HAL में चेहरा पंजीकरण या पहचान इवेंट को ट्रिगर करता है। और आउटपुट UI HAL चेहरा पंजीकरण सफल होने के बाद विज़न एल्गो HAL में उपयोगकर्ता को जोड़ने की घटना को अधिसूचित करता है।
- उपयोगकर्ता का चेहरा पहचाने जाने के बाद 'यूजर हटाएँ' बटन पर क्लिक करने पर GUI ऐप, आउटपुट UI HAL पर उपयोगकर्ता को हटाने की घटना को ट्रिगर करता है।
- जीयूआई ऐप बटन और छवियों के बाहर स्क्रीन पर क्लिक करने पर ओएसिस एल्गो को आउटपुट यूआई एचएएल पर चलने से रोकने की घटना को ट्रिगर करता है।
पूर्व के कार्यान्वयन के लिए सॉफ्टवेयर पैकेज तैयार करेंampले.
- बेस सॉफ्टवेयर lvgl_gui_camera_pre को क्लोन करेंview_सेमी7. प्रोजेक्ट का नाम और मुख्य बदलें fileनाम lvgl_gui_face_rec_cm7.
- सॉफ्टवेयर में फ्रेमवर्क को अद्यतन करने की आवश्यकता है क्योंकि फ्रेमवर्क कोर के स्रोत कोड संस्करण 1.1.2 से GitHub पर सार्वजनिक होने लगे हैं।
- फ्रेमवर्क फ़ोल्डर को GitHub से V1.1.2 की प्रतिलिपि के साथ बदलें, सिवाय इसके कि files fwk_log.h और fwk_common.h को inc\ के अंतर्गत रखें क्योंकि उन्हें एप्लीकेशन नोट की श्रृंखला के लिए संशोधित किया गया है। संचालन चित्र 4 में दिखाए गए हैं:
- libs समूह के अंतर्गत framework_cm7 फ़ोल्डर को हटाएँ और Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries में कॉन्फ़िगर की गई लाइब्रेरी framework_cm7 और उसके खोज पथ को हटाएँ, क्योंकि कोर का स्रोत कोड प्रदान किया गया है।
फ़्रेमवर्क पर चेहरा पहचान सुविधा सक्षम करें
फेस रिकग्निशन फीचर को ML विज़न एल्गोरिदम मॉडल पर बनाया गया है, जो स्टैटिक लाइब्रेरी के रूप में उपलब्ध है - NXP द्वारा एक ओएसिस लाइट रनटाइम लाइब्रेरी। लाइब्रेरी एक छोटी, अत्यधिक कुशल, अनुकूलित और अनुकूलित AI लाइब्रेरी है। मॉडल में फेस डिटेक्शन, फेस रिकग्निशन, ग्लास डिटेक्शन और लाइवनेस डिटेक्शन शामिल हैं। यह मुख्य रूप से API OASISLT_run_extended() प्रदान करता है, ताकि इवेंट कॉलबैक के माध्यम से कॉलर को परिणाम अपडेट करते समय फेस रिकग्निशन पाइपलाइन को चलाया जा सके और आरंभीकरण पर एक अन्य API OASISLT_init() को कॉल करके लाइब्रेरी द्वारा उपयोग किए जाने वाले स्रोत फ़्रेम जानकारी, कॉलबैक और मेमोरी पूल को निर्दिष्ट करने के बाद फेस डेटाबेस कॉलबैक के माध्यम से डेटाबेस में चेहरे जोड़े/अपडेट/हटाए जा सकें। API और कॉलबैक फ़ंक्शन की कॉलिंग को फ्रेमवर्क के विज़न एल्गो HAL में लागू किया जाता है।
विज़न एल्गो मॉडल लाइब्रेरी जोड़ें
- लाइब्रेरी और संबंधित हेडर वाले फ़ोल्डर ओएसिस की प्रतिलिपि बनाएँ file स्मार्ट HMI\coffee_machine\cm7\libs\ से ex के फ़ोल्डर libs मेंampले दप.
- हेडर का खोज पथ जोड़ें file प्रोजेक्ट > गुण > C/C++ बिल्ड > सेटिंग्स > टूल सेटिंग्स > MCU C कंपाइलर > शामिल है और MCU C++ कंपाइलर > शामिल है: “${workspace_loc:/${ProjName}/libs/oasis/include}”
- प्रोजेक्ट > गुण > C/C++ बिल्ड > सेटिंग्स > MCU C++ लिंकर > लाइब्रेरीज़: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” पर lib और उसका खोज पथ जोड़ें और प्रोजेक्ट > गुण > C/C++ बिल्ड > सेटिंग्स > टूल सेटिंग्स > MCU C कंपाइलर > प्रीप्रोसेसर और MCU C++ कंपाइलर > प्रीप्रोसेसर: SMART_TLHMI_2D पर सुविधा सक्षम करने के लिए मैक्रो परिभाषा जोड़ें
विज़न एल्गो HAL सक्षम करें
विज़न एल्गो एचएएल, विज़न एल्गो मॉडल को काम करने के लिए चलाता है और इससे इवेंट प्राप्त करने के बाद यूआई आउटपुट एचएएल को परिणाम का जवाब देता है।
इसे सक्षम करने के लिए, मौजूदा समान HAL ड्राइवर को क्लोन करें file जहां निम्नलिखित कार्य कार्यान्वित किए जाते हैं:
- फेस डेटाबेस संचालन और इवेंट हैंडलिंग के कॉलबैक को कार्यान्वित करें।
- ओएसिस लाइब्रेरी के एपीआई को कॉल करके विज़न एल्गो को कार्य करने के लिए प्रेरित करें।
- उपयोगकर्ता चेहरा डेटाबेस और ऐप डेटाबेस तक पहुंचें (उदाहरण में इसकी आवश्यकता नहीं है)ampले).
- आउटपुट UI HAL से ईवेंट प्राप्त करें और परिणाम भेजें।
पूर्व के लिए एचएएल को लागू करने के लिए प्रमुख कार्यampले हैं:
- मौजूदा समान HAL ड्राइवर को क्लोन करें file और संबंधित नाम बदलें.
- ऐप डेटा संचालन से संबंधित कोड निकालें.
- आउटपुट UI HAL से ईवेंट को संभालने के लिए परिभाषाओं और फ़ंक्शन को अपडेट करेंampले डिजाइन।
- ओएसिस आरंभीकरण में आवश्यक कॉन्फ़िगरेशन जोड़ें.
विस्तृत चरण नीचे दिए गए हैं:
- hal_vision_algo_oasis_coffeemachine.c को क्लोन करें। fileनाम hal_vision_algo_oasis_guifacerec.c. और सभी स्ट्रिंग्स CoffeeMachine को GUIFaceRec से बदलें file.
- ऐप डेटाबेस से संबंधित स्ट्रिंग coffeedb (केस सेंसिटिव नहीं) वाले कोड हटाएँ, उदाहरण के लिएampले, #एचएएल_एसएलएन_कॉफीबी.एच शामिल करें।
- आउटपुट UI HAL से घटनाओं को संभालने के लिए HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() फ़ंक्शन को संशोधित करें।
- डेटाबेस में नया फेस फीचर डेटा जोड़ने के लिए इवेंट हैंडलिंग के लिए इवेंट परिभाषा kEventFaceRecId_RegisterCoffeeSelection को kEventFaceRecId_RegisterUserFace में बदलें और संरचना स्ट्रिंग regCoffeeSelection को regGUIFaceRec में बदलें।
- उदाहरण में चेहरा पहचानने की क्रियाओं की मानक प्रक्रिया को दिखाने के लिएampले, राज्यों की परिभाषाओं के साथ kEventFaceRecID_OasisSetState के मामले में हैंडलिंग को संशोधित करें:
- कोआसिसलाइटस्टेट
- पंजीकरण kOASISLiteState
- मान्यता kOASISLiteState
- रोका गया
- उपरोक्त चरण में उल्लिखित घटनाओं की परिभाषाएँ जोड़ें और संशोधित करें।
- हेडर कॉपी करें file smart_tlhmi_event_descriptor.h को smart HMI\coffee_machine \cm7\source\event_handlers\ से ex के स्रोत फ़ोल्डर मेंampले दप. अद्यतन करें file नीचे के अनुसार:
- इनम प्रकार _event_smart_tlhmi_id में इवेंट परिभाषा kEventFaceRecId_RegisterCoffeeSelection को kEventFaceRecId_RegisterUserFace में बदलें और स्ट्रक्चर स्ट्रिंग regCoffeeSelection को struct _event_smart_tlhmi में regGUIFaceRec में बदलें। इसलिए, regCoffeeSelection के लिए स्ट्रक्चर register_coffee_selection_event_t को register_gui_facerec_event_t में बदलें।
- कॉफी मशीन ऐप के लिए उपयोग की जाने वाली अन्य सामग्री को हटा दें, उदाहरण के लिएampले, आवाज के बारे में कोड लाइन: #include "hal_event_descriptor_voice.h"।
- परियोजना में framework>hal>vision के अंतर्गत hal_vision_algo.h में enum प्रकार oasis_lite_state_t में kOASISLiteState_Stopped और kOASISLiteState_Running प्रकार जोड़ें, जैसा कि नीचे दिया गया है:
टाइपडिफ एनम _ओएसिस_लाइट_स्टेट {- कोआसिसलाइटस्टेट
- चल रहा है, kOASISLiteState
- रोका गया, kOASISLiteState
- मान्यता,
- कोआसिसलाइटस्टेट
- पंजीकरण, kOASISLiteState
- डी-रजिस्ट्रेशन, kOASISLiteState
- रिमोट रजिस्ट्रेशन, kOASISLiteState
- गिनती करना
- परियोजना में framework>hal>vision के अंतर्गत hal_event_descriptor_face_rec.h में struct oasis_state_event_t को परिष्कृत करने के लिए ऊपर दिए गए अद्यतन struct oasis_lite_state_t का उपयोग करें, जैसा कि नीचे दिया गया है: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- विज़न एल्गो HAL से उसी कोर पर चलने वाले अन्य HALs को ईवेंट भेजने के लिए सभी kEventInfo_Remote को kEventInfo_Local में बदलें क्योंकि उदाहरण में दोहरे कोर के बजाय एकल कोर का उपयोग किया जाता हैampले.
- OASISLT_init() में ओएसिस आरंभीकरण के लिए नीचे दिए गए कॉन्फ़िगरेशन जोड़ें और संशोधित करें:
- board_define.h में वीडियो फ्रेम के लिए मैक्रो परिभाषाएँ और मेमोरी अनुभाग जोड़ें: #define OASIS_RGB_FRAME_WIDTH 800
- #OASIS_RGB_FRAME_HEIGHT 600 को परिभाषित करें
- #OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB को परिभाषित करें
- #OASIS_RGB_FRAME_BYTE_PER_PIXEL 3 को परिभाषित करें
- #define AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __attribute__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __विशेषता__((संरेखित(एलाइनबाइट्स)))
- चित्र 5 में दिखाए गए प्रोजेक्ट > गुण > C/C++ बिल्ड > MCU सेटिंग्स पर उपरोक्त मेमोरी अनुभाग fb_sh_mem के लिए मेमोरी असाइनमेंट को कॉन्फ़िगर करें:
- lvgl_gui_face_rec_cm7.cpp में वैश्विक चर g_DTCOPBuf घोषित करें: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- उपरोक्त चर में प्रयुक्त परिभाषाएँ जोड़ना जारी रखें:
- board_define.h में उपरोक्त अनुभाग को परिभाषित करें:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- विशेषता__((खंड(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- विशेषता__((संरेखित(alignbytes)))
- हेडर शामिल करें file hal_vision_algo.h में ऐप_config.h में मैक्रो परिभाषा DTC_OPTIMIZE_BUFFER_SIZE शामिल है जो lvgl_gui_face_rec_cm7.cpp में शामिल है।
- board_define.h में वीडियो फ्रेम के लिए मैक्रो परिभाषाएँ और मेमोरी अनुभाग जोड़ें: #define OASIS_RGB_FRAME_WIDTH 800
- चेहरा पहचान पर प्रगति स्थिति दिखाने के लिए s_debugOption चर को true पर सेट करें।
- हेडर का खोज पथ जोड़ें fileप्रोजेक्ट पर विज़न HAL का चयन करें > गुण > C/C++ बिल्ड > सेटिंग्स > टूल सेटिंग्स > MCU C कंपाइलर > इसमें शामिल है और MCU C++ कंपाइलर > इसमें शामिल है: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- board_define.h में विज़न एल्गो HAL को सक्षम करने के लिए नीचे दी गई परिभाषा जोड़ें: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
आउटपुट UI HAL सक्षम करें
आउटपुट यूआई एचएएल घटनाओं को विज़न एल्गो एचएएल को सूचित करता है और विज़न एल्गो एचएएल से अनुमान परिणामों पर प्रतिक्रिया करता है। जीयूआई ऐप के साथ, इवेंट आम तौर पर ऐप द्वारा ट्रिगर किए जाते हैं और परिणाम ऐप पर दिखाए जाते हैं।
इसे सक्षम करने के लिए, मौजूदा समान HAL ड्राइवर को क्लोन करें file जहां आम तौर पर निम्नलिखित कार्य कार्यान्वित किए जाते हैं:
- चेहरा पहचान और डेटाबेस तक पहुंच के लिए घटनाओं को सूचित करें।
- इवेंट को ट्रिगर करने के लिए GUI ऐप के लिए कॉलबैक को कार्यान्वित करें।
- विज़न एल्गो मॉड्यूल से अनुमान परिणामों को संभालना।
- टाइमर और फेस गाइड आयत के साथ नियंत्रित प्रगति पट्टी द्वारा यूआई पर घटनाओं को संभालने की प्रक्रिया और परिणाम दिखाएं।
पूर्व के लिए एचएएल को लागू करने के लिए प्रमुख कार्यampइस दस्तावेज़ में प्रयुक्त निम्न हैं:
- मौजूदा समान HAL ड्राइवर को क्लोन करें file और संबंधित नाम बदलें.
- ऐप से संबंधित कोड हटाएँ.
- उदाहरण के अनुसार इवेंट अधिसूचना और परिणाम प्रतिक्रिया के लिए फ़ंक्शन अपडेट करेंampले डिजाइन।
- इवेंट को ट्रिगर करने के लिए GUI ऐप के लिए कॉलबैक जोड़ें।
विस्तृत चरण नीचे दिए गए हैं:
- hal_output_ui_coffee_machine.c को क्लोन करें। filehal_output_ui_guifacerec.c को नाम दें।
- सभी स्ट्रिंग्स CoffeeMachine को GUIFaceRec से बदलें file.
- ऐप से संबंधित कोड हटाएं - कॉफी मशीन।
- WakeUp() और _StandBy() फ़ंक्शन तथा संबंधित कोड हटा दें (उनके लिए स्ट्रिंग wake_up और standby खोज सकते हैं)।
- पूर्व हटाएँview HAL_OutputDev_UiGUIFaceRec_Input Notify() में संबंधित कोड को संभालने वाले मोड इवेंट।
- प्री के लिए gui_set_virtual_face() को छोड़कर कॉफी मशीन के GUI से संबंधित UI_xxx_Callback() फ़ंक्शन और gui_ और स्क्रीन स्ट्रिंग वाले कोड हटा देंview मोड सुविधा.
- कॉफी मशीन ऐप से संबंधित वेरिएबल्स s_IsWaitingAnotherSelection और s_IsWaitingRegisterSelection से जुड़े सभी कोड हटाएँ।
- आवाज़, ऑडियो और भाषा से संबंधित कोड हटाएँ। उदाहरण के लिएampपर:
- #शामिल करें “hal_voice_algo_asr_local.h”,
- #शामिल करें “hal_event_descriptor_voice.h”
- विभिन्न ईवेंट अधिसूचना के लिए, _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), और DeregisterGUIFaceRec() नए फंक्शन्स को लागू करें, तथा उन्हें हटाने से पहले फंक्शन्स _StopFaceRec(), _RegisterCoffeeSelection(), और DeregisterCoffeeSelection() का संदर्भ लें।
- _OutputManagerNotify() विज़न एल्गो HAL को इवेंट भेजने के लिए बेसिक इवेंट आउटपुट फ़ंक्शन को लागू करता है। नीचे दिए गए फ़ंक्शन इसे अपने इवेंट भेजने के लिए कॉल करते हैं।
- _SetFaceRec(), चेहरे के पंजीकरण, पहचान के लिए विज़न एल्गोरिथ्म को सक्रिय करने और एल्गोरिथ्म को रोकने के लिए kEventFaceRecID_OasisSetState ईवेंट भेजता है।
- _RegisterGUIFaceRec() इवेंट kEventFaceRecId_RegisterGUIFaceRec भेजता है, जिसे पंजीकरण ठीक होने पर डेटाबेस में चेहरा सुविधा डेटा जोड़ने के लिए smart_tlhmi_event_descriptor.h में परिभाषित किया गया है।
- DeregisterGUIFaceRec() चेहरा पहचान पास करते समय डेटाबेस से चेहरा विशेषता डेटा को हटाने के लिए kEventFaceRecID_DelUser ईवेंट भेजता है।
- LVGL GUI ऐप से API को कॉल करके GUI को रिफ्रेश करने सहित संगत क्रियाएं करने के लिए कोड अपडेट करें, उदाहरण के लिए फ़ंक्शन _InferComplete_Vision() में चेहरा पंजीकरण और पहचान के अनुमान परिणामों के लिएampले का डिज़ाइन. पूर्व के लिएampजब चेहरा पंजीकरण सफल हो जाता है,
- _FaceRecProcess_Stop() को कॉल करके प्रगति दिखाना बंद करें;
- _SetFaceRec(kOASISLiteState_Stopped) को कॉल करके चेहरा पंजीकरण रोकें;
- GUI पर सफल परिणाम दिखाएँ: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- डेटाबेस में चेहरा डेटा पंजीकृत करें: _RegisterUserFace(s_UserId);
- घटनाओं को संभालने के लिए UI कॉलबैक फ़ंक्शन जोड़ें: preview, चेहरा पंजीकरण, पहचान, और GUI से ट्रिगर किए गए उपयोगकर्ता को हटाना। उदाहरण के लिएample, चेहरा पंजीकरण कॉलबैक: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- और विभिन्न घटनाओं और परिणामों में प्रगति और स्थिति दिखाने के लिए _FaceRecProcess_Start() और _FaceRecProcess_Stop() फ़ंक्शन जोड़ें।
- टाइम-आउट के मामले को संभालने के लिए टाइमर ISR कॉलबैक फ़ंक्शन _SessionTimer_Callback() को अपडेट करें: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- board_define.h में UI आउटपुट HAL को सक्षम करने के लिए नीचे दी गई परिभाषाएँ जोड़ें: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
सूचना:
फेस रिकग्निशन फीचर को बेहतर तरीके से प्रस्तुत करने के लिए, आउटपुट UI HAL में फेस रिकग्निशन की प्रक्रिया और परिणाम दिखाने के लिए फ़ंक्शन को बनाए रखें। फ़ंक्शन का वर्णन नीचे दिया गया है
- चेहरा गाइड आयत नीले रंग में दिखाई देता है, और प्रगति बार चेहरा पंजीकरण या पहचान शुरू करते समय प्रगति को दर्शाता है।
- जब चेहरा पंजीकरण सफल हो जाता है तो चेहरा गाइड आयत लाल दिखाई देता है।
- जब चेहरा पहचान सफल हो जाती है तो फेस गाइड आयत हरा दिखाई देता है।
- फेस गाइड आयत नीला रहता है, और टाइमर समाप्ति के बाद कार्रवाई असफल होने पर प्रगति बार पूरी प्रगति दिखाता है। उस बिंदु पर, चेहरा पंजीकरण या पहचान बंद करें।
प्रगति बार और फेस गाइड आयत को संसाधन बाइनरी में निर्मित आइकन के रूप में प्रस्तुत किया जाता है file फ़्लैश में प्रोग्राम किया जाना है. एसडीआरएएम पर आइकन डेटा के पॉइंटर्स को आउटपुट यूआई एचएएल में आउटपुट यूआई एचएएल डिवाइस इनिशियलाइज़ेशन पर कॉल किए गए फ़ंक्शन लोडआईकॉन्स (एपीपी_आईसीओएनएस_बीएएसई) में सेट किया गया है। इसे फ़ंक्शन के लिए आइकन समर्थन लागू करना होगा।
आइकन समर्थन को कार्यान्वित करें
- LVGL GUI ऐप में प्रयुक्त छवियों के साथ आइकन को संयोजित करके संसाधन बनाएं:
- चार आइकन हेडर क्लोन करें fileस्मार्ट HMI से process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, और virtual_face_red_420x426.h
\coffee machine\resource\icons\ पूर्व के संसाधन फ़ोल्डर के अंतर्गत नए फ़ोल्डर आइकन के लिएampले दप. - चार आइकन के लिए खोज पथ जोड़ें fileकैमरा_पूर्व में हैview_resource.txt file उदाहरण के लिए, संसाधन फ़ोल्डर मेंampले: आइकन ../resource/icons/process_bar_240x14.h
- कैमरा_प्री निष्पादित करेंviewबिन उत्पन्न करने के लिए छवियों और आइकन संसाधनों का निर्माण करने के लिए _resource_build.bat file कैमरा_पूर्वview_resource.bin और जानकारी file resource_information_table.txt (चित्र 6 देखें)।
- चार आइकन हेडर क्लोन करें fileस्मार्ट HMI से process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, और virtual_face_red_420x426.h
- SDRAM पर आरंभ पता और app_config.h में आइकन का आकार निर्धारित करें। पता GUI ऐप की छवियों के बगल में शुरू होता है। आकार जानकारी में उत्पन्न होता है file. #APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) परिभाषित करें #APP_ICONS_SIZE 0x107c40 परिभाषित करें
- res_sh_mem नामक मेमोरी अनुभाग के निर्दिष्ट आकार को app_config.h में पुनः परिभाषित करके 0x200000 पर अपडेट करें: #define RES_SHMEM_TOTAL_SIZE 0x200000 और प्रोजेक्ट > गुण > C/C++ बिल्ड > MCU सेटिंग्स में संगत सेटिंग करें।
- मुख्य एप्लिकेशन में APP_LoadResource() फ़ंक्शन में फ़्लैश से SDRAM में लोड किए गए संसाधन के कुल आकार में आइकन का आकार जोड़ें. file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
सूचना: फेस रिकग्निशन फीचर को पूरा करने के लिए, LVGL GUI ऐप सपोर्ट की जरूरत है। आउटपुट UI HAL में UI कॉलबैक फ़ंक्शन को UI स्क्रीन से इवेंट को हैंडल करने के लिए LVGL GUI ऐप द्वारा कॉल किया जाता है। दूसरी ओर, आउटपुट UI HAL परिणाम और स्थिति दिखाने के लिए UI को अपडेट करने के लिए LVGL GUI ऐप से API को कॉल करता है। LVGL GUI ऐप का विकास अपेक्षाकृत स्वतंत्र है और इसे सेक्शन 4.3 में पेश किया गया है।
4.1.5 चेहरे की पहचान के लिए एचएएल उपकरण और प्रबंधक प्रारंभ करें
सक्षम विज़न एल्गो एचएएल और यूआई आउटपुट एचएएल और उनके प्रबंधक मुख्य रूप से शुरू किए गए हैं file
lvgl_gui_face_rec_cm7.cpp नीचे दिए गए ढांचे पर विकास के रूपांतरणों का अनुसरण कर रहा है:
- हेडर शामिल करें file कोड लाइन जोड़कर दो एचएएल प्रबंधकों से संबंधित:
- #शामिल करें ” fwk_output_manager.h “
- #fwk_vision_algo_manager.h शामिल करें
- एचएएल उपकरणों की घोषणा करें:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- एचएएल उपकरणों को पंजीकृत करें:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- प्रबंधकों को आरंभ करें:
- FWK_MANAGER_INIT(विज़नएल्गोमैनेजर, रिट);
- FWK_MANAGER_INIT(आउटपुट प्रबंधक, ret);
- प्रबंधकों को प्रारंभ करें:
- FWK_MANAGER_START(विज़नAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(आउटपुट प्रबंधक, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- प्रबंधक कार्यों की प्राथमिकता निर्धारित करें:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #आउटपुट_मैनेजर_टास्क_प्राथमिकता 1 निर्धारित करें
फ़्रेमवर्क पर फेस डेटाबेस समर्थन जोड़ें
पंजीकृत फेस फीचर डेटा को फ्लैश पर संग्रहीत फेस डेटाबेस में एक छोटे से माध्यम से एक्सेस किया जाता है file प्रणाली। फेस डेटाबेस समर्थन जोड़ने के चरण नीचे वर्णित हैं।
फ़्लैश स्टोरेज के लिए ड्राइवर जोड़ें
फ़्लैश इंटरफ़ेस FlexSPI ड्राइवर की प्रतिलिपि बनाएँ files fsl_flexspi.c और fsl_flexspi.h, और डेटा एन्क्रिप्शन ड्राइवर fileपथ SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ से fsl_caam.c और fsl_caam.h को ex के ड्राइवर फ़ोल्डर में ले जाएँampले दप.
बोर्ड-स्तरीय समर्थन जोड़ें
- बोर्ड पर फ्लैश डिवाइस के लिए प्रयुक्त FlexSPI की परिभाषाएँ board.h में जोड़ें:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- ऑपरेटर और कॉन्फ़िगरेशन कॉपी करें fileफ्लैश डिवाइस के s flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h पथ स्मार्ट HMI\coffee_machine\cm7\source\flash_config\ के अंतर्गत ex के फोल्डर बोर्ड परampले दप.
- C/C++ बिल्ड > सेटिंग्स में राइट क्लिक करने के बाद “बिल्ड से संसाधन को बाहर करें” को अनचेक करें fileका नाम खोलें और प्रोजेक्ट में उन्हें शामिल करने में सक्षम बनाने के लिए प्रॉपर्टी खोलें।
- सम्मिलित हेडर बदलें filesln_flash_config.c और flexspi_nor_flash_ops.h में नाम sln_flash_config.h से sln_flash_config_w25q256jvs.h रखें।
- FlexSPI1 क्लॉक स्रोत को सेट करें file क्लॉक_कॉन्फ़िग.c कॉफ़ी मशीन ऐप का संदर्भ दे रहा है।
एडाप्टर और मध्य स्तर का समर्थन जोड़ें
- कॉपी करें files sln_flash.c, sln_flash.h, sln_encrypt.c, और sln_encrypt.h के लिए एडाप्टर ड्राइवर के रूप में file सिस्टम और ऐप को स्मार्ट HMI\coffee_machine\cm7\source\ के पथ से ex के फ़ोल्डर स्रोत तकampले. नया अपडेट करें files:
- निर्माण के लिए उन पर “निर्माण से संसाधन बहिष्कृत करें” को अनचेक करें।
- सभी सम्मिलित हेडर बदलें file नाम sln_flash_config.h से sln_flash_config_w25q256jvs.h.
- फ़ोल्डर कॉपी करें fileछोटे के लिए एपीआई युक्त प्रणाली fileसिस्टम और एचएएल ड्राइवर स्मार्ट एचएमआई \coffee_machine\cm7\source\ से एक्स तकample SW. और नए फ़ोल्डर के लिए अद्यतन:
- निर्माण के लिए “निर्माण से संसाधन को बाहर करें” को अनचेक करें।
- प्रोजेक्ट सेटिंग में इसके लिए शामिल पथ जोड़ें: “${workspace_loc:/${ProjName}/fileप्रणाली}"
- सम्मिलित हेडर बदलें file नाम sln_flash_config.h को sln_flash_config_w25q256jvs.h और fica_definition.h को app_config.h में बदलें file sln_flash_littlefs.h.
- मिडिल वेयर वाले फ़ोल्डर littlefs को कॉपी करें – little fileपथ SDK_2_13_0_ MIMXRT1170-EVK\middleware\ से ex तक सिस्टमample SW. और नया फ़ोल्डर अपडेट करें:
- निर्माण के लिए “निर्माण से संसाधन को बाहर करें” को अनचेक करें।
- प्रोजेक्ट सेटिंग में इसके लिए शामिल पथ जोड़ें: “${workspace_loc:/${ProjName}/littlefs}”
HAL ड्राइवर जोड़ें
- एचएएल के दो उपकरण हैं - file सिस्टम और फेस डेटाबेस एचएएल डेटाबेस एक्सेस सुविधा के लिए समर्थित है और वे पहले से ही बिना किसी बदलाव के फ्रेमवर्क में लागू हैं। board_define.h में नीचे दी गई परिभाषाएँ जोड़कर उन्हें सक्षम करें:
- #define ENABLE_FLASH_DEV_Littlefs
- #डिफाइन ENABLE_FACEDB
और पूर्व के लिए फेस डेटाबेस नाम बदलेंampले: #OASIS_FACE_DB_DIR को परिभाषित करें "oasis_gui_face_rec"
ऐप-स्तरीय समर्थन जोड़ें
- मुख्य अपडेट करें file lvgl_gui_face_rec_cm7.cpp:
- हेडर शामिल करें file फ़्लैश से संबंधित file सिस्टम HAL प्रबंधक में कोड लाइन जोड़कर: #include “fwk_flash.h”
- घोषणा करें और पंजीकरण करें file सिस्टम एचएएल डिवाइस:
- HAL_FLASH_DEV_DECLARE(लिटिलफ्स);
- HAL_FLASH_DEV_REGISTER(लिटिलफ्स, ret);
टिप्पणी: द file सभी डिवाइस प्रबंधकों को APP_InitFramework() फ़ंक्शन में आरंभीकृत करने से पहले सिस्टम HAL डिवाइस को पंजीकृत किया जाना चाहिए।
- MPU को कॉन्फ़िगर करने के लिए APP_BoardInit() में BOARD_ConfigMPU() फ़ंक्शन को कॉल करें।
- सेट करें file फ्लैश में सिस्टम असाइनमेंट file app_config.h में प्रयुक्त मैक्रो परिभाषाओं को परिभाषित करके file sln_flash_littlefs.h:
- #FICA_IMG_ को परिभाषित करेंFILE_SYS_ADDR (फ़्लैश_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #FICA परिभाषित करें_FILE_SYS_आकार (0x280000)
विन्यास
कुछ फ्लैश-संबंधित कोड पर्याप्त प्रदर्शन के लिए SRAM ITC क्षेत्र में निष्पादित किए जाते हैं। पथ smart HMI\coffee_machine\cm7\ से लिंकर कॉन्फ़िगरेशन वाले फ़ोल्डर linkscripts को ex में कॉपी करेंampले दप.
LVGL GUI ऐप लागू करें
फ्रेमवर्क पर आधारित एलवीजीएल जीयूआई ऐप का विकास आउटपुट यूआई एचएएल से एपीआई को कॉल करता है और आउटपुट यूआई एचएएल को एपीआई प्रदान करता है (आउटपुट यूआई एचएएल के कार्यान्वयन के लिए धारा 4.1.3 देखें)।
हालाँकि, LVGL GUI ऐप का विस्तृत कार्यान्वयन एप्लिकेशन की आवश्यकताओं और डिज़ाइन पर निर्भर करता है। इस उदाहरण में GUI ऐपampले को अनुभाग 4 की शुरुआत में वर्णित अनुसार डिज़ाइन किया गया है।
कार्यान्वयन परिचय नीचे दिया गया है:
- अनुकूलित कोड GUI Guider द्वारा दिए गए custom.c और custom.h में कार्यान्वित किए जाते हैं, जो GUI Guider परियोजना और एम्बेडेड सिस्टम परियोजना के बीच इंटरफेस के रूप में होते हैं।
- नीचे दिए गए फ़ंक्शन को प्राप्त करने के लिए custom.c में gui_xxx() नामक नया फ़ंक्शन जोड़ें:
- आउटपुट UI HAL और GUI ऐप के लिए UI अपडेट करें।
- GUI ऐप के लिए आउटपुट UI HAL से UI कॉलबैक फ़ंक्शन को कॉल करके ईवेंट ट्रिगर करना।
उदाहरणार्थampले, नया फ़ंक्शन gui_event_face_rec_action(), संबंधित बटन पर क्लिक किए जाने पर GUI ऐप से ट्रिगर किए गए फेस रजिस्ट्रेशन, फेस रिकग्निशन और उपयोगकर्ता को हटाने की घटनाओं में से एक को संभालने के लिए UI कॉलबैक फ़ंक्शन को कॉल करता है।
नोट: प्री के लिए आउटपुट UI HAL में कॉल किया गया फ़ंक्शन gui_set_virtual_face()view मोड को custom.c में क्रियान्वित करने की आवश्यकता है:
- स्मार्ट HMI\coffee_machine\cm4\custom \custom.c से gui_set_virtual_face() फ़ंक्शन को क्लोन करें।
- विजेट का नाम बदलें home_img_cameraPreview screen_img_camera_pre परview समारोह में.
- GUI गाइडर प्रोजेक्ट के साथ संगत होने के लिए कस्टम.c में मैक्रो डेफ़िनेशन #ifndef RT_PLATFORM के नियंत्रण में आउटपुट UI HAL में सभी के लिए समान प्रोटोटाइप के साथ UI कॉलबैक फ़ंक्शन को लागू करें क्योंकि आउटपुट UI HAL में ये फ़ंक्शन एम्बेडेड प्लेटफ़ॉर्म पर निर्भर हैं। कस्टम.c में, वे GUI गाइडर पर सिम्युलेटर पर निर्भर हैं और एम्बेडेड प्लेटफ़ॉर्म से स्वतंत्र हैं। उदाहरण के लिएample, चेहरा पंजीकरण कॉलबैक GUI गाइडर सिम्युलेटर चलाने के लिए नीचे दिए अनुसार कार्यान्वित किया गया है: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; return; }
टिप्पणी: अनुभाग 6 के चरण 4.1.3 में प्रस्तुत फ़ंक्शन के उसी प्रोटोटाइप का संदर्भ लें
मैक्रो परिभाषा RT_PLATFORM MCUXpresso की प्रोजेक्ट सेटिंग्स पर सेट की गई है जैसा कि चित्र 7 में दिखाया गया है: - custom.h में UI_xxx_Callback() और gui_xxx() नामक सभी फ़ंक्शनों को घोषित करें और GUI API को UI आउटपुट HAL के साथ साझा करने के लिए smart_tlhmi_event_descriptor.h में शामिल custom.h को जोड़ें।
- नीचे दिए गए फ़ंक्शन को प्राप्त करने के लिए custom.c में gui_xxx() नामक नया फ़ंक्शन जोड़ें:
- GUI Guider पर GUI विकसित करें:
- फ़ोल्डर कैमरा प्री क्लोन करेंview बेस सॉफ़्टवेयर पैकेज lvgl_gui_camera_pre में फ़ोल्डर gui_guider में GUI गाइडर प्रोजेक्ट सॉफ़्टवेयर शामिल हैview_सेमी7. संबंधित नाम कैमरा_प्री बदलेंview नए पूर्व के लिए Face_rec पर जाएंampले.
- उपरोक्त अद्यतन किए गए custom.c और custom.h को नए GUI Guider प्रोजेक्ट सॉफ्टवेयर में कॉपी करें।
- GUI Guider पर नया face_rec प्रोजेक्ट खोलें। नीचे दिए अनुसार अपडेट करें:
- Delete User लेबल वाला नया बटन जोड़ें। इसमें Hidden फ्लैग जोड़ें ताकि GUI ऐप शुरू होने पर बटन छिपा रहे।
- फेस रजिस्ट्रेशन, फेस रिकग्निशन और डिलीट यूजर के इवेंट को ट्रिगर करने के लिए सभी बटन रजिस्ट्रेशन, रिकग्निशन और डिलीट यूजर के इवेंट सेटिंग में “रिलीज़” ट्रिगर पर अलग-अलग इवेंट आईडी पैरामीटर के साथ API gui_event_face_rec_action() को कॉल करने की कोड लाइन जोड़ें। चित्र 8 में बटन रजिस्ट्रेशन के इवेंट के लिए कोड दिखाया गया है:
- GUI Guider से उत्पन्न कोड को MCUXpresso प्रोजेक्ट में अद्यतन करें।
- MCUXpresso प्रोजेक्ट SW के उत्पन्न फ़ोल्डर में फ़ोल्डर छवियों को छोड़कर शेष सामग्री को GUI Guider प्रोजेक्ट SW के उत्पन्न फ़ोल्डर में संगत छवियों से प्रतिस्थापित करें।
टिप्पणी: ऊपर प्रस्तुत संशोधनों के बारे में अधिक जानकारी के लिए, पूर्व देखेंampले सॉफ्टवेयर पर https://mcuxpresso.nxp.com/appcodehub.
पूर्व के साथ सत्यापनampले प्रोजेक्ट
पूर्व पाने के लिएampइस एप्लिकेशन के लिए संसाधन और उपकरण युक्त सॉफ्टवेयर पैकेज के लिए, यहां जाएं: https://mcuxpresso.nxp.com/appcodehub.एक्स खोलेंampMCUXpresso IDE पर ले प्रोजेक्ट। .axf बनाएं और प्रोग्राम करें file पते 0x30000000 पर और संसाधन बिन को प्रोग्राम करें file कैमरा_पूर्वview_resource.bin पते 0x30800000 पर।
LVGL GUI चेहरा पहचान पूर्वampले नीचे सामान्य रूप से काम करता है:
- पूर्वview: पावर अप के साथ, कैमरे द्वारा कैप्चर की गई वीडियो स्ट्रीम कैमरे के पूर्व के विशिष्ट क्षेत्र पर दिखाई देती हैview जीयूआई स्क्रीन पर. स्थिति लेबल "पूर्व" प्रदर्शित करता हैview…” विवरण के लिए, चित्र 3 देखें। उपयोगकर्ता हटाएँ बटन छिपा हुआ है। बटनों और छवियों के बाहर के क्षेत्र पर क्लिक करने पर, यह पूर्व दिखाता हैview चेहरा पंजीकरण या पहचान कार्रवाई समाप्त होने के बाद उपरोक्त बताएं।
- पंजीकरण:
- टार्टअप: जब पंजीकरण बटन पर क्लिक किया जाता है, तो चेहरा पंजीकरण शुरू हो जाता है। स्टेटस लेबल बदलकर “पंजीकरण…” प्रदर्शित होता है, चेहरा गाइड आयत नीला दिखाई देता है, और प्रगति बार प्रगति दिखाना शुरू कर देता है। सुनिश्चित करें कि पंजीकरण के लिए उपयोगकर्ता का चेहरा नीले रंग के फेस गाइड आयत में दिखाई दे।
- सफलता: स्थिति लेबल "पंजीकरण...ठीक है" और पंजीकृत उपयोगकर्ता आईडी नंबर दिखाता है, यदि प्रगति बार पर पूर्ण दिखने से पहले चेहरा पंजीकरण सफल होता है तो चेहरा गाइड आयत लाल हो जाता है।
- विफलता -> समय समाप्त: यदि प्रगति बार पर पूर्ण दिखाई देने पर भी चेहरा पंजीकरण विफल रहता है, तो स्थिति लेबल "पंजीकरण...समय समाप्त" दिखाता है।
- विफलता -> दोहराव: स्थिति लेबल "पंजीकरण...विफल" दिखाता है, यदि पंजीकृत चेहरे को बार पर प्रगति पूर्ण दिखने से पहले पहचान लिया जाता है तो फेस गाइड आयत हरा हो जाता है।
- मान्यता:
- स्टार्टअप: जब पहचान बटन पर क्लिक किया जाता है, तो चेहरा पहचान शुरू हो जाती है। स्टेटस लेबल बदलकर “पहचान…” प्रदर्शित होता है, चेहरा गाइड आयत नीला दिखाई देता है, और प्रगति बार प्रगति दिखाना शुरू कर देता है। सुनिश्चित करें कि पंजीकरण के लिए उपयोगकर्ता का चेहरा नीले रंग के फेस गाइड आयत में दिखाया गया है।
- सफलता: स्थिति लेबल "पहचान...ठीक है" और पहचाने गए उपयोगकर्ता आईडी नंबर को दिखाता है, अगर चेहरा पहचान सफल होती है तो फेस गाइड आयत हरा हो जाता है, इससे पहले कि प्रगति बार पर पूरी दिखाई दे। बिंदु पर, उपयोगकर्ता को हटाएँ बटन दिखाई देता है। इसका मतलब है कि उपयोगकर्ता को केवल तभी हटाया जा सकता है जब उसे पहचाना जाता है।
- बीमारीयदि प्रगति बार पर पूर्ण दिखाई देने पर भी चेहरा पहचान अभी भी विफल है, तो स्थिति लेबल "पहचान...समय समाप्त" दिखाता है।
- उपयोगकर्ता हटाएँ: जब चेहरा पहचान सफल होने के बाद, “उपयोगकर्ता हटाएं” बटन पर क्लिक किया जाता है, तो स्थिति लेबल बदलकर “उपयोगकर्ता हटाएं…ठीक है” प्रदर्शित होता है, जिसमें चेहरा गाइड आयत नीला हो जाता है और प्रगति बार पर पूरी दिखाई देती है। उपयोगकर्ता हटाएं बटन फिर से छिपा हुआ है। पहचाना गया चेहरा/उपयोगकर्ता डेटाबेस से हटा दिया जाता है। इसका मतलब है कि इस चेहरे/उपयोगकर्ता को तब तक पहचाना नहीं जा सकता जब तक कि इसे फिर से पंजीकृत नहीं किया जाता।
दस्तावेज़ में स्रोत कोड के बारे में नोट करें
Exampइस दस्तावेज़ में दिखाए गए कोड में निम्नलिखित कॉपीराइट और BSD-3-क्लॉज लाइसेंस है:
कॉपीराइट 2024 एनएक्सपी पुनर्वितरण और स्रोत और बाइनरी रूपों में संशोधन के साथ या बिना संशोधन के उपयोग की अनुमति है, बशर्ते कि निम्नलिखित शर्तें पूरी हों:
- स्रोत कोड के पुनर्वितरण में उपरोक्त कॉपीराइट नोटिस, शर्तों की यह सूची और निम्नलिखित अस्वीकरण बरकरार रखना होगा।
- बाइनरी फॉर्म में पुनर्वितरण को उपरोक्त कॉपीराइट नोटिस, शर्तों की यह सूची और दस्तावेज़ीकरण और/या अन्य सामग्रियों में निम्नलिखित अस्वीकरण को वितरण के साथ प्रदान किया जाना चाहिए।
- कॉपीराइट धारक का नाम या इसके योगदानकर्ताओं के नाम का उपयोग विशिष्ट पूर्व लिखित अनुमति के बिना इस सॉफ़्टवेयर से प्राप्त उत्पादों का समर्थन या प्रचार करने के लिए नहीं किया जा सकता है।
यह सॉफ़्टवेयर कॉपीराइट धारकों और योगदानकर्ताओं द्वारा “जैसा है” प्रदान किया गया है और किसी भी स्पष्ट या निहित वारंटी, जिसमें शामिल है, लेकिन केवल इन्हीं तक सीमित नहीं है, किसी विशेष उद्देश्य के लिए व्यापारिकता और उपयुक्तता की निहित वारंटी को अस्वीकृत किया जाता है। किसी भी स्थिति में कॉपीराइट धारक या योगदानकर्ता किसी भी प्रत्यक्ष, अप्रत्यक्ष, आकस्मिक, विशेष, अनुकरणीय या परिणामी क्षति (जिसमें स्थानापन्न वस्तुओं या सेवाओं की खरीद, उपयोग, डेटा या लाभ की हानि, या व्यापार में रुकावट शामिल है, लेकिन इन्हीं तक सीमित नहीं है) के लिए उत्तरदायी नहीं होंगे, चाहे इसका कारण कोई भी हो और उत्तरदायित्व के किसी भी सिद्धांत पर, चाहे वह अनुबंध, सख्त उत्तरदायित्व, या अपकार (लापरवाही या अन्यथा सहित) में हो, जो इस सॉफ़्टवेयर के उपयोग से किसी भी तरह से उत्पन्न होता है, भले ही ऐसी क्षति की संभावना के बारे में सलाह दी गई हो।
संशोधन इतिहास
कानूनी जानकारी
परिभाषाएं
ड्राफ्ट - किसी दस्तावेज़ पर ड्राफ्ट स्थिति यह इंगित करती है कि सामग्री अभी भी आंतरिक नियंत्रण में हैview और औपचारिक स्वीकृति के अधीन, जिसके परिणामस्वरूप संशोधन या परिवर्धन हो सकते हैं। एनएक्सपी सेमीकंडक्टर्स किसी दस्तावेज़ के ड्राफ्ट संस्करण में शामिल जानकारी की सटीकता या पूर्णता के बारे में कोई प्रतिनिधित्व या वारंटी नहीं देता है और ऐसी जानकारी के उपयोग के परिणामों के लिए कोई दायित्व नहीं होगा।
अस्वीकरण
- सीमित वारंटी और दायित्व — इस दस्तावेज़ में दी गई जानकारी को सटीक और विश्वसनीय माना जाता है। हालांकि, एनएक्सपी सेमीकंडक्टर्स ऐसी जानकारी की सटीकता या पूर्णता के रूप में व्यक्त या निहित कोई प्रतिनिधित्व या वारंटी नहीं देते हैं और ऐसी जानकारी के उपयोग के परिणामों के लिए कोई दायित्व नहीं होगा। एनएक्सपी सेमीकंडक्टर्स के बाहर किसी सूचना स्रोत द्वारा प्रदान किए जाने पर एनएक्सपी सेमीकंडक्टर्स इस दस्तावेज़ में सामग्री के लिए कोई ज़िम्मेदारी नहीं लेते हैं।
किसी भी घटना में एनएक्सपी सेमीकंडक्टर्स किसी भी अप्रत्यक्ष, आकस्मिक, दंडात्मक, विशेष या परिणामी नुकसान के लिए उत्तरदायी नहीं होंगे (जिसमें - बिना सीमा के - खोए हुए लाभ, खोई हुई बचत, व्यापार में रुकावट, किसी भी उत्पाद को हटाने या बदलने से संबंधित लागत या फिर से काम करने का शुल्क शामिल है) चाहे या नहीं इस तरह के नुकसान यातना (लापरवाही सहित), वारंटी, अनुबंध के उल्लंघन या किसी अन्य कानूनी सिद्धांत पर आधारित हैं।
किसी भी कारण से ग्राहक को होने वाले किसी भी नुकसान के बावजूद, यहां वर्णित उत्पादों के लिए ग्राहक के प्रति एनएक्सपी सेमीकंडक्टर्स की कुल और संचयी देयता एनएक्सपी सेमीकंडक्टर्स की वाणिज्यिक बिक्री के नियमों और शर्तों के अनुसार सीमित होगी। - परिवर्तन करने का अधिकार - एनएक्सपी सेमीकंडक्टर्स इस दस्तावेज़ में प्रकाशित जानकारी में परिवर्तन करने का अधिकार सुरक्षित रखता है, जिसमें बिना किसी सीमा के विनिर्देशों और उत्पाद विवरण शामिल हैं, किसी भी समय और बिना किसी सूचना के। यह दस्तावेज़ इसके प्रकाशन से पहले प्रदान की गई सभी जानकारी को प्रतिस्थापित और प्रतिस्थापित करता है।
- उपयोग के लिए उपयुक्तता - NXP सेमीकंडक्टर्स उत्पादों को जीवन समर्थन, जीवन-महत्वपूर्ण या सुरक्षा-महत्वपूर्ण प्रणालियों या उपकरणों में उपयोग के लिए उपयुक्त होने के लिए डिज़ाइन, अधिकृत या वारंट नहीं किया गया है, न ही उन अनुप्रयोगों में जहां NXP सेमीकंडक्टर्स उत्पाद की विफलता या खराबी के परिणामस्वरूप उचित रूप से उम्मीद की जा सकती है व्यक्तिगत चोट, मृत्यु या गंभीर संपत्ति या पर्यावरणीय क्षति। एनएक्सपी सेमीकंडक्टर्स और इसके आपूर्तिकर्ता ऐसे उपकरणों या अनुप्रयोगों में एनएक्सपी सेमीकंडक्टर्स उत्पादों के समावेश और/या उपयोग के लिए कोई दायित्व स्वीकार नहीं करते हैं और इसलिए ऐसा समावेश और/या उपयोग ग्राहक के अपने जोखिम पर है।
- अनुप्रयोग — इनमें से किसी भी उत्पाद के लिए यहां वर्णित एप्लिकेशन केवल उदाहरण के लिए हैं। एनएक्सपी सेमीकंडक्टर्स कोई प्रतिनिधित्व या वारंटी नहीं देते हैं कि ऐसे अनुप्रयोग आगे के परीक्षण या संशोधन के बिना निर्दिष्ट उपयोग के लिए उपयुक्त होंगे।
ग्राहक एनएक्सपी सेमीकंडक्टर उत्पादों का उपयोग करके अपने अनुप्रयोगों और उत्पादों के डिजाइन और संचालन के लिए जिम्मेदार हैं, और एनएक्सपी सेमीकंडक्टर अनुप्रयोगों या ग्राहक उत्पाद डिजाइन के साथ किसी भी सहायता के लिए कोई दायित्व स्वीकार नहीं करता है। यह निर्धारित करना ग्राहक की एकमात्र जिम्मेदारी है कि एनएक्सपी सेमीकंडक्टर्स उत्पाद ग्राहक के अनुप्रयोगों और नियोजित उत्पादों के साथ-साथ ग्राहक के तीसरे पक्ष के ग्राहकों के नियोजित अनुप्रयोग और उपयोग के लिए उपयुक्त और उपयुक्त है या नहीं। ग्राहकों को अपने अनुप्रयोगों और उत्पादों से जुड़े जोखिमों को कम करने के लिए उचित डिजाइन और परिचालन सुरक्षा उपाय प्रदान करने चाहिए। एनएक्सपी सेमीकंडक्टर्स किसी भी डिफ़ॉल्ट, क्षति, लागत या समस्या से संबंधित किसी भी दायित्व को स्वीकार नहीं करता है जो ग्राहक के अनुप्रयोगों या उत्पादों में किसी कमजोरी या डिफ़ॉल्ट, या ग्राहक के तीसरे पक्ष के ग्राहकों द्वारा एप्लिकेशन या उपयोग पर आधारित है। ग्राहक एनएक्सपी सेमीकंडक्टर्स उत्पादों का उपयोग करके ग्राहक के अनुप्रयोगों और उत्पादों के लिए सभी आवश्यक परीक्षण करने के लिए जिम्मेदार है ताकि अनुप्रयोगों और उत्पादों या एप्लिकेशन या ग्राहक के तीसरे पक्ष के ग्राहकों द्वारा उपयोग में चूक से बचा जा सके। एनएक्सपी इस संबंध मे किसी देयता को स्वीकार नहीं करता है। - वाणिज्यिक बिक्री के नियम और शर्तें — एनएक्सपी सेमीकंडक्टर्स के उत्पाद वाणिज्यिक बिक्री के सामान्य नियमों और शर्तों के अधीन बेचे जाते हैं, जैसा कि https://www.nxp.com/pro पर प्रकाशित किया गया हैfile/शर्तें, जब तक अन्यथा एक वैध लिखित व्यक्तिगत समझौते में सहमति न हो। यदि एक व्यक्तिगत समझौता संपन्न होता है तो संबंधित समझौते के केवल नियम और शर्तें लागू होंगी। एनएक्सपी सेमीकंडक्टर्स एतद्द्वारा ग्राहक द्वारा एनएक्सपी सेमीकंडक्टर्स उत्पादों की खरीद के संबंध में ग्राहक के सामान्य नियमों और शर्तों को लागू करने पर स्पष्ट रूप से आपत्ति जताते हैं।
- निर्यात नियंत्रण - इस दस्तावेज़ के साथ-साथ यहां वर्णित आइटम निर्यात नियंत्रण विनियमों के अधीन हो सकते हैं। निर्यात के लिए सक्षम प्राधिकारियों से पूर्व प्राधिकरण की आवश्यकता हो सकती है।
- गैर-ऑटोमोटिव योग्य उत्पादों में उपयोग के लिए उपयुक्तता — जब तक यह दस्तावेज़ स्पष्ट रूप से यह नहीं बताता कि यह विशिष्ट NXP सेमीकंडक्टर्स उत्पाद ऑटोमोटिव योग्य है, तब तक यह उत्पाद ऑटोमोटिव उपयोग के लिए उपयुक्त नहीं है। यह ऑटोमोटिव परीक्षण या अनुप्रयोग आवश्यकताओं के अनुसार न तो योग्य है और न ही इसका परीक्षण किया गया है। NXP सेमीकंडक्टर्स ऑटोमोटिव उपकरण या अनुप्रयोगों में गैर-ऑटोमोटिव योग्य उत्पादों को शामिल करने और/या उपयोग करने के लिए कोई दायित्व स्वीकार नहीं करता है।
यदि ग्राहक ऑटोमोटिव विशिष्टताओं और मानकों के लिए ऑटोमोटिव अनुप्रयोगों में डिज़ाइन-इन और उपयोग के लिए उत्पाद का उपयोग करता है, तो ग्राहक (ए) ऐसे ऑटोमोटिव अनुप्रयोगों, उपयोग और विनिर्देशों के लिए उत्पाद की एनएक्सपी सेमीकंडक्टर्स की वारंटी के बिना उत्पाद का उपयोग करेगा, और ( बी) जब भी ग्राहक एनएक्सपी सेमीकंडक्टर्स के विनिर्देशों से परे ऑटोमोटिव अनुप्रयोगों के लिए उत्पाद का उपयोग करता है तो ऐसा उपयोग पूरी तरह से ग्राहक के अपने जोखिम पर होगा, और (सी) ग्राहक ग्राहक डिजाइन और उपयोग के परिणामस्वरूप किसी भी देयता, क्षति या असफल उत्पाद दावों के लिए एनएक्सपी सेमीकंडक्टर्स की पूरी तरह से क्षतिपूर्ति करता है। एनएक्सपी सेमीकंडक्टर्स की मानक वारंटी और एनएक्सपी सेमीकंडक्टर्स के उत्पाद विनिर्देशों से परे ऑटोमोटिव अनुप्रयोगों के लिए उत्पाद। - अनुवाद - दस्तावेज़ का एक गैर-अंग्रेज़ी (अनुवादित) संस्करण, उस दस्तावेज़ में कानूनी जानकारी सहित, केवल संदर्भ के लिए है। अंग्रेजी संस्करण अनुवादित और अंग्रेजी संस्करणों के बीच किसी भी विसंगति के मामले में मान्य होगा।
- सुरक्षा - ग्राहक समझता है कि सभी एनएक्सपी उत्पाद अज्ञात कमजोरियों के अधीन हो सकते हैं या ज्ञात सीमाओं के साथ स्थापित सुरक्षा मानकों या विशिष्टताओं का समर्थन कर सकते हैं। ग्राहक के अनुप्रयोगों और उत्पादों पर इन कमजोरियों के प्रभाव को कम करने के लिए ग्राहक अपने जीवनचक्र में अपने अनुप्रयोगों और उत्पादों के डिजाइन और संचालन के लिए जिम्मेदार है। ग्राहक के अनुप्रयोगों में उपयोग के लिए एनएक्सपी उत्पादों द्वारा समर्थित अन्य खुली और/या मालिकाना प्रौद्योगिकियों तक ग्राहक की जिम्मेदारी भी फैली हुई है। एनएक्सपी किसी भी भेद्यता के लिए कोई दायित्व स्वीकार नहीं करता है। ग्राहक को नियमित रूप से एनएक्सपी से सुरक्षा अद्यतनों की जांच करनी चाहिए और उचित रूप से अनुवर्ती कार्रवाई करनी चाहिए। ग्राहक उन सुरक्षा विशेषताओं वाले उत्पादों का चयन करेगा जो इच्छित एप्लिकेशन के नियमों, विनियमों और मानकों को सर्वोत्तम रूप से पूरा करते हैं और अपने उत्पादों के संबंध में अंतिम डिजाइन निर्णय लेते हैं और अपने उत्पादों से संबंधित सभी कानूनी, विनियामक और सुरक्षा संबंधी आवश्यकताओं के अनुपालन के लिए पूरी तरह से जिम्मेदार हैं, भले ही एनएक्सपी द्वारा प्रदान की जा सकने वाली किसी भी जानकारी या समर्थन के लिए।
NXP के पास एक उत्पाद सुरक्षा घटना प्रतिक्रिया टीम (PSIRT) (PSIRT@nxp.com पर उपलब्ध) है जो NXP उत्पादों की सुरक्षा कमजोरियों की जांच, रिपोर्टिंग और समाधान जारी करने का प्रबंधन करती है।
एनएक्सपी बीवी - एनएक्सपी बीवी एक ऑपरेटिंग कंपनी नहीं है और यह उत्पादों का वितरण या बिक्री नहीं करती है।
ट्रेडमार्क
सूचनासभी संदर्भित ब्रांड, उत्पाद नाम, सेवा नाम और ट्रेडमार्क उनके संबंधित स्वामियों की संपत्ति हैं।
NXP — वर्डमार्क और लोगो NXP BV के ट्रेडमार्क हैं
AMBA, आर्म, आर्म7, आर्म7TDMI, आर्म9, आर्म11, आर्टिसन, बिग.लिटल, कॉर्डियो, कोरलिंक, कोरसाइट, कोर्टेक्स, डिजाइनस्टार्ट, डायनेमिक, जैजेल, कील, माली, एमबेड, एमबीड इनेबल्ड, नियॉन, पीओपी, रियलView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — अमेरिका और/या में Arm Limited (या इसकी सहायक या सहयोगी कंपनियों) के ट्रेडमार्क और/या पंजीकृत ट्रेडमार्क हैं कहीं और। संबंधित तकनीक को किसी या सभी पेटेंट, कॉपीराइट, डिजाइन और व्यापार रहस्य द्वारा संरक्षित किया जा सकता है। सर्वाधिकार सुरक्षित।
- i.MX - एनएक्सपी बीवी का ट्रेडमार्क है
- जम्मू-लिंक — SEGGER माइक्रोकंट्रोलर GmbH का ट्रेडमार्क है।
Microsoft, Azure और ThreadX - Microsoft समूह की कंपनियों के ट्रेडमार्क हैं।
कृपया ध्यान रखें कि इस दस्तावेज़ और इसमें वर्णित उत्पाद(ओं) से संबंधित महत्वपूर्ण सूचनाएं 'कानूनी जानकारी' अनुभाग में शामिल की गई हैं।
© 2024 एनएक्सपी बीवी
और अधिक जानकारी के लिए कृपया विजिट करें: https://www.nxp.com
- रिलीज की तारीख: 19 अप्रैल 2024
- दस्तावेज़ पहचानकर्ता: एएन14263
सामान्य प्रश्न
प्रश्न: इस उत्पाद का मुख्य उद्देश्य क्या है?
उत्तर: इसका मुख्य उद्देश्य एक सरल LVGL GUI उदाहरण के साथ AI&ML विज़न एल्गोरिदम मॉडल का उपयोग करके चेहरा पहचान फ़ंक्शन को सक्षम करना है।ampSLN-TLHMI-IOT बोर्ड पर ले।
प्रश्न: डेवलपर्स इस एप्लिकेशन नोट से कैसे लाभान्वित हो सकते हैं?
उत्तर: डेवलपर्स सीख सकते हैं कि दिए गए उदाहरण का उपयोग करके चरण दर चरण फ्रेमवर्क पर फेस रिकग्निशन को कैसे लागू किया जाए।ampडिवाइस प्रबंधकों, एचएएल डिवाइसों और शामिल इवेंट तंत्रों को समझें और समझें।
दस्तावेज़ / संसाधन
![]() |
एनएक्सपी एएन14263 फ्रेमवर्क पर एलवीजीएल जीयूआई फेस रिकग्निशन लागू करें [पीडीएफ] उपयोगकर्ता गाइड एएन14263 फ्रेमवॉर पर एलवीजीएल जीयूआई फेस रिकॉग्निशन लागू करें, एएन14263, फ्रेमवॉर पर एलवीजीएल जीयूआई फेस रिकॉग्निशन लागू करें, फ्रेमवॉर पर एलवीजीएल जीयूआई फेस रिकॉग्निशन लागू करें, फ्रेमवॉर पर फेस रिकग्निशन लागू करें, फ्रेमवॉर पर फेस रिकॉग्निशन लागू करें, फ्रेमवॉर पर एएनXNUMX, फ्रेमवॉर पर एलवीजीएल जीयूआई फेस रिकॉग्निशन लागू करें। |