לוגו nxp

NXP AN14263 יישם זיהוי פנים של LVGL GUI על Framewor

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-product

מידע על המוצר

מפרטים

  • שם המוצר: זיהוי פנים של LVGL GUI על מסגרת
  • עדכון מסמך: 1 עד 19 באפריל 2024
  • מילות מפתח: זיהוי פנים, LVGL GUI, Framework

הוראות שימוש במוצר

  1. מֵעַלview
    מוצר זה מאפשר מודל של אלגוריתם ראייה AI&ML לזיהוי פנים על מסגרת ליישום פונקציית זיהוי פנים עם דוגמה פשוטה של ​​LVGL GUIample בלוח SLN-TLHMI-IOT.
  2. המסגרת נגמרהview
    תוכנת הפתרון תוכננה סביב ארכיטקטורת המסגרת הכוללת מנהלי התקנים האחראים על ניהול התקנים, התקני HAL להפשטה של ​​פרטים בסיסיים ואירועים לתקשורת בין מכשירים שונים.
  3. תכונות
    המוצר מאפשר יישום של פונקציית זיהוי פנים באמצעות מצלמה קדםview במסך ה-GUI עם כפתורים להפעלת רישום פנים, זיהוי והסרה. נתוני פנים רשומים מאוחסנים ב-Flash באמצעות א file מַעֲרֶכֶת.
  4. תוכן הערת יישום
    הערת האפליקציה מציגה מסך LVGL GUI עם מצלמה מוקדמתview וכפתורים לפעולות הקשורות לפנים. זה עוזר למפתחים להבין את המסגרת וכיצד ליישם זיהוי פנים באמצעות האקס שסופקample.

מֵעַלview

NXP השיקה ערכת פיתוח פתרונות בשם SLN-TLHMI-IOT המתמקדת ביישומי HMI חכמים. זה מאפשר HMI חכם עם ML ראיה, קול UI וגרפי מיושם על NXP i.MX RT117H MCU אחד. בהתבסס על ה-SDK, תוכנת הפתרון בנויה על עיצוב הנקרא framework התומך בעיצובים גמישים ובהתאמה אישית של פונקציות ראייה וקול. כדי לעזור למשתמשים להשתמש טוב יותר בפלטפורמת התוכנה, מסופקים כמה מסמכים בסיסיים, למשלample, המדריך למשתמש לפיתוח תוכנה. המדריך מציג את עיצוב התוכנה והארכיטקטורה הבסיסית של היישומים המכסים את כל מרכיבי הפתרון כולל המסגרת כדי לעזור למפתחים ליישם בקלות וביעילות את היישומים שלהם באמצעות ה-SLN-TLHMI-IOT.
לפרטים נוספים על הפתרון ומסמכים רלוונטיים, בקר באתר web עמוד של NXP EdgeReady Smart HMI פתרון המבוסס על i.MX RT117H עם ML Vision, Voice וממשק משתמש גרפי. עם זאת, זה עדיין לא כל כך קל למפתחים ליישם את יישומי ה-HMI החכמים שלהם תוך התייחסות למדריכים הבסיסיים הללו. סדרה של הערות יישום מתוכננות לסייע בלימוד הפיתוח על המסגרת צעד אחר צעד. הערת יישום זו מבוססת על יישום LVGL GUI Camera Preview על מסגרת (מסמך AN14147). הערת אפליקציה זו מתארת ​​כיצד לאפשר את מודל אלגוריתם הראייה AI&ML לזיהוי פנים על המסגרת כדי ליישם את פונקציית זיהוי הפנים באמצעות מצלמה מראשview במסך GUI עם LVGL GUI פשוט למשלample בלוח SLN-TLHMI-IOT. בהערת הבקשה, האקסample מציג מסך LVGL GUI עם מצלמה מקדימהview וכמה כפתורים להפעלת רישום פנים, זיהוי והסרה. נתוני הפנים הרשומים מאוחסנים ב-Flash דרך מעט file מַעֲרֶכֶת.

ברמה גבוהה, הערת הבקשה מכילה את התכנים שלהלן:

  • אפשר את תכונת זיהוי הפנים במסגרת.
  • הוסף תמיכה במסד נתונים פנים על המסגרת באמצעות file מערכת ב-Flash.
  • הטמע את אפליקציית LVGL GUI. באמצעות ההקדמות לעיל, מסמך זה עוזר למפתחים:
  • הבן את המסגרת ואת תוכנת פתרון ה-HMI החכם יותר לעומק.
  • פתח את זיהוי הפנים של AI&ML על מסגרת עם אפליקציית LVGL GUI.

נגמרה המסגרתview
תוכנת הפתרון תוכננה בעיקר סביב השימוש בארכיטקטורת המסגרת המורכבת מכמה חלקים שונים:

  • מנהלי התקנים - החלק המרכזי
  • התקני הפשטה של ​​שכבת חומרה (HAL).
  • הודעות/אירועים

כפי שמוצג באיור 1, הסוףview של מנגנון המסגרת הוא:

מנהלי התקנים אחראים לניהול המכשירים המשמשים את המערכת. לכל סוג התקן (קלט, פלט וכן הלאה) יש מנהל התקנים ספציפי לסוג שלו. כשמנהל התקנים מתחיל לאחר שהמכשירים נרשמים אליו, הוא ממתין ובודק הודעה להעברת נתונים למכשירים ולמנהלים אחרים לאחר אתחול והפעלת המכשירים הרשומים. התקני HAL כתובים על גבי קוד מנהל ההתקן ברמה נמוכה יותר, ועוזרים להגביר את הבנת הקוד על ידי הפשטה של ​​רבים מהפרטים הבסיסיים.

אירועים הם אמצעי שבאמצעותו מועבר מידע בין מכשירים שונים באמצעות המנהלים שלהם. כאשר אירוע מופעל, המכשיר שקיבל לראשונה את האירוע מעביר את האירוע הזה למנהל שלו, ואז בתורו הוא מודיע למנהלים אחרים המיועדים לקבל את האירוע.

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

התכנון האדריכלי של המסגרת התרכז בשלוש מטרות עיקריות:

  1. קלות שימוש
  2. גמישות/ניידות
  3. ביצועים

המסגרת תוכננה במטרה לזרז את זמן היציאה לשוק עבור יישומי חזון ויישומים אחרים ללימוד מכונה. כדי להבטיח זמן מהיר לשוק, חיוני שהתוכנה עצמה תהיה קלה להבנה ולשינוי. תוך שמירה על מטרה זו, קל לשנות את הארכיטקטורה של המסגרת מבלי להיות מגבילה, ומבלי לעלות במחיר של ביצועים.
לפרטים נוספים על המסגרת, ראה מדריך למשתמש לפיתוח תוכנה חכם HMI (מסמך MCU-SMHMI-SDUG).

ספריית גרפיקה קלה ורסטילית (LVGL)
LVGL (ספריית גרפיקה קלה ורב-צדדית) היא ספריית גרפיקה חינמית וקוד פתוח המספקת את כל מה שאתה צריך כדי ליצור GUI משובץ עם אלמנטים גרפיים קלים לשימוש, אפקטים ויזואליים יפים וטביעת זיכרון נמוכה.

מדריך GUI
GUI Guider הוא כלי פיתוח ממשק משתמש גרפי ידידותי למשתמש מבית NXP המאפשר פיתוח מהיר של צגים באיכות גבוהה עם ספריית הגרפיקה LVGL בקוד פתוח. עורך הגרירה והשחרור של GUI Guider מקל על השימוש בתכונות רבות של LVGL כגון ווידג'טים, אנימציות וסגנונות ליצירת GUI עם קידוד מינימלי או ללא קידוד כלל.

בלחיצת כפתור תוכל להפעיל את האפליקציה שלך בסביבה מדומה או לייצא אותה לפרויקט יעד. ניתן להוסיף בקלות קוד שנוצר מ-GUI Guider לפרויקט שלך, להאיץ את תהליך הפיתוח ולאפשר לך להוסיף בצורה חלקה ממשק משתמש מוטבע לאפליקציה שלך. GUI Guider חופשי לשימוש עם MCUs למטרות כלליות ו-crossover של NXP וכולל תבניות פרויקט מובנות עבור מספר פלטפורמות נתמכות. למידע נוסף על פיתוח LVGL ו-GUI ב-GUI Guider, בדוק את ספריית הגרפיקה הקלה והרב-צדדית ו-GUI Guider.

סביבת פיתוח

ראשית, הכן והגדר את סביבת החומרה והתוכנה ליישום האקסampלה על המסגרת.

סביבת חומרה
סביבת החומרה מוגדרת לאימות האקסampעל:

  • ערכת הפיתוח החכמה של HMI המבוססת על NXP i.MX RT117H (ערכת SLN_TLHMI_IOT)
  • SEGGER J-Link עם מתאם Cortex-M 9 פינים ו-V7.84a או גרסה חדשה יותר של מנהל ההתקן

סביבת תוכנה
סביבת התוכנה מוגדרת לפיתוח האקסampעל:

  • MCUXpresso IDE V11.7.0
  • GUI Guider V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 - למשלampקוד היישום השני בתור תוכנת הבסיס של הפיתוח. לפרטים, ראה 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. ל-Vision algo HAL (OASIS_HAL) יש את התהליכים הבאים:

  • בצע רישום וזיהוי פנים באמצעות מודל אלגוריתם הראייה של AI&ML לאחר קבלת האירועים הקשורים מ-UI HAL הפלט. הודע על תוצאות ההסקה ממודל האלגוריתם לממשק המשתמש של הפלט HAL.
  • גישה (הוסף, מחק...) למסד הנתונים של תכונות הפנים בהתבסס על המעט file מערכת על ידי קריאה לממשקי ה-API של FaceDB HAL לאחר קבלת האירועים הקשורים מממשק הפלט HAL.
  • בקש את מסגרת הווידאו של המצלמה מהמצלמה HAL בעת רישום וזיהוי פנים.

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

הטמעת זיהוי פנים על המסגרת

קוד זיהוי הפנים של LVGL GUIample (האקסample מסופק מאוחר יותר) על המסגרת מיושמת על סמך האקסampהקודים של יישום LVGL GUI Camera Preview על מסגרת (מסמך AN14147).

על הדגמת זיהוי הפנים אצל האקסיתample, הפונקציה הבסיסית של אפליקציית GUI (ראה את המסך הראשי באיור 3) מתוכננת כמתואר להלן:

  • אפליקציית GUI מפעילה את אירוע רישום הפנים או זיהוי הפנים לממשק המשתמש של הפלט HAL בעת לחיצה על הלחצן רישום או זיהוי. והפלט UI HAL מודיע על אירוע של הוספת משתמש ל-vision algo HAL לאחר רישום הפנים מוצלח.
  • אפליקציית ה-GUI מפעילה אירוע של מחיקת משתמש לממשק ה-UI של הפלט HAL בעת לחיצה על הכפתור מחק משתמש לאחר זיהוי הפנים של המשתמש.
  • אפליקציית ה-GUI מפעילה את האירוע של עצירת ה-Oasis Algo לרוץ אל ממשק המשתמש של הפלט HAL בעת לחיצה על המסך מחוץ ללחצנים ולתמונות.

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

הכן את חבילת התוכנה ליישום האקסample.

  • שכפל את תוכנת הבסיס lvgl_gui_camera_preview_cm7. שנה את שם הפרויקט ואת הכותרת הראשית fileשם ל-lvgl_gui_face_rec_cm7.
  • יש צורך לעדכן את המסגרת בתוכנה שכן קודי המקור של ליבת המסגרת החלו להיות ציבוריים ב-GitHub מגרסה 1.1.2.
  • החלף את תיקיית המסגרת בעותק של V1.1.2 מ-GitHub למעט ה- files fwk_log.h ו-fwk_common.h תחת inc\ כפי שהם שונו עבור סדרת הערות היישום. הפעולות מוצגות באיור 4:NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (11)
  • מחק את התיקיה framework_cm7 תחת קבוצת libs והסר את הספרייה framework_cm7 ואת נתיב החיפוש שלה שהוגדר בפרויקט > מאפיינים > C/C++ Build > הגדרות > הגדרות כלי > MCU C++ Linker > ספריות מכיוון שקוד המקור של הליבה מסופק.

הפעל את תכונת זיהוי הפנים במסגרת
תכונת זיהוי הפנים בנויה על מודל אלגוריתם ML vision המסופק כספרייה סטטית - ספריית זמן ריצה של Oasis Lite של NXP. הספרייה היא ספריית בינה מלאכותית זעירה, יעילה ביותר, מותאמת אישית ומוטבת. הדגם כולל זיהוי פנים, זיהוי פנים, זיהוי זכוכית וזיהוי חיים. הוא מספק בעיקר את ה-API OASISLT_run_extended() כדי להפעיל את צינור זיהוי הפנים תוך עדכון תוצאות למתקשר באמצעות התקשרות חוזרת של אירועים, והוספה/עדכון/מחיקה של פרצופים במסד הנתונים דרך השיחות חוזרות במסד הנתונים לאחר ציון פרטי מסגרת המקור, התקשרויות וזיכרון מאגר המשמש את הספרייה על ידי קריאה ל-API אחר OASISLT_init() בעת האתחול. הקריאה ל-API ופונקציות ה-callback מיושמות ב-vision algo HAL של המסגרת.

הוסף ספריית מודלים של vision algo

  1. העתק את נווה התיקיות המכילה את הספרייה ואת הכותרת הקשורה file מ-Smart HMI\coffee_machine\cm7\libs\ לתוך תיקיית libs של האקסample SW.
  2. הוסף את נתיב החיפוש של הכותרת file ב-Project > Properties > C/C++ Build > Settings > Tool Settings > MCU C compiler > Includes ו-MCU C++ compiler > כולל: "${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 ו-MCU C++ compiler > Preprocessor: SMART_TLHMI_2D

אפשר vision algo HAL
ה-Vision algo HAL מניע את מודל ה-Vision algo לעבוד ומגיב לתוצאות לפלט HAL של ממשק המשתמש לאחר קבלת האירועים ממנו.

כדי לאפשר את זה, שכפל את מנהל ההתקן HAL הדומה הקיים file שבו מיושמות הפונקציות שלהלן:

  • יישם את ההתקשרות לאחור של פעולות מסד נתונים פנים וטיפול באירועים.
  • הניע את החזון אלגו לעבודה על ידי קריאה לממשקי ה-API של ספריית אואזיס.
  • גישה למסד הנתונים של פני המשתמש ולמסד הנתונים של האפליקציה (אין צורך ב-example).
  • קבל אירועים ושלח תוצאות לפלט 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, #include hal_sln_coffeedb.h.
  3. שנה את הפונקציה HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() לטיפול באירועים מממשק המשתמש של הפלט HAL.
    • שנה את הגדרת האירוע 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 במבנה _eventhmi.tl.tl. אז שנה את המבנה 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 תחת framework>hal>vision בפרויקט כמפורט להלן:
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • פועל, kOASISLiteState
      • נעצר, kOASISLiteState
      • הַכָּרָה,
      • kOASISLiteState
      • רישום, kOASISLiteState
      • ביטול הרישום, kOASISLiteState
      • רישום מרחוק, kOASISLiteState
      • לִסְפּוֹר
    • השתמש ב-struct המעודכן לעיל oasis_lite_state_t כדי לחדד את ה-struct oasis_state_event_t ב-hal_event_descriptor_face_rec.h תחת framework>hal>vision בפרוייקט כמפורט להלן: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
  5. שנה את כל ה-kEventInfo_Remote ל-kEventInfo_Local לשליחת אירועים מה-Vision algo HAL ל-HALs אחרים הפועלים על אותה ליבה כשליבה בודדת במקום כפול ליבה משמש ב-example.
  6. הוסף ושנה את התצורות הבאות לאתחול אואזיס ב-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) \
      • __attribute__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __attribute__((aligned(alignbytes)))
    • הגדר את הקצאת הזיכרון לסעיף הזיכרון לעיל fb_sh_mem בפרויקט > מאפיינים > בניית C/C++ > הגדרות MCU המוצגות באיור 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) \
      • attribute__((section(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • attribute__((aligned(alignbytes)))
    • כלול את הכותרת file hal_vision_algo.h המכיל את הגדרת המאקרו DTC_OPTIMIZE_BUFFER_SIZE ב-app_config.h הכלולה ב-lvgl_gui_face_rec_cm7.cpp.
  7. הגדר את המשתנה s_debugOption ל-true להצגת מצב ההתקדמות בזיהוי פנים.
  8. הוסף את נתיב החיפוש של הכותרת files של vision HAL בפרויקט > מאפיינים > C/C++ Build > הגדרות > הגדרות כלי > מהדר MCU C > כולל ומהדר MCU C++ > כולל: "${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. עם אפליקציית GUI, האירועים מופעלים בדרך כלל על ידי האפליקציה והתוצאות מוצגות באפליקציה.

כדי לאפשר את זה, שכפל את מנהל ההתקן HAL הדומה הקיים file כאשר בדרך כלל הפונקציות שלהלן מיושמות:

  • הודע לאירועים עבור זיהוי פנים וגישה למסד הנתונים.
  • יישם את ההתקשרות לאחור עבור אפליקציית GUI כדי להפעיל את האירועים.
  • טפל בתוצאות ההסקה ממודול vision algo.
  • הצג את התהליך והתוצאות של הטיפול באירועים בממשק המשתמש על ידי סרגל ההתקדמות שנשלט באמצעות הטיימרים ומלבן מדריך הפנים.

העבודות העיקריות ליישום ה-HAL עבור האקסampהמשמשים במסמך זה הם:

  • לשכפל את מנהל ההתקן HAL הדומה הקיים file ולשנות את השמות הקשורים.
  • הסר את הקודים הקשורים לאפליקציה.
  • עדכן את הפונקציות עבור הודעת האירועים ותגובת התוצאות לפי האקסampלעיצוב.
  • הוסף את ההתקשרות לאחור עבור אפליקציית GUI כדי להפעיל את האירועים.

השלבים המפורטים הם כדלקמן:

  1. שיבוט hal_output_ui_coffee_machine.c. לשנות את ה fileשם ל-hal_ output_ui_guifacerec.c.
  2. החלף את כל המחרוזות CoffeeMachine ב-GUIFaceRec ב- file.
  3. הסר את הקודים הקשורים לאפליקציה - מכונת קפה.
    • הסר את הפונקציות WakeUp() ו-_StandBy() ואת הקודים הקשורים (ייתכן לחפש במחרוזת wake_up והמתנה עבורם).
    • הסר מראשview אירועי מצב המטפלים בקודים קשורים ב-HAL_OutputDev_UiGUIFaceRec_Input Notify().
    • הסר את הפונקציות UI_xxx_Callback() ואת הקודים המכילים את המחרוזת gui_ ואת המסך הקשורים ל-GUI של מכונת הקפה למעט gui_set_virtual_face() עבור הפרהview תכונת מצב.
    • הסר את כל הקודים המעורבים במשתנים s_IsWaitingAnotherSelection ו-s_IsWaitingRegisterSelection הקשורים לאפליקציית מכונת הקפה.
    • הסר את הקודים הקשורים לקול, אודיו ושפה. למשלampעל:
      • #include "hal_voice_algo_asr_local.h",
      • #include "hal_event_descriptor_voice.h"
  4. עבור הודעת האירועים השונים, הטמיע את הפונקציות החדשות _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), ו-DeregisterGUIFaceRec() בהתייחסות לפונקציות _StopFaceRec(), _RegisterCoffeeSelection(), ו-DeregisterCoffeeSelection() לפני מחיקתן.
    • ה-_OutputManagerNotify() מיישם את פונקציית הפלט הבסיסית של האירוע כדי לשלוח אירוע ל-Vision algo HAL. הפונקציות שלהלן קוראים לזה לשלוח אירועים משלהן.
    • ה-_SetFaceRec() שולח את האירוע kEventFaceRecID_OasisSetState כדי להפעיל את אלגו הראייה לרישום פנים, זיהוי ועצירת האלגו.
    • ה-_RegisterGUIFaceRec() שולח את האירוע kEventFaceRecId_RegisterGUIFaceRec המוגדר ב-smart_tlhmi_event_descriptor.h כדי להוסיף נתוני תכונת פנים למסד הנתונים כאשר הרישום בסדר.
    • ה-DeregisterGUIFaceRec() שולח את האירוע kEventFaceRecID_DelUser למחוק את נתוני תכונת הפנים ממסד הנתונים בעת העברת זיהוי הפנים.
  5. עדכן את הקודים כדי לבצע את הפעולות המתאימות כולל רענון ה-GUI על ידי קריאה לממשקי ה-API מאפליקציית LVGL GUI לקבלת התוצאות של רישום וזיהוי פנים בפונקציה _InferComplete_Vision() לפי האקסampהעיצוב של le. למשלample, כאשר רישום הפנים מצליח,
    • הפסק להציג את ההתקדמות על ידי קריאה ל-_FaceRecProcess_Stop();
    • עצור את רישום הפנים על ידי קריאה ל-_SetFaceRec(kOASISLiteState_Stopped);
    • הצג את התוצאה המוצלחת ב-GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • רשום את נתוני הפנים למסד הנתונים: _RegisterUserFace(s_UserId);
  6. הוסף פונקציות התקשרות חוזרת בממשק המשתמש כדי לטפל באירועים: לפניview, רישום פנים, זיהוי ומחיקת משתמש שהופעלו מה-GUI. למשלample, הקריאה חזרה של רישום הפנים: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • והוסיפו את הפונקציות _FaceRecProcess_Start() ו-_FaceRecProcess_Stop() כדי להציג את ההתקדמות והסטטוס באירועים ובתוצאות השונות.
    • עדכן את פונקציית ה-Callback של טיימר ISR _SessionTimer_Callback() כדי לטפל במקרה של פסק זמן על ידי קריאה: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. הוסף את ההגדרות שלהלן כדי לאפשר פלט HAL של ממשק המשתמש ב-board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

הוֹדָעָה:
כדי להציג את תכונת זיהוי הפנים בצורה טובה יותר, שמור את הפונקציה להצגת התהליך והתוצאות של זיהוי פנים בממשק המשתמש של הפלט HAL. הפונקציה מתוארת להלן

  • מלבן מדריך הפנים מציג כחול, וסרגל ההתקדמות מציג את ההתקדמות בעת תחילת רישום הפנים או זיהוי הפנים.
  • מלבן מנחה הפנים מראה אדום כאשר רישום הפנים הצליח.
  • מלבן מנחה הפנים מראה ירוק כאשר זיהוי הפנים מצליח.
  • מלבן מנחה הפנים שומר על כחול, וסרגל ההתקדמות מציג התקדמות מלאה כאשר הפעולה לא מוצלחת לאחר פקיעת הטיימר. בשלב זה, עצור את רישום הפנים או זיהוי הפנים.

סרגל ההתקדמות ומלבן מדריך הפנים מוצגים כסמלים המובנים בבינארי המשאב file לתכנת בפלאש. המצביעים לנתוני הסמלים ב-SDRAM מוגדרים בפונקציה LoadIcons(APP_ICONS_BASE) הנקראת באתחול מכשיר ה-UI HAL בפלט ב-UI HAL של הפלט. עליו ליישם את תמיכת האייקונים עבור הפונקציה.

יישם את תמיכת הסמלים

  1. בנה את המשאב בשילוב הסמלים עם התמונות המשמשות באפליקציית LVGL GUI:
    • שכפל את כותרת ארבעת הסמלים files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, ו-virtual_face_red_420x426.h מ-HMI חכם
      \מכונת קפה\resource\icons\ לסמלי התיקיות החדשות מתחת לתיקיית המשאבים של האקסample SW.
    • הוסף את נתיב החיפוש עבור סמל הארבעה files ב-camera_preview_resource.txt file בתיקיית המשאבים, למשלample: icon ../resource/icons/process_bar_240x14.h
    • הפעל את camera_preview_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. הכתובת מתחילה ליד התמונות של אפליקציית GUI. הגודל נוצר במידע file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. עדכן את הגודל המוקצה של מקטע הזיכרון בשם res_sh_mem ל-0x200000 על ידי הגדרה מחדש ב-app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 וההגדרה המתאימה ב-Project > Properties > C/C++ Build > הגדרות MCU.
  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. פונקציות ה-callback של ממשק המשתמש בממשק ה-UI HAL של הפלט נקראות על ידי אפליקציית LVGL GUI לטיפול באירועים ממסך ממשק המשתמש. מצד שני, ממשק המשתמש של הפלט HAL קורא לממשקי ה-API מאפליקציית LVGL GUI כדי לעדכן את ממשק המשתמש כדי להציג את התוצאה והסטטוס. הפיתוח של אפליקציית LVGL GUI הוא עצמאי יחסית והוצג בסעיף 4.3.

4.1.5 הפעל מכשירים ומנהלי HAL לזיהוי פנים
ה-Vision Algo המאופשר 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

הוסף תמיכה במסד נתונים של פנים ב-framework
ניתן לגשת לנתוני תכונת הפנים הרשומים במסד הנתונים של הפנים המאוחסן ב-Flash באמצעות מעט file מערכת. השלבים להוספת תמיכת מסד הנתונים של הפנים מתוארים להלן.

הוסף מנהלי התקנים לאחסון Flash
העתק את מנהל ההתקן של ממשק Flash FlexSPI files fsl_flexspi.c ו-fsl_flexspi.h, ומנהל ההתקן להצפנת הנתונים files fsl_caam.c ו-fsl_caam.h מהנתיב SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ לתיקיית מנהלי ההתקן של ה-example SW.

הוסף תמיכה ברמת הלוח

  1. הוסף את ההגדרות של FlexSPI המשמש עבור מכשיר הפלאש על הלוח ב-board.h:
    • #define BOARD_FLEXSPI FLEXSPI1
    • #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. העתק את האופרטורים והתצורות files של מכשיר ה-Flash 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_7\coffee_flash the folder of the example SW.
    • בטל את הסימון "אל תכלול משאב מבנייה" ב-C/C++ Build > הגדרות לאחר לחיצה ימנית על fileשם s ופתיחת הנכסים כדי לאפשר להם להיות מובנים בפרויקט.
  3. שנה את הכותרת הכלולה fileשם sln_flash_config.h ל- sln_flash_config_w25q256jvs.h ב- sln_flash_config.c ו-flexspi_nor_flash_ops.h.
  4. הגדר את מקור השעון FlexSPI1 ב- file clock_config.c מתייחס לאפליקציית מכונת הקפה.

הוסף מתאם ותמיכה ברמה בינונית

  1. העתק את files sln_flash.c, sln_flash.h, sln_encrypt.c ו-sln_encrypt.h כמנהלי התקנים של מתאם עבור file מערכת ואפליקציה מהנתיב של smart HMI\coffee_machine\cm7\source\ למקור התיקייה של האקסample. עדכן את החדש files:
    • בטל את הסימון של "אל תכלול משאב מ-build" עליהם לבנייה.
    • שנה את כל הכותרת הכלולה file שם sln_flash_config.h ל- sln_flash_config_w25q256jvs.h.
  2. העתק את התיקיה fileמערכת המכילה את ממשקי ה-API לקטנים fileמנהל מערכת ו-HAL מ-HMI חכם \coffee_machine\cm7\source\ ל-example SW. ועדכן לתיקיה החדשה:
    • בטל את הסימון של "אל תכלול משאב מ-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 המכילה את כלי האמצע - little fileמערכת מהנתיב SDK_2_13_0_ MIMXRT1170-EVK\middleware\ לאקסample SW. ועדכן את התיקיה החדשה:
    • בטל את הסימון של "אל תכלול משאב מ-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 מערכת על ידי הוספת שורת הקוד: #include "fwk_flash.h"
    • להצהיר ולהירשם file מכשיר HAL מערכת:
      • HAL_FLASH_DEV_DECLARE(Littlefs);
      • HAL_FLASH_DEV_REGISTER(Littlefs, ret);
        פֶּתֶק: ה file התקן HAL של המערכת חייב להיות רשום לפני שכל מנהלי ההתקנים יאתחלו בפונקציה APP_InitFramework().
    • קרא לפונקציה BOARD_ConfigMPU() ב-APP_BoardInit() כדי להגדיר MPU.
  2. הגדר את file הקצאת מערכת ב-Flash ב- file app_config.h על ידי הגדרת הגדרות המאקרו המשמשות ב- file sln_flash_littlefs.h:
    • #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #define FICA_FILE_SYS_SIZE (0x280000)

תצורות
כמה קודים הקשורים ל-Flash מבוצעים באזור SRAM ITC לביצועים מספקים. העתק את ה-linkscripts של התיקייה המכילה את תצורות המקשר מהנתיב smart HMI\coffee_machine\cm7\ אל ה-example SW.

הטמעת אפליקציית LVGL GUI
הפיתוח של אפליקציית LVGL GUI המבוססת על מסגרת קורא ל-API מ-UI HAL של פלט ומספק את ממשקי ה-API לפלט UI HAL (ראה סעיף 4.1.3 להטמעת ממשק UI HAL של פלט).

עם זאת, היישום המפורט של אפליקציית LVGL GUI תלוי בדרישות ובעיצוב של האפליקציה. אפליקציית GUI בדוגמה זוample מתוכנן כמתואר בתחילת הסעיף סעיף 4.

להלן ההקדמה ליישום:

  1. הקודים המותאמים מיושמים ב-custom.c וב-custom.h שניתנו על ידי GUI Guider כממשק בין פרויקט GUI Guider לפרויקט המערכת המשובצת.
    •  הוסף את הפונקציות החדשות בשם gui_xxx() ב-custom.c כדי להשיג את הפונקציות הבאות:
      • עבור פלט UI HAL ואפליקציית GUI לעדכון ממשק משתמש.
      • עבור אפליקציית GUI להפעיל אירועים על ידי קריאה לפונקציות התקשרות חוזרת של ממשק המשתמש מממשק המשתמש של הפלט HAL.
        למשלample, הפונקציה החדשה gui_event_face_rec_action() קוראת לפונקציות התקשרות חוזרת של ממשק המשתמש כדי לטפל באחד מאירועי רישום הפנים, זיהוי הפנים ומחיקת המשתמש שהופעלו מאפליקציית ה-GUI כאשר הלחצן הקשור נלחץ.
        הערה: הפונקציה gui_set_virtual_face() נקראה בפלט UI HAL עבור preview יש ליישם את המצב ב-custom.c:
    •  שיבוט פונקציית gui_set_virtual_face() מ-HMI\מכונת קפה\cm4\custom\custom.c חכמה.
    •  שנה את שם הווידג'ט home_img_cameraPreview ל-screen_img_camera_preview בפונקציה.
    •  הטמיע את פונקציות ה-callback של ממשק המשתמש עם אותו אב טיפוס לכל אלה שנמצאות בממשק UI HAL של פלט תחת שליטה של ​​הגדרת המאקרו #ifndef RT_PLATFORM ב-custom.c כדי להיות תואמות לפרויקט GUI Guider מכיוון שפונקציות אלו בממשק המשתמש של הפלט HAL תלויות ב- פלטפורמה משובצת. ב-custom.c, הם תלויים בסימולטור על מנחה GUI והם בלתי תלויים בפלטפורמה המשובצת. למשלample, ה-callback של רישום הפנים מיושם כמפורט להלן עבור סימולטור GUI Guider הפועל: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; לַחֲזוֹר; }
      פֶּתֶק: עיין לאותו אב טיפוס של הפונקציה שהוצגה בשלב 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 כדי לשתף את ממשקי ה-GUI של ממשק המשתמש בפלט HAL.
  2. פתח את ה-GUI ב-GUI Guider:
    • שכבו את מצלמת התיקיה מראשview המכיל את תוכנת פרויקט GUI Guider בתיקייה gui_guider בחבילת התוכנה הבסיסית lvgl_gui_camera_preview_cm7. שנה את השם הקשור camera_preview ל-face_rec לאקס החדשample.
    • העתק את ה-custom.c המעודכן לעיל ו-custom. h לתוכנת הפרויקט GUI Guider החדשה.
    •  פתח את פרויקט face_rec החדש ב-GUI Guider. עדכן כמו להלן:
      • הוסף את הכפתור החדש שכותרתו מחק משתמש. הוסף אליו את הדגל Hidden כך שהלחצן יהיה מוסתר כאשר אפליקציית GUI מופעלת.
      • הוסף את שורת הקוד של קריאה ל-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לתוכנה ב https://mcuxpresso.nxp.com/appcodehub.

אימותים עם האקסampלפרויקט

להשיג את האקסampחבילת התוכנה המכילה את המשאבים והכלים להערת יישום זה, בקר ב: https://mcuxpresso.nxp.com/appcodehub. פתח את האקסampהפרויקט ב-MCUXpresso IDE. בנה ותכנת את ה-.axf file לכתובת 0x30000000 ותכנת את סל המשאבים file camera_preview_resource.bin לכתובת 0x30800000.

קוד זיהוי הפנים של LVGL GUIample עובד כרגיל כמו להלן:

  • מִרֹאשׁview: עם הפעלה, זרמי הווידאו שצולמו על ידי המצלמה מוצגים באזור הספציפי של המצלמהview במסך ה-GUI. תווית הסטטוס מציגה "Preview…”. לפרטים, ראה איור 3. הלחצן מחק משתמש מוסתר. בעת לחיצה על האזור שמחוץ ללחצנים ולתמונות, הוא מציג את ה-preview ציין כמפורט לעיל לאחר סיום פעולת רישום הפנים או הזיהוי.
  • הַרשָׁמָה:
    • tartup: כאשר לוחצים על כפתור הרישום, רישום הפנים מתחיל. תווית הסטטוס משתנה להצגת "רישום...", מלבן מדריך הפנים מראה כחול, וסרגל ההתקדמות מתחיל להציג את ההתקדמות. ודא שהפנים של המשתמש מופיעות לתוך מלבן מדריך הפנים הכחול לרישום.
    • הצלחה: תווית הסטטוס מציגה "רישום...אישור" ואת מספר זיהוי המשתמש הרשום, מלבן מדריך הפנים הופך לאדום אם רישום הפנים הצליח לפני שההתקדמות מוצגת במלואה בסרגל.
    • כשל -> פסק זמן: תווית הסטטוס מציגה "רישום...פסק זמן" אם רישום הפנים עדיין נכשל כאשר ההתקדמות מופיעה במלואה בסרגל.
    • כשל -> שכפול: תווית הסטטוס מציגה "רישום...נכשל", מלבן מנחה הפנים הופך לירוק אם הפנים הרשום מזוהות לפני שההתקדמות מוצגת במלואה בסרגל.
  • הכרה:
    • הפעלה: כאשר לוחצים על כפתור הזיהוי, זיהוי הפנים מתחיל. תווית הסטטוס משתנה להצגת "זיהוי...", מלבן מדריך הפנים מראה כחול, וסרגל ההתקדמות מתחיל להציג את ההתקדמות. ודא שהפנים של המשתמש מוצגות לתוך מלבן מדריך הפנים הכחול לצורך רישום.
    • הצלחה: תווית הסטטוס מציגה "זיהוי...אישור" ואת מספר זיהוי המשתמש המזוהה, מלבן מנחה הפנים הופך לירוק אם זיהוי הפנים הצליח לפני שההתקדמות מוצגת במלואה בסרגל. בשלב זה, הלחצן מחק משתמש מופיע. זה אומר שמותר למחוק את המשתמש רק כאשר הוא מזוהה.
    • ailure: תווית הסטטוס מציגה "זיהוי...פסק זמן" אם זיהוי הפנים עדיין נכשל כאשר ההתקדמות מופיעה במלואה בסרגל.
  • מחק משתמש: כאשר לוחצים על הכפתור "מחק משתמש", לאחר שזיהוי הפנים הצליח, תווית הסטטוס משתנה להצגת "מחק משתמש...אישור" כאשר מלבן מדריך הפנים הופך לכחול וההתקדמות מוצגת במלואה בסרגל. הלחצן מחק משתמש מוסתר שוב. הפנים/המשתמש המוכר נמחק ממסד הנתונים. זה אומר שלא ניתן לזהות את הפנים/המשתמש הזה עד שהוא נרשם שוב.

הערה לגבי קוד המקור במסמך
Exampלקוד המוצג במסמך זה יש את זכויות היוצרים ורישיון 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 Semiconductors.
  • הזכות לבצע שינויים — NXP Semiconductors שומרת לעצמה את הזכות לבצע שינויים במידע המתפרסם במסמך זה, לרבות ללא הגבלה מפרטים ותיאורי מוצרים, בכל עת וללא הודעה מוקדמת. מסמך זה מחליף ומחליף את כל המידע שסופק לפני פרסום זה.
  • התאמה לשימוש - מוצרי NXP Semiconductors אינם מתוכננים, מורשים או מתחייבים להיות מתאימים לשימוש במערכות או ציוד קריטי חיים או בטיחותיים, וגם לא ביישומים שבהם ניתן לצפות כי תקלה או תקלה במוצר NXP Semiconductors יגרמו באופן סביר. פציעה אישית, מוות או נזק חמור לרכוש או סביבתי. NXP Semiconductors וספקיה אינם נושאים באחריות להכללה ו/או שימוש במוצרי NXP Semiconductors בציוד או ביישומים כאמור ולפיכך הכללה ו/או שימוש כאמור היא באחריות הלקוח.
  • יישומים - יישומים המתוארים כאן עבור כל אחד מהמוצרים הללו הם למטרות המחשה בלבד. NXP Semiconductors אינה מציגה או מתחייבת שיישומים כאלה יתאימו לשימוש שצוין ללא בדיקות או שינויים נוספים.
    לקוחות אחראים לתכנון ולתפעול היישומים והמוצרים שלהם תוך שימוש במוצרי NXP Semiconductors, ו-NXP Semiconductors אינה נושאת באחריות לכל סיוע עם יישומים או עיצוב מוצרי הלקוח. באחריותו הבלעדית של הלקוח לקבוע האם מוצר NXP Semiconductors מתאים ומתאים ליישומים ולמוצרים המתוכננים של הלקוח, כמו גם ליישום והשימוש המתוכנן של לקוחות צד שלישי של הלקוח. לקוחות צריכים לספק אמצעי הגנה מתאימים לתכנון ולהפעלה כדי למזער את הסיכונים הקשורים ליישומים ולמוצרים שלהם. NXP Semiconductors אינה מקבלת כל אחריות הקשורה לכל מחדל, נזק, עלויות או בעיה אשר מבוססים על חולשה או ברירת מחדל באפליקציות או במוצרים של הלקוח, או באפליקציה או בשימוש על ידי לקוחות צד שלישי של הלקוח. הלקוח אחראי לבצע את כל הבדיקות הנדרשות עבור האפליקציות והמוצרים של הלקוח באמצעות מוצרי NXP Semiconductors על מנת למנוע ברירת מחדל של האפליקציות והמוצרים או של האפליקציה או השימוש על ידי לקוחות צד שלישי של הלקוח. NXP אינה מקבלת כל אחריות בהקשר זה.
  • תנאים והגבלות של מכירה מסחרית - מוצרי NXP Semiconductors נמכרים בכפוף לתנאים וההגבלות הכלליים של מכירה מסחרית, כפי שפורסמו בכתובת https://www.nxp.com/profile/תנאים, אלא אם הוסכם אחרת בהסכם אישי תקף בכתב. במקרה של הסכם פרטני יחולו רק התנאים וההתניות של ההסכם המתאים. NXP Semiconductors מתנגדת בזאת במפורש להחלת התנאים וההגבלות הכלליים של הלקוח בכל הנוגע לרכישת מוצרי NXP Semiconductors על ידי הלקוח.
  • בקרת יצוא - מסמך זה כמו גם הפריטים המתוארים כאן עשויים להיות כפופים לתקנות בקרת יצוא. ייצוא עשוי לדרוש אישור מראש מהרשויות המוסמכות.
  • התאמה לשימוש במוצרים שאינם מוסמכים לרכב - אלא אם כן מסמך זה מציין במפורש שהמוצר הספציפי הזה של NXP Semiconductors הוא מוסמך לרכב, המוצר אינו מתאים לשימוש ברכב. זה לא מוסמך ולא נבדק בהתאם לבדיקות רכב או דרישות יישום. NXP Semiconductors אינה נושאת באחריות להכללה ו/או שימוש במוצרים שאינם מוסמכים לרכב בציוד או ביישומי רכב.
    במקרה שהלקוח ישתמש במוצר לצורך עיצוב ושימוש ביישומי רכב לפי מפרטי רכב ותקנים, הלקוח (א) ישתמש במוצר ללא אחריות של NXP Semiconductors על המוצר עבור יישומי רכב, שימוש ומפרטים כאלה, ו( ב) בכל פעם שהלקוח משתמש במוצר ליישומי רכב מעבר למפרטים של NXP Semiconductors, שימוש כזה יהיה על אחריותו בלבד של הלקוח, ו-(ג) הלקוח ישפה באופן מלא את NXP Semiconductors בגין כל חבות, נזק או תביעות מוצר כושלות הנובעות מתכנון ושימוש הלקוח במוצר. המוצר ליישומי רכב מעבר לאחריות הסטנדרטית של NXP Semiconductors ומפרטי המוצר של NXP Semiconductors.
  • תרגומים - גרסה שאינה אנגלית (מתורגמת) של מסמך, כולל המידע המשפטי באותו מסמך, היא לעיון בלבד. הגרסה האנגלית תגבר במקרה של אי התאמה בין הגרסה המתורגמת לאנגלית.
  • בִּטָחוֹן - הלקוח מבין שכל מוצרי NXP עשויים להיות כפופים לפרצות לא מזוהות או שהם עשויים לתמוך בתקני אבטחה או מפרטים שנקבעו עם מגבלות ידועות. הלקוח אחראי על התכנון והתפעול של היישומים והמוצרים שלו לאורך מחזור החיים שלהם כדי להפחית את ההשפעה של נקודות תורפה אלו על האפליקציות והמוצרים של הלקוח. אחריות הלקוח משתרעת גם על טכנולוגיות פתוחות ו/או קנייניות אחרות הנתמכות על ידי מוצרי NXP לשימוש ביישומי הלקוח. NXP אינה נושאת באחריות לכל פגיעות. על הלקוח לבדוק באופן קבוע עדכוני אבטחה מ-NXP ולעקוב כראוי. הלקוח יבחר מוצרים בעלי תכונות אבטחה העומדות בצורה הטובה ביותר בחוקים, תקנות ותקנים של היישום המיועד ויקבל את החלטות העיצוב הסופיות לגבי מוצריו והוא האחראי הבלעדי לעמידה בכל הדרישות החוקיות, הרגולטוריות והאבטחה הקשורות למוצריו, ללא קשר. של כל מידע או תמיכה שעשויים להיות מסופקים על ידי NXP.

ל-NXP יש צוות תגובה לאירועי אבטחת מוצר (PSIRT) (ניתן להגיע אליו בכתובת PSIRT@nxp.com) שמנהל את החקירה, הדיווח ושחרור הפתרונות לפרצות אבטחה של מוצרי NXP.
NXP BV - NXP BV אינה חברה תפעולית והיא אינה מפיצה או מוכרת מוצרים.

סימני מסחר
הוֹדָעָה: כל המותגים המוזכרים, שמות המוצרים, שמות השירותים והסימנים המסחריים הם רכושם של בעליהם בהתאמה.

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, Versatile — הם סימנים מסחריים ו/או סימנים מסחריים רשומים של Arm Limited (או חברות הבת או החברות שלו) בארה"ב ו/או בְּמָקוֹם אַחֵר. הטכנולוגיה הקשורה עשויה להיות מוגנת על ידי פטנטים, זכויות יוצרים, מדגמים וסודות מסחריים או כולם. כל הזכויות שמורות.

  • i.MX — הוא סימן מסחרי של NXP BV
  • J-Link - הוא סימן מסחרי של SEGGER Microcontroller GmbH.

Microsoft, Azure ו-ThreadX - הם סימנים מסחריים של קבוצת החברות של Microsoft.

אנא שים לב שהודעות חשובות הנוגעות למסמך זה ולמוצרים המתוארים כאן, נכללו בסעיף 'מידע משפטי'.

© 2024 NXP BV
למידע נוסף, בקר בכתובת: https://www.nxp.com

  • תאריך שחרור: 19 באפריל 2024
  • מזהה מסמך: AN14263

שאלות נפוצות

ש: מה המטרה העיקרית של מוצר זה?
ת: המטרה העיקרית היא לאפשר פונקציית זיהוי פנים באמצעות מודל אלגוריתם ראייה AI&ML עם דוגמה פשוטה של ​​LVGL GUIample בלוח SLN-TLHMI-IOT.

ש: איך מפתחים יכולים להפיק תועלת מהערת אפליקציה זו?
ת: מפתחים יכולים ללמוד כיצד ליישם זיהוי פנים על המסגרת צעד אחר צעד באמצעות האקס שסופקampלהבין את מנהלי ההתקנים, התקני HAL ומנגנוני האירועים המעורבים.

מסמכים / משאבים

NXP AN14263 יישם זיהוי פנים של LVGL GUI על Framewor [pdfמדריך למשתמש
AN14263 יישם זיהוי פנים של LVGL GUI על Framewor, AN14263, הטמע זיהוי פנים של LVGL GUI על Framewor, LVGL GUI זיהוי פנים על Framewor, זיהוי פנים על Framewor, זיהוי על Framewor, Framewor

הפניות

השאר תגובה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *