Πίνακας περιεχομένων:
- Βήμα 1: Εμβάθυνση: Πώς μπορεί να ανιχνευθεί κίνηση αντικειμένων σε ροή εικόνας;
- Βήμα 2: Δικονοποίηση
- Βήμα 3: Διαστολή
- Βήμα 4: Η αναζήτηση για τα περιγράμματα (και τα κεντροειδή του)
- Βήμα 5: Κίνηση και καταμέτρηση αντικειμένων του Centorid
Βίντεο: Αρίθμηση αντικειμένων Raspberry Pi: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Η όραση υπολογιστή, αναμφίβολα, είναι ένα φανταστικό πράγμα! Χρησιμοποιώντας αυτό, ένας υπολογιστής αποκτά την ικανότητα να "βλέπει" και να αισθάνεται καλύτερα το περιβάλλον γύρω, κάτι που επιτρέπει την ανάπτυξη πολύπλοκων, χρήσιμων και δροσερών εφαρμογών. Εφαρμογές όπως η ανίχνευση και η αναγνώριση προσώπου, η παρακολούθηση αντικειμένων και η ανίχνευση αντικειμένων είναι ολοένα και περισσότερο παρούσες στις καθημερινές μας δραστηριότητες, χάρη στην πρόοδο της όρασης στον υπολογιστή.
Λαμβάνοντας υπόψη πόσο προηγμένα και προσβάσιμα είναι τα πλαίσια και τα εργαλεία όρασης του υπολογιστή, η εφαρμογή που περιγράφεται σε αυτό το άρθρο ταιριάζει καλά: χρησιμοποιώντας ένα απλό Raspberry PI και ένα πλαίσιο υπολογιστικής όρασης υπολογιστή χωρίς κόστος και ανοιχτού κώδικα που ονομάζεται OpenCV για να μετρήσετε αντικείμενα σε κίνηση, πιο συγκεκριμένα πόσο αντικείμενα εισέρχονται και εξέρχονται από μια συγκεκριμένη ζώνη παρακολούθησης.
Βήμα 1: Εμβάθυνση: Πώς μπορεί να ανιχνευθεί κίνηση αντικειμένων σε ροή εικόνας;
Τώρα ήρθε η ώρα να εμβαθύνουμε στην επεξεργασία εικόνας:
πώς να πάρετε μερικές εικόνες ροής κάμερας και να εντοπίσετε ότι κάτι έχει μετακινηθεί εκεί
Αποτελείται από πέντε βήματα:
Βήμα 1: Για να επισημάνετε το αντικείμενο σε κίνηση
Όπως ορίζεται στην κλασική φυσική, μια αναφορά είναι απαραίτητη για να συμπεράνουμε ότι κάτι κινείται ή αν είναι ακίνητο. Εδώ, για να διαπιστωθεί εάν κάτι έχει μετακινηθεί, είναι σχεδόν το ίδιο: κάθε μεμονωμένη ροή κάμερας που καταγράφεται θα συγκρίνεται με ένα πλαίσιο αναφοράς. Αν κάτι είναι διαφορετικό, κάτι έχει μετακινηθεί. Είναι απλό όσο ακούγεται.
Αυτό το πλαίσιο αναφοράς πρέπει να καταγραφεί στις πιο τέλειες συνθήκες (τίποτα δεν κινείται, για παράδειγμα). Στον κόσμο της επεξεργασίας εικόνας, αυτή η σύγκριση μεταξύ ενός πλαισίου λήψης και ενός πλαισίου αναφοράς συνίσταται σε μια τεχνική που ονομάζεται αφαίρεση φόντου. Η αφαίρεση υποβάθρου συνίσταται στην αφαίρεση κυριολεκτικά των πληροφοριών χρώματος εικονοστοιχείου από εικονοστοιχείο από το καταγεγραμμένο πλαίσιο και το πλαίσιο αναφοράς. Έτσι, η εικόνα που προκύπτει από αυτήν την επιτυχία θα επισημάνει / εμφανίζει με περισσότερες λεπτομέρειες μόνο τι είναι διαφορετικό μεταξύ αυτών των δύο πλαισίων (ή τι έχει μετακινήσει / πάρει κίνηση) και όλα τα άλλα θα είναι μαύρα στην εικόνα (το χρώμα μηδενικής τιμής σε ένα γκρι -pixel κλίμακας). Σημαντικό: οι συνθήκες φωτισμού και η ποιότητα της εικόνας της κάμερας που έχει ληφθεί (λόγω της ποιότητας των αισθητήρων σύλληψης) μπορεί να διαφέρουν ελαφρώς από καρέ σε καρέ. Υπονοεί ότι τα "ίσα μέρη" από το πλαίσιο αναφοράς και άλλα καρέ δεν θα είναι εντελώς μαύρα μετά την αφαίρεση φόντου. Παρά τη συμπεριφορά αυτή, δεν υπάρχουν σοβαρές συνέπειες στα επόμενα βήματα επεξεργασίας εικόνας σε αυτό το έργο.
Προκειμένου να ελαχιστοποιηθεί ο χρόνος επεξεργασίας εικόνας, πριν από την υποστροφή υποβάθρου, το καταγεγραμμένο πλαίσιο και το πλαίσιο αναφοράς μετατρέπονται σε εικόνα γκρίζας κλίμακας. Μα γιατί? Είναι ένα θέμα υπολογιστικής αποτελεσματικότητας: μια εικόνα που παρουσιάζει πολλαπλά χρώματα (έγχρωμη εικόνα) έχει τρεις πληροφορίες ανά εικονοστοιχείο: Κόκκινα, Μπλε και Πράσινα στοιχεία χρώματος (το παλιό αλλά χρυσό πρότυπο RGB). Έτσι, μαθηματικά, κάθε εικονοστοιχείο μπορεί να οριστεί ως πίνακας τριών τιμών, καθένα από τα οποία αντιπροσωπεύει ένα συστατικό χρώματος. Επομένως, επεκτείνοντάς το σε ολόκληρη την εικόνα, η τελική εικόνα θα είναι στην πραγματικότητα το μείγμα τριών στοιχείων της εικόνας: Κόκκινο, Μπλε και Πράσινο στοιχεία εικόνας.
Για να το επεξεργαστείτε, απαιτείται πολλή δουλειά! Ωστόσο, σε εικόνες γκρι κλίμακας, κάθε εικονοστοιχείο έχει μόνο μία χρωματική πληροφορία. Έτσι, η επεξεργασία μιας έγχρωμης εικόνας είναι τρεις φορές πιο αργή από ό, τι στην περίπτωση εικόνας σε γκρι κλίμακα (τουλάχιστον τρεις φορές, ανάλογα με την τεχνική που περιλαμβάνει). Και υπάρχουν περισσότερα: για κάποιους σκοπούς (όπως αυτό το έργο), η επεξεργασία όλων των χρωμάτων δεν είναι απαραίτητη ή καθόλου σημαντική. Ως εκ τούτου, καταλήξαμε στο συμπέρασμα: η χρήση εικόνων σε γκρι κλίμακα συνιστάται ιδιαίτερα για σκοπούς επεξεργασίας εικόνας. Μετά την αφαίρεση υποβάθρου, είναι απαραίτητο να εφαρμόσετε το φίλτρο Gaussian Blur.
Το φίλτρο Gaussian Blur που εφαρμόζεται σε αφαιρούμενη εικόνα φόντου εξομαλύνει όλα τα περιγράμματα του κινούμενου ανιχνευμένου αντικειμένου. Σίγουρα, θα είναι βοηθητικό στα επόμενα βήματα της επεξεργασίας εικόνας.
Βήμα 2: Δικονοποίηση
Στις περισσότερες περιπτώσεις επεξεργασίας εικόνας, η δυαδικότητα είναι σχεδόν υποχρεωτικό βήμα μετά την επισήμανση αντικειμένων / χαρακτηριστικών σε μια εικόνα. Αιτία: σε μια δυαδική εικόνα, κάθε χρώμα pixel μπορεί να λάβει δύο τιμές μόνο: 0x00 (μαύρο) ή 0xFF (λευκό). Αυτό βοηθάει πολύ την επεξεργασία εικόνας προκειμένου να απαιτηθεί ακόμη λιγότερη "υπολογιστική ισχύς" για την εφαρμογή τεχνικών επεξεργασίας εικόνας στα επόμενα βήματα. Η διματοποίηση μπορεί να γίνει συγκρίνοντας κάθε χρώμα εικονοστοιχείου της εικόνας σε γκρι κλίμακα με ένα συγκεκριμένο όριο. Εάν η τιμή του χρώματος εικονοστοιχείου είναι μεγαλύτερη από το κατώφλι, αυτό το χρώμα εικονοστοιχείου θα λάβει λευκή τιμή (0xFF) και αν η τιμή του χρώματος εικονοστοιχείου είναι χαμηλότερη από το κατώφλι, αυτό το χρώμα εικονοστοιχείου θα λάβει μαύρη τιμή (0x00). Δυστυχώς, η επιλογή της τιμής κατωφλίου δεν είναι τόσο εύκολο να γίνει. Εξαρτάται από περιβαλλοντικούς παράγοντες, όπως οι συνθήκες φωτισμού. Μια λανθασμένη επιλογή μιας τιμής κατωφλίου μπορεί να καταστρέψει όλα τα βήματα περαιτέρω. Έτσι, σας συνιστώ ανεπιφύλακτα να προσαρμόσετε χειροκίνητα ένα όριο στο έργο για την περίπτωσή σας πριν από οποιαδήποτε περαιτέρω ενέργεια. Αυτή η τιμή κατωφλίου πρέπει να διασφαλίζει ότι το κινούμενο αντικείμενο εμφανίζεται σε δυαδική εικόνα. Στην περίπτωσή μου, μετά από επαρκή επιλογή κατωφλίου, καταλήγει σε αυτό που βλέπετε στο σχήμα 5.
Εικόνα 5 - δυαδική εικόνα
Βήμα 3: Διαστολή
Μέχρι τώρα, ήταν δυνατό να εντοπιστούν κινούμενα αντικείμενα, να επισημανθούν και να εφαρμοστεί η δυαδικότητα, με αποτέλεσμα μια αρκετά καθαρή εικόνα του κινούμενου αντικειμένου (= αρκετά καθαρή εικόνα του αντικειμένου για σκοπούς επεξεργασίας εικόνας). Η προετοιμασία για την καταμέτρηση αντικειμένων έχει γίνει ΣΧΕΔΟΝ. Το "ΣΧΕΔΟ" εδώ σημαίνει ότι υπάρχουν κάποιες καλές προσαρμογές πριν προχωρήσετε. Σε αυτό το σημείο, υπάρχουν πραγματικές πιθανότητες παρουσίας "οπών" στα αντικείμενα (μαύρες μάζες εικονοστοιχείων στο λευκό επισημασμένο αντικείμενο). Αυτές οι τρύπες μπορεί να είναι οτιδήποτε, από συγκεκριμένες συνθήκες φωτισμού έως κάποιο μέρος του σχήματος του αντικειμένου. Μόλις οι τρύπες μπορούν να "παράγουν" ψεύτικα αντικείμενα μέσα σε πραγματικά αντικείμενα (ανάλογα με το πόσο μεγάλα και πού βρίσκονται), οι συνέπειες της παρουσίας οπών σε μια εικόνα μπορεί να είναι καταστροφικές για την καταμέτρηση των αντικειμένων. Ένας τρόπος για να εξαλειφθούν αυτές οι τρύπες είναι η χρήση μιας τεχνικής επεξεργασίας εικόνας που ονομάζεται Dilate. Χρησιμοποιήστε αυτό και οι τρύπες εξαφανίζονται.
Βήμα 4: Η αναζήτηση για τα περιγράμματα (και τα κεντροειδή του)
Σε αυτό το σημείο, έχουμε τα επισημασμένα αντικείμενα, χωρίς τρύπες μέσα και έτοιμα για το επόμενο: την αναζήτηση των περιγραμμάτων (και των κεντροειδών του). Υπάρχουν πόροι στο OpenCV για την ανίχνευση αυτόματων περιγραμμάτων, αλλά οι ανιχνευόμενες γραμμές πρέπει να επιλέγονται με σύνεση (για να επιλέξετε μόνο το πραγματικό αντικείμενο ή αντικείμενα). Έτσι, τα κριτήρια για τον εντοπισμό των περιγραμμάτων είναι η περιοχή του αντικειμένου, μετρημένη σε pixel². Εάν ένα περίγραμμα έχει μεγαλύτερη επιφάνεια από ένα όριο (διαμορφωμένο στο λογισμικό), πρέπει να θεωρηθεί ως πραγματικό αντικείμενο προς καταμέτρηση. Η επιλογή αυτού του ορίου/κριτηρίων περιοχής είναι πολύ σημαντική και μια κακή επιλογή εδώ σημαίνει λανθασμένες μετρήσεις. Πρέπει να δοκιμάσετε ορισμένες τιμές ορίων τιμής περιοχής και να ελέγξετε τι ταιριάζει καλύτερα στη χρήση σας. Μην ανησυχείτε, αυτά τα όρια δεν είναι τόσο δύσκολο να βρεθούν / προσαρμοστούν. Μόλις επιλεγούν όλα τα αντικείμενα της εικόνας, το επόμενο βήμα είναι να σχεδιάσετε ένα επαναγωνισμό πάνω του (αυτό το τετράγωνο πρέπει να περιέχει ένα ολόκληρο ανιχνευμένο αντικείμενο μέσα του). Και το κέντρο αυτού του ορθογωνίου είναι…. το αντικείμενο centroid! Maybeσως σκέφτεστε "Ποια είναι η μεγάλη υπόθεση με αυτό το centroid;", σωστά; Εδώ είναι η απάντησή σας: δεν έχει σημασία πόσο μεγάλο ή πώς είναι το σχήμα του αντικειμένου, η κίνηση του είναι ίδια με το κεντροειδές. Με άλλα λόγια: αυτό το απλό σημείο που ονομάζεται κεντροειδές αντιπροσωπεύει όλη την κίνηση του αντικειμένου. Κάνει την καταμέτρηση πολύ απλή τώρα, έτσι δεν είναι; Δείτε την παρακάτω εικόνα (εικόνα 6), όπου το κεντροειδές του αντικειμένου αναπαρίσταται ως μαύρο σημείο.
Βήμα 5: Κίνηση και καταμέτρηση αντικειμένων του Centorid
Το μεγάλο φινάλε: συγκρίνετε τις συντεταγμένες του κεντρικού αντικειμένου με τις συντεταγμένες των γραμμών εισόδου και εξόδου και εφαρμόστε τον αλγόριθμο μέτρησης που περιγράφηκε προηγουμένως. Και θα υπάρχει καταμέτρηση κινούμενων αντικειμένων!
Τελικό αποτέλεσμα Όπως φαίνεται στην αρχή αυτής της ανάρτησης, εδώ είναι το έργο σε δράση:
Συνιστάται:
Ανίχνευση αντικειμένων με πίνακες Sipeed MaiX (Kendryte K210): 6 βήματα
Ανίχνευση αντικειμένων με πίνακες Sipeed MaiX (Kendryte K210): Ως συνέχεια του προηγούμενου άρθρου μου σχετικά με την αναγνώριση εικόνας με τους πίνακες Sipeed MaiX, αποφάσισα να γράψω ένα άλλο σεμινάριο, εστιάζοντας στην ανίχνευση αντικειμένων. Πρόσφατα εμφανίστηκε κάποιο ενδιαφέρον υλικό με το τσιπ Kendryte K210, συμπεριλαμβανομένου του S
Προγραμματισμός με αντικείμενο: Δημιουργία εκμάθησης αντικειμένων/μέθοδος διδασκαλίας/τεχνική με τη χρήση Shape Puncher: 5 βήματα
Αντικειμενικός Προγραμματισμός: Δημιουργία Αντικειμένων Μάθησης/Διδακτικής Μέθοδος/Τεχνικής Χρήσης Shape Puncher: Μέθοδος εκμάθησης/διδασκαλίας για μαθητές που είναι νέοι στον αντικειμενοστραφή προγραμματισμό. Αυτός είναι ένας τρόπος για να τους επιτρέψετε να οπτικοποιήσουν και να δουν τη διαδικασία δημιουργίας αντικειμένων από κλάσεις.Μέρη:1. EkTools μεγάλη διάτρηση 2 ιντσών. τα στερεά σχήματα είναι καλύτερα.2. Κομμάτι χαρτί ή γ
Υπερηχητικός αισθητήρας για τη λήψη θετικών αλλαγών αντικειμένων: 3 βήματα
Υπερηχητικός αισθητήρας για τη λήψη θετικών αλλαγών αντικειμένων: Είναι σημαντικό να έχετε ασφαλή τα πολύτιμα αντικείμενα σας, θα ήταν κουτό αν συνεχίσετε να φυλάτε το κάστρο σας όλη την ημέρα. Χρησιμοποιώντας την κάμερα raspberry pi μπορείτε να τραβήξετε στιγμιότυπα την κατάλληλη στιγμή. Αυτός ο οδηγός θα σας βοηθήσει να τραβήξετε ένα βίντεο ή να τραβήξετε την εικόνα
Παρακολούθηση αντικειμένων Opencv: 3 βήματα
Παρακολούθηση αντικειμένων Opencv: Η ανίχνευση κινούμενων αντικειμένων είναι μια τεχνική που χρησιμοποιείται στην όραση του υπολογιστή και στην επεξεργασία εικόνας. Πολλαπλά διαδοχικά καρέ από ένα βίντεο συγκρίνονται με διάφορες μεθόδους για να προσδιοριστεί εάν ανιχνεύεται κάποιο κινούμενο αντικείμενο. Η ανίχνευση κινούμενων αντικειμένων έχει χρησιμοποιηθεί για wi
ChatterBox - ο μεταφραστής αντικειμένων: 6 βήματα
ChatterBox - Ο Μεταφραστής Αντικειμένων: Μια συσκευή που κάνει κάθε αντικείμενο να μιλά! Χρησιμοποιήστε με προσοχή