Τι επεξεργάζεται το λογισμικό όρασης που βασίζεται σε εκδηλώσεις;
Μια κάμερα συμβάντων αναφέρει αλλαγές στη φωτεινότητα αντί να παρέχει ένα συμβατικό καρέ βίντεο σε κάθε διάστημα. Ένα αποκωδικοποιημένο συμβάν τυπικά προσδιορίζει ένα pixel, μια πολικότητα και μια χρονική σήμανση. Η αίτησή σας πρέπει να διατηρεί το νόημα αυτών των πεδίων μέσω απόκτησης, φιλτραρίσματος, καταγραφής και συμπερασμάτων. Το σύγκριση βάσει συμβάντων έναντι σύγκρισης βάσει πλαισίου εξηγεί πότε αυτό το μοντέλο δεδομένων είναι χρήσιμο.
Διακρίνετε τρεις μορφές στη σχεδίαση: την κωδικοποίηση αισθητήρα ή μεταφοράς, την αποκωδικοποιημένη αναπαράσταση συμβάντος που χρησιμοποιείται από το λογισμικό και την αναπαράσταση που μεταβιβάζεται σε έναν αλγόριθμο. Ένα αρχείο που περιέχει ακατέργαστα πακέτα αισθητήρων, μια σειρά αποκωδικοποιημένων γεγονότων και μια συσσωρευμένη εικόνα εξυπηρετεί διαφορετικούς σκοπούς. Η μετατροπή μεταξύ τους μπορεί να αλλάξει τη χρήση της μνήμης, το κόστος επεξεργασίας και τις πληροφορίες χρονισμού που είναι διαθέσιμες κατάντη.
| Εκπροσώπηση | Χρήσιμο για | Ερώτηση ενσωμάτωσης |
|---|---|---|
| Ακατέργαστα πακέτα ή εγγραφή πωλητή | Αναπαραγωγή συμπεριφοράς απόκτησης και αποκωδικοποίησης | Μπορεί ο αποκωδικοποιητής που έχει αναπτυχθεί να διαβάσει αυτήν ακριβώς τη συσκευή και την αναθεώρηση μορφής; |
| Αποκωδικοποιημένα γεγονότα | Φιλτράρισμα, ανάλυση χρονισμού και εγγενείς αλγόριθμοι συμβάντων | Ποια είναι η σύμβαση μονάδας χρονικής σήμανσης, τομέας ρολογιού και συντεταγμένων; |
| Επιφάνειες χρόνου ή τανυστές που μοιάζουν με voxel | Αλγόριθμοι που χρειάζονται μια δομημένη χρονική αναπαράσταση | Ποιες ρυθμίσεις ιστορικού, binning και κανονικοποίησης πρέπει να αναπαραχθούν; |
| Συσσωρευμένες εικόνες συμβάντων | Οπτικοποίηση ή συμβατό στάδιο επεξεργασίας εικόνας | Πόση καθυστέρηση και απώλεια πληροφοριών εισάγει το παράθυρο συσσώρευσης; |
Πώς να αξιολογήσετε μια κάμερα εκδήλωσης SDK
Ξεκινήστε με τον ακριβή αισθητήρα, το υλικολογισμικό της κάμερας και την πλατφόρμα υποδοχής. Μια επίδειξη επιτραπέζιου υπολογιστή δεν υποστηρίζει μια ενσωματωμένη εικόνα Linux, έναν επεξεργαστή ARM ή την άδεια παραγωγής σας. Ρωτήστε τον προμηθευτή για τα υποστηριζόμενα λειτουργικά συστήματα, τις αρχιτεκτονικές της CPU, τις συνθήκες αναδιανομής και τις απαιτήσεις διεπαφής κάμερας. Επαληθεύστε την εφαρμογή στην προβλεπόμενη πλατφόρμα πριν δεσμεύσετε το πλακέτα φορέα.
- Απόκτηση: εντοπισμός συσκευής, διαμόρφωση, αποκωδικοποίηση και αναφορά σφαλμάτων.
- Χρόνος: Προέλευση χρονικής σήμανσης, χειρισμός ανατροπής, εξωτερικοί εναύσματα και ευθυγράμμιση πολλών συσκευών.
- Αναπαραγωγιμότητα: εγγραφές, εξαγωγή διαμόρφωσης και αναγνωρισμένη έκδοση λογισμικού.
- Ανάπτυξη: λειτουργία χωρίς κεφαλή, υποστηριζόμενα δυαδικά αρχεία, συμπεριφορά επανεκκίνησης και όροι άδειας χρήσης.
- Παρατηρησιμότητα: μετρήσεις συμβάντων, βάθος ουράς, απορριπτόμενα δεδομένα και χρήση πόρων κεντρικού υπολογιστή.
Κατασκευάστε έναν αγωγό με σαφή χρονικά όρια
Διατηρήστε την απόκτηση ξεχωριστή από την ακριβή οπτικοποίηση, την εγγραφή δίσκου και τα συμπεράσματα μοντέλων. Διαφορετικά, ένας αργός καταναλωτής μπορεί να καθυστερήσει τα νέα δεδομένα πριν καν ξεκινήσει ο αλγόριθμος. Καθορίστε μια περιορισμένη ουρά και μια ρητή πολιτική υπερφόρτωσης. Η απόρριψη του παλαιότερου παραθύρου, η μείωση της περιοχής ενδιαφέροντος και η διακοπή με ένα σφάλμα έχουν διαφορετικές συνέπειες. επιλέξτε τη συμπεριφορά που ταιριάζει στην εφαρμογή και καταγράψτε πότε συμβαίνει.
Χρησιμοποιήστε χρονικές σημάνσεις αισθητήρα για να περιγράψετε πότε έγιναν παρατηρήσεις και ένα μονοτονικό ρολόι κεντρικού υπολογιστή για να μετρήσετε τις διάρκειες επεξεργασίας. Η αφαίρεση χρονικών σημάνσεων από άσχετα ρολόγια δεν παράγει έγκυρο λανθάνοντα χρόνο από άκρο σε άκρο. Εάν η κάμερα πρέπει να συνδυαστεί με μια IMU ή μια συμβατική κάμερα, καθορίστε τη σχέση ρολογιού και τη διαδικασία βαθμονόμησης που περιγράφονται στο οδηγός συγχρονισμού αισθητήρα-σύντηξης.
Ένα μικρό παράδειγμα καταγραφής-επιθεώρησης
Το ακόλουθο παράδειγμα Python μετράει τα αποκωδικοποιημένα συμβάντα σε μια υποστηριζόμενη εγγραφή και αναφέρει το διάστημα των χρονικών τους σφραγίδων. Χρησιμοποιεί την τεκμηριωμένη ροή της Metavision API και απαιτεί συμβατή εγκατάσταση και εγγραφή SDK. Είναι ένα παράδειγμα επιθεώρησης, όχι ένα σημείο αναφοράς κάμερας ALVEXIS ή ένας ανιχνευτής.
import argparse
from metavision_sdk_stream import Camera, CameraStreamSlicer
parser = argparse.ArgumentParser()
parser.add_argument("recording")
args = parser.parse_args()
source = Camera.from_file(args.recording)
count, first_us, last_us = 0, None, None
for batch in CameraStreamSlicer(source.move()):
events = batch.events
if events.size:
start = int(events["t"][0])
end = int(events["t"][-1])
first_us = start if first_us is None else min(first_us, start)
last_us = end if last_us is None else max(last_us, end)
count += int(events.size)
span_s = 0.0 if first_us is None else (last_us - first_us) / 1_000_000
print({"events": count, "event_timestamp_span_s": span_s})
Το διάστημα της χρονικής σήμανσης καλύπτει το πρώτο έως το τελευταίο συμβάν που παρατηρήθηκε. δεν μετρά τη διάρκεια του αρχείου, την καθυστέρηση απόκτησης ή την απόδοση επεξεργασίας. Οι κενές περίοδοι και οι επαναφορές ρολογιού χρειάζονται ξεχωριστό χειρισμό στην παραγωγή. Διατηρήστε τη διαμόρφωση της συσκευής και τα μεταδεδομένα εγγραφής δίπλα στο αρχείο, έτσι ώστε ένας δεύτερος μηχανικός να μπορεί να αναπαράγει την ερμηνεία.
Επικυρώστε ήσυχες σκηνές, πολυάσχολες σκηνές και ανάκτηση αποτυχίας
Δοκιμάστε μια στατική σκηνή, αντιπροσωπευτική κίνηση και μια σκόπιμα απαιτητική σκηνή. Το τρεμόπαιγμα, η δόνηση της κάμερας και η ανάγλυφη κίνηση μπορούν να δημιουργήσουν πολύ διαφορετικούς ρυθμούς συμβάντων. Καταγράψτε τόσο την τυπική συμπεριφορά όσο και τη χειρότερη περίπτωση που παρατηρήσατε. Επαναλάβετε με ενεργά την αποθήκευση και τις επικοινωνίες, επειδή αυτοί οι φόρτοι εργασίας ανταγωνίζονται για τη μνήμη και τον χρόνο CPU.
| Δοκιμή | Εγγραφή | Απόφαση που υποστηρίζει |
|---|---|---|
| Επαναλάβετε την ίδια εγγραφή | Διαμόρφωση, διαφορές εξόδου και διάρκεια επεξεργασίας | Μπορεί μια αλλαγή λογισμικού να αξιολογηθεί αναπαραγώγιμα; |
| Αυξήστε τη δραστηριότητα της σκηνής | Βάθος ουράς, απώλεια συμβάντος και ηλικία εξόδου | Παραμένει το σύστημα χρησιμοποιήσιμο υπό αιχμή φορτίο; |
| Αλλάξτε το παράθυρο επεξεργασίας | Ακρίβεια εφαρμογής και καθυστέρηση αισθητήρα προς έξοδο | Ποια αντιστάθμιση χρονισμού/λεπτομέρειας ταιριάζει στην απαίτηση; |
| Αποσυνδέστε και επανασυνδέστε τη συσκευή | Χρόνος ανάκτησης, επαναφορά ρολογιού και συνέχεια εγγραφής | Μπορεί η αναπτυσσόμενη υπηρεσία να ανακάμψει προβλέψιμα; |
Όταν ο αλγόριθμος χρησιμοποιεί ένα νευρωνικό δίκτυο, ελέγξτε τον τανυστή που προκύπτει και τους υποστηριζόμενους τελεστές πριν επιλέξετε έναν επιταχυντή. Μια κάμερα συμβάντων δεν απαιτεί αυτόματα NPU και μια NPU δεν δέχεται αυτόματα μια ροή συμβάντων. Το δικό μας Οδηγός αρχιτεκτονικής FPGA, NPU και MPU διαχωρίζει τις υπηρεσίες απόκτησης, προεπεξεργασίας, συμπερασμάτων και εφαρμογής.
Ερωτήσεις πριν επιλέξετε μια στοίβα λογισμικού
Μπορώ να χρησιμοποιήσω ένα κανονικό μοντέλο όρασης υπολογιστή;
Μόνο αφού ορίσετε μια συμβατή αναπαράσταση εισόδου και επικυρώσετε τη συμπεριφορά της. Η συσσώρευση συμβάντων σε εικόνες μπορεί να επιτρέψει την επαναχρησιμοποίηση ενός σταδίου επεξεργασίας εικόνας, αλλά αλλάζει την κατανομή των δεδομένων και προσθέτει ένα παράθυρο χρονισμού. Αξιολογήστε την πλήρη αίτηση με αντιπροσωπευτικά δεδομένα.
Αποδεικνύεται μια λειτουργική επίδειξη φορητού υπολογιστή ενσωματωμένη συμβατότητα;
Όχι. Επιβεβαιώστε την αρχιτεκτονική της CPU, το λειτουργικό σύστημα, τη διεπαφή αισθητήρα, το πρόγραμμα οδήγησης, την άδεια SDK και τη συνεχή χρήση πόρων της πραγματικής πλατφόρμας στόχου.
Τι πρέπει να στείλω για μια συζήτηση ένταξης;
Αποστολή αναφοράς κάμερας ή αισθητήρα, εγγραφή δείγματος, προβλεπόμενη έξοδος, αποδεκτή καθυστέρηση, πλατφόρμα κεντρικού υπολογιστή, διεπαφή και περιβάλλον ανάπτυξης. Αυτά τα στοιχεία καθιστούν τη συζήτηση αρκετά συγκεκριμένη ώστε να εντοπιστούν οι πρώτοι κίνδυνοι ολοκλήρωσης.
Νευρομορφική όραση σε αγωγό όρασης υπολογιστή
Οι κάμερες συμβάντων συζητούνται συχνά κάτω από τη νευρομορφική όραση, επειδή η έξοδος τους καταγράφει αλλαγές σε μεμονωμένα pixel και όχι σε μια σταθερή ακολουθία πλήρων εικόνων. Αυτή η αναπαράσταση δεδομένων δεν παρέχει αυτόματα ανίχνευση αντικειμένων ή αποτέλεσμα νευρωνικού δικτύου. Το λογισμικό εξακολουθεί να χρειάζεται μια καθορισμένη εργασία, έναν συμβατό αλγόριθμο και μετρήσιμα κριτήρια αποδοχής.
Κατά την ενσωμάτωση με εργαλεία όρασης υπολογιστή προσανατολισμένα στο πλαίσιο, μια ροή συμβάντων μπορεί να μετατραπεί σε εικόνα χρονικού παραθύρου ή σε άλλη αναπαράσταση. Διατηρήστε τις αρχικές χρονικές σημάνσεις εάν η εργασία εξαρτάται από λεπτές χρονικές πληροφορίες. Αξιολογήστε τον πλήρη αγωγό μετατροπής και επεξεργασίας. μια ελκυστική ανακατασκευασμένη εικόνα από μόνη της δεν καθορίζει την ακρίβεια ή την καθυστέρηση της τελικής εφαρμογής.
Σχεδιάστε το χρονοδιάγραμμα πριν από το σύντηξη δεδομένων αισθητήρων
Τεχνικές αναφορές
- Προφήτης: ξεκινώντας με τη ροή Python API
- Προφήτης: ανάγνωση γεγονότων από κάμερες και αρχεία
- Gallego et al.: Event-based Vision — A Survey
Τα παραδείγματα προμηθευτών περιγράφουν το δικό τους υποστηριζόμενο οικοσύστημα. Επιβεβαιώστε τη συμβατότητα και την άδεια χρήσης για την επιλεγμένη συσκευή και την ανάπτυξη.
