תוכן עניינים:

זיהוי פנים של Opencv: 4 שלבים
זיהוי פנים של Opencv: 4 שלבים

וִידֵאוֹ: זיהוי פנים של Opencv: 4 שלבים

וִידֵאוֹ: זיהוי פנים של Opencv: 4 שלבים
וִידֵאוֹ: Face recognition with python and opencv2 #python #opencv #opencv2 #opencvpython #doctorwho 2024, יולי
Anonim
זיהוי פנים של Opencv
זיהוי פנים של Opencv

זיהוי פנים הוא דבר די שכיח כיום, ביישומים רבים כמו טלפונים חכמים, הרבה גאדג'טים אלקטרוניים. סוג זה של טכנולוגיה כולל הרבה אלגוריתמים וכלים וכו '. ספריות כמו OpenCV, כעת תוכל להוסיף זיהוי פנים ליישומים משלך כמו מערכות אבטחה.

בפרויקט זה, אגיד לך כיצד לבנות זיהוי פנים באמצעות פטל פטל והשתמשנו ב- arduino+Lcd כדי להציג את שמו של האדם.

שלב 1: דברים שאתה צריך

דברים שאתה צריך
דברים שאתה צריך

1. RASPBERRY PI

2. ARDUINO UNO / NANO

תצוגה בגודל 3.16x2 lCD

4. RASPI-CAMERA / WEBcam (אני מעדיף מצלמת רשת לתוצאות טובות יותר)

שלב 2: Opencv-Intro והתקנה

Opencv-מבוא והתקנה
Opencv-מבוא והתקנה

OpenCV (ספריית ראיית מחשב בקוד פתוח) היא ספרייה שימושית מאוד - היא מספקת תכונות שימושיות רבות כגון זיהוי טקסט, זיהוי פנים, זיהוי עצמים, יצירת מפות עומק ולמידת מכונה.

מאמר זה יראה לך כיצד להתקין את Opencv וספריות אחרות ב- Raspberry Pi שיהיו שימושיות בעת ביצוע זיהוי אובייקטים ופרויקטים אחרים. משם נלמד כיצד לבצע פעולות תמונה ווידאו על ידי ביצוע פרויקט זיהוי אובייקטים ולמידת מכונה. באופן ספציפי, נכתוב קוד פשוט לזיהוי פנים בתמונה.

מהו OpenCV?

OpenCV היא ספריית תוכנת ראייה ממוחשבת ולמידת מכונות בקוד פתוח. OpenCV משוחרר תחת רישיון BSD מה שהופך אותו ללא תשלום לשימוש אקדמי ומסחרי כאחד. יש לו ממשקי C ++, Python ו- Java ותומך ב- Windows, Linux, Mac OS, iOS ו- Android. OpenCV תוכנן ליעילות חישובית והתמקדות חזקה ביישומים בזמן אמת.

כיצד להתקין את OpenCV ב- Raspberry Pi?

כדי להתקין את OpenCV, עלינו להתקין את פייתון. מכיוון ש- Raspberry Pis נטענו מראש ב- Python, אנו יכולים להתקין את OpenCV ישירות.

הקלד את הפקודות למטה כדי לוודא ש- Raspberry Pi שלך מעודכן ולעדכן את החבילות המותקנות ב- Raspberry Pi לגרסאות העדכניות ביותר.

sudo apt-get עדכונים sudo 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. עבור למסוף שלך והקלד "פייתון"

2. לאחר מכן הקלד "יבוא cv2".

3. לאחר מכן הקלד "cv2._ גרסה_".

לאחר מכן התקן את הספריות האלה

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

ייבוא מערכת הפעלה

ייבוא סדרתי

ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 עשוי להשתנות במקרה שלך, תלוי בארדואינו

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

מזהה = cv2.face.createLBPHFaceRecognizer ()

תמונות =

תוויות =

לשם קובץ ב- os.listdir ('מערך נתונים'):

im = cv2.imread ('מערך נתונים/'+שם קובץ, 0)

images.append (im)

labels.append (int (filename.split ('.') [0] [0]))

#שם קובץ הדפסה

names_file = open ('labels.txt')

שמות = names_file.read (). פיצול ('\ 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. טום קרוז 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. איירוןמן 4_1, 4_2, 4_3, 4_4, 4_5, 4_6

כמו האמור לעיל אתה יכול להוסיף את התוויות לאנשים המתאימים,

אז אם ה- pi מזהה פנים בין 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, אז הוא סומן כטום קרוז, אז אנא היזהר בעת העלאת התמונות ………………

ולאחר מכן חבר את הארדואינו שלך ל- פטל הפטל שלך ובצע שינויים בקודר main.py = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. שים את כל הקבצים שהורדו (main.py, תיקיית הנתונים, haarcascade_frontalface_default.xml בתיקייה אחת.)

3. כעת פתח את מסוף Raspi הפעל את הקוד שלך על ידי "sudo python main.py"

מוּמלָץ: