โลโก้ nxp

NXP AN14263 ใช้การจดจำใบหน้า LVGL GUI บน Framewor

NXP-AN14263-Implement-LVGL-GUI การจดจำใบหน้าบนเฟรมผลิตภัณฑ์

ข้อมูลสินค้า

ข้อมูลจำเพาะ

  • ชื่อสินค้า : การจดจำใบหน้า LVGL GUI บนกรอบงาน
  • การแก้ไขเอกสาร: 1 – 19 เมษายน 2024
  • คำสำคัญ: การจดจำใบหน้า, LVGL GUI, กรอบงาน

คำแนะนำการใช้ผลิตภัณฑ์

  1. เกินview
    ผลิตภัณฑ์นี้เปิดใช้งานโมเดลอัลกอริธึมการมองเห็น AI&ML สำหรับการจดจำใบหน้าบนเฟรมเวิร์กเพื่อใช้ฟังก์ชันการจดจำใบหน้าด้วย LVGL GUI แบบธรรมดาampบนบอร์ด SLN-TLHMI-IOT
  2. กรอบเกินview
    ซอฟต์แวร์โซลูชันได้รับการออกแบบโดยใช้สถาปัตยกรรมเฟรมเวิร์กซึ่งรวมถึงตัวจัดการอุปกรณ์ที่รับผิดชอบในการจัดการอุปกรณ์ อุปกรณ์ HAL ไปจนถึงรายละเอียดพื้นฐานที่เป็นนามธรรม และกิจกรรมสำหรับการสื่อสารระหว่างอุปกรณ์ต่างๆ
  3. คุณสมบัติ
    ผลิตภัณฑ์นี้ช่วยให้สามารถใช้ฟังก์ชันการจดจำใบหน้าผ่านกล้องล่วงหน้าได้view บนหน้าจอ GUI พร้อมปุ่มเพื่อทริกเกอร์การลงทะเบียนใบหน้า การจดจำ และการลบออก ข้อมูลใบหน้าที่ลงทะเบียนไว้จะถูกจัดเก็บไว้ใน Flash ผ่านทาง file ระบบ.
  4. เนื้อหาหมายเหตุการใช้งาน
    หมายเหตุแอปพลิเคชันแสดงหน้าจอ LVGL GUI พร้อมกล้องล่วงหน้าview และปุ่มสำหรับการดำเนินการที่เกี่ยวข้องกับใบหน้า ช่วยให้นักพัฒนาเข้าใจกรอบงานและวิธีการใช้งานการจดจำใบหน้าโดยใช้ตัวอย่างที่ให้มาampเล.

เกินview

NXP ได้เปิดตัวชุดพัฒนาโซลูชันชื่อ SLN-TLHMI-IOT ซึ่งมุ่งเน้นไปที่แอปพลิเคชัน HMI อัจฉริยะ ช่วยให้ HMI อัจฉริยะด้วย UI การมองเห็น เสียง และกราฟิกของ ML ที่ใช้งานบน MCU NXP i.MX RT117H หนึ่งตัว ซอฟต์แวร์โซลูชันนี้ใช้ SDK สร้างขึ้นบนการออกแบบที่เรียกว่าเฟรมเวิร์ก ซึ่งสนับสนุนการออกแบบที่ยืดหยุ่นและการปรับแต่งฟังก์ชันการมองเห็นและเสียง เพื่อช่วยให้ผู้ใช้ใช้แพลตฟอร์มซอฟต์แวร์ได้ดีขึ้น มีการจัดเตรียมเอกสารพื้นฐานบางอย่างไว้ เช่นampคู่มือผู้ใช้การพัฒนาซอฟต์แวร์ คู่มือนี้จะแนะนำการออกแบบซอฟต์แวร์พื้นฐานและสถาปัตยกรรมของแอปพลิเคชันที่ครอบคลุมส่วนประกอบทั้งหมดของโซลูชัน รวมถึงเฟรมเวิร์กเพื่อช่วยให้นักพัฒนานำแอปพลิเคชันไปใช้ได้อย่างง่ายดายและมีประสิทธิภาพยิ่งขึ้นโดยใช้ SLN-TLHMI-IOT
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับโซลูชันและเอกสารที่เกี่ยวข้อง โปรดไปที่ web หน้าของโซลูชัน HMI อัจฉริยะ NXP EdgeReady ที่ใช้ i.MX RT117H พร้อม ML Vision, Voice และ UI แบบกราฟิก อย่างไรก็ตาม ก็ยังไม่ใช่เรื่องง่ายสำหรับนักพัฒนาที่จะนำแอปพลิเคชัน HMI อันชาญฉลาดของตนไปใช้โดยอ้างอิงตามคำแนะนำพื้นฐานเหล่านี้ มีการวางแผนชุดบันทึกการใช้งานเพื่อช่วยศึกษาการพัฒนากรอบการทำงานทีละขั้นตอน หมายเหตุการใช้งานนี้อิงตาม Implement LVGL GUI Camera Preview บนกรอบงาน (เอกสาร AN14147) หมายเหตุแอปพลิเคชันนี้อธิบายวิธีเปิดใช้งานโมเดลอัลกอริธึมการมองเห็น AI&ML สำหรับการจดจำใบหน้าบนเฟรมเวิร์ก เพื่อใช้ฟังก์ชันการจดจำใบหน้าผ่านกล้องล่วงหน้าview บนหน้าจอ GUI ด้วย LVGL GUI แบบธรรมดา เช่นampบนบอร์ด SLN-TLHMI-IOT ในบันทึกการใช้งาน เช่นample นำเสนอหน้าจอ LVGL GUI พร้อมกล้องล่วงหน้าview และปุ่มบางปุ่มเพื่อเริ่มการลงทะเบียนใบหน้า การจดจำ และการลบออก ข้อมูลใบหน้าที่ลงทะเบียนไว้จะถูกจัดเก็บไว้ใน Flash เพียงเล็กน้อย file ระบบ.

ในระดับสูง หมายเหตุการใช้งานประกอบด้วยเนื้อหาด้านล่าง:

  • เปิดใช้งานคุณสมบัติการจดจำใบหน้าบนเฟรมเวิร์ก
  • เพิ่มการรองรับฐานข้อมูลใบหน้าบนเฟรมเวิร์กผ่าน file ระบบบนแฟลช
  • ใช้แอป LVGL GUI จากการแนะนำข้างต้น เอกสารนี้ช่วยให้นักพัฒนาสามารถ:
  • ทำความเข้าใจเฟรมเวิร์กและซอฟต์แวร์โซลูชัน HMI อัจฉริยะอย่างลึกซึ้งยิ่งขึ้น
  • พัฒนาการจดจำใบหน้า AI&ML บนเฟรมเวิร์กด้วยแอป LVGL GUI

หมดกรอบแล้วview
ซอฟต์แวร์โซลูชันได้รับการออกแบบมาโดยหลักโดยใช้สถาปัตยกรรมเฟรมเวิร์กที่ประกอบด้วยส่วนต่างๆ มากมาย:

  • ตัวจัดการอุปกรณ์ – ส่วนหลัก
  • อุปกรณ์ฮาร์ดแวร์ Abstraction Layer (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 แบบฝังที่มีองค์ประกอบกราฟิกที่ใช้งานง่าย เอฟเฟกต์ภาพที่สวยงาม และขนาดหน่วยความจำเหลือน้อย

คู่มือ GUI
GUI Guider เป็นเครื่องมือพัฒนาส่วนติดต่อผู้ใช้แบบกราฟิกที่เป็นมิตรต่อผู้ใช้จาก NXP ซึ่งช่วยให้สามารถพัฒนาจอแสดงผลคุณภาพสูงได้อย่างรวดเร็วด้วยไลบรารีกราฟิกโอเพ่นซอร์ส LVGL เครื่องมือแก้ไขแบบลากและวางของ GUI Guider ทำให้ง่ายต่อการใช้คุณสมบัติต่างๆ ของ LVGL เช่น วิดเจ็ต ภาพเคลื่อนไหว และสไตล์ เพื่อสร้าง GUI ที่มีการเขียนโค้ดน้อยที่สุดหรือไม่มีเลย

ด้วยการคลิกปุ่ม คุณสามารถเรียกใช้แอปพลิเคชันของคุณในสภาพแวดล้อมจำลองหรือส่งออกไปยังโปรเจ็กต์เป้าหมายได้ คุณสามารถเพิ่มโค้ดที่สร้างจาก GUI Guider ลงในโปรเจ็กต์ของคุณได้อย่างง่ายดาย ช่วยเร่งกระบวนการพัฒนา และช่วยให้คุณสามารถเพิ่มอินเทอร์เฟซผู้ใช้แบบฝังลงในแอปพลิเคชันของคุณได้อย่างราบรื่น GUI Guider ใช้งานได้ฟรีกับวัตถุประสงค์ทั่วไปและ MCU แบบครอสโอเวอร์ของ NXP และมีเทมเพลตโปรเจ็กต์ในตัวสำหรับแพลตฟอร์มที่รองรับหลายแพลตฟอร์ม หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการพัฒนา LVGL และ GUI บน GUI Guider ให้ตรวจสอบไลบรารีกราฟิก Light และอเนกประสงค์และ 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 ที่ v1.1.2

สำหรับรายละเอียดเกี่ยวกับการได้มาและการตั้งค่าสภาพแวดล้อมซอฟต์แวร์ โปรดดูที่: การเริ่มต้นใช้งาน SLN-TLHMI-IOT

สถาปัตยกรรมวิสัยทัศน์บนกรอบงาน

สถาปัตยกรรมวิชันซิสเต็มบนเฟรมเวิร์กแสดงในรูปที่ 2 วิชันอัลโก HAL (OASIS_HAL) มีกระบวนการด้านล่าง:

  • ลงทะเบียนและการจดจำใบหน้าผ่านโมเดลอัลกอริธึมการมองเห็น AI&ML หลังจากได้รับเหตุการณ์ที่เกี่ยวข้องจากเอาต์พุต UI HAL แจ้งผลการอนุมานจากโมเดลอัลกอริทึมไปยังเอาต์พุต UI HAL
  • เข้าถึง (เพิ่ม ลบ...) ฐานข้อมูลฟีเจอร์ใบหน้าโดยยึดตามข้อมูลเพียงเล็กน้อย file โดยการเรียก API ของ FaceDB HAL หลังจากได้รับเหตุการณ์ที่เกี่ยวข้องจากเอาต์พุต UI HAL
  • ขอกรอบวิดีโอของกล้องจากกล้อง HAL เมื่อทำการลงทะเบียนและการจดจำใบหน้า

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

ใช้การจดจำใบหน้าบนกรอบงาน

การจดจำใบหน้า LVGL GUI เช่นampเลอ (เช่นample มีให้ในภายหลัง) บนกรอบงานจะถูกนำไปใช้ตามตัวอย่างampรหัสของ Implement LVGL GUI Camera Preview บนกรอบงาน (เอกสาร AN14147)

เพื่อสาธิตการจดจำใบหน้าในอดีตampฟังก์ชันพื้นฐานของแอป GUI (ดูหน้าจอหลักในรูปที่ 3) ได้รับการออกแบบตามที่อธิบายไว้ด้านล่าง:

  • แอพ GUI จะทริกเกอร์เหตุการณ์การลงทะเบียนใบหน้าหรือการจดจำไปยังเอาต์พุต UI HAL เมื่อคลิกปุ่มการลงทะเบียนหรือการจดจำ และ UI เอาต์พุต HAL จะแจ้งเตือนเหตุการณ์การเพิ่มผู้ใช้ไปยังอัลโกวิชัน HAL หลังจากการลงทะเบียนใบหน้าสำเร็จ
  • แอพ GUI จะทริกเกอร์เหตุการณ์การลบผู้ใช้ไปยังเอาต์พุต UI HAL เมื่อคลิกปุ่มลบผู้ใช้หลังจากจดจำใบหน้าของผู้ใช้แล้ว
  • แอป GUI จะทริกเกอร์เหตุการณ์การหยุดอัลโกโอเอซิสที่ทำงานไปยังเอาต์พุต UI HAL เมื่อคลิกที่หน้าจอด้านนอกปุ่มและรูปภาพ

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

เตรียมแพ็คเกจซอฟต์แวร์สำหรับการใช้งานเช่นampเล.

  • โคลนซอฟต์แวร์พื้นฐาน 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 และพาธการค้นหาที่กำหนดค่าไว้ใน Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries เนื่องจากมีซอร์สโค้ดของคอร์มาให้

เปิดใช้งานคุณสมบัติการจดจำใบหน้าบนเฟรมเวิร์ก
คุณลักษณะการจดจำใบหน้าสร้างขึ้นจากโมเดลอัลกอริธึมการมองเห็น ML ที่เป็นไลบรารีแบบคงที่ ซึ่งเป็นไลบรารีรันไทม์ oasis lite โดย NXP ไลบรารีนี้เป็นไลบรารี AI ขนาดเล็กที่มีประสิทธิภาพสูง ปรับแต่งได้ และปรับให้เหมาะสมที่สุด โมเดลนี้ประกอบด้วยการตรวจจับใบหน้า การจดจำใบหน้า การตรวจจับกระจก และการตรวจจับความมีชีวิตชีวา โดยส่วนใหญ่จะจัดเตรียม API OASISLT_run_extensted() เพื่อเรียกใช้ไปป์ไลน์การจดจำใบหน้าในขณะที่อัปเดตผลลัพธ์ให้กับผู้โทรผ่านการเรียกกลับเหตุการณ์ และเพิ่ม/อัปเดต/ลบใบหน้าในฐานข้อมูลผ่านการเรียกกลับฐานข้อมูลใบหน้าหลังจากระบุข้อมูลเฟรมต้นทาง การเรียกกลับ และหน่วยความจำ พูลที่ใช้โดยไลบรารีโดยการเรียก API OASISLT_init() อื่นในการเริ่มต้น การเรียก API และฟังก์ชันการโทรกลับถูกนำมาใช้ในวิชันอัลโก HAL ของเฟรมเวิร์ก

เพิ่มไลบรารีโมเดลการมองเห็นอัลโก

  1. คัดลอกโฟลเดอร์โอเอซิสที่มีไลบรารีและส่วนหัวที่เกี่ยวข้อง file จาก smart HMI\coffee_machine\cm7\libs\ ลงในโฟลเดอร์ libs ของอดีตampเลอ สว.
  2. เพิ่มเส้นทางการค้นหาของส่วนหัว file ในโครงการ > คุณสมบัติ > การสร้าง C/C++ > การตั้งค่า > การตั้งค่าเครื่องมือ > คอมไพเลอร์ MCU C > รวมและคอมไพเลอร์ MCU C++ > รวม: “${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}” และคำจำกัดความของแมโครไปที่ เปิดใช้งานคุณสมบัติบนโปรเจ็กต์ > คุณสมบัติ > การสร้าง C/C++ > การตั้งค่า > การตั้งค่าเครื่องมือ > คอมไพเลอร์ MCU C > คอมไพเลอร์ตัวประมวลผลล่วงหน้าและ MCU C++ > ตัวประมวลผลล่วงหน้า: SMART_TLHMI_2D

เปิดใช้งานการมองเห็นอัลโก 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 (ไม่คำนึงถึงขนาดตัวพิมพ์) ที่เกี่ยวข้องกับฐานข้อมูลแอป เช่นampเลอ #รวม hal_sln_coffeedb.h
  3. ปรับเปลี่ยนฟังก์ชัน HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() เพื่อจัดการเหตุการณ์จาก UI เอาต์พุต HAL
    • เปลี่ยนคำจำกัดความเหตุการณ์ kEventFaceRecId_RegisterCoffeeSelection เป็น kEventFaceRecId_RegisterUserFace และสตริงโครงสร้าง regCoffeeSelection เป็น regGUIFaceRec สำหรับการจัดการเหตุการณ์เพื่อเพิ่มข้อมูลคุณลักษณะใบหน้าใหม่ลงในฐานข้อมูล
    • เพื่อแสดงกระบวนการมาตรฐานของการจดจำใบหน้าเช่นampจากนั้น ให้แก้ไขการจัดการในกรณีของ kEventFaceRecID_OasisSetState ด้วยคำจำกัดความของสถานะ:
      • kOASISliteState
      • การลงทะเบียน kOASISLiteState
      • การรับรู้ kOASISLiteState
      • หยุดแล้ว
  4. เพิ่มและแก้ไขคำจำกัดความของเหตุการณ์ที่กล่าวถึงในขั้นตอนข้างต้น
    • คัดลอกส่วนหัว file smart_tlhmi_event_descriptor.h จาก smart HMI\coffee_machine \cm7\source\event_handlers\ ลงในโฟลเดอร์ source ของ exampเลอ สว. อัพเดต file ดังต่อไปนี้:
    • เปลี่ยนคำจำกัดความเหตุการณ์ kEventFaceRecId_RegisterCoffeeSelection เป็น kEventFaceRecId_RegisterUserFace ในประเภท enum _event_smart_tlhmi_id และสตริงโครงสร้าง regCoffeeSelection เป็น regGUIFaceRec ใน struct _event_smart_tlhmi ดังนั้น เปลี่ยน struct 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 เพื่อส่งเหตุการณ์จากวิชั่นอัลโก HAL ไปเป็น HAL อื่น ๆ ที่ทำงานบนคอร์เดียวกันกับคอร์เดี่ยวแทนที่จะเป็นดูอัลคอร์ที่ใช้ในอดีตampเล.
  6. เพิ่มและแก้ไขการกำหนดค่าด้านล่างสำหรับการเริ่มต้นโอเอซิสใน 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_SHEMEM_SECTION_ALIGN(var, alignbytes) \
      • __attribute__((section(“.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 ให้เป็นจริงเพื่อแสดงสถานะความคืบหน้าในการจดจำใบหน้า
  8. เพิ่มเส้นทางการค้นหาของส่วนหัว fileของวิสัยทัศน์ HAL บนโปรเจ็กต์ > คุณสมบัติ > การสร้าง C/C++ > การตั้งค่า > การตั้งค่าเครื่องมือ > คอมไพเลอร์ MCU C > รวมและคอมไพเลอร์ MCU C++ > รวม: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. เพิ่มคำจำกัดความด้านล่างเพื่อเปิดใช้งานการมองเห็นอัลโก HAL ใน board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

เปิดใช้งานเอาต์พุต UI HAL
UI เอาต์พุต HAL แจ้งเตือนเหตุการณ์ไปยังอัลโกวิชั่น HAL และตอบสนองต่อผลลัพธ์การอนุมานจากอัลโกวิชั่น HAL ด้วยแอป GUI โดยทั่วไปเหตุการณ์ต่างๆ จะถูกทริกเกอร์โดยแอป และผลลัพธ์จะแสดงบนแอป

หากต้องการเปิดใช้งาน ให้โคลนไดรเวอร์ HAL ที่คล้ายกันที่มีอยู่ file โดยทั่วไปจะมีการใช้ฟังก์ชันด้านล่างนี้:

  • แจ้งเหตุการณ์การจดจำใบหน้าและการเข้าถึงฐานข้อมูล
  • ใช้การโทรกลับสำหรับแอป GUI เพื่อทริกเกอร์เหตุการณ์
  • จัดการผลลัพธ์การอนุมานจากโมดูลวิชันอัลโก
  • แสดงกระบวนการและผลลัพธ์ของการจัดการเหตุการณ์บน UI โดยแถบความคืบหน้าที่ควบคุมด้วยตัวจับเวลาและสี่เหลี่ยมคำแนะนำใบหน้า

งานสำคัญในการดำเนินการ 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 และ standby สำหรับฟังก์ชันเหล่านั้น)
    • ลบออกก่อน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”,
      • #รวม “hal_event_descriptor_voice.h”
  4. สำหรับการแจ้งเตือนเหตุการณ์ต่างๆ ให้ใช้ฟังก์ชันใหม่ _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() และ DeregisterGUIFaceRec() โดยอ้างถึงฟังก์ชัน _StopFaceRec(), _RegisterCoffeeSelection() และ DeregisterCoffeeSelection() ก่อนที่จะลบออก
    • _OutputManagerNotify() ใช้ฟังก์ชันเอาต์พุตเหตุการณ์พื้นฐานเพื่อส่งเหตุการณ์ไปยังวิชันอัลโก HAL ฟังก์ชั่นด้านล่างเรียกมันเพื่อส่งกิจกรรมของตัวเอง
    • _SetFaceRec() จะส่งเหตุการณ์ kEventFaceRecID_OasisSetState เพื่อทริกเกอร์วิชันอัลโกสำหรับการลงทะเบียนใบหน้า การจดจำ และหยุดอัลโก
    • _RegisterGUIFaceRec() จะส่งเหตุการณ์ kEventFaceRecId_RegisterGUIFaceRec ที่กำหนดไว้ใน smart_tlhmi_event_descriptor.h เพื่อเพิ่มข้อมูลคุณลักษณะใบหน้าลงในฐานข้อมูลเมื่อการลงทะเบียนตกลง
    • DeregisterGUIFaceRec() จะส่งเหตุการณ์ kEventFaceRecID_DelUser เพื่อลบข้อมูลฟีเจอร์ใบหน้าออกจากฐานข้อมูลเมื่อผ่านการจดจำใบหน้า
  5. อัปเดตโค้ดเพื่อดำเนินการที่เกี่ยวข้อง รวมถึงการรีเฟรช GUI โดยการเรียก API จากแอป LVGL GUI สำหรับผลการอนุมานของการลงทะเบียนใบหน้าและการจดจำในฟังก์ชัน _InferComplete_Vision() ต่อตัวอย่างampการออกแบบของเลอ สำหรับเช่นampเมื่อการลงทะเบียนใบหน้าสำเร็จ
    • หยุดแสดงความคืบหน้าโดยเรียก _FaceRecProcess_Stop();
    • หยุดการลงทะเบียนใบหน้าโดยโทร _SetFaceRec(kOASISLiteState_Stopped);
    • แสดงผลลัพธ์ที่สำเร็จบน GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • ลงทะเบียนข้อมูลใบหน้าไปยังฐานข้อมูล: _RegisterUserFace(s_UserId);
  6. เพิ่มฟังก์ชันการโทรกลับ UI เพื่อจัดการเหตุการณ์: ก่อนviewการลงทะเบียนใบหน้า การจดจำ และการลบผู้ใช้ที่ถูกทริกเกอร์จาก GUI สำหรับเช่นample, การโทรกลับการลงทะเบียนใบหน้า: ถือเป็นโมฆะ 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. เพิ่มคำจำกัดความด้านล่างเพื่อเปิดใช้งานเอาต์พุต UI HAL ใน board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

สังเกต:
หากต้องการนำเสนอคุณสมบัติการจดจำใบหน้าให้ดีขึ้น ให้เก็บฟังก์ชันไว้เพื่อแสดงกระบวนการและผลลัพธ์ของการจดจำใบหน้าใน UI HAL เอาท์พุต ฟังก์ชั่นอธิบายไว้ด้านล่าง

  • รูปสี่เหลี่ยมผืนผ้าแสดงใบหน้าจะแสดงเป็นสีน้ำเงิน และแถบความคืบหน้าจะแสดงความคืบหน้าเมื่อเริ่มการลงทะเบียนหรือการจดจำใบหน้า
  • รูปสี่เหลี่ยมแนะนำใบหน้าจะแสดงเป็นสีแดงเมื่อการลงทะเบียนใบหน้าสำเร็จ
  • รูปสี่เหลี่ยมแนะนำใบหน้าจะแสดงเป็นสีเขียวเมื่อการจดจำใบหน้าสำเร็จ
  • รูปสี่เหลี่ยมแนะนำใบหน้ายังคงเป็นสีน้ำเงิน และแถบความคืบหน้าจะแสดงความคืบหน้าทั้งหมดเมื่อดำเนินการไม่สำเร็จหลังจากหมดเวลาของตัวจับเวลา เมื่อถึงจุดนั้น ให้หยุดการลงทะเบียนหรือการจดจำใบหน้า

แถบความคืบหน้าและสี่เหลี่ยมคำแนะนำใบหน้าจะแสดงเป็นไอคอนที่สร้างไว้ในไบนารีของทรัพยากร file เพื่อนำไปตั้งโปรแกรมเป็น Flash ตัวชี้ไปยังข้อมูลไอคอนบน 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 จาก smart HMI
      \coffee machine\resource\icons\ ไปยังไอคอนโฟลเดอร์ใหม่ภายใต้โฟลเดอร์ทรัพยากรของอดีตampเลอ สว.
    • เพิ่มเส้นทางการค้นหาสำหรับไอคอนทั้งสี่ fileอยู่ในกล้อง_preview_resource.txt file ในโฟลเดอร์ทรัพยากร เช่นampเลอ: ไอคอน ../resource/icons/process_bar_240x14.h
    • ดำเนินการ camera_preview_resource_build.bat เพื่อสร้างทรัพยากรรูปภาพและไอคอนเพื่อสร้างถังขยะ file กล้อง_preview_resource.bin และข้อมูล file resources_information_table.txt (ดูรูปที่ 6)NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (13)
  2. กำหนดที่อยู่เริ่มต้นบน SDRAM และขนาดของไอคอนใน app_config.h ที่อยู่เริ่มต้นถัดจากรูปภาพของแอป GUI ขนาดถูกสร้างขึ้นในข้อมูล file- #กำหนด APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #กำหนด APP_ICONS_SIZE 0x107c40
  3. อัปเดตขนาดที่กำหนดของส่วนหน่วยความจำชื่อ res_sh_mem เป็น 0x200000 โดยกำหนดใหม่ใน app_config.h: #define RES_SHEMEM_TOTAL_SIZE 0x200000 และการตั้งค่าที่เกี่ยวข้องใน Project > Properties > C/C++ Build > การตั้งค่า MCU
  4. เพิ่มขนาดไอคอนเป็นขนาดรวมของทรัพยากรที่โหลดจาก Flash ไปยัง SDRAM ในฟังก์ชัน APP_LoadResource() ในเมนูหลัก file lvgl_gui_face_rec_cm7.cpp: memcpy ((เป็นโมฆะ *) APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

สังเกต: เพื่อให้คุณสมบัติการจดจำใบหน้าเสร็จสมบูรณ์ จำเป็นต้องมีการรองรับแอป LVGL GUI ฟังก์ชันการเรียกกลับ UI ในเอาต์พุต UI HAL ถูกเรียกโดยแอป LVGL GUI เพื่อจัดการเหตุการณ์จากหน้าจอ UI ในทางกลับกัน UI เอาต์พุต HAL จะเรียก API จากแอป LVGL GUI เพื่ออัปเดต UI เพื่อแสดงผลลัพธ์และสถานะ การพัฒนาแอป LVGL GUI ค่อนข้างเป็นอิสระและนำมาใช้ในส่วน 4.3

4.1.5 เริ่มอุปกรณ์ HAL และผู้จัดการสำหรับการจดจำใบหน้า
วิชันอัลโก HAL และ UI เอาท์พุต HAL ที่เปิดใช้งานและผู้จัดการเริ่มต้นที่ส่วนหลัก file
lvgl_gui_face_rec_cm7.cpp ตามการแปลงการพัฒนาบนกรอบงานดังต่อไปนี้:

  1. รวมส่วนหัว file เกี่ยวข้องกับผู้จัดการ HAL สองคนโดยเพิ่มบรรทัดโค้ด:
    • #รวม ” fwk_output_manager.h “
    • #รวม “fwk_vision_algo_manager.h”
  2. ประกาศอุปกรณ์ HAL:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. ลงทะเบียนอุปกรณ์ HAL:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, เกษียณ);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
  4. เริ่มต้นผู้จัดการ:
    • FWK_MANAGER_INIT(VisionAlgoManager, เกษียณ);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. เริ่มต้นผู้จัดการ:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ยกเลิก);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, เกษียณ);
  6. กำหนดลำดับความสำคัญของงานผู้จัดการ:
    • #กำหนด VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #define OUTPUT_MANAGER_TASK_PRIORITY 1

เพิ่มการรองรับฐานข้อมูลใบหน้าบนเฟรมเวิร์ก
ข้อมูลฟีเจอร์ใบหน้าที่ลงทะเบียนไว้จะเข้าถึงได้ในฐานข้อมูลใบหน้าที่จัดเก็บไว้ใน Flash เพียงเล็กน้อย file ระบบ. ขั้นตอนในการเพิ่มการรองรับฐานข้อมูลใบหน้ามีดังต่อไปนี้

เพิ่มไดรเวอร์สำหรับที่เก็บข้อมูล Flash
คัดลอกไดรเวอร์ FlexSPI อินเทอร์เฟซ Flash files fsl_flexspi.c และ fsl_flexspi.h และไดรเวอร์การเข้ารหัสข้อมูล files fsl_caam.c และ fsl_caam.h จากพาธ SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ ไปยังโฟลเดอร์ไดรเวอร์ของ exampเลอ สว.

เพิ่มการสนับสนุนระดับคณะกรรมการ

  1. เพิ่มคำจำกัดความของ FlexSPI ที่ใช้กับอุปกรณ์ Flash บนบอร์ดใน board.h:
    • #กำหนด BOARD_FLEXSPI FLEXSPI1
    • #กำหนด BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #กำหนด 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, และsln_flash_ops.h ภายใต้พาธ smart HMI\coffee_machine\cm7\source\flash_config\ ไปยังบอร์ดโฟลเดอร์ของอดีตampเลอ สว.
    • ยกเลิกการเลือก “ยกเว้นทรัพยากรจากบิลด์” ใน C/C++ Build > การตั้งค่า หลังจากคลิกขวาที่ fileชื่อและการเปิดคุณสมบัติเพื่อให้สามารถสร้างในโครงการได้
  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\ ไปยังโฟลเดอร์ซอร์สของอดีตampเลอ อัพเดทใหม่ครับ files:
    • ยกเลิกการเลือก "แยกทรัพยากรออกจากบิลด์" เพื่อสร้าง
    • เปลี่ยนส่วนหัวที่รวมไว้ทั้งหมด file ชื่อ sln_flash_config.h ถึง sln_flash_config_w25q256jvs.h
  2. คัดลอกโฟลเดอร์ fileระบบที่มี API สำหรับเจ้าตัวน้อย fileระบบและไดรเวอร์ HAL จาก smart HMI \coffee_machine\cm7\source\ ถึงอดีตampเลอ สว. และอัปเดตสำหรับโฟลเดอร์ใหม่:
    • ยกเลิกการเลือก "ยกเว้นทรัพยากรจากบิลด์" เพื่อสร้าง
    • เพิ่มเส้นทางรวมในการตั้งค่าโปรเจ็กต์: “${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 ที่มีมิดเดิลแวร์ – น้อย fileระบบจากพาธ SDK_2_13_0_ MIMXRT1170-EVK\middleware\ ไปยัง exampเลอ สว. และอัพเดตโฟลเดอร์ใหม่:
    • ยกเลิกการเลือก "ยกเว้นทรัพยากรจากบิลด์" เพื่อสร้าง
    • เพิ่มเส้นทางรวมในการตั้งค่าโปรเจ็กต์: “${workspace_loc:/${ProjName}/littlefs}”

เพิ่มไดรเวอร์ HAL 

  • มีอุปกรณ์ HAL สองเครื่อง – file ระบบและฐานข้อมูลใบหน้า HAL รองรับคุณสมบัติการเข้าถึงฐานข้อมูล และถูกนำไปใช้ในกรอบงานแล้วโดยไม่มีการเปลี่ยนแปลงใดๆ เปิดใช้งานได้โดยเพิ่มคำจำกัดความด้านล่างใน board_define.h:
    • #define ENABLE_FLASH_DEV_ลิตเติ้ลฟ
    • #กำหนด ENABLE_FACEDB

และเปลี่ยนชื่อฐานข้อมูลใบหน้าสำหรับอดีตampเลอ: #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(ลิตเติ้ลฟส์);
      • HAL_FLASH_DEV_REGISTER(ลิตเติ้ลฟ รีต);
        บันทึก: เดอะ file ต้องลงทะเบียนอุปกรณ์ระบบ HAL ก่อนที่ตัวจัดการอุปกรณ์ทั้งหมดจะเริ่มต้นในฟังก์ชัน APP_InitFramework()
    • เรียกใช้ฟังก์ชัน BOARD_ConfigMPU() ใน APP_BoardInit() เพื่อกำหนดค่า MPU
  2. ตั้งค่า file การกำหนดระบบบน Flash ใน file app_config.h โดยการกำหนดคำจำกัดความของแมโครที่ใช้ใน file sln_flash_littlefs.h:
    • #กำหนด FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #กำหนด FICA_FILE_SYS_SIZE (0x280000)

การกำหนดค่า
รหัสที่เกี่ยวข้องกับ Flash บางตัวจะถูกดำเนินการในพื้นที่ SRAM ITC เพื่อประสิทธิภาพที่เพียงพอ คัดลอกโฟลเดอร์ linkscripts ที่มีการกำหนดค่าตัวเชื่อมโยงจากพาธ smart HMI\coffee_machine\cm7\ ไปยัง exampเลอ สว.

ใช้แอป LVGL GUI
การพัฒนาแอป LVGL GUI ตามเฟรมเวิร์กจะเรียก API จาก UI เอาต์พุต HAL และจัดเตรียม API ให้กับเอาต์พุต UI HAL (ดูหัวข้อ 4.1.3 สำหรับการนำ UI เอาต์พุต HAL ไปใช้งาน)

อย่างไรก็ตาม การใช้งานโดยละเอียดของแอป LVGL GUI ขึ้นอยู่กับข้อกำหนดและการออกแบบแอปพลิเคชัน แอป GUI ในตัวอย่างนี้ampไฟล์ได้รับการออกแบบตามที่อธิบายไว้ตอนต้นของส่วนที่ 4

ด้านล่างนี้คือคำแนะนำการใช้งาน:

  1. รหัสที่กำหนดเองจะถูกนำไปใช้ใน custom.c และ custom.h ที่กำหนดโดย GUI Guider ให้เป็นอินเทอร์เฟซระหว่างโปรเจ็กต์ GUI Guider และโปรเจ็กต์ระบบฝังตัว
    •  เพิ่มฟังก์ชันใหม่ชื่อ gui_xxx() ใน custom.c เพื่อให้ได้ฟังก์ชันด้านล่าง:
      • สำหรับเอาต์พุต UI HAL และแอป GUI เพื่ออัปเดต UI
      • สำหรับแอป GUI เพื่อทริกเกอร์เหตุการณ์โดยการเรียกใช้ฟังก์ชันการเรียกกลับ UI จากเอาต์พุต UI HAL
        เช่นample ฟังก์ชันใหม่ gui_event_face_rec_action() เรียกใช้ฟังก์ชันการโทรกลับ UI เพื่อจัดการหนึ่งในเหตุการณ์ของการลงทะเบียนใบหน้า การจดจำใบหน้า และการลบผู้ใช้ที่ทริกเกอร์จากแอป GUI เมื่อมีการคลิกปุ่มที่เกี่ยวข้อง
        หมายเหตุ: ฟังก์ชัน gui_set_virtual_face() ถูกเรียกในเอาต์พุต UI HAL สำหรับเวอร์ชันก่อนหน้าview ต้องใช้โหมดใน custom.c:
    •  ฟังก์ชันโคลน gui_set_virtual_face() จาก smart HMI\coffee_machine\cm4\custom \custom.c
    •  เปลี่ยนชื่อวิดเจ็ต home_img_cameraPreview ไปที่ screen_img_cam_preview ในฟังก์ชัน
    •  ใช้ฟังก์ชันการเรียกกลับ UI ที่มีต้นแบบเดียวกันกับฟังก์ชันทั้งหมดในเอาต์พุต UI HAL ภายใต้การควบคุมของคำจำกัดความแมโคร #ifndef RT_PLATFORM ใน custom.c เพื่อให้เข้ากันได้กับโปรเจ็กต์ GUI Guider เนื่องจากฟังก์ชันเหล่านี้ใน UI เอาต์พุต HAL ขึ้นอยู่กับ แพลตฟอร์มฝังตัว ใน custom.c สิ่งเหล่านี้จะขึ้นอยู่กับตัวจำลองบนตัวนำทาง GUI และเป็นอิสระจากแพลตฟอร์มแบบฝัง สำหรับเช่นampในตอนนี้ การโทรกลับการลงทะเบียนใบหน้าถูกใช้งานตามด้านล่างนี้สำหรับโปรแกรมจำลอง GUI Guider ที่ทำงานอยู่: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = เท็จ; กลับ; -
      บันทึก: อ้างถึงต้นแบบเดียวกันของฟังก์ชันที่แนะนำในขั้นตอนที่ 6 ของส่วนที่ 4.1.3
      Macro Definition 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 API ไปยัง UI เอาท์พุต HAL
  2. พัฒนา GUI บน GUI Guider:
    • โคลนโฟลเดอร์กล้องไว้ล่วงหน้าview มีซอฟต์แวร์โครงการ GUI Guider ในโฟลเดอร์ gui_guider ในแพ็คเกจซอฟต์แวร์พื้นฐาน lvgl_gui_camera_preview_cm7. เปลี่ยนชื่อที่เกี่ยวข้อง camera_preview เพื่อ face_rec สำหรับแฟนเก่าคนใหม่ampเล.
    • คัดลอก custom.c และ custom ที่อัปเดตข้างต้น h ไปยังซอฟต์แวร์โครงการ GUI Guider ใหม่
    •  เปิดโปรเจ็กต์ face_rec ใหม่บน GUI Guider อัปเดตดังต่อไปนี้:
      • เพิ่มปุ่มใหม่ที่มีข้อความลบผู้ใช้ เพิ่มแฟล็ก ซ่อน ไว้เพื่อให้ปุ่มถูกซ่อนเมื่อแอป GUI เริ่มทำงาน
      • เพิ่มบรรทัดโค้ดของการเรียก API gui_event_face_rec_action() ด้วยพารามิเตอร์ ID เหตุการณ์ที่แตกต่างกันบนทริกเกอร์ “เผยแพร่แล้ว” ในการตั้งค่าเหตุการณ์ของปุ่มทั้งหมด การลงทะเบียน การจดจำ และการลบผู้ใช้ เพื่อทริกเกอร์เหตุการณ์ของการลงทะเบียนใบหน้า การจดจำใบหน้า และการลบผู้ใช้ รูปที่ 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 กล้อง_preview_resource.bin ไปยังที่อยู่ 0x30800000

การจดจำใบหน้า LVGL GUI เช่นample ทำงานได้ตามปกติดังนี้:

  • พรีview: เมื่อเปิดเครื่อง สตรีมวิดีโอที่กล้องจับจะแสดงบนพื้นที่เฉพาะของกล้องก่อนview บนหน้าจอ GUI ป้ายสถานะจะแสดง “ก่อนview- สำหรับรายละเอียด โปรดดูรูปที่ 3 ปุ่มลบผู้ใช้ถูกซ่อนอยู่ เมื่อคลิกบริเวณด้านนอกปุ่มและรูปภาพ ระบบจะแสดงภาพเบื้องต้นview ระบุตามข้างต้นหลังจากการลงทะเบียนใบหน้าหรือการจดจำใบหน้าสิ้นสุดลง
  • การลงทะเบียน:
    • ทาร์ตอัพ: เมื่อคลิกปุ่มการลงทะเบียน การลงทะเบียนใบหน้าจะเริ่มต้นขึ้น ป้ายสถานะจะเปลี่ยนเพื่อแสดง “การลงทะเบียน…” สี่เหลี่ยมคำแนะนำใบหน้าจะแสดงเป็นสีน้ำเงิน และแถบความคืบหน้าเริ่มแสดงความคืบหน้า ตรวจสอบให้แน่ใจว่าใบหน้าของผู้ใช้แสดงอยู่ในกรอบสี่เหลี่ยมแนะนำใบหน้าสีน้ำเงินสำหรับการลงทะเบียน
    • ความสำเร็จ: ป้ายสถานะจะแสดง "การลงทะเบียน...ตกลง" และหมายเลข ID ผู้ใช้ที่ลงทะเบียนไว้ สี่เหลี่ยมคำแนะนำใบหน้าจะกลายเป็นสีแดงหากการลงทะเบียนใบหน้าสำเร็จก่อนที่ความคืบหน้าจะแสดงเต็มบนแถบ
    • ความล้มเหลว -> หมดเวลา: ป้ายสถานะจะแสดง "การลงทะเบียน...หมดเวลา" หากการลงทะเบียนใบหน้ายังคงล้มเหลวเมื่อความคืบหน้าแสดงเต็มบนแถบ
    • ความล้มเหลว -> การทำสำเนา: ป้ายสถานะแสดง "การลงทะเบียน...ล้มเหลว" รูปสี่เหลี่ยมแนะนำใบหน้าจะกลายเป็นสีเขียวหากจดจำใบหน้าที่ลงทะเบียนไว้ก่อนที่ความคืบหน้าจะแสดงเต็มบนแถบ
  • ecognition:
    • การเริ่มต้น: เมื่อคลิกปุ่มการจดจำ การจดจำใบหน้าจะเริ่มต้นขึ้น ป้ายสถานะจะเปลี่ยนเพื่อแสดง “การจดจำ…” สี่เหลี่ยมคำแนะนำใบหน้าจะแสดงเป็นสีน้ำเงิน และแถบความคืบหน้าจะเริ่มแสดงความคืบหน้า ตรวจสอบให้แน่ใจว่าใบหน้าของผู้ใช้แสดงอยู่ในกรอบสี่เหลี่ยมแนะนำใบหน้าสีน้ำเงินสำหรับการลงทะเบียน
    • ความสำเร็จ: ป้ายสถานะจะแสดง "การจดจำ...ตกลง" และหมายเลข ID ผู้ใช้ที่รู้จัก กรอบสี่เหลี่ยมแนะนำใบหน้าจะกลายเป็นสีเขียวหากการจดจำใบหน้าสำเร็จก่อนที่ความคืบหน้าจะแสดงเต็มบนแถบ เมื่อถึงจุดนี้ ปุ่ม ลบผู้ใช้ จะปรากฏขึ้น หมายความว่าผู้ใช้จะได้รับอนุญาตให้ลบได้เฉพาะเมื่อได้รับการยอมรับเท่านั้น
    • อาการเจ็บป่วย: ป้ายสถานะจะแสดง "การจดจำ...หมดเวลา" หากการจดจำใบหน้ายังคงล้มเหลวเมื่อความคืบหน้าแสดงเต็มบนแถบ
  • ลบผู้ใช้: เมื่อคลิกปุ่ม “ลบผู้ใช้” หลังจากการจดจำใบหน้าสำเร็จ ป้ายสถานะจะเปลี่ยนเพื่อแสดง “ลบผู้ใช้…ตกลง” โดยสี่เหลี่ยมคำแนะนำใบหน้าจะกลายเป็นสีน้ำเงิน และความคืบหน้าจะแสดงเต็มบนแถบ ปุ่มลบผู้ใช้จะถูกซ่อนอีกครั้ง ใบหน้า/ผู้ใช้ที่จดจำได้จะถูกลบออกจากฐานข้อมูล หมายความว่าไม่สามารถจดจำใบหน้า/ผู้ใช้นี้ได้จนกว่าจะลงทะเบียนอีกครั้ง

หมายเหตุเกี่ยวกับซอร์สโค้ดในเอกสาร
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 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 จะไม่รับผิดชอบต่อการรวมและ/หรือการใช้ผลิตภัณฑ์ที่ไม่ผ่านการรับรองด้านยานยนต์ในอุปกรณ์หรือการใช้งานด้านยานยนต์
    ในกรณีที่ลูกค้าใช้ผลิตภัณฑ์สำหรับการออกแบบและการใช้งานในยานยนต์ตามข้อกำหนดและมาตรฐานของยานยนต์ ลูกค้า (a) ต้องใช้ผลิตภัณฑ์โดยไม่มีการรับประกันผลิตภัณฑ์ของ NXP Semiconductors สำหรับการใช้งานยานยนต์ การใช้งานและข้อกำหนดดังกล่าว และ ( ข) เมื่อใดก็ตามที่ลูกค้าใช้ผลิตภัณฑ์สำหรับการใช้งานยานยนต์ที่เกินข้อกำหนดของ NXP Semiconductors การใช้งานดังกล่าวจะต้องเป็นความเสี่ยงของลูกค้าเองแต่เพียงผู้เดียว และ (c) ลูกค้าจะชดใช้ค่าเสียหายให้กับ NXP Semiconductors อย่างเต็มที่สำหรับความรับผิด ความเสียหาย หรือการเรียกร้องผลิตภัณฑ์ที่ล้มเหลวอันเป็นผลจากการออกแบบและการใช้งานของลูกค้า ผลิตภัณฑ์สำหรับการใช้งานยานยนต์ที่อยู่นอกเหนือการรับประกันมาตรฐานของ NXP Semiconductors และข้อกำหนดผลิตภัณฑ์ของ NXP Semiconductors
  • การแปล — เอกสารที่ไม่ใช่ภาษาอังกฤษ (แปล) รวมถึงข้อมูลทางกฎหมายในเอกสารนั้นใช้สำหรับการอ้างอิงเท่านั้น เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าในกรณีที่มีความแตกต่างระหว่างเวอร์ชันแปลและภาษาอังกฤษ
  • ความปลอดภัย — ลูกค้าเข้าใจว่าผลิตภัณฑ์ NXP ทั้งหมดอาจอยู่ภายใต้ช่องโหว่ที่ไม่สามารถระบุได้ หรืออาจรองรับมาตรฐานความปลอดภัยหรือข้อกำหนดเฉพาะที่มีข้อจำกัดที่ทราบ ลูกค้ามีหน้าที่รับผิดชอบในการออกแบบและการทำงานของแอปพลิเคชันและผลิตภัณฑ์ตลอดวงจรชีวิตของลูกค้า เพื่อลดผลกระทบของช่องโหว่เหล่านี้ที่มีต่อแอปพลิเคชันและผลิตภัณฑ์ของลูกค้า ความรับผิดชอบของลูกค้ายังขยายไปถึงเทคโนโลยีเปิดและ/หรือเทคโนโลยีที่เป็นกรรมสิทธิ์อื่นๆ ที่สนับสนุนโดยผลิตภัณฑ์ NXP สำหรับใช้ในแอปพลิเคชันของลูกค้า NXP ไม่รับผิดชอบต่อช่องโหว่ใดๆ ลูกค้าควรตรวจสอบการอัปเดตความปลอดภัยจาก NXP อย่างสม่ำเสมอและติดตามผลอย่างเหมาะสม ลูกค้าจะต้องเลือกผลิตภัณฑ์ที่มีคุณลักษณะด้านความปลอดภัยที่ตรงตามกฎ ข้อบังคับ และมาตรฐานของการใช้งานที่ต้องการมากที่สุด และทำการตัดสินใจขั้นสูงสุดเกี่ยวกับการออกแบบเกี่ยวกับผลิตภัณฑ์ของตน และรับผิดชอบแต่เพียงผู้เดียวในการปฏิบัติตามข้อกำหนดทางกฎหมาย ข้อบังคับ และความปลอดภัยทั้งหมดที่เกี่ยวข้องกับผลิตภัณฑ์ของตน โดยไม่คำนึงถึง ข้อมูลหรือการสนับสนุนใด ๆ ที่ NXP อาจมีให้

NXP มี Product Security Incident Response Team (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 ที่เปิดใช้งาน, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — เป็นเครื่องหมายการค้าและ/หรือเครื่องหมายการค้าจดทะเบียนของ Arm Limited (หรือบริษัทย่อยหรือบริษัทในเครือ) ในสหรัฐอเมริกาและ/หรือ ที่อื่น เทคโนโลยีที่เกี่ยวข้องอาจได้รับการคุ้มครองโดยสิทธิบัตร ลิขสิทธิ์ การออกแบบ และความลับทางการค้าบางส่วนหรือทั้งหมด สงวนลิขสิทธิ์.

  • i.MX — เป็นเครื่องหมายการค้าของ NXP BV
  • เจลิงค์ — เป็นเครื่องหมายการค้าของ SEGGER Microcontroller GmbH

Microsoft, Azure และ ThreadX — เป็นเครื่องหมายการค้าของกลุ่มบริษัท Microsoft

โปรดทราบว่าประกาศที่สำคัญเกี่ยวกับเอกสารนี้และผลิตภัณฑ์ที่อธิบายไว้ในที่นี้ได้รวมอยู่ในส่วน 'ข้อมูลทางกฎหมาย'

© 2024 บริษัท เอ็นเอ็กซ์พี บีวี
สำหรับข้อมูลเพิ่มเติมกรุณาเยี่ยมชม: https://www.nxp.com

  • วันที่วางจำหน่าย: 19 เมษายน 2024
  • ตัวระบุเอกสาร: AN14263

คำถามที่พบบ่อย

ถาม: วัตถุประสงค์หลักของผลิตภัณฑ์นี้คืออะไร?
ตอบ: วัตถุประสงค์หลักคือเพื่อเปิดใช้งานฟังก์ชันการจดจำใบหน้าโดยใช้โมเดลอัลกอริธึมการมองเห็น AI&ML พร้อมด้วย LVGL GUI แบบธรรมดา เช่นampบนบอร์ด SLN-TLHMI-IOT

ถาม: นักพัฒนาจะได้รับประโยชน์จากบันทึกการใช้งานนี้อย่างไร
ตอบ: นักพัฒนาสามารถเรียนรู้วิธีการนำการจดจำใบหน้าไปใช้งานบนเฟรมเวิร์กทีละขั้นตอนโดยใช้ตัวอย่างที่ให้มาampทำความเข้าใจกับผู้จัดการอุปกรณ์ อุปกรณ์ HAL และกลไกเหตุการณ์ที่เกี่ยวข้อง

เอกสาร / แหล่งข้อมูล

NXP AN14263 ใช้การจดจำใบหน้า LVGL GUI บน Framewor [พีดีเอฟ] คู่มือการใช้งาน
AN14263 ใช้การจดจำใบหน้า LVGL GUI บน Framewor, AN14263, ใช้การจดจำใบหน้า LVGL GUI บน Framewor, การจดจำใบหน้า LVGL GUI บน Framewor, การจดจำใบหน้าบน Framewor, การจดจำใบหน้าบน Framewor, Framewor

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *