Πίνακας περιεχομένων:

Opencv Αναγνώριση προσώπου: 4 βήματα
Opencv Αναγνώριση προσώπου: 4 βήματα

Βίντεο: Opencv Αναγνώριση προσώπου: 4 βήματα

Βίντεο: Opencv Αναγνώριση προσώπου: 4 βήματα
Βίντεο: Voldemort 1.0 - Οδηγός Χρήσης 2024, Ιούλιος
Anonim
Opencv Αναγνώριση προσώπου
Opencv Αναγνώριση προσώπου

Η αναγνώριση προσώπου είναι κάτι πολύ συχνό στις μέρες μας, σε πολλές εφαρμογές όπως έξυπνα τηλέφωνα, πολλά ηλεκτρονικά gadget. Αυτό το είδος τεχνολογίας περιλαμβάνει πολλούς αλγόριθμους και εργαλεία κλπ. Που χρησιμοποιεί ενσωματωμένες ενσωματωμένες πλατφόρμες SOC όπως το Raspberry Pi και την ανοιχτή πηγή υπολογιστή βιβλιοθήκες όπως το OpenCV, μπορείτε τώρα να προσθέσετε αναγνώριση προσώπου στις δικές σας εφαρμογές όπως, συστήματα ασφαλείας.

Σε αυτό το έργο, θα σας πω πώς να δημιουργήσετε μια αναγνώριση προσώπου χρησιμοποιώντας ένα Raspberry Pi και χρησιμοποιήσαμε το arduino+Lcd για να εμφανίσετε το όνομα του ατόμου.

Βήμα 1: Πράγματα που χρειάζεστε

Πράγματα που χρειάζεστε
Πράγματα που χρειάζεστε

1. ΡΑΣΠΕΡΙ ΠΙ

2. ARDUINO UNO / NANO

3.16x2 lCD DISPLAY

4. RASPI-CAMERA / WEBcam (προτιμώ την κάμερα web για καλύτερα αποτελέσματα)

Βήμα 2: Εισαγωγή και Εγκατάσταση

Άνοιγμα-Εισαγωγή και Εγκατάσταση
Άνοιγμα-Εισαγωγή και Εγκατάσταση

Το OpenCV (βιβλιοθήκη οπτικού υπολογιστή ανοιχτού κώδικα) είναι μια πολύ χρήσιμη βιβλιοθήκη - παρέχει πολλές χρήσιμες δυνατότητες όπως αναγνώριση κειμένου, αναγνώριση προσώπου, ανίχνευση αντικειμένων, δημιουργία χαρτών βάθους και μηχανική εκμάθηση.

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

Τι είναι το OpenCV;

Το OpenCV είναι μια βιβλιοθήκη λογισμικού οπτικής και μηχανικής μάθησης ανοιχτού κώδικα. Το OpenCV κυκλοφορεί με άδεια BSD καθιστώντας το δωρεάν τόσο για ακαδημαϊκή όσο και για εμπορική χρήση. Διαθέτει διεπαφές C ++, Python και Java και υποστηρίζει Windows, Linux, Mac OS, iOS και Android. Το OpenCV σχεδιάστηκε για υπολογιστική αποδοτικότητα και έμφαση σε εφαρμογές σε πραγματικό χρόνο.

Πώς να εγκαταστήσετε το OpenCV σε ένα Raspberry Pi;

Για να εγκαταστήσουμε το OpenCV, πρέπει να έχουμε εγκατεστημένο το Python. Δεδομένου ότι τα Raspberry Pis είναι προφορτωμένα με Python, μπορούμε να εγκαταστήσουμε απευθείας το OpenCV.

Πληκτρολογήστε τις παρακάτω εντολές για να βεβαιωθείτε ότι το Raspberry Pi είναι ενημερωμένο και να ενημερώσετε τα εγκατεστημένα πακέτα στο Raspberry Pi στις πιο πρόσφατες εκδόσεις.

sudo apt-get updatesudo apt-get upgrade

Πληκτρολογήστε τις ακόλουθες εντολές στο τερματικό για να εγκαταστήσετε τα απαιτούμενα πακέτα για το OpenCV στο Raspberry Pi.

sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4

Πληκτρολογήστε την ακόλουθη εντολή για να εγκαταστήσετε το OpenCV 3 για Python 3 στο Raspberry Pi σας, το pip3 μας λέει ότι το OpenCV θα εγκατασταθεί για το Python 3.

sudo pip3 εγκαταστήστε το opencv-contrib-python libwebp6

Τώρα, πρέπει να εγκατασταθεί το OpenCV.

(εάν παρουσιάστηκαν σφάλματα: μπορείτε ακόμα να το κάνετε ακολουθώντας τον παρακάτω σύνδεσμο

https://www.instructables.com/id/Raspberry-Pi-Hand…)

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

Δοκιμάστε το opencv σας με:

1. μεταβείτε στο τερματικό σας και πληκτρολογήστε "python"

2. στη συνέχεια πληκτρολογήστε "εισαγωγή cv2".

3. τότε πληκτρολογήστε "cv2._ version_".

στη συνέχεια, εγκαταστήστε αυτές τις βιβλιοθήκες

pip3 εγκατάσταση python-numpy

pip3 εγκαταστήστε python-matplotlib

Δοκιμή κώδικα για τον εντοπισμό προσώπων σε μια εικόνα:

εισαγωγή cv2

faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");

image = cv2.imread («το όνομα του αρχείου σας») #example cv2.imread («home/pi/Desktop/filename.jpg»)

θα πάρετε την έξοδο σαν να σχηματίστηκαν τετράγωνα κουτιά στα πρόσωπα των ανθρώπων που είναι στην εικόνα.

Βήμα 3: Ανίχνευση και αναγνώριση προσώπου σε βίντεο σε πραγματικό χρόνο

εισαγωγή cv2

εισαγωγή numpy ως np

εισαγωγή os

σειρά εισαγωγής

ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 μπορεί να αλλάξει στην περίπτωσή σας, εξαρτάται από το arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

αναγνωριστής = cv2.face.createLBPHFaceRecognizer ()

εικόνες =

ετικέτες =

για το όνομα αρχείου στο os.listdir ('Dataset'):

im = cv2.imread ('Dataset/'+όνομα αρχείου, 0)

images.append (im)

labels.append (int (όνομα αρχείου.split ('.') [0] [0]))

#print όνομα αρχείου

names_file = open ('labels.txt')

ονόματα = names_file.read (). split ('\ n')

αναγνωριστικό. τρένο (εικόνες, np.array (ετικέτες))

εκτύπωση «Η εκπαίδευση ολοκληρώθηκε. Το Το '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # η συσκευή σας βίντεο

lastRes = "" count = 0

ενώ (1):

_, frame = cap.read ()

γκρι = cv2.cvtColor (πλαίσιο, cv2. COLOR_BGR2GRAY)

πρόσωπα = faceCascade.detectMultiScale (γκρι, 1,3, 5)

μέτρηση+= 1

για (x, y, w, h) στα πρόσωπα:

cv2. ορθογώνιο (πλαίσιο, (x, y), (x+w, y+h), (255, 0, 0), 2)

αν μετράει> 20: res = ονόματα [αναγνωριστής. πρόβλεψη (γκρι [y: y+h, x: x+w])-1]

αν res! = lastRes:

lastRes = res

εκτύπωση lastRes

ser.write (lastRes)

μέτρηση = 0

Διακοπή

cv2.imshow («πλαίσιο», πλαίσιο)

k = 0xFF & cv2.waitKey (10)

αν k == 27:

Διακοπή

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Βήμα 4: Εκτέλεση του κώδικα

Εκτέλεση του Κώδικα
Εκτέλεση του Κώδικα

1. Κάντε λήψη των αρχείων που επισυνάπτονται στο προηγούμενο βήμα

2. αντιγράψτε τις γκρι φωτογραφίες σας (6 εικόνες/ δείγματα…..) στο φάκελο δεδομένων σας

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (αριθμός εικόνας σετ δεδομένων για πιο ανοιχτό φάκελο δεδομένων)

2. Μπραντ Πιτ-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Λέων-3_1, 3_2, 3_3, 3_4, 3_5, 3_6

4. Ironman4_1, 4_2, 4_3, 4_4, 4_5, 4_6

όπως τα παραπάνω, μπορείτε να προσθέσετε τις ετικέτες για τα αντίστοιχα άτομα,

οπότε αν το pi ανιχνεύσει οποιοδήποτε πρόσωπο μεταξύ 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, τότε χαρακτηρίστηκε ως Τομ Κρουζ, οπότε προσέξτε κατά τη μεταφόρτωση των φωτογραφιών ………………

και, στη συνέχεια, συνδέστε το arduino με το βατόμουρό σας Pi και κάντε αλλαγές στο main.py codeser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. εισαγάγετε όλα τα ληφθέντα αρχεία (main.py, φάκελος δεδομένων, haarcascade_frontalface_default.xml σε έναν φάκελο.)

3. Τώρα ανοίξτε το Raspi-terminal εκτελέστε τον κώδικά σας από το "sudo python main.py"

Συνιστάται: