nxp-λογότυπο

NXP AN14263 Εφαρμογή LVGL GUI Face Recognition σε Framewor

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

Πληροφορίες προϊόντος

Προδιαγραφές

  • Όνομα προϊόντος: LVGL GUI Face Recognition on Framework
  • Αναθεώρηση εγγράφου: 1 – 19 Απριλίου 2024
  • Λέξεις-κλειδιά: Αναγνώριση προσώπου, LVGL GUI, Framework

Οδηγίες χρήσης προϊόντος

  1. Υπερview
    Αυτό το προϊόν επιτρέπει το μοντέλο αλγορίθμου όρασης AI&ML για την αναγνώριση προσώπου σε ένα πλαίσιο για την υλοποίηση της λειτουργίας αναγνώρισης προσώπου με ένα απλό LVGL GUI example στην πλακέτα SLN-TLHMI-IOT.
  2. Τελείωσε το πλαίσιοview
    Το λογισμικό λύσης έχει σχεδιαστεί γύρω από την αρχιτεκτονική πλαισίου που περιλαμβάνει διαχειριστές συσκευών που είναι υπεύθυνοι για τη διαχείριση συσκευών, συσκευές HAL για αφηρημένες υποκείμενες λεπτομέρειες και συμβάντα για επικοινωνία μεταξύ διαφορετικών συσκευών.
  3. Χαρακτηριστικά
    Το προϊόν επιτρέπει την εφαρμογή της λειτουργίας αναγνώρισης προσώπου μέσω της κάμερας preview στην οθόνη GUI με κουμπιά για να ενεργοποιήσετε την εγγραφή, την αναγνώριση και την αφαίρεση προσώπου. Τα καταχωρημένα δεδομένα προσώπου αποθηκεύονται στο Flash μέσω α file σύστημα.
  4. Περιεχόμενο Σημείωσης Εφαρμογής
    Η σημείωση της εφαρμογής παρουσιάζει μια οθόνη LVGL GUI με κάμερα προview και κουμπιά για ενέργειες που σχετίζονται με το πρόσωπο. Βοηθά τους προγραμματιστές να κατανοήσουν το πλαίσιο και τον τρόπο εφαρμογής της αναγνώρισης προσώπου χρησιμοποιώντας την παρεχόμενη π.χample.

Υπερview

Η NXP κυκλοφόρησε ένα κιτ ανάπτυξης λύσεων με το όνομα SLN-TLHMI-IOT που εστιάζει σε έξυπνες εφαρμογές HMI. Επιτρέπει το έξυπνο HMI με διεπαφή χρήστη ML όρασης, φωνής και γραφικών που υλοποιούνται σε ένα NXP i.MX RT117H MCU. Βασισμένο στο SDK, το λογισμικό λύσης είναι κατασκευασμένο σε ένα σχέδιο που ονομάζεται πλαίσιο που υποστηρίζει ευέλικτους σχεδιασμούς και προσαρμογή των λειτουργιών όρασης και φωνής. Για να βοηθηθούν οι χρήστες να χρησιμοποιούν καλύτερα την πλατφόρμα λογισμικού, παρέχονται ορισμένα βασικά έγγραφα, π.χample, τον οδηγό χρήσης ανάπτυξης λογισμικού. Ο οδηγός εισάγει τη βασική σχεδίαση λογισμικού και την αρχιτεκτονική των εφαρμογών που καλύπτουν όλα τα στοιχεία της λύσης συμπεριλαμβανομένου του πλαισίου για να βοηθήσει τους προγραμματιστές να εφαρμόσουν πιο εύκολα και αποτελεσματικά τις εφαρμογές τους χρησιμοποιώντας το SLN-TLHMI-IOT.
Για περισσότερες λεπτομέρειες σχετικά με τη λύση και σχετικά έγγραφα, επισκεφθείτε τη διεύθυνση web σελίδα της NXP EdgeReady Smart HMI Solution Βασισμένη στο i.MX RT117H με ML Vision, Voice και Graphical UI. Ωστόσο, εξακολουθεί να μην είναι τόσο εύκολο για τους προγραμματιστές να εφαρμόσουν τις έξυπνες εφαρμογές HMI τους, αναφερόμενοι σε αυτούς τους βασικούς οδηγούς. Μια σειρά από σημειώσεις εφαρμογής σχεδιάζεται να βοηθήσει στη μελέτη της εξέλιξης στο πλαίσιο βήμα προς βήμα. Αυτή η σημείωση εφαρμογής βασίζεται στο Implement LVGL GUI Camera Preview στο πλαίσιο (έγγραφο AN14147). Αυτή η σημείωση εφαρμογής περιγράφει πώς μπορείτε να ενεργοποιήσετε το μοντέλο αλγόριθμου όρασης AI&ML για την αναγνώριση προσώπου στο πλαίσιο για την υλοποίηση της λειτουργίας αναγνώρισης προσώπου μέσω της κάμερας προview στην οθόνη GUI με ένα απλό LVGL GUI π.χample στην πλακέτα SLN-TLHMI-IOT. Στο σημείωμα της αίτησης, ο πρampΤο le παρουσιάζει μια οθόνη LVGL GUI με κάμερα preview και μερικά κουμπιά για να ενεργοποιήσετε την εγγραφή, την αναγνώριση και την αφαίρεση προσώπων. Τα καταχωρημένα δεδομένα προσώπου αποθηκεύονται στο 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. Εκτέλεση

Το πλαίσιο έχει σχεδιαστεί με στόχο την επιτάχυνση του χρόνου στην αγορά για την όραση και άλλες εφαρμογές μηχανικής μάθησης. Για να εξασφαλιστεί ένας γρήγορος χρόνος για την αγορά, είναι σημαντικό το ίδιο το λογισμικό να είναι εύκολο να κατανοηθεί και να τροποποιηθεί. Έχοντας υπόψη αυτόν τον στόχο, η αρχιτεκτονική του πλαισίου είναι εύκολο να τροποποιηθεί χωρίς να είναι περιοριστική και χωρίς να επιβαρύνει την απόδοση.
Για περισσότερες λεπτομέρειες σχετικά με το πλαίσιο, ανατρέξτε στον Οδηγό χρήσης Smart HMI Software Development (έγγραφο MCU-SMHMI-SDUG).

Βιβλιοθήκη ελαφρών και ευέλικτων γραφικών (LVGL)
Η LVGL (Light and Versatile Graphics Library) είναι μια δωρεάν και ανοιχτού κώδικα βιβλιοθήκη γραφικών που παρέχει όλα όσα χρειάζεστε για να δημιουργήσετε ένα ενσωματωμένο GUI με εύχρηστα γραφικά στοιχεία, όμορφα οπτικά εφέ και χαμηλό αποτύπωμα μνήμης.

Οδηγός GUI
Το GUI Guider είναι ένα φιλικό προς το χρήστη εργαλείο ανάπτυξης διεπαφής γραφικών από την NXP που επιτρέπει την ταχεία ανάπτυξη οθονών υψηλής ποιότητας με τη βιβλιοθήκη γραφικών LVGL ανοιχτού κώδικα. Το πρόγραμμα επεξεργασίας μεταφοράς και απόθεσης του GUI Guider διευκολύνει τη χρήση πολλών δυνατοτήτων του LVGL, όπως γραφικά στοιχεία, κινούμενα σχέδια και στυλ για τη δημιουργία ενός GUI με ελάχιστη ή καθόλου κωδικοποίηση.

Με το πάτημα ενός κουμπιού, μπορείτε να εκτελέσετε την εφαρμογή σας σε ένα προσομοιωμένο περιβάλλον ή να την εξαγάγετε σε ένα έργο-στόχο. Ο δημιουργημένος κώδικας από το GUI Guider μπορεί εύκολα να προστεθεί στο έργο σας, επιταχύνοντας τη διαδικασία ανάπτυξης και επιτρέποντάς σας να προσθέσετε απρόσκοπτα μια ενσωματωμένη διεπαφή χρήστη στην εφαρμογή σας. Το GUI Guider είναι δωρεάν για χρήση με τα MCU γενικού σκοπού και crossover του NXP και περιλαμβάνει ενσωματωμένα πρότυπα έργων για πολλές υποστηριζόμενες πλατφόρμες. Για να μάθετε περισσότερα σχετικά με την ανάπτυξη LVGL και GUI στο GUI Guider, ελέγξτε το Light and Versatile Graphics Library και το GUI Guider.

Περιβάλλον ανάπτυξης

Αρχικά, προετοιμάστε και ρυθμίστε το περιβάλλον υλικού και λογισμικού για την υλοποίηση του πρώηνample στο πλαίσιο.

Περιβάλλον υλικού
Το περιβάλλον υλικού έχει ρυθμιστεί για την επαλήθευση του πρώηνample:

  • Το έξυπνο κιτ ανάπτυξης HMI που βασίζεται στο NXP i.MX RT117H (το κιτ SLN_TLHMI_IOT)
  • SEGGER J-Link με προσαρμογέα Cortex-M 9 ακίδων και V7.84a ή νεότερη έκδοση του προγράμματος οδήγησης

περιβάλλον του λογισμικού
Το περιβάλλον λογισμικού έχει ρυθμιστεί για την ανάπτυξη του πρώηνample:

  • 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. Το άλγος όρασης 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 π.χample (το πρώηνample παρέχεται αργότερα) σχετικά με το πλαίσιο υλοποιείται με βάση την π.χampΚώδικες Εφαρμογής LVGL GUI Camera Preview στο πλαίσιο (έγγραφο AN14147).

Για την επίδειξη της αναγνώρισης προσώπου στην π.χample, η βασική λειτουργία της εφαρμογής GUI (δείτε την κύρια οθόνη στην Εικόνα 3) έχει σχεδιαστεί όπως περιγράφεται παρακάτω:

  • Η εφαρμογή GUI ενεργοποιεί το συμβάν εγγραφής ή αναγνώρισης προσώπου στο UI HAL εξόδου όταν κάνετε κλικ στο κουμπί Εγγραφή ή Αναγνώριση. Και το UI HAL εξόδου ειδοποιεί το συμβάν προσθήκης χρήστη στο vision algo HAL μετά την επιτυχή καταχώριση προσώπου.
  • Η εφαρμογή GUI ενεργοποιεί το συμβάν διαγραφής ενός χρήστη στο HAL διεπαφής χρήστη εξόδου όταν κάνετε κλικ στο κουμπί Διαγραφή χρήστη αφού αναγνωριστεί το πρόσωπο του χρήστη.
  • Η εφαρμογή GUI ενεργοποιεί το συμβάν διακοπής της λειτουργίας του algo oasis στο HAL UI εξόδου όταν κάνετε κλικ στην οθόνη έξω από τα κουμπιά και τις εικόνες.

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 και τη διαδρομή αναζήτησης που έχει διαμορφωθεί στο Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries, καθώς παρέχεται ο πηγαίος κώδικας του πυρήνα.

Ενεργοποίηση της δυνατότητας αναγνώρισης προσώπου στο πλαίσιο
Η δυνατότητα αναγνώρισης προσώπου βασίζεται στο μοντέλο αλγορίθμου όρασης ML που παρέχεται ως στατική βιβλιοθήκη – μια βιβλιοθήκη χρόνου εκτέλεσης oasis lite από την NXP. Η βιβλιοθήκη είναι μια μικροσκοπική, εξαιρετικά αποδοτική, προσαρμοσμένη και βελτιστοποιημένη βιβλιοθήκη AI. Το μοντέλο περιλαμβάνει ανίχνευση προσώπου, αναγνώριση προσώπου, ανίχνευση γυαλιού και ανίχνευση ζωντάνιας. Παρέχει κυρίως το API OASISLT_run_extended() για την εκτέλεση του αγωγού αναγνώρισης προσώπου κατά την ενημέρωση των αποτελεσμάτων στον καλούντα μέσω επανακλήσεων συμβάντων και την προσθήκη/ενημέρωση/διαγραφή προσώπων στη βάση δεδομένων μέσω των επιστροφών κλήσης της βάσης δεδομένων προσώπου αφού καθορίσει τις πληροφορίες πλαισίου πηγής, τις επιστροφές κλήσεων και τη μνήμη pool που χρησιμοποιείται από τη βιβλιοθήκη καλώντας ένα άλλο API OASISLT_init() κατά την προετοιμασία. Η κλήση των API και οι συναρτήσεις επανάκλησης υλοποιούνται στο vision algo HAL του πλαισίου.

Προσθήκη βιβλιοθήκης μοντέλων vision algo

  1. Αντιγράψτε την όαση φακέλου που περιέχει τη βιβλιοθήκη και τη σχετική κεφαλίδα file από το smart 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 να λειτουργήσει και ανταποκρίνεται στα αποτελέσματα στην έξοδο HAL διεπαφής χρήστη αφού λάβει τα συμβάντα από αυτό.

Για να το ενεργοποιήσετε, κλωνοποιήστε το υπάρχον παρόμοιο πρόγραμμα οδήγησης HAL file όπου υλοποιούνται οι παρακάτω λειτουργίες:

  • Εφαρμόστε τις επανακλήσεις των λειτουργιών βάσης δεδομένων προσώπων και του χειρισμού συμβάντων.
  • Ωθήστε το vision algo να λειτουργήσει καλώντας τα API της βιβλιοθήκης oasis.
  • Πρόσβαση στη βάση δεδομένων προσώπων χρήστη και στη βάση δεδομένων εφαρμογών (δεν απαιτείται στην π.χample).
  • Λήψη συμβάντων από και αποστολή αποτελεσμάτων στην έξοδο UI HAL.

Οι κύριες εργασίες για την εφαρμογή του HAL για την πρώηνampείναι:

  • Κλωνοποιήστε το υπάρχον παρόμοιο πρόγραμμα οδήγησης HAL file και αλλάξτε τα σχετικά ονόματα.
  • Καταργήστε τους κωδικούς που σχετίζονται με τις λειτουργίες δεδομένων της εφαρμογής.
  • Ενημερώστε τους ορισμούς και τις λειτουργίες για το χειρισμό των συμβάντων από τη διεπαφή χρήστη HAL εξόδου ανά π.χampσχέδιο.
  • Προσθέστε τις διαμορφώσεις που απαιτούνται στην προετοιμασία της όασης.

Τα αναλυτικά βήματα είναι τα παρακάτω:

  1. Κλωνοποίηση hal_vision_algo_oasis_coffeemachine.γ. Αλλαξε το 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 στην δομή _eventh.smart_ Επομένως, αλλάξτε τη δομή 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
      • RemoteRegistration, kOASISLiteState
      • Κόμης
    • Χρησιμοποιήστε την παραπάνω ενημερωμένη δομή oasis_lite_state_t για να κάνετε πιο συγκεκριμένη την δομή 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 σε άλλα HAL που εκτελούνται στον ίδιο πυρήνα με έναν πυρήνα αντί για διπύρηνο που χρησιμοποιείται στο πρώηνample.
  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, alignbyte) \
      • __attribute__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __χαρακτηριστικό__((ευθυγραμμισμένο(alignbyte)))
    • Διαμορφώστε την εκχώρηση μνήμης στην παραπάνω ενότητα μνήμης 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, alignbyte) \
      • χαρακτηριστικό__((section(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • χαρακτηριστικό__((ευθυγραμμισμένο(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 στο Project > Properties >C/C++ Build > settings > Tool Settings > MCU C compiler > Includes and MCU C++ compiler > Περιλαμβάνει: "${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_set_virtual_face() για το προview λειτουργία λειτουργίας.
    • Καταργήστε όλους τους κωδικούς που σχετίζονται με τις μεταβλητές s_IsWaitingAnotherSelection και s_IsWaitingRegisterSelection που σχετίζονται με την εφαρμογή καφετιέρας.
    • Καταργήστε τους κωδικούς που σχετίζονται με τη φωνή, τον ήχο και τη γλώσσα. Για π.χample:
      • #include "hal_voice_algo_asr_local.h",
      • #include "hal_event_descriptor_voice.h"
  4. Για τις διάφορες ειδοποιήσεις συμβάντων, εφαρμόστε τις νέες συναρτήσεις _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() και DeregisterGUIFaceRec() που αναφέρονται στις συναρτήσεις _StopFaceRec(), _RegisterCoffeeSelection() και DeregisterCoffeection πριν από την διαγραφή τους.
    • Η _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() ανά πρώηνample's design. Για π.χ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() για να εμφανίσετε την πρόοδο και την κατάσταση στα διάφορα συμβάντα και αποτελέσματα.
    • Ενημερώστε τη συνάρτηση επανάκλησης του χρονοδιακόπτη ISR _SessionTimer_Callback() για να χειριστεί την περίπτωση του time-out καλώντας: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. Προσθέστε τους παρακάτω ορισμούς για να ενεργοποιήσετε την έξοδο διεπαφής χρήστη HAL στο board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

Ανακοίνωση:
Για να παρουσιάσετε καλύτερα τη δυνατότητα αναγνώρισης προσώπου, διατηρήστε τη λειτουργία για εμφάνιση της διαδικασίας και των αποτελεσμάτων της αναγνώρισης προσώπου στο UI HAL εξόδου. Η λειτουργία περιγράφεται όπως παρακάτω

  • Το ορθογώνιο του οδηγού προσώπου δείχνει μπλε και η γραμμή προόδου δείχνει την πρόοδο κατά την έναρξη της εγγραφής ή της αναγνώρισης προσώπου.
  • Το ορθογώνιο του οδηγού προσώπου δείχνει κόκκινο όταν η εγγραφή προσώπου είναι επιτυχής.
  • Το ορθογώνιο οδηγό προσώπου δείχνει πράσινο όταν η αναγνώριση προσώπου είναι επιτυχής.
  • Το ορθογώνιο του οδηγού προσώπου παραμένει μπλε και η γραμμή προόδου δείχνει την πλήρη πρόοδο όταν η ενέργεια δεν είναι επιτυχής μετά τη λήξη του χρονοδιακόπτη. Σε αυτό το σημείο, σταματήστε την εγγραφή ή την αναγνώριση προσώπου.

Η γραμμή προόδου και το ορθογώνιο του οδηγού προσώπου παρουσιάζονται ως εικονίδια που είναι ενσωματωμένα στο δυαδικό αρχείο πόρων file να προγραμματιστεί σε Flash. Οι δείκτες στα δεδομένα εικονιδίων στο SDRAM ρυθμίζονται στη συνάρτηση LoadIcons(APP_ICONS_BASE) που καλείται στην προετοιμασία της συσκευής UI εξόδου HAL στο 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\ στα εικονίδια νέου φακέλου κάτω από το φάκελο πόρων του πρώηνample SW.
    • Προσθέστε τη διαδρομή αναζήτησης για το εικονίδιο των τεσσάρων files στην camera_preview_resource.txt file στον φάκελο πόρων, π.χample: εικονίδιο ../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 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 GUI για το χειρισμό των συμβάντων από την οθόνη διεπαφής χρήστη. Από την άλλη πλευρά, το UI εξόδου HAL καλεί τα API από την εφαρμογή LVGL GUI για να ενημερώσει τη διεπαφή χρήστη για να εμφανίσει το αποτέλεσμα και την κατάσταση. Η ανάπτυξη της εφαρμογής LVGL GUI είναι σχετικά ανεξάρτητη και παρουσιάζεται στην Ενότητα 4.3.

4.1.5 Εκκίνηση συσκευών και διαχειριστών HAL για αναγνώριση προσώπου
Το ενεργοποιημένο vision algo HAL και η έξοδος διεπαφής χρήστη 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 Σύστημα. Τα βήματα για την προσθήκη της υποστήριξης βάσης δεδομένων προσώπου περιγράφονται παρακάτω.

Προσθήκη προγραμμάτων οδήγησης για αποθήκευση 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\ στον φάκελο προγραμμάτων οδήγησης του πρώην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 της συσκευής Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h κάτω από τη διαδρομή στον έξυπνο πίνακα HMI\coffe\cmfig_config.hample SW.
    • Καταργήστε την επιλογή "Εξαίρεση πόρου από την κατασκευή" στο 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 σύστημα και εφαρμογή από τη διαδρομή του έξυπνου HMI\coffee_machine\cm7\source\ στην πηγή φακέλου του πρώηνample. Ενημερώστε το νέο files:
    • Καταργήστε την επιλογή "Εξαίρεση πόρου από τη δημιουργία" σε αυτά για δημιουργία.
    • Αλλάξτε όλη την κεφαλίδα που περιλαμβάνεται file όνομα sln_flash_config.h σε sln_flash_config_w25q256jvs.h.
  2. Αντιγράψτε το φάκελο fileσύστημα που περιέχει τα API για τους μικρούς fileσύστημα και πρόγραμμα οδήγησης HAL από το smart HMI \coffee_machine\cm7\source\ στην π.χample SW. Και ενημέρωση για τον νέο φάκελο:
    • Καταργήστε την επιλογή "Εξαίρεση πόρου από τη δημιουργία" σε αυτό για δημιουργία.
    • Προσθέστε τη διαδρομή συμπερίληψης για αυτό στις ρυθμίσεις έργου: "${workspace_loc:/${ProjName}/fileΣύστημα}"
    • Αλλάξτε την κεφαλίδα που περιλαμβάνεται file όνομα sln_flash_config.h σε sln_flash_config_w25q256jvs.h και fica_definition.h σε app_config.h στο file sln_flash_littlefs.h.
  3. Αντιγράψτε το φάκελο littlefs που περιέχει το μεσαίο ware – λίγο fileσύστημα από τη διαδρομή SDK_2_13_0_ MIMXRT1170-EVK\middleware\ προς το πρώηνample SW. Και ενημερώστε τον νέο φάκελο:
    • Καταργήστε την επιλογή "Εξαίρεση πόρου από τη δημιουργία" σε αυτό για δημιουργία.
    • Προσθέστε τη διαδρομή συμπερίληψης για αυτό στις ρυθμίσεις έργου: "${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 που σχετίζονται με το Flash 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 για αρκετή απόδοση. Αντιγράψτε τα σενάρια συνδέσμων φακέλων που περιέχουν τις διαμορφώσεις του συνδέσμου από τη διαδρομή smart HMI\coffee_machine\cm7\ στο πρώηνample SW.

Εφαρμόστε μια εφαρμογή LVGL GUI
Η ανάπτυξη μιας εφαρμογής LVGL GUI που βασίζεται σε πλαίσιο καλεί τα API από το UI HAL εξόδου και παρέχει τα API για έξοδο UI HAL (Βλ. Ενότητα 4.1.3 για την υλοποίηση του UI HAL εξόδου).

Ωστόσο, η λεπτομερής υλοποίηση μιας εφαρμογής GUI LVGL εξαρτάται από τις απαιτήσεις και το σχεδιασμό της εφαρμογής. Η εφαρμογή GUI σε αυτό το π.χampΤο le έχει σχεδιαστεί όπως περιγράφεται στην αρχή της ενότητας Ενότητα 4.

Ακολουθούν οι εισαγωγές υλοποίησης:

  1. Οι προσαρμοσμένοι κωδικοί υλοποιούνται στο custom.c και custom.h που δίνονται από το GUI Guider ως διεπαφή μεταξύ του έργου GUI Guider και του έργου του ενσωματωμένου συστήματος.
    •  Προσθέστε τις νέες συναρτήσεις με το όνομα gui_xxx() στο custom.c για να επιτύχετε τις παρακάτω συναρτήσεις:
      • Για εξόδου UI HAL και εφαρμογή GUI για ενημέρωση διεπαφής χρήστη.
      • Για την εφαρμογή GUI να ενεργοποιεί συμβάντα καλώντας λειτουργίες επανάκλησης διεπαφής χρήστη από το UI HAL εξόδου.
        Για π.χample, η νέα συνάρτηση gui_event_face_rec_action() καλεί συναρτήσεις επανάκλησης διεπαφής χρήστη για να χειριστεί ένα από τα συμβάντα εγγραφής προσώπου, αναγνώρισης προσώπου και διαγραφής χρήστη που ενεργοποιούνται από την εφαρμογή GUI όταν κάνετε κλικ στο σχετικό κουμπί.
        Σημείωση: Η συνάρτηση gui_set_virtual_face() κάλεσε στην έξοδο UI HAL για preview η λειτουργία πρέπει να εφαρμοστεί στο custom.c:
    •  Κλωνοποίηση συνάρτησης gui_set_virtual_face() από το smart HMI\coffee_machine\cm4\custom \custom.c.
    •  Αλλάξτε το όνομα του γραφικού στοιχείου home_img_cameraPreview στο screen_img_camera_preview στη συνάρτηση.
    •  Εφαρμόστε τις συναρτήσεις επανάκλησης διεπαφής χρήστη με το ίδιο πρωτότυπο σε όλες εκείνες στο 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 = 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 για κοινή χρήση των API 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.

Σημείωμα: Για περισσότερες λεπτομέρειες σχετικά με τις τροποποιήσεις που εισήχθησαν παραπάνω, ελέγξτε το π.χample λογισμικό στο https://mcuxpresso.nxp.com/appcodehub.

Επαληθεύσεις με τον πρώηνample έργο

Για να πάρει την πρώηνampΤο πακέτο λογισμικού που περιέχει τους πόρους και τα εργαλεία για αυτήν τη σημείωση εφαρμογής, επισκεφθείτε: https://mcuxpresso.nxp.com/appcodehub. Ανοίξτε το πρώηνample project στο MCUXpresso IDE. Κατασκευάστε και προγραμματίστε το .axf file στη διεύθυνση 0x30000000 και προγραμματίστε τον κάδο πόρων file camera_preview_resource.bin στη διεύθυνση 0x30800000.

Η αναγνώριση προσώπου LVGL GUI π.χampΤο le λειτουργεί κανονικά ως εξής:

  • Προview: Με την ενεργοποίηση, οι ροές βίντεο που καταγράφονται από την κάμερα εμφανίζονται στη συγκεκριμένη περιοχή της κάμερας πρινview στην οθόνη του GUI. Η ετικέτα κατάστασης εμφανίζει "Προview…». Για λεπτομέρειες, δείτε την Εικόνα 3. Το κουμπί Διαγραφή χρήστη είναι κρυφό. Όταν κάνετε κλικ στην περιοχή έξω από τα κουμπιά και τις εικόνες, εμφανίζεται η προview αναφέρετε ως τα παραπάνω μετά τη λήξη της ενέργειας εγγραφής ή αναγνώρισης προσώπου.
  • Εγγραφή:
    • εκκίνηση: Όταν κάνετε κλικ στο κουμπί Εγγραφή, ξεκινά η εγγραφή προσώπου. Η ετικέτα κατάστασης αλλάζει για να εμφανίσει «Εγγραφή…», το ορθογώνιο του οδηγού προσώπου εμφανίζεται μπλε και η γραμμή προόδου αρχίζει να δείχνει την πρόοδο. Βεβαιωθείτε ότι το πρόσωπο του χρήστη εμφανίζεται στο μπλε ορθογώνιο του οδηγού προσώπου για εγγραφή.
    • επιτυχία: Η ετικέτα κατάστασης δείχνει «Εγγραφή…ΟΚ» και ο καταχωρημένος αριθμός αναγνωριστικού χρήστη, το ορθογώνιο του οδηγού προσώπου γίνεται κόκκινο εάν η καταχώριση προσώπου είναι επιτυχής πριν εμφανιστεί πλήρης η πρόοδος στη γραμμή.
    • Αποτυχία -> Λήξη χρονικού ορίου: Η ετικέτα κατάστασης εμφανίζει "Εγγραφή... Λήξη χρόνου" εάν η καταχώριση προσώπου εξακολουθεί να είναι αποτυχημένη όταν η πρόοδος εμφανίζεται πλήρης στη γραμμή.
    • Αποτυχία -> Διπλασιασμός: Η ετικέτα κατάστασης εμφανίζει "Εγγραφή…Απέτυχε", το ορθογώνιο του οδηγού προσώπου γίνεται πράσινο εάν το καταχωρημένο πρόσωπο αναγνωριστεί πριν εμφανιστεί πλήρης η πρόοδος στη γραμμή.
  • αναγνώριση:
    • Εκκίνηση: Όταν κάνετε κλικ στο κουμπί Αναγνώριση, ξεκινά η αναγνώριση προσώπου. Η ετικέτα κατάστασης αλλάζει για να εμφανίσει "Αναγνώριση...", το ορθογώνιο του οδηγού προσώπου δείχνει μπλε και η γραμμή προόδου αρχίζει να δείχνει την πρόοδο. Βεβαιωθείτε ότι το πρόσωπο του χρήστη εμφανίζεται στο μπλε ορθογώνιο του οδηγού προσώπου για εγγραφή.
    • επιτυχία: Η ετικέτα κατάστασης εμφανίζει «Αναγνώριση…ΟΚ» και τον αναγνωρισμένο αριθμό ID χρήστη, το ορθογώνιο του οδηγού προσώπου γίνεται πράσινο εάν η αναγνώριση προσώπου είναι επιτυχής προτού η πρόοδος εμφανιστεί πλήρης στη γραμμή. Στο σημείο, εμφανίζεται το κουμπί Διαγραφή χρήστη. Σημαίνει ότι ο χρήστης επιτρέπεται να διαγραφεί μόνο όταν αναγνωρίζεται.
    • 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 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, 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

FAQ

Ε: Ποιος είναι ο κύριος σκοπός αυτού του προϊόντος;
Α: Ο κύριος σκοπός είναι να ενεργοποιηθεί η λειτουργία αναγνώρισης προσώπου χρησιμοποιώντας ένα μοντέλο αλγορίθμου όρασης AI&ML με ένα απλό LVGL GUI example στην πλακέτα SLN-TLHMI-IOT.

Ε: Πώς μπορούν οι προγραμματιστές να επωφεληθούν από αυτήν τη σημείωση εφαρμογής;
Α: Οι προγραμματιστές μπορούν να μάθουν πώς να εφαρμόζουν την αναγνώριση προσώπου στο πλαίσιο βήμα προς βήμα χρησιμοποιώντας την παρεχόμενη π.χampΜάθετε και κατανοήστε τους εμπλεκόμενους διαχειριστές συσκευών, συσκευές HAL και μηχανισμούς συμβάντων.

Έγγραφα / Πόροι

NXP AN14263 Εφαρμογή LVGL GUI Face Recognition σε Framewor [pdf] Οδηγός χρήστη
AN14263 Implement LVGL GUI Face Recognition on Framewor, AN14263, Implement LVGL GUI Face Recognition on Framewor, LVGL GUI Face Recognition on Framewor, Face Recognition on Framewor, Recognition on Frame

Αναφορές

Αφήστε ένα σχόλιο

Η διεύθυνση email σας δεν θα δημοσιευτεί. Τα υποχρεωτικά πεδία επισημαίνονται *