Πώς ταιριάζει η στοίβα λογισμικού RK3588 NPU

Η στοίβα λογισμικού RKNN του Rockchip διαχωρίζει την προετοιμασία του μοντέλου από την εκτέλεση στη συσκευή. Το RKNN-Toolkit2 παρέχει εργαλεία μετατροπής και αξιολόγησης. Το RKNN-Toolkit-Lite2 παρέχει μια διεπαφή Python σε υποστηριζόμενες πλατφόρμες-στόχους, ενώ το RKNN Runtime παρέχει διεπαφές C/C++. Το πρόγραμμα οδήγησης πυρήνα συνδέει το χρόνο εκτέλεσης με το NPU. Ελέγξτε τη συμβατότητα αυτών των εξαρτημάτων με το πακέτο υποστήριξης πλακέτας που παρέχεται για τη μονάδα σας.

Μια χρήσιμη εγγραφή ανάπτυξης προσδιορίζει την πλακέτα και την αναθεώρηση SoM, την εικόνα Linux, το πρόγραμμα οδήγησης, τον χρόνο εκτέλεσης, την έκδοση του εργαλείου μετατροπής, το αρχικό μοντέλο και το μοντέλο μετατροπής. Αποθηκεύστε το σενάριο κατασκευής και τις ρυθμίσεις προεπεξεργασίας δίπλα στο τεχνούργημα του μοντέλου. Ένα όνομα αρχείου όπως detector.rknn από μόνη της δεν μπορεί να εξηγήσει γιατί μια ανάπτυξη συμπεριφέρεται διαφορετικά από την άλλη.

ΠροετοιμαστείτεΜοντέλο αναφοράς, είσοδοι και αναμενόμενες έξοδοι
ΜετατροπήΔιαμόρφωση στόχου και έλεγχοι ακρίβειας
ΑνάπτυξηΧρόνος εκτέλεσης, εφαρμογή και συνεχής δοκιμή

Βήμα 1: δημιουργήστε μια αναφορά πριν από τη μετατροπή

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

Καταγράψτε ολόκληρο το συμβόλαιο εισαγωγής. Συμπεριλάβετε διαστάσεις, μέγεθος παρτίδας, σειρά RGB ή BGR, διάταξη, αριθμητικό εύρος, κανονικοποίηση, αλλαγή μεγέθους και συμπλήρωση. Ένα σωστό μοντέλο μπορεί να παράγει κακά αποτελέσματα, εάν η εφαρμογή γραμματοκιβώτιο τοποθετεί μια εικόνα διαφορετικά από την εκπαίδευση ή αφαιρεί μια μετατόπιση δύο φορές. Συνεχίστε την εκ των υστέρων επεξεργασία εκτός δικτύου τεκμηριωμένη εξίσου προσεκτικά.

Χρησιμοποιήστε τα Rockchip RKNN Model Zoo ως σημείο εκκίνησης όταν περιλαμβάνει ένα αντίστοιχο μοντέλο και στόχο. Τα παραδείγματα μετατροπής και συμπερασμάτων του είναι πιο χρήσιμα από το να υποθέσουμε ότι οποιοδήποτε εξαγόμενο δίκτυο θα λειτουργεί αμετάβλητο. Επιλέξτε μια γνωστή αναθεώρηση αποθετηρίου και ακολουθήστε τις οδηγίες για το συγκεκριμένο παράδειγμα.

Βήμα 2: μετατρέψτε το μοντέλο και ελέγξτε την υποστήριξη χειριστή

  1. Ταίριαξε με τον στόχο. Επιλέξτε τον στόχο RK3588 και μια αλυσίδα εργαλείων συμβατή με την προβλεπόμενη εικόνα του πίνακα.
  2. Επιθεωρήστε το γράφημα. Επιβεβαιώστε σχήματα, προεπεξεργασία, εξόδους και υποστήριξη για τις πραγματικές λειτουργίες στο εξαγόμενο μοντέλο.
  3. Δημιουργήστε μια μετατροπή αναφοράς. Χρησιμοποιήστε τις επιλογές ακριβείας που υποστηρίζονται από αυτό το γράφημα και την έκδοση λογισμικού.
  4. Διαβάστε το πλήρες αρχείο καταγραφής κατασκευής. Επιλύστε τις αποτυχίες και διερευνήστε τις προειδοποιήσεις πριν προσθέσετε λήψη κάμερας ή διεπαφή χρήστη.
  5. Συγκρίνετε τις εξόδους. Εκτελέστε τις ίδιες εισόδους μέσω του αρχικού και του μετατρεπόμενου μοντέλου, με την ίδια μεταεπεξεργασία.

Μια μη υποστηριζόμενη λειτουργία μπορεί να απαιτεί διαφορετική εξαγωγή, επανεγγραφή γραφήματος ή ένα ρητό στάδιο επεξεργασίας CPU. Μην υποθέσετε ότι ο χρόνος εκτέλεσης θα εκτελεί με διαφάνεια κάθε επίπεδο που δεν υποστηρίζεται. Εάν μέρος του φόρτου εργασίας μετακινηθεί στη CPU, συμπεριλάβετε μεταφορές και συγχρονισμό στη μέτρηση απόδοσης.

Βήμα 3: αξιολογήστε το INT8 σε σχέση με την απαίτηση ακρίβειάς σας

Η κβαντοποίηση αλλάζει την αριθμητική αναπαράσταση. Όταν η επιλεγμένη ροή μετατροπής χρησιμοποιεί δεδομένα βαθμονόμησης, επιλέξτε εισόδους που αντιπροσωπεύουν την ανάπτυξη: φωτισμός, μέγεθος αντικειμένου, φόντο και συνθήκες λειτουργίας. Κρατήστε ένα ξεχωριστό σετ επικύρωσης για να αξιολογήσετε το αποτέλεσμα. Μια μετατροπή που ολοκληρώνεται με επιτυχία εξακολουθεί να χρειάζεται έλεγχο ακρίβειας.

Συγκρίνετε την έξοδο της εφαρμογής, όχι μόνο τη διαφορά μεταξύ δύο τανυστών. Για παράδειγμα, μια μικρή αριθμητική αλλαγή μπορεί να μετακινήσει μια ανίχνευση πέρα ​​από ένα όριο εμπιστοσύνης. Επιθεωρήστε δύσκολες περιπτώσεις, τάξεις με λίγα παραδείγματα και συνθήκες όπου το αρχικό μοντέλο ήταν ήδη οριακό. Εάν η ακρίβεια πέσει κάτω από το όριο αποδοχής, επανεξετάστε την κάλυψη βαθμονόμησης και την προεπεξεργασία πριν αλλάξετε το υλικό.

Το ONNX Τεκμηρίωση ποσοτικοποίησης χρόνου εκτέλεσης είναι χρήσιμο υπόβαθρο για αριθμητικές ανταλλαγές και διερεύνηση ακρίβειας. Οι επιλογές μετατροπής RKNN και η υποστηριζόμενη ακρίβεια πρέπει να ελέγχονται στην τεκμηρίωση του ίδιου του Rockchip για την επιλεγμένη έκδοση.

Βήμα 4: μετρήστε περισσότερο από το χρόνο συμπερασμάτων

Μετρήστε τον φόρτο εργασίας που έχει αναπτυχθεί μετά την προθέρμανση και ξανά κατά τη διάρκεια μιας παρατεταμένης διαδρομής. Καταγράψτε τη θερμοκρασία, τη λειτουργία ισχύος, τις ταυτόχρονες διεργασίες και τη διάταξη περίβλημα ή ψύξης. Το χρήσιμο αποτέλεσμα είναι ένας αναπαραγόμενος φάκελος απόδοσης, συμπεριλαμβανομένης της ακρίβειας και της καθυστέρησης, υπό τις συνθήκες στις οποίες θα λειτουργεί το προϊόν.

ΜέτρησηΤι απαντάΤι να ηχογραφήσετε
Διάρκεια εκτέλεσης μοντέλουΠόσο διαρκεί αυτή η κλήση χρόνου εκτέλεσης;Σχήμα εισαγωγής, ακρίβεια, όρια χρονισμού και έκδοση χρόνου εκτέλεσης
Λάθος από άκρο σε άκροΠόσο χρονών είναι η παρατήρηση όταν παραδίδεται το αποτέλεσμα;Χρόνος λήψης, προεπεξεργασία, ουρά αναμονής, εξαγωγή συμπερασμάτων και χρόνος εξόδου
Διατηρούμενη απόδοσηΠόσα ολοκληρωμένα αποτελέσματα παραδίδονται με την πάροδο του χρόνου;Διάρκεια εκτέλεσης, ολοκληρωμένα αιτήματα και εισόδους που απορρίφθηκαν ή παραβλέφθηκαν
Ακρίβεια εφαρμογήςΠληροί το αναπτυγμένο μοντέλο την απαίτηση εργασίας;Σύνολο επικύρωσης, μέτρηση εργασιών και κατώφλια απόφασης
Θερμική συμπεριφοράΕίναι το αποτέλεσμα σταθερό μετά την προθέρμανση του συστήματος;Συνθήκες περιβάλλοντος, ψύξη, θερμοκρασίες και ρολόγια όπου είναι διαθέσιμα

Ως ενδεικτικό προϋπολογισμό, μια εφαρμογή που λαμβάνει ένα νέο πλαίσιο κάθε 40 ms πρέπει να συμβαδίζει με τα καρέ 25 ανά δευτερόλεπτο εάν επεξεργάζεται κάθε καρέ. Μια μέτρηση συμπερασμάτων 12 ms θα αφήσει το υπόλοιπο αυτού του προϋπολογισμού για απόκτηση, προετοιμασία και παράδοση μόνο σε έναν κατάλληλα προγραμματισμένο σχεδιασμό. Δεν αποδεικνύει καθυστέρηση 12 ms από κάμερα σε αποτέλεσμα. Αυτοί οι αριθμοί αποτελούν παράδειγμα σχεδιασμού, όχι μετρημένη απόδοση ForgeEdge.

Χρησιμοποιήστε ένα μονοτονικό ρολόι για διάρκεια λογισμικού. Αναφέρετε τη διάμεση και την ουρά καθυστέρηση αντί για μια μοναδική καλύτερη παρατήρηση και διατηρήστε τις ακατέργαστες μετρήσεις. Για πολλές κάμερες, λάβετε υπόψη τον φόρτο εργασίας όλων των ενεργών ροών, συμπεριλαμβανομένης της αποκωδικοποίησης, της μετατροπής εικόνας, της κίνησης της μνήμης και της εγγραφής. Μια ουρά που μεγαλώνει σε όλη τη διάρκεια της δοκιμής υποδεικνύει ότι η μέση χωρητικότητα είναι κάτω από τον εισερχόμενο φόρτο εργασίας.

Συνήθη συμπτώματα ανάπτυξης

ΣύμπτωμαΠρώτη έρευνα
Σωστό μοντέλο, λανθασμένες ετικέτες ή κουτιάΣειρά χρωμάτων, κανονικοποίηση, αλλαγή μεγέθους/επένδυση, διάταξη εξόδου και μετεπεξεργασία
Το μοντέλο που έχει μετατραπεί δεν μπορεί να αρχικοποιηθείΕπιλογή στόχου, συμβατότητα χρόνου εκτέλεσης/προγράμματος οδήγησης και ακεραιότητα τεχνουργήματος μοντέλου
Καλό σύντομο σημείο αναφοράς, κακή σταθερή απόδοσηΘερμοκρασία, λειτουργία ισχύος, πίεση μνήμης και ανταγωνιστική εργασία
Αποδεκτός χρόνος συμπερασμάτων, εμφανώς καθυστερημένα αποτελέσματαΑποτύπωση προσωρινής αποθήκευσης, ηλικίας ουράς, αντιγράφων και προγραμματισμού εξόδου
Η έξοδος INT8 χάνει χρήσιμους εντοπισμούςΚάλυψη βαθμονόμησης, ισοδυναμία προεπεξεργασίας και επικύρωση σε επίπεδο εργασίας

Μετατρέψτε το πρωτότυπο σε επαναλαμβανόμενο προϊόν

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

Όταν η πλακέτα χρειάζεται διαφορετικούς συνδέσμους, ρύθμιση ισχύος ή διεπαφές αισθητήρων, ελέγξτε το SoM έναντι απόφασης SBC και το Διαδικασία σχεδίασης πλακέτα φορέα. Αυτές οι αποφάσεις καθορίζουν πώς μια επιτυχημένη επίδειξη μοντέλου γίνεται ένα συντηρήσιμο σύστημα.

RK3588 NPU ερωτήσεις ανάπτυξης

Μπορεί κάθε μοντέλο ONNX να τρέχει στο RK3588 NPU;

Η συμβατότητα εξαρτάται από το πραγματικό γράφημα, τα σχήματα, τις λειτουργίες και την επιλεγμένη αλυσίδα εργαλείων. Δημιουργήστε υποστήριξη μέσω μετατροπής και επικύρωσης στη συσκευή του μοντέλου που σκοπεύετε να στείλετε.

Μια διαφημιζόμενη βαθμολογία επιταχυντή προβλέπει το FPS της εφαρμογής;

Όχι. Το δίκτυο, η ακρίβεια, η συμπεριφορά της μνήμης, η προεπεξεργασία και ο χρόνος εκτέλεσης καθορίζουν τη μετρούμενη απόδοση της εφαρμογής. Χρησιμοποιήστε τον στόχο φόρτου εργασίας και την πλήρη διαδρομή δεδομένων του όταν συγκρίνετε πλατφόρμες.

Πρέπει πρώτα να βελτιστοποιήσω το νευρωνικό δίκτυο;

Το προφίλ πρώτα. Εάν κυριαρχεί η απόκτηση, η μετατροπή εικόνας ή η ουρά, η μείωση του χρόνου εκτέλεσης του μοντέλου ενδέχεται να έχει μικρή επίδραση στην ηλικία του αποτελέσματος που βιώνει η εφαρμογή.

Συγκρίνετε την πλήρη εργασία όρασης υπολογιστή

Για μια εφαρμογή ανίχνευσης αντικειμένων, μετρήστε τη λήψη κάμερας, την αλλαγή μεγέθους και την κανονικοποίηση, το συμπέρασμα NPU, την αποκωδικοποίηση εξόδου και την παράδοση της απόφασης. Αναφέρετε την έκδοση του μοντέλου, την ανάλυση εισόδου, την ακρίβεια, το όριο εμπιστοσύνης και το σύνολο δεδομένων αξιολόγησης με το αποτέλεσμα χρονισμού. Διαφορετικά, δύο φαινομενικά παρόμοια σημεία αναφοράς τεχνητής νοημοσύνης μπορεί να περιγράφουν διαφορετικές εργασίες.

Δοκιμάστε το εξαγόμενο γράφημα και τους απαιτούμενους τελεστές μέσω της επιλεγμένης αλυσίδας εργαλείων RKNN πριν δεσμευτείτε σε μια αρχιτεκτονική μοντέλου. Ελέγξτε την ακρίβεια μετά την κβαντοποίηση και τη συμπεριφορά κατά τη διάρκεια της συνεχούς εκτέλεσης, όχι μόνο εάν η μετατροπή είναι επιτυχής. Η ανίχνευση, η τμηματοποίηση και η ταξινόμηση αντικειμένων έχουν διαφορετικό κόστος επεξεργασίας. επικυρώστε τον πραγματικό φόρτο εργασίας που έχει επιλεγεί για το έργο.

Συγκρίνετε τους ρόλους σχεδίασης FPGA, NPU και MPU

Τεχνικές αναφορές

Αντιμετωπίστε τον φόρτο εργασίας σας στο edge AI.

Μοιραστείτε το μοντέλο, την ανάλυση εισόδου, τις διεπαφές κάμερας, τον απαιτούμενο ρυθμό αποτελεσμάτων και τον φάκελο ισχύος. Μπορούμε να αξιολογήσουμε το έργο ενοποίησης γύρω από μια πλατφόρμα αιχμής που βασίζεται σε RK3588.