nxp-logo

NXP AN14263 تشخیص چهره LVGL GUI را در Framewor پیاده سازی می کند

محصول NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor

اطلاعات محصول

مشخصات

  • نام محصول: LVGL GUI Face Recognition on Framework
  • ویرایش سند: 1 تا 19 آوریل 2024
  • کلمات کلیدی: تشخیص چهره، LVGL GUI، چارچوب

دستورالعمل استفاده از محصول

  1. تمام شدview
    این محصول مدل الگوریتم بینایی AI&ML را برای تشخیص چهره بر روی یک چارچوب برای پیاده سازی عملکرد تشخیص چهره با یک رابط کاربری گرافیکی ساده LVGL فعال می کند.ampروی برد SLN-TLHMI-IOT.
  2. چارچوب به پایان رسیدview
    نرم افزار راه حل حول معماری چارچوب طراحی شده است که شامل مدیران دستگاه مسئول مدیریت دستگاه ها، دستگاه های HAL برای جزئیات انتزاعی اساسی و رویدادهایی برای ارتباط بین دستگاه های مختلف است.
  3. ویژگی ها
    این محصول امکان اجرای عملکرد تشخیص چهره از طریق دوربین را فراهم می کندview روی صفحه رابط کاربری گرافیکی با دکمه هایی برای فعال کردن ثبت، تشخیص و حذف چهره. داده های چهره ثبت شده از طریق a در Flash ذخیره می شود file سیستم
  4. محتوای یادداشت برنامه
    یادداشت برنامه یک صفحه رابط کاربری گرافیکی LVGL با دوربین قبل ارائه می دهدview و دکمه هایی برای اقدامات مربوط به چهره. این به توسعه‌دهندگان کمک می‌کند تا چارچوب و نحوه پیاده‌سازی تشخیص چهره را با استفاده از نسخه قبلی ارائه کنندampله

تمام شدview

NXP یک کیت توسعه راه حل به نام SLN-TLHMI-IOT راه اندازی کرده است که بر برنامه های کاربردی هوشمند HMI تمرکز دارد. این HMI هوشمند را با بینایی ML، صدا و رابط گرافیکی اجرا شده بر روی یک MCU NXP i.MX RT117H فعال می کند. بر اساس SDK، نرم افزار راه حل بر روی طرحی به نام چارچوب ساخته شده است که از طرح های انعطاف پذیر و سفارشی سازی عملکردهای بینایی و صدا پشتیبانی می کند. برای کمک به کاربران برای استفاده بهتر از پلتفرم نرم افزار، برخی از اسناد اولیه ارائه شده است، به عنوان مثالample، راهنمای کاربر توسعه نرم افزار. این راهنما طراحی و معماری نرم‌افزار پایه برنامه‌ها را معرفی می‌کند که تمام اجزای راه‌حل از جمله چارچوب را پوشش می‌دهد تا به توسعه‌دهندگان کمک کند تا برنامه‌های خود را با استفاده از SLN-TLHMI-IOT آسان‌تر و کارآمدتر پیاده‌سازی کنند.
برای جزئیات بیشتر در مورد راه حل و اسناد مربوطه، به سایت مراجعه کنید web صفحه راه حل HMI هوشمند NXP EdgeReady بر اساس i.MX RT117H با ML Vision، Voice و UI گرافیکی. با این حال، هنوز هم برای توسعه دهندگان اجرای برنامه های کاربردی HMI هوشمند با مراجعه به این راهنماهای اساسی چندان آسان نیست. مجموعه‌ای از یادداشت‌های کاربردی برای کمک به مطالعه مرحله به مرحله توسعه در چارچوب برنامه‌ریزی شده است. این یادداشت برنامه مبتنی بر Implement LVGL GUI Camera Pre استview در چارچوب (سند AN14147). این یادداشت کاربردی نحوه فعال کردن مدل الگوریتم بینایی AI&ML را برای تشخیص چهره در چارچوب برای پیاده سازی عملکرد تشخیص چهره از طریق دوربین قبل توضیح می دهد.view روی صفحه رابط کاربری گرافیکی با یک رابط کاربری گرافیکی ساده LVGL exampروی برد SLN-TLHMI-IOT. در یادداشت درخواست، سابقample یک صفحه نمایش رابط کاربری گرافیکی LVGL با یک دوربین قبل ارائه می دهدview و چند دکمه برای فعال کردن ثبت، تشخیص و حذف چهره. داده های چهره ثبت شده از طریق کمی در فلش ذخیره می شود file سیستم

در سطح بالایی، یادداشت برنامه حاوی مطالب زیر است:

  • ویژگی تشخیص چهره را در چارچوب فعال کنید.
  • اضافه کردن پشتیبانی از پایگاه داده چهره در چارچوب از طریق file سیستم روی فلش
  • اپلیکیشن LVGL GUI را پیاده سازی کنید. از طریق مقدمه های فوق، این سند به توسعه دهندگان کمک می کند تا:
  • چارچوب و نرم افزار راه حل هوشمند HMI را عمیق تر درک کنید.
  • با برنامه LVGL GUI، تشخیص چهره AI&ML خود را در چارچوب ایجاد کنید.

چارچوب به پایان رسیدview
نرم‌افزار راه‌حل اساساً با استفاده از معماری چارچوب طراحی شده است که از چندین بخش مختلف تشکیل شده است:

  • مدیران دستگاه - بخش اصلی
  • دستگاه های لایه انتزاعی سخت افزاری (HAL).
  • پیام ها/رویدادها

همانطور که در شکل 1 نشان داده شده استview مکانیسم چارچوب عبارت است از:

مدیران دستگاه مسئول مدیریت دستگاه های مورد استفاده سیستم هستند. هر نوع دستگاه (ورودی، خروجی و غیره) مدیر دستگاه مخصوص به خود را دارد. هنگامی که مدیر دستگاه پس از ثبت دستگاه ها در آن شروع به کار می کند، منتظر می ماند و پیامی را برای انتقال داده ها به دستگاه ها و سایر مدیران پس از راه اندازی اولیه و راه اندازی دستگاه های ثبت شده بررسی می کند. دستگاه‌های HAL در بالای کد درایور سطح پایین نوشته شده‌اند و با انتزاع کردن بسیاری از جزئیات زیربنایی به افزایش درک کد کمک می‌کنند.

رویدادها وسیله ای هستند که از طریق آن اطلاعات بین دستگاه های مختلف از طریق مدیران آنها ارتباط برقرار می شود. هنگامی که یک رویداد راه اندازی می شود، دستگاهی که برای اولین بار رویداد را دریافت کرده است، آن رویداد را به مدیر خود اطلاع می دهد، سپس به نوبه خود سایر مدیران تعیین شده برای دریافت رویداد را مطلع می کند.

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

طراحی معماری چارچوب بر سه هدف اصلی متمرکز بود:

  1. سهولت استفاده
  2. انعطاف پذیری/قابل حمل
  3. عملکرد

این چارچوب با هدف سرعت بخشیدن به زمان عرضه به بازار بینایی و سایر کاربردهای یادگیری ماشینی طراحی شده است. برای اطمینان از زمان سریع برای بازاریابی، بسیار مهم است که خود نرم افزار به راحتی قابل درک و اصلاح باشد. با در نظر گرفتن این هدف، معماری چارچوب به راحتی قابل تغییر است، بدون اینکه محدود کننده باشد، و بدون اینکه به قیمت کارایی تمام شود.
برای جزئیات بیشتر در مورد چارچوب، به راهنمای کاربر توسعه نرم افزار Smart HMI (مستند MCU-SMHMI-SDUG) مراجعه کنید.

کتابخانه گرافیکی سبک و همه کاره (LVGL)
LVGL (کتابخانه گرافیکی نور و همه کاره) یک کتابخانه گرافیکی رایگان و منبع باز است که هر آنچه را که برای ایجاد یک رابط کاربری گرافیکی تعبیه شده با عناصر گرافیکی با کاربری آسان، جلوه های بصری زیبا و حافظه کم نیاز دارید، ارائه می دهد.

راهنمای رابط کاربری گرافیکی
GUI Guider یک ابزار توسعه رابط کاربری گرافیکی کاربرپسند از NXP است که امکان توسعه سریع نمایشگرهای با کیفیت بالا را با کتابخانه گرافیکی منبع باز LVGL فراهم می کند. ویرایشگر کشیدن و رها کردن GUI Guider استفاده از بسیاری از ویژگی‌های LVGL مانند ویجت‌ها، انیمیشن‌ها و سبک‌ها را برای ایجاد یک رابط کاربری گرافیکی با حداقل یا بدون کدنویسی آسان می‌کند.

با کلیک یک دکمه می توانید برنامه خود را در یک محیط شبیه سازی شده اجرا کنید یا آن را به یک پروژه هدف صادر کنید. کد تولید شده از GUI Guider را می توان به راحتی به پروژه شما اضافه کرد، روند توسعه را تسریع کرده و به شما این امکان را می دهد که یک رابط کاربری تعبیه شده را به برنامه خود اضافه کنید. GUI Guider برای استفاده با اهداف عمومی NXP و MCU های متقاطع رایگان است و شامل قالب های پروژه داخلی برای چندین پلتفرم پشتیبانی می شود. برای کسب اطلاعات بیشتر در مورد توسعه LVGL و GUI در GUI Guider، کتابخانه Light and Varsatile Graphics and GUI Guider را بررسی کنید.

محیط توسعه

ابتدا محیط سخت افزاری و نرم افزاری را برای پیاده سازی ex آماده و راه اندازی کنیدampدر چارچوب.

محیط سخت افزاری
محیط سخت افزاری برای تأیید شرایط قبلی تنظیم شده استampدر:

  • کیت توسعه هوشمند HMI مبتنی بر NXP i.MX RT117H (کیت SLN_TLHMI_IOT)
  • SEGGER J-Link با آداپتور 9 پین Cortex-M و V7.84a یا نسخه جدیدتر درایور

محیط نرم افزار
محیط نرم افزار برای توسعه پیشین تنظیم شده استampدر:

  • MCUXpresso IDE V11.7.0
  • GUI Guider V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – سابقampکد le از یادداشت برنامه دوم به عنوان نرم افزار پایه توسعه. برای جزئیات، نگاه کنید https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 – به عنوان منبع کد برای توسعه.
  • نرم افزار SLN-TLHMI-IOT V1.1.2 – کد منبع هوشمند HMI که در مخزن NXP GitHub به عنوان منبع کد برای توسعه منتشر شده است. برای جزئیات، نگاه کنید به: GitHub – NXP/mcu-smhmi در نسخه 1.1.2

برای جزئیات در مورد دریافت و راه اندازی محیط نرم افزار، نگاه کنید به: شروع به کار با SLN-TLHMI-IOT.

معماری چشم انداز در چارچوب

معماری دید در چارچوب در شکل 2 نشان داده شده است. الگوی دید HAL (OASIS_HAL) دارای فرآیندهای زیر است:

  • پس از دریافت رویدادهای مرتبط از خروجی UI HAL، ثبت و تشخیص چهره را از طریق مدل الگوریتم بینایی AI&ML انجام دهید. نتایج استنتاج از مدل الگوریتم را به UI خروجی HAL اطلاع دهید.
  • دسترسی (افزودن، حذف ...) به پایگاه داده ویژگی های چهره بر اساس کمی است file سیستم را با فراخوانی API های FaceDB HAL پس از دریافت رویدادهای مرتبط از خروجی UI HAL.
  • هنگام ثبت و تشخیص چهره، فریم فیلم دوربین را از HAL دوربین درخواست کنید.

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

تشخیص چهره را روی فریم ورک پیاده سازی کنید

تشخیص چهره LVGL GUI سابقample (سابقample بعداً ارائه می شود) بر روی چارچوب بر اساس سابق پیاده سازی شده استampکدهای پیاده سازی LVGL GUI Camera Preview در چارچوب (سند AN14147).

برای نشان دادن تشخیص چهره در سابقample، عملکرد اصلی برنامه رابط کاربری گرافیکی (به صفحه اصلی در شکل 3 مراجعه کنید) به شرح زیر طراحی شده است:

  • برنامه رابط کاربری گرافیکی هنگام کلیک کردن روی دکمه ثبت یا شناسایی، رویداد ثبت یا تشخیص چهره را در خروجی UI HAL فعال می‌کند. و خروجی UI HAL رویداد افزودن کاربر به الگوی ویژن HAL را پس از موفقیت آمیز شدن ثبت چهره اطلاع می دهد.
  • برنامه رابط کاربری گرافیکی با کلیک بر روی دکمه Delete User پس از شناسایی چهره کاربر، رویداد حذف کاربر را در UI خروجی HAL فعال می کند.
  • برنامه رابط کاربری گرافیکی هنگام کلیک کردن روی صفحه در خارج از دکمه‌ها و تصاویر، رویداد توقف اجرای الگوی Oasis به UI خروجی HAL را فعال می‌کند.

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

بسته نرم افزاری را برای اجرای پیشین آماده کنیدampله

  • نرم افزار پایه lvgl_gui_camera_pre را کلون کنیدview_cm7. نام پروژه و اصلی را تغییر دهید fileنام lvgl_gui_face_rec_cm7.
  • چارچوب برای به‌روزرسانی در نرم‌افزار لازم است زیرا کدهای منبع هسته فریمورک از نسخه 1.1.2 در GitHub عمومی شده است.
  • پوشه فریمورک را با کپی V1.1.2 از GitHub جایگزین کنید، به جز پوشه filefwk_log.h و fwk_common.h تحت inc\ همانطور که برای سری برنامه های یادداشت اصلاح شده اند. عملیات در شکل 4 نشان داده شده است:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (11)
  • پوشه Framework_cm7 را در زیر گروه libs حذف کنید و کتابخانه framework_cm7 و مسیر جستجوی آن را که در Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries پیکربندی شده است، حذف کنید زیرا کد منبع هسته ارائه شده است.

فعال کردن ویژگی تشخیص چهره در چارچوب
ویژگی تشخیص چهره بر اساس مدل الگوریتم بینایی ML ساخته شده است که به عنوان یک کتابخانه ثابت ارائه شده است - یک کتابخانه Oasis Lite زمان اجرا توسط NXP. این کتابخانه یک کتابخانه هوش مصنوعی کوچک، بسیار کارآمد، سفارشی شده و بهینه شده است. این مدل شامل تشخیص چهره، تشخیص چهره، تشخیص شیشه و تشخیص زنده بودن است. عمدتاً API OASISLT_run_extended() را برای اجرای خط لوله تشخیص چهره در حین به‌روزرسانی نتایج برای تماس‌گیرنده از طریق تماس‌های رویداد، و افزودن/به‌روزرسانی/حذف چهره‌ها در پایگاه داده از طریق تماس‌های پایگاه داده چهره پس از مشخص کردن اطلاعات قاب منبع، تماس‌ها و حافظه ارائه می‌کند. مخزن استفاده شده توسط کتابخانه با فراخوانی API دیگری OASISLT_init() در مقداردهی اولیه. فراخوانی APIها و توابع پاسخ به تماس در الگوی ویژن HAL چارچوب پیاده سازی شده است.

کتابخانه مدل vision algo را اضافه کنید

  1. پوشه واحه حاوی کتابخانه و هدر مربوطه را کپی کنید file از HMI\coffee_machine\cm7\libs\ هوشمند به پوشه‌های پوشه قبلیample SW.
  2. مسیر جستجوی هدر را اضافه کنید file در Project > Properties > C/C++ Build > settings > Tool Settings > MCU C compiler > Includes and MCU C++ compiler > Includes: "${workspace_loc:/${ProjName}/libs/oasis/include}"
  3. lib و مسیر جستجوی آن را در Project > Properties > C/C++ Build > settings > MCU C+ + Linker > Libraries: liboasis_lite2D_DEFAULT_117f_ae.a "${workspace_loc:/${ProjName}/libs/oasis}" و تعریف کلان را اضافه کنید این ویژگی را در Project > Properties > C/C++ Build > settings > Tool Settings > MCU C compiler > Preprocessor and MCU C++ compiler > Preprocessor: SMART_TLHMI_2D فعال کنید

فعال کردن vision algo HAL
vision algo HAL مدل vision algo را به کار می اندازد و نتایج را پس از دریافت رویدادها از آن به خروجی UI HAL پاسخ می دهد.

برای فعال کردن آن، درایور HAL مشابه موجود را کلون کنید file که در آن توابع زیر پیاده سازی می شوند:

  • فراخوانی عملیات پایگاه داده چهره و مدیریت رویدادها را پیاده سازی کنید.
  • با فراخوانی APIهای کتابخانه واحه، الگوی چشم انداز را به سمت کار هدایت کنید.
  • به پایگاه داده چهره کاربر و پایگاه داده برنامه دسترسی داشته باشید (در حالت قبلی مورد نیاز نیستample)
  • دریافت رویدادها و ارسال نتایج به خروجی UI HAL.

کار اصلی برای اجرای HAL برای سابق استampهستند:

  • درایور HAL مشابه موجود را شبیه سازی کنید file و نام های مرتبط را تغییر دهید.
  • کدهای مربوط به عملیات داده برنامه را حذف کنید.
  • تعاریف و توابع را برای مدیریت رویدادها از UI خروجی HAL بر اساس حالت قبلی به روز کنیدampطراحی
  • تنظیمات مورد نیاز در مقداردهی اولیه واحه را اضافه کنید.

مراحل دقیق به شرح زیر است:

  1. کلون hal_vision_algo_oasis_coffeemachine.c. را تغییر دهید fileنام به hal_vision_algo_oasis_guifacerec.c. و تمام رشته های CoffeeMachine را با GUIFaceRec در قسمت جایگزین کنید file.
  2. برای مثال، کدهای حاوی رشته coffeedb (به حروف بزرگ و کوچک) مربوط به پایگاه داده برنامه را حذف کنید.ample، #شامل hal_sln_coffeedb.h.
  3. تابع HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() را برای مدیریت رویدادها از HAL UI خروجی تغییر دهید.
    • تعریف رویداد kEventFaceRecId_RegisterCoffeeSelection را به kEventFaceRecId_RegisterUserFace و رشته ساختار regCoffeeSelection را به regGUIFaceRec برای مدیریت رویداد تغییر دهید تا داده های ویژگی چهره جدید را به پایگاه داده اضافه کنید.
    • برای نشان دادن فرآیند استاندارد اقدامات تشخیص چهره در حالت قبلیample، مدیریت را در مورد kEventFaceRecID_OasisSetState با تعاریف حالت‌ها تغییر دهید:
      • kOASISLiteState
      • ثبت نام kOASISLiteState
      • شناسایی kOASISLiteState
      • متوقف شد
  4. تعاریف رویدادهای ذکر شده در مرحله بالا را اضافه و اصلاح کنید.
    • هدر را کپی کنید file smart_tlhmi_event_descriptor.h از smart HMI\coffee_machine \cm7\source\event_handlers\ به منبع پوشه سابقample SW. را به روز کنید file به صورت زیر:
    • تعریف رویداد kEventFaceRecId_RegisterCoffeeSelection را به kEventFaceRecId_RegisterUserFace در enum نوع _event_smart_tlhmi_id و رشته ساختار regCoffeeSelection را به regGUIFaceRec در ساختار _eventh.mi_t تغییر دهید. بنابراین، ساختار register_coffee_selection_event_t را برای regCoffeeSelection به register_gui_facerec_event_t تغییر دهید.
    • محتویات دیگری را که برای برنامه قهوه ساز استفاده می شود، حذف کنیدample، خط کد مربوط به صدا: #include "hal_event_descriptor_voice.h".
    • انواع kOASISLiteState_Stopped و kOASISLiteState_Running را به نوع enum oasis_lite_state_t در hal_vision_algo.h در چارچوب>hal>vision در پروژه به شرح زیر اضافه کنید:
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • در حال اجرا، kOASISLiteState
      • متوقف شد، kOASISLiteState
      • شناخت،
      • kOASISLiteState
      • ثبت نام، kOASISLiteState
      • لغو ثبت نام، kOASISLiteState
      • ثبت از راه دور، kOASISLiteState
      • بشمار
    • از ساختار به روز شده بالا oasis_lite_state_t برای اصلاح ساختار oasis_state_event_t در hal_event_descriptor_face_rec.h در چارچوب>hal>vision در پروژه به شرح زیر استفاده کنید: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
  5. تغییر همه kEventInfo_Remote به kEventInfo_Local برای ارسال رویدادها از الگوی ویژن HAL به HAL های دیگر در حال اجرا بر روی همان هسته تک هسته ای به جای استفاده از دو هسته ای در سابقampله
  6. تنظیمات زیر را برای مقداردهی اولیه oasis در OASISLT_init():
    • تعاریف ماکرو و بخش‌های حافظه را برای فریم ویدیو در board_define.h اضافه کنید: #define OASIS_RGB_FRAME_WIDTH 800
      • #define OASIS_RGB_FRAME_HEIGHT 600
      • #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
      • #define OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
      • #define AT_FB_SHMEM_SECTION_ALIGN(var، alignbytes) \
      • __ویژگی__((بخش (".bss.$fb_sh_mem،\"aw\",%nobits @"))) var
      • __ویژگی__((تراز (تراز بایت)))
    • تخصیص حافظه را به بخش حافظه بالا fb_sh_mem در Project > Properties > C/C++ Build > MCU Settings نشان داده شده در شکل 5 پیکربندی کنید:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (12)
    • متغیر جهانی g_DTCOPBuf را در lvgl_gui_face_rec_cm7.cpp اعلان کنید: 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
      • ویژگی__((تراز (تراز بایت)))
    • هدر را درج کنید file hal_vision_algo.h حاوی تعریف کلان DTC_OPTIMIZE_BUFFER_SIZE در app_config.h موجود در lvgl_gui_face_rec_cm7.cpp.
  7. برای نمایش وضعیت پیشرفت در تشخیص چهره، متغیر s_debugOption را روی true تنظیم کنید.
  8. مسیر جستجوی هدر را اضافه کنید files of vision HAL در Project > Properties >C/C++ Build > settings > Tool Settings > MCU C compiler > Includes and MCU C++ compiler > Includes: "${workspace_loc:/${ProjName}/framework/hal/vision}"
  9. برای فعال کردن vision algo HAL در board_define.h تعریف زیر را اضافه کنید: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

UI خروجی HAL را فعال کنید
UI خروجی HAL رویدادها را به vision algo HAL اطلاع می دهد و به نتایج استنتاج از vision algo HAL پاسخ می دهد. با برنامه رابط کاربری گرافیکی، رویدادها به طور کلی توسط برنامه فعال می شوند و نتایج در برنامه نشان داده می شوند.

برای فعال کردن آن، درایور HAL مشابه موجود را کلون کنید file که در آن به طور کلی توابع زیر پیاده سازی می شوند:

  • رویدادها را برای تشخیص چهره و دسترسی به پایگاه داده مطلع کنید.
  • برای راه‌اندازی رویدادها، تماس‌های برگشتی را برای برنامه رابط کاربری گرافیکی اجرا کنید.
  • نتایج استنتاج از ماژول الگوی چشم انداز را مدیریت کنید.
  • فرآیند و نتایج مدیریت رویدادها در رابط کاربری را توسط نوار پیشرفت کنترل شده با تایمرها و مستطیل راهنمای چهره نمایش دهید.

کار اصلی برای اجرای HAL برای سابق استampموارد استفاده شده در این سند عبارتند از:

  • درایور HAL مشابه موجود را شبیه سازی کنید file و نام های مرتبط را تغییر دهید.
  • کدهای مربوط به برنامه را حذف کنید.
  • به روز رسانی توابع برای اطلاع رسانی رویدادها و پاسخ نتایج بر اساس سابقampطراحی
  • برای راه‌اندازی رویدادها، تماس‌های برگشتی را برای برنامه رابط کاربری گرافیکی اضافه کنید.

مراحل دقیق به شرح زیر است:

  1. کلون hal_output_ui_coffee_machine.c. را تغییر دهید fileنام hal_ output_ui_guifacerec.c.
  2. همه رشته‌های CoffeeMachine را با GUIFaceRec در قسمت جایگزین کنید file.
  3. کدهای مربوط به برنامه - دستگاه قهوه ساز را حذف کنید.
    • توابع WakeUp() و _StandBy() و کدهای مربوطه را حذف کنید (ممکن است رشته wake_up و standby برای آنها جستجو شود).
    • حذف preview رویدادهای حالت مدیریت کدهای مرتبط در HAL_OutputDev_UiGUIFaceRec_Input Notify().
    • توابع UI_xxx_Callback() و کدهای حاوی رشته gui_ و صفحه مربوط به رابط کاربری گرافیکی دستگاه قهوه ساز را به جز gui_set_virtual_face() برای قبل حذف کنید.view ویژگی حالت
    • همه کدهای مرتبط با متغیرهای s_IsWaitingAnotherSelection و s_IsWaitingRegisterSelection مربوط به برنامه دستگاه قهوه ساز را حذف کنید.
    • کدهای مربوط به صدا، صدا و زبان را حذف کنید. برای مثالampدر:
      • #شامل "حال_صدای_الگو_عصر_local.h"،
      • #include "hal_event_descriptor_voice.h"
  4. برای اعلان رویدادهای مختلف، توابع جدید _OutputManagerNotify()، _SetFaceRec()، _RegisterGUIFaceRec() و DeregisterGUIFaceRec() را با اشاره به توابع _StopFaceRec()، _RegisterCoffeeSelection() و DeregisterCoffee() قبل از حذف آنها اجرا کنید.
    • _OutputManagerNotify () تابع خروجی رویداد اصلی را برای ارسال یک رویداد به الگوی ویژن HAL پیاده سازی می کند. توابع زیر آن را برای ارسال رویدادهای خود فراخوانی می کنند.
    • _SetFaceRec() رویداد kEventFaceRecID_OasisSetSetState را ارسال می کند تا الگوی دید را برای ثبت چهره، شناسایی و توقف الگوریتم فعال کند.
    • _RegisterGUIFaceRec() رویداد kEventFaceRecId_RegisterGUIFaceRec را که در smart_tlhmi_event_descriptor.h تعریف شده است ارسال می کند تا در صورت تایید ثبت نام، داده های ویژگی چهره را به پایگاه داده اضافه کند.
    • ()DeregisterGUIFaceRec رویداد kEventFaceRecID_DelUser را برای حذف داده های ویژگی چهره از پایگاه داده هنگام عبور از تشخیص چهره ارسال می کند.
  5. کدها را برای انجام اقدامات مربوطه از جمله بازخوانی رابط کاربری گرافیکی با فراخوانی APIها از برنامه رابط کاربری گرافیکی LVGL برای نتایج استنتاج ثبت و تشخیص چهره در تابع _InferComplete_Vision () به ازای سابق به‌روزرسانی کنید.ampطراحی کنیم برای مثالampدر صورت موفقیت آمیز بودن ثبت چهره،
    • با فراخوانی _FaceRecProcess_Stop();
    • با فراخوانی _SetFaceRec(kOASISLiteState_Stopped) ثبت چهره را متوقف کنید.
    • نمایش نتیجه موفقیت آمیز در رابط کاربری گرافیکی: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • ثبت داده های چهره در پایگاه داده: _RegisterUserFace(s_UserId);
  6. برای مدیریت رویدادها، توابع پاسخ به تماس رابط کاربری را اضافه کنید: preview، ثبت چهره، شناسایی و حذف کاربر از رابط کاربری گرافیکی فعال شده است. برای مثالample، پاسخ تماس ثبت چهره: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • و توابع _FaceRecProcess_Start() و _FaceRecProcess_Stop() را اضافه کنید تا پیشرفت و وضعیت را در رویدادها و نتایج مختلف نشان دهید.
    • تایمر ISR تابع callback _SessionTimer_Callback() را به‌روزرسانی کنید تا با فراخوانی موارد وقفه زمانی را کنترل کنید: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. تعاریف زیر را برای فعال کردن خروجی رابط کاربری HAL در board_define.h اضافه کنید: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

توجه:
برای ارائه بهتر ویژگی تشخیص چهره، عملکرد را نگه دارید تا فرآیند و نتایج تشخیص چهره را در خروجی UI HAL نشان دهد. تابع به صورت زیر توضیح داده شده است

  • مستطیل راهنمای چهره آبی را نشان می دهد و نوار پیشرفت پیشرفت را هنگام شروع ثبت یا تشخیص چهره نشان می دهد.
  • هنگامی که ثبت چهره با موفقیت انجام می شود، مستطیل راهنمای چهره قرمز نشان می دهد.
  • هنگامی که تشخیص چهره با موفقیت انجام شود، مستطیل راهنمای چهره سبز نشان داده می شود.
  • مستطیل راهنمای چهره آبی باقی می ماند و نوار پیشرفت پیشرفت کامل را در زمانی که اقدام پس از انقضای تایمر ناموفق باشد نشان می دهد. در آن مرحله، ثبت یا تشخیص چهره را متوقف کنید.

نوار پیشرفت و مستطیل راهنمای چهره به عنوان نمادهایی ارائه می شوند که در باینری منبع ساخته شده اند file برای برنامه ریزی در فلش نشانگرهای داده‌های نمادها در SDRAM در تابع LoadIcons (APP_ICONS_BASE) تنظیم می‌شوند که بر روی مقدار دهی اولیه دستگاه UI خروجی HAL در HAL UI خروجی فراخوانی می‌شود. باید آیکون ها را برای عملکرد پشتیبانی کند.

اجرای پشتیبانی از آیکون ها

  1. منبعی را با ترکیب نمادها با تصاویر استفاده شده در برنامه LVGL GUI بسازید:
    • هدر چهار نماد را کلون کنید files process_bar_240x14.h، virtual_face_blue_420x426.h، virtual_face_green_420x426.h، و virtual_face_red_420x426.h از HMI هوشمند
      \ قهوه‌ساز\منبع\icons\ به نمادهای پوشه جدید زیر پوشه منبع سابقample SW.
    • مسیر جستجو را برای نماد چهار اضافه کنید files در camera_preview_resource.txt file در پوشه منبع، برای مثالample: icon ../resource/icons/process_bar_240x14.h
    • camera_pre را اجرا کنیدview_resource_build.bat برای ساخت منابع تصاویر و نمادها برای تولید سطل file camera_preview_resource.bin و اطلاعات file resource_information_table.txt (شکل 6 را ببینید).NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (13)
  2. آدرس شروع در SDRAM و اندازه نمادها را در app_config.h تعریف کنید. آدرس در کنار تصاویر برنامه رابط کاربری گرافیکی شروع می شود. اندازه در اطلاعات ایجاد می شود file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. اندازه اختصاص داده شده بخش حافظه با نام res_sh_mem را با تعریف مجدد آن در app_config.h به 0x200000 به روز کنید: #define RES_SHMEM_TOTAL_SIZE 0x200000 و تنظیمات مربوطه را در Project > Properties > C/C++ Build > MCU settings.
  4. اندازه نماد را به اندازه کل منبع بارگیری شده از Flash به SDRAM در تابع APP_LoadResource() در قسمت اصلی اضافه کنید. 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 توسط برنامه رابط کاربری گرافیکی LVGL برای مدیریت رویدادها از صفحه رابط کاربری فراخوانی می شوند. از سوی دیگر، UI خروجی HAL API های برنامه رابط کاربری گرافیکی LVGL را برای به روز رسانی UI برای نشان دادن نتیجه و وضعیت فراخوانی می کند. توسعه برنامه رابط کاربری گرافیکی LVGL نسبتا مستقل است و در بخش 4.3 معرفی شده است.

4.1.5 دستگاه ها و مدیران HAL را برای تشخیص چهره راه اندازی کنید
الگوی چشم انداز فعال HAL و UI خروجی HAL و مدیران آنها به طور اصلی راه اندازی می شوند file
lvgl_gui_face_rec_cm7.cpp به دنبال تبدیل توسعه در چارچوب به شرح زیر است:

  1. هدر را درج کنید file مربوط به دو مدیر HAL با افزودن خط کد:
    • #include ” fwk_output_manager.h”
    • #include "fwk_vision_algo_manager.h"
  2. دستگاه های HAL را اعلام کنید:
    • HAL_VALGO_DEV_DECLARE (OasisGUIFaceRec)؛
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec)؛
  3. ثبت دستگاه های HAL:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec، ret)؛
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec، ret)؛
  4. راه اندازی کردن مدیران:
    • FWK_MANAGER_INIT(VisionAlgoManager، ret);
    • FWK_MANAGER_INIT(OutputManager، ret);
  5. مدیران را شروع کنید:
    • FWK_MANAGER_START(VisionAlgoManager، VISION_ALGO_MANAGER_TASK_PRIORITY، ret)؛
    • FWK_MANAGER_START(OutputManager، OUTPUT_MANAGER_TASK_PRIORITY، ret)؛
  6. اولویت وظایف مدیر را تعریف کنید:
    • #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #define OUTPUT_MANAGER_TASK_PRIORITY 1

پشتیبانی از پایگاه داده چهره را در چارچوب اضافه کنید
داده های ویژگی چهره ثبت شده در پایگاه داده چهره ذخیره شده در Flash از طریق کمی قابل دسترسی است file سیستم مراحل اضافه کردن پشتیبانی از پایگاه داده چهره در زیر توضیح داده شده است.

درایورهای ذخیره سازی فلش را اضافه کنید
درایور FlexSPI رابط فلش ​​را کپی کنید files fsl_flexspi.c و fsl_flexspi.h و درایور رمزگذاری داده ها filefsl_caam.c و fsl_caam.h را از مسیر SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ به پوشه درایورهای سابقample SW.

اضافه کردن پشتیبانی در سطح هیئت مدیره

  1. تعاریف FlexSPI مورد استفاده برای دستگاه Flash on board را در board.h اضافه کنید:
    • #define BOARD_FLEXSPI FLEXSPI1
    • #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. عملگرها و تنظیمات را کپی کنید files از دستگاه فلش flexspi_nor_flash_ops.c، flexspi_nor_flash_ops.h، sln_flash_config.c، sln_flash_config_w25q256jvs.h، andsln_flash_ops.h در زیر مسیر smart HMI\coffe\cmfig.ample SW.
    • پس از کلیک راست بر روی گزینه "Exclude Resource from Build" در C/C++ Build > Settings را بردارید. fileنام s و باز کردن Properties برای فعال کردن آنها در پروژه.
  3. هدر موجود را تغییر دهید filesln_flash_config.h را به sln_flash_config_w25q256jvs.h در sln_flash_config.c و flexspi_nor_flash_ops.h نامگذاری کنید.
  4. منبع ساعت FlexSPI1 را در file clock_config.c با اشاره به برنامه دستگاه قهوه ساز.

آداپتور و پشتیبانی سطح متوسط ​​را اضافه کنید

  1. را کپی کنید filesln_flash.c، sln_flash.h، sln_encrypt.c، و sln_encrypt.h به عنوان درایورهای آداپتور برای file سیستم و برنامه از مسیر HMI\coffee_machine\cm7\source\ هوشمند به منبع پوشه سابقampله جدید را به روز کنید files:
    • علامت «Exclude Resource from build» را برای ساختن روی آنها بردارید.
    • تمام هدرهای موجود را تغییر دهید file sln_flash_config.h را به sln_flash_config_w25q256jvs.h نامگذاری کنید.
  2. پوشه را کپی کنید fileسیستم حاوی API های کوچک fileسیستم و درایور HAL از HMI هوشمند \coffee_machine\cm7\source\ به سابقample SW. و به روز رسانی برای پوشه جدید:
    • تیک «Exclude Resource from build» را برای ساختن روی آن بردارید.
    • مسیر شامل را برای آن در تنظیمات پروژه اضافه کنید: «${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.
  3. پوشه littlefs حاوی ware میانی – کمی را کپی کنید fileسیستم از مسیر SDK_2_13_0_ MIMXRT1170-EVK\middleware\ به سمت سابقample SW. و پوشه جدید را آپدیت کنید:
    • تیک «Exclude Resource from build» را برای ساختن روی آن بردارید.
    • مسیر شامل را برای آن در تنظیمات پروژه اضافه کنید: "${workspace_loc:/${ProjName}/littlefs}"

درایورهای HAL را اضافه کنید 

  • دو دستگاه HAL وجود دارد - file سیستم و پایگاه داده چهره HAL برای ویژگی دسترسی به پایگاه داده پشتیبانی می شود و در حال حاضر بدون هیچ تغییری در چارچوب پیاده سازی شده اند. آنها را با افزودن تعاریف زیر در board_define.h فعال کنید:
    • #define ENABLE_FLASH_DEV_Littlefs
    • #define ENABLE_FACEDB

و نام پایگاه داده چهره را برای سابق تغییر دهیدample: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"

پشتیبانی در سطح برنامه را اضافه کنید

  1. اصلی را به روز کنید file lvgl_gui_face_rec_cm7.cpp:
    • هدر را درج کنید file مربوط به فلش file سیستم HAL manager با افزودن خط کد: #include "fwk_flash.h"
    • اعلام و ثبت نام کنید file دستگاه HAL سیستم:
      • HAL_FLASH_DEV_DECLARE (Littlefs)؛
      • HAL_FLASH_DEV_REGISTER (Littlefs، ret)؛
        توجه داشته باشید: file قبل از اینکه تمام مدیران دستگاه در تابع APP_InitFramework() مقداردهی اولیه شوند، دستگاه HAL سیستم باید ثبت شود.
    • برای پیکربندی MPU، تابع BOARD_ConfigMPU() را در APP_BoardInit() فراخوانی کنید.
  2. را تنظیم کنید file تخصیص سیستم در فلش در file app_config.h با تعریف تعاریف کلان استفاده شده در file sln_flash_littlefs.h:
    • #تعریف FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #تعریف فیکا_FILE_SYS_SIZE (0x280000)

تنظیمات
برخی از کدهای مربوط به Flash در ناحیه SRAM ITC برای عملکرد کافی اجرا می شوند. پیوندهای پوشه حاوی تنظیمات پیوند دهنده را از مسیر smart HMI\coffee_machine\cm7\ به قسمت قبلی کپی کنید.ample SW.

یک برنامه رابط کاربری گرافیکی LVGL را پیاده سازی کنید
توسعه یک برنامه رابط کاربری گرافیکی LVGL بر اساس چارچوب، API ها را از UI خروجی HAL فراخوانی می کند و API ها را برای خروجی UI HAL فراهم می کند (به بخش 4.1.3 برای اجرای HAL UI خروجی مراجعه کنید).

با این حال، اجرای دقیق یک برنامه رابط کاربری گرافیکی LVGL به الزامات و طراحی برنامه بستگی دارد. برنامه رابط کاربری گرافیکی در این سابقample همانطور که در ابتدای بخش 4 توضیح داده شده طراحی شده است.

در زیر مقدمه پیاده سازی آمده است:

  1. کدهای سفارشی شده در custom.c و custom.h ارائه شده توسط GUI Guider به عنوان رابط بین پروژه GUI Guider و پروژه سیستم جاسازی شده پیاده سازی می شوند.
    •  برای دستیابی به توابع زیر، توابع جدیدی به نام gui_xxx() را در custom.c اضافه کنید:
      • برای خروجی UI HAL و برنامه GUI برای به روز رسانی UI.
      • برای اینکه برنامه رابط کاربری گرافیکی با فراخوانی توابع پاسخ به تماس رابط کاربری از خروجی UI HAL رویدادها را راه اندازی کند.
        برای مثالampلی، تابع جدید gui_event_face_rec_action() توابع بازخوانی رابط کاربری را فراخوانی می کند تا یکی از رویدادهای ثبت چهره، تشخیص چهره و حذف کاربر را که با کلیک روی دکمه مربوطه از برنامه رابط کاربری گرافیکی فعال می شود، مدیریت کند.
        توجه: تابع gui_set_virtual_face() در خروجی UI HAL برای pre فراخوانی می شودview حالت باید در custom.c پیاده سازی شود:
    •  کلون تابع gui_set_virtual_face() از هوشمند HMI\coffee_machine\cm4\custom \custom.c.
    •  نام ویجت را تغییر دهید home_img_cameraPreview به screen_img_camera_preview در تابع
    •  برای سازگاری با پروژه راهنمای رابط کاربری گرافیکی، توابع پاسخ به تماس رابط کاربری را با نمونه اولیه یکسان برای همه آنهایی که در UI خروجی HAL هستند، تحت کنترل تعریف ماکرو #ifndef RT_PLATFORM در custom.c اجرا کنید، زیرا این توابع در HAL UI خروجی به پلت فرم تعبیه شده در custom.c، آنها به شبیه ساز در راهنمای رابط کاربری گرافیکی وابسته هستند و مستقل از پلتفرم تعبیه شده هستند. برای مثالampبرای شبیه‌ساز GUI Guider در حال اجرا، فراخوان ثبت چهره به صورت زیر اجرا می‌شود: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = نادرست; بازگشت؛ }
      توجه داشته باشید: به همان نمونه اولیه عملکرد معرفی شده در مرحله 6 از بخش 4.1.3 مراجعه کنید.
      تعریف ماکرو RT_PLATFORM بر روی تنظیمات پروژه MCUXpresso مطابق شکل 7 تنظیم شده است:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (14)
    • همه توابع به نام‌های UI_xxx_Callback() و gui_xxx() را در custom.h اعلام کنید و custom.h موجود در smart_tlhmi_event_descriptor.h را اضافه کنید تا APIهای رابط کاربری گرافیکی را در خروجی UI HAL به اشتراک بگذارید.
  2. توسعه رابط کاربری گرافیکی در GUI Guider:
    • دوربین پوشه را از قبل کلون کنیدview حاوی نرم افزار پروژه GUI Guider در پوشه gui_guider در بسته نرم افزاری پایه lvgl_gui_camera_preview_cm7. نام مرتبط camera_pre را تغییر دهیدview به face_rec برای سابق جدیدampله
    • custom.c و custom به روز شده فوق را کپی کنید. h به نرم افزار جدید پروژه GUI Guider.
    •  پروژه جدید face_rec را در GUI Guider باز کنید. به روز رسانی به صورت زیر:
      • دکمه جدید با عنوان حذف کاربر را اضافه کنید. پرچم Hidden را به آن اضافه کنید تا با راه اندازی برنامه رابط کاربری گرافیکی، دکمه پنهان شود.
      • خط کد فراخوانی API gui_event_face_rec_action() را با پارامتر شناسه رویداد متفاوت در تریگر "Released" در تنظیمات رویداد همه دکمه‌های ثبت، شناسایی و حذف کاربر برای راه‌اندازی رویدادهای ثبت چهره، تشخیص چهره و حذف کاربر اضافه کنید. شکل 8 کد رویداد ثبت دکمه را نشان می دهد:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (15)
  3. کد تولید شده را از GUI Guider به پروژه MCUXpresso به روز کنید.
    • محتویات به جز تصاویر پوشه موجود در پوشه تولید شده از پروژه MCUXpresso SW را با موارد مربوطه در پوشه ایجاد شده پروژه GUI Guider SW جایگزین کنید.

توجه داشته باشید: برای جزئیات بیشتر در مورد اصلاحات معرفی شده در بالا، نمونه قبلی را بررسی کنیدampنرم افزار le در https://mcuxpresso.nxp.com/appcodehub.

تاییدیه ها با سابقampپروژه

برای گرفتن سابقampبسته نرم افزاری حاوی منابع و ابزارهای مربوط به این یادداشت کاربردی، مراجعه کنید: https://mcuxpresso.nxp.com/appcodehub. سابق را باز کنیدampپروژه در MCUXpresso IDE. axf. را بسازید و برنامه ریزی کنید file به آدرس 0x30000000 و Resource bin را برنامه ریزی کنید file camera_preview_resource.bin به آدرس 0x30800000.

تشخیص چهره LVGL GUI سابقample به طور معمول به صورت زیر کار می کند:

  • قبلview: با روشن شدن، جریان های ویدیویی گرفته شده توسط دوربین در ناحیه خاصی از دوربین قبل نمایش داده می شودview روی صفحه رابط کاربری گرافیکی برچسب وضعیت "Preview…”. برای جزئیات، به شکل 3 مراجعه کنید. دکمه حذف کاربر پنهان است. هنگام کلیک کردن روی ناحیه خارج از دکمه ها و تصاویر، پیش نمایش داده می شودview پس از پایان عملیات ثبت یا شناسایی چهره، موارد فوق را بیان کنید.
  • ثبت نام:
    • تارتاپ: با کلیک روی دکمه ثبت نام، ثبت چهره شروع می شود. برچسب وضعیت برای نمایش "ثبت ..." تغییر می کند، مستطیل راهنمای چهره آبی نشان داده می شود و نوار پیشرفت شروع به نشان دادن پیشرفت می کند. مطمئن شوید که چهره کاربر در مستطیل راهنمای صورت آبی برای ثبت نام نشان داده می شود.
    • موفقیت: برچسب وضعیت "ثبت نام... OK" و شماره شناسه کاربر ثبت شده را نشان می دهد، اگر ثبت چهره با موفقیت انجام شود قبل از اینکه پیشرفت به طور کامل در نوار نشان داده شود، مستطیل راهنمای چهره قرمز می شود.
    • Failure -> Time out: برچسب وضعیت «ثبت‌نام… زمان پایان» را نشان می‌دهد اگر ثبت چهره همچنان ناموفق باشد زمانی که پیشرفت در نوار کامل نشان داده شود.
    • شکست -> تکرار: برچسب وضعیت "ثبت نام... ناموفق" را نشان می دهد، مستطیل راهنمای چهره سبز می شود اگر چهره ثبت شده قبل از اینکه پیشرفت در نوار کامل نشان داده شود شناسایی شود.
  • شناخت:
    • راه اندازی: هنگامی که دکمه Recognition کلیک می شود، تشخیص چهره شروع می شود. برچسب وضعیت برای نمایش "تشخیص..." تغییر می کند، مستطیل راهنمای چهره آبی را نشان می دهد، و نوار پیشرفت شروع به نشان دادن پیشرفت می کند. مطمئن شوید که چهره کاربر برای ثبت نام در مستطیل راهنمای صورت آبی نشان داده شده است.
    • موفقیت: برچسب وضعیت "تشخیص...OK" و شماره شناسه کاربر شناسایی شده را نشان می دهد، اگر تشخیص چهره با موفقیت قبل از اینکه پیشرفت در نوار کامل نشان داده شود، مستطیل راهنمای چهره سبز می شود. در این نقطه، دکمه حذف کاربر ظاهر می شود. این بدان معناست که کاربر فقط زمانی مجاز به حذف است که شناخته شود.
    • ailure: برچسب وضعیت "تشخیص ... زمان تمام" را نشان می دهد اگر تشخیص چهره همچنان ناموفق باشد زمانی که پیشرفت در نوار کامل نشان داده شود.
  • حذف کاربر: هنگامی که دکمه "حذف کاربر" کلیک می شود، پس از موفقیت آمیز بودن تشخیص چهره، برچسب وضعیت به نمایش "حذف کاربر... OK" تغییر می کند که مستطیل راهنمای چهره آبی می شود و پیشرفت روی نوار کامل نشان داده می شود. دکمه Delete User دوباره پنهان می شود. چهره/کاربر شناسایی شده از پایگاه داده حذف می شود. یعنی این چهره/کاربر تا زمانی که دوباره ثبت نشود قابل شناسایی نیست.

در مورد کد منبع در سند توجه کنید
Exampکد le نشان داده شده در این سند دارای حق چاپ و مجوز BSD-3-Clause زیر است:

حق چاپ 2024 NXP توزیع مجدد و استفاده در فرم های منبع و باینری، با یا بدون تغییر، به شرط رعایت شرایط زیر مجاز است:

  1. توزیع مجدد کد منبع باید اعلامیه حق چاپ بالا، این لیست شرایط و سلب مسئولیت زیر را حفظ کند.
  2. توزیع مجدد به صورت دودویی باید اعلان حق چاپ بالا را بازتولید کند، این فهرست شرایط و سلب مسئولیت زیر در اسناد و/یا سایر مطالب باید همراه با توزیع ارائه شود.
  3. نه نام دارنده حق چاپ و نه نام مشارکت کنندگان آن را نمی توان برای تأیید یا تبلیغ محصولات مشتق شده از این نرم افزار بدون اجازه کتبی قبلی خاص استفاده کرد.

این نرم‌افزار توسط دارندگان حق نسخه‌برداری و مشارکت‌کنندگان «همان‌طور که هست» و هرگونه ضمانت صریح یا ضمنی، از جمله، اما نه محدود به، ضمانت‌های ضمنی ضمانت‌نامه تضمینی و ضمانت تجاری، ارائه می‌شود. سلب مسئولیت. دارنده یا مشارکت کنندگان حق نسخه‌برداری در هیچ موردی در قبال هر گونه خسارت مستقیم، غیرمستقیم، اتفاقی، خاص، مثالی یا تبعی (شامل، اما به صورت محدود، غیرمستقیم) مسئول نیستند خدمات، از دست دادن استفاده، داده ها یا سود یا وقفه در کسب و کار) به هر حال و در مورد هر گونه تئوری مسئولیت، خواه در قرارداد، مسئولیت دقیق، یا غیر از موارد دیگر. خارج از استفاده از این نرم افزار، حتی اگر در مورد احتمال چنین آسیبی توصیه شده باشد.

تاریخچه تجدید نظر

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

اطلاعات حقوقی

تعاریف
پیش نویس - یک وضعیت پیش نویس در یک سند نشان می دهد که محتوا هنوز تحت نسخه داخلی استview و مشروط به تایید رسمی، که ممکن است منجر به تغییرات یا اضافات شود. NXP Semiconductors هیچ گونه اظهارنظر یا ضمانتی در مورد صحت یا کامل بودن اطلاعات موجود در نسخه پیش نویس یک سند نمی دهد و هیچ مسئولیتی در قبال عواقب استفاده از چنین اطلاعاتی ندارد.

سلب مسئولیت

  • گارانتی و مسئولیت محدود - اعتقاد بر این است که اطلاعات این سند دقیق و قابل اعتماد است. با این حال، NXP Semiconductors هیچ گونه ضمانت یا ضمانت صریح یا ضمنی در مورد صحت یا کامل بودن چنین اطلاعاتی نمی دهد و هیچ مسئولیتی در قبال عواقب استفاده از این اطلاعات نخواهد داشت. NXP Semiconductors هیچ مسئولیتی در قبال محتوای این سند در صورت ارائه توسط منبع اطلاعاتی خارج از NXP Semiconductors ندارد.
    NXP Semiconductors به ​​هیچ وجه در قبال خسارات غیرمستقیم، اتفاقی، تنبیهی، خاص یا تبعی (شامل – بدون محدودیت – سود از دست رفته، پس‌اندازهای از دست رفته، وقفه در کسب‌وکار، هزینه‌های مربوط به حذف یا جایگزینی هر محصول یا هزینه‌های کار مجدد) مسئولیتی ندارد. یا نه، چنین خساراتی مبتنی بر تخلف (از جمله سهل انگاری)، ضمانت، نقض قرارداد یا هر نظریه حقوقی دیگری است.
    با وجود هر گونه خسارتی که مشتری ممکن است به هر دلیلی متحمل شود، مسئولیت کلی و انباشته NXP Semiconductors در قبال مشتری در قبال محصولاتی که در اینجا توضیح داده شده است، مطابق با شرایط و ضوابط فروش تجاری نیمه هادی های NXP محدود می شود.
  • حق ایجاد تغییرات — NXP Semiconductors این حق را برای خود محفوظ می دارد که در هر زمان و بدون اطلاع قبلی، تغییراتی را در اطلاعات منتشر شده در این سند، از جمله بدون محدودیت مشخصات و توضیحات محصول، محفوظ می دارد. این سند جایگزین و جایگزین تمام اطلاعات ارائه شده قبل از انتشار در اینجا می شود.
  • مناسب برای استفاده - محصولات نیمه هادی NXP برای استفاده در پشتیبانی از حیات، سیستم ها یا تجهیزات حیاتی یا حیاتی از نظر ایمنی و همچنین در کاربردهایی که به طور منطقی انتظار می رود خرابی یا عملکرد نادرست یک محصول نیمه هادی های NXP به طور منطقی منجر به این شود، طراحی، مجاز یا تضمین نشده اند. صدمات شخصی، مرگ یا آسیب شدید مالی یا محیطی. NXP Semiconductors و تامین کنندگان آن هیچ مسئولیتی در قبال گنجاندن و/یا استفاده از محصولات NXP Semiconductors در چنین تجهیزات یا برنامه هایی نمی پذیرند و بنابراین چنین گنجاندن و/یا استفاده به عهده خود مشتری است.
  • برنامه های کاربردی - برنامه هایی که در اینجا برای هر یک از این محصولات توضیح داده شده اند، فقط برای اهداف توضیحی هستند. NXP Semiconductors هیچ گونه تضمین یا تضمینی مبنی بر مناسب بودن چنین برنامه هایی برای استفاده مشخص شده بدون آزمایش یا اصلاح بیشتر ارائه نمی دهد.
    مشتریان مسئول طراحی و بهره برداری از برنامه ها و محصولات خود با استفاده از محصولات NXP Semiconductors هستند و NXP Semiconductors هیچ مسئولیتی در قبال هیچ گونه کمکی در مورد برنامه ها یا طراحی محصول مشتری نمی پذیرد. این تنها مسئولیت مشتری است که تشخیص دهد آیا محصول NXP Semiconductors برای برنامه‌های کاربردی مشتری و محصولات برنامه‌ریزی‌شده مناسب و مناسب است یا خیر، و همچنین برای برنامه‌ریزی‌شده و استفاده از مشتری (های) شخص ثالث مشتری. مشتریان باید برای به حداقل رساندن خطرات مرتبط با برنامه‌ها و محصولات خود، طراحی و اقدامات حفاظتی مناسب را ارائه دهند. NXP Semiconductors هیچ گونه مسئولیتی را در رابطه با هرگونه پیش‌فرض، آسیب، هزینه یا مشکلی که بر اساس هر گونه ضعف یا پیش‌فرض در برنامه‌ها یا محصولات مشتری، یا برنامه یا استفاده توسط مشتری(های) شخص ثالث مشتری باشد، نمی‌پذیرد. مشتری مسئول انجام کلیه آزمایشات لازم برای برنامه ها و محصولات مشتری با استفاده از محصولات نیمه هادی NXP به منظور جلوگیری از پیش فرض برنامه ها و محصولات یا برنامه یا استفاده توسط مشتری (های) شخص ثالث مشتری است. NXP هیچ گونه مسئولیتی در این زمینه نمی پذیرد.
  • شرایط و ضوابط فروش تجاری — محصولات NXP Semiconductors طبق شرایط و ضوابط عمومی فروش تجاری، همانطور که در https://www.nxp.com/pro منتشر شده است، فروخته می شوند.file/شرایط، مگر اینکه در توافقنامه انفرادی کتبی معتبر دیگری توافق شده باشد. در صورت انعقاد قرارداد انفرادی، فقط شرایط و ضوابط قرارداد مربوطه اعمال می شود. NXP Semiconductors بدین وسیله صراحتاً با اعمال شرایط و ضوابط عمومی مشتری در مورد خرید محصولات نیمه هادی NXP توسط مشتری مخالفت می کند.
  • کنترل صادرات - این سند و همچنین اقلامی که در اینجا توضیح داده شده اند ممکن است مشمول مقررات کنترل صادرات باشند. صادرات ممکن است به مجوز قبلی از مقامات ذیصلاح نیاز داشته باشد.
  • مناسب برای استفاده در محصولات غیر واجد شرایط خودرو - مگر اینکه این سند به صراحت بیان کند که این محصول خاص NXP Semiconductors واجد شرایط خودرو است، این محصول برای استفاده در خودرو مناسب نیست. این نه واجد شرایط است و نه مطابق با تست خودرو یا الزامات برنامه آزمایش شده است. NXP Semiconductors هیچ مسئولیتی در قبال گنجاندن و/یا استفاده از محصولات غیر واجد شرایط خودرو در تجهیزات یا برنامه های خودرو نمی پذیرد.
    در صورتی که مشتری از محصول برای طراحی و استفاده در کاربردهای خودرویی مطابق با مشخصات و استانداردهای خودرو استفاده کند، مشتری (الف) باید از محصول بدون ضمانت NXP Semiconductors در مورد محصول برای چنین کاربردها، کاربردها و مشخصات خودرویی استفاده کند. ب) هر گاه مشتری از محصول برای کاربردهای خودرویی فراتر از مشخصات NXP Semiconductors استفاده کند، چنین استفاده ای صرفاً به عهده مشتری خواهد بود و (ج) مشتری به طور کامل از NXP Semiconductors برای هرگونه مسئولیت، خسارت یا ادعای ناموفق محصول ناشی از طراحی و استفاده مشتری از NXP غرامت می گیرد. محصولی برای کاربردهای خودرویی فراتر از ضمانت استاندارد NXP Semiconductors و مشخصات محصول NXP Semiconductors.
  • ترجمه ها — نسخه غیرانگلیسی (ترجمه شده) یک سند، شامل اطلاعات حقوقی در آن سند، فقط برای مرجع است. در صورت وجود هرگونه مغایرت بین نسخه ترجمه شده و انگلیسی، نسخه انگلیسی برتری خواهد داشت.
  • امنیت — مشتری می‌داند که همه محصولات NXP ممکن است در معرض آسیب‌پذیری‌های ناشناس باشند یا از استانداردها یا مشخصات امنیتی تعیین‌شده با محدودیت‌های شناخته شده پشتیبانی کنند. مشتری مسئول طراحی و بهره برداری از برنامه ها و محصولات خود در طول چرخه عمر خود است تا تأثیر این آسیب پذیری ها را بر برنامه ها و محصولات مشتری کاهش دهد. مسئولیت مشتری همچنین شامل سایر فناوری‌های باز و/یا اختصاصی است که توسط محصولات NXP برای استفاده در برنامه‌های مشتری پشتیبانی می‌شوند. NXP هیچ مسئولیتی در قبال آسیب پذیری نمی پذیرد. مشتری باید به طور مرتب به روز رسانی های امنیتی NXP را بررسی کرده و به طور مناسب پیگیری کند. مشتری باید محصولاتی را با ویژگی‌های امنیتی انتخاب کند که به بهترین وجه با قوانین، مقررات و استانداردهای برنامه مورد نظر مطابقت داشته باشد و تصمیمات نهایی را در مورد محصولات خود اتخاذ کند و صرفاً مسئول انطباق با کلیه الزامات قانونی، مقرراتی و امنیتی مربوط به محصولات خود است، صرف نظر از هر گونه اطلاعات یا پشتیبانی که ممکن است توسط NXP ارائه شود.

NXP دارای یک تیم پاسخگویی به حوادث امنیتی محصول (PSIRT) (قابل دسترسی در PSIRT@nxp.com) است که بررسی، گزارش‌دهی و انتشار راه‌حل برای آسیب‌پذیری‌های امنیتی محصولات NXP را مدیریت می‌کند.
NXP B.V. - NXP B.V. یک شرکت عامل نیست و محصولاتی را توزیع یا نمی فروشد.

علائم تجاری
توجه کنید: همه مارک های ارجاع شده، نام محصول، نام خدمات و علائم تجاری دارایی صاحبان مربوطه می باشند.

NXP - علامت کلمه و لوگو علائم تجاری NXP BV هستند

AMBA، Arm، Arm7، Arm7TDMI، Arm9، Arm11، Artisan، big.LITTLE، Cordio، CoreLink، CoreSight، Cortex، DesignStart، DynamIQ، Jazelle، Keil، Mali، Mbed، Mbed Enabled، NEON، POP، RealView، SecurCore، Socrates، Thumb، TrustZone، ULINK، ULINK2، ULINK-ME، ULINK-PLUS، ULINKpro، μVision، همه کاره — علائم تجاری و/یا علائم تجاری ثبت شده Arm Limited (یا شرکت های تابعه یا وابسته آن) در ایالات متحده و/یا هستند. در جای دیگر فناوری مربوطه ممکن است توسط هر یک یا همه اختراعات، حق چاپ، طرح ها و اسرار تجاری محافظت شود. تمامی حقوق محفوظ است.

  • i.MX - علامت تجاری NXP BV است
  • جی لینک - یک علامت تجاری SEGGER Microcontroller GmbH است.

Microsoft، Azure و ThreadX - علائم تجاری گروه شرکت‌های مایکروسافت هستند.

لطفاً توجه داشته باشید که اخطارهای مهم مربوط به این سند و محصول(های) شرح داده شده در اینجا، در بخش "اطلاعات حقوقی" گنجانده شده است.

© 2024 NXP BV
برای اطلاعات بیشتر لطفا به آدرس زیر مراجعه کنید: https://www.nxp.com

  • تاریخ انتشار: 19 آوریل 2024
  • شناسه سند: AN14263

سوالات متداول

س: هدف اصلی این محصول چیست؟
پاسخ: هدف اصلی فعال کردن عملکرد تشخیص چهره با استفاده از مدل الگوریتم بینایی AI&ML با رابط کاربری گرافیکی LVGL ساده است.ampروی برد SLN-TLHMI-IOT.

س: توسعه دهندگان چگونه می توانند از این یادداشت برنامه بهره مند شوند؟
پاسخ: توسعه‌دهندگان می‌توانند نحوه پیاده‌سازی تشخیص چهره در چارچوب را با استفاده از نسخه قبلی گام به گام بیاموزندampمدیران دستگاه، دستگاه‌های HAL و مکانیسم‌های رویداد را درک کنید.

اسناد / منابع

NXP AN14263 تشخیص چهره LVGL GUI را در Framewor پیاده سازی می کند [pdfراهنمای کاربر
AN14263 پیاده سازی LVGL GUI Face Recognition on Framewor, AN14263, Implement LVGL GUI Face Recognition on Framewor, LVGL GUI Face Recognition on Framewor, Face Recognition on Framewor, Frawor Recognition on Framewor

مراجع

نظر بدهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند *