جدول المحتويات:
- الخطوة 1: اكتشاف الوجه في فيديو في الوقت الفعلي
- الخطوة 2: تدريب عينة الصور الخاصة بك
- الخطوة الثالثة: التعرف على الوجوه
فيديو: الكشف عن الوجه والتدريب والتعرف عليه: 3 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
OpenCV هي مكتبة رؤية حاسوبية مفتوحة المصدر تحظى بشعبية كبيرة لأداء مهام معالجة الصور الأساسية مثل التعتيم ومزج الصور وتحسين الصورة بالإضافة إلى جودة الفيديو والعتبة وما إلى ذلك ، بالإضافة إلى معالجة الصور ، فهي توفر العديد من التعلم العميق المدربين مسبقًا النماذج التي يمكن استخدامها مباشرة لحل المهام البسيطة في متناول اليد.
لتثبيت opencv ، استخدم هذا الرابط
www.instructables.com/id/Opencv-and-Python…
الخطوة 1: اكتشاف الوجه في فيديو في الوقت الفعلي
يمكنك البحث في Google عن العديد من برامج اكتشاف الوجوه ويجب حفظ الوجوه المكتشفة في مجلد لمزيد من معالجة الصور مثل التدريب ووضع العلامات. سنقوم بجمع 30 عينة
استيراد السيرة الذاتية 2
استيراد numpy كـ np
استيراد نظام استيراد نظام التشغيل
الكاميرا = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") # قم بإضافة مسار ملف harcascade
name = raw_input ("ما هو اسمه / اسمها؟")
# سيتم حفظ جميع الملفات ضمن مجلد Users / prasad / Documents / images
dirName = "/ Users / prasad / Documents / images /" + name
طباعة (dirName) إذا لم يكن os.path.exists (dirName): os.makedirs (dirName) طباعة ("Directory Created") وإلا: print ("الاسم موجود بالفعل") sys.exit ()
العد = 1
# سنقوم بجمع 30 عينة
أثناء العد 30: كسر # إطار = إطار. رمادي رمادي = cv2.cvtColor (إطار ، cv2. COLOR_BGR2GRAY) وجوه = faceCascade.detectMultiScale (رمادي ، 1.5 ، 5) لـ (x ، y ، w ، h) في الوجوه: roiGray = رمادي [y: y + h، x: x + w] fileName = dirName + "/" + name + str (count) + ".jpg" cv2.imwrite (fileName، roiGray) cv2.imshow ("face"، roiGray) cv2.rectangle (frame، (x، y)، (x + w، y + h)، (0، 255، 0)، 2) count + = 1 cv2.imshow ('frame'، frame) key = cv2.waitKey (1)
إذا كان المفتاح == 27:
استراحة
# camera.release ()
cv2.destroyAllWindows ()
الخطوة 2: تدريب عينة الصور الخاصة بك
بعد اكتمال اكتشاف الوجه ، يمكننا أن نذهب للتدريب على الصور
استيراد osimport numpy كـ np من PIL استيراد صورة استيراد cv2 استيراد مخلل # استيراد مسلسل
#ser = serial. Serial ('/ dev / ttyACM0' ، 9600 ، المهلة = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
أداة التعرف = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ file_))
#train الصور تحت مجلد الصور
imageDir = os.path.join (baseDir، "الصور")
المعرف الحالي = 1
labelIds = {} yLabels = xTrain = # ser.write ("تدريب…..". تشفير ())
للجذر ، dirs ، الملفات في os.walk (imageDir):
print (root، dirs، files) للملف في الملفات: print (file) if file.endswith ("png") أو file.endswith ("jpg"): path = os.path.join (root، file) label = os.path.basename (الجذر) طباعة (التسمية)
إذا لم يكن العنوان في labelIds:
labelIds [التسمية] = معرّف الطباعة الحالي (معرف الطباعة) الحالي + = 1
id_ = labelIds [التسمية]
PilImage = Image.open (path).convert ("L") imageArray = np.array (pilImage، "uint8") وجوه = faceCascade.detectMultiScale (imageArray، scaleFactor = 1.1، minNeighbours = 5)
لـ (س ، ص ، ث ، ح) في الوجوه:
roi = imageArray [y: y + h، x: x + w] xTrain.append (roi) yLabels.append (id_)
ذات ("التصنيفات" ، "wb") مفتوحة مثل f:
pickle.dump (labelIds، f) f.close ()
أداة التعرف. القطار (xTrain ، np.array (yLabels))
Recognizer.save ("trainer.yml") print (labelIds)
الخطوة الثالثة: التعرف على الوجوه
بعد انتهاء التدريب الآن ، يمكنك تشغيل الكود أدناه حتى يبدأ في التعرف على وجوهك المدربة
استيراد osos.environ ['PYTHONINSPECT'] = 'on' استيراد cv2 استيراد numpy كـ np import pickle #import RPi. GPIO كـ GPIO من وقت استيراد السكون
مع open ("labels"، "rb") مثل f:
Dicti = pickle.load (f) f.close ()
الكاميرا = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
أداة التعرف = cv2.face. LBPHFaceRecognizer_create () أداة التعرف على القراءة ("trainer.yml")
الخط = cv2. FONT_HERSHEY_SIMPLEX
الماضي ="
# for frame in camera.capture_continuous (rawCapture، format = "bgr"، use_video_port = True):
بينما صحيح: ret ، frame = camera.read () gray = cv2.cvtColor (frame ، cv2. COLOR_BGR2GRAY) الوجوه = faceCascade.detectMultiScale (رمادي ، scaleFactor = 1.5 ، min الجيران = 5) لـ (x ، y ، w ، h) في الوجوه: roiGray = رمادي [y: y + h ، x: x + w]
id_، conf = Recognizer.predict (roiGray)
للاسم والقيمة فيicti.items ():
إذا كانت القيمة == id_: print (name) cv2.putText (frame، name، (x، y)، font، 2، (0، 0، 255)، 2، cv2. LINE_AA) إذا كان الاسم! = الأخير: الأخير = name if conf <= 70: cv2.rectangle (frame، (x، y)، (x + w، y + h)، (0، 255، 0)، 2)
cv2.imshow ("إطار" ، إطار)
مفتاح = cv2.waitKey (1)
إذا كان المفتاح == 27:
كسر cv2.destroyAllWindows ()
موصى به:
الذكاء الاصطناعي والتعرف على الصور باستخدام HuskyLens: 6 خطوات (بالصور)
الذكاء الاصطناعي والتعرف على الصور باستخدام HuskyLens: مرحبًا ، ما الأمر يا رفاق! Akarsh هنا من CETech. في هذا المشروع ، سنلقي نظرة على HuskyLens من DFRobot. إنها وحدة كاميرا تعمل بالذكاء الاصطناعي وهي قادرة على القيام بالعديد من عمليات الذكاء الاصطناعي مثل التعرف على الوجه
مستشعر رؤية Micro: bit MU للمبتدئين - قيم التسمية والتعرف على بطاقة الأرقام: 6 خطوات
Micro: bit MU Vision Sensor للمبتدئين - قيم التسمية والتعرف على بطاقة الأرقام: هذا هو دليلي الثاني لمستشعر رؤية MU. في هذا المشروع ، سنبرمج micro: bit للتعرف على بطاقات الأرقام المختلفة باستخدام قيم التسمية
التعرف على الوجوه والتعرف عليها - Arduino Face ID باستخدام OpenCV Python و Arduino: 6 خطوات
التعرف على الوجه والتعرف عليه | Arduino Face ID باستخدام OpenCV Python و Arduino: التعرف على الوجه يعد AKA Face ID أحد أهم الميزات على الهواتف المحمولة في الوقت الحاضر. لذلك ، كان لدي سؤال & quot؛ هل يمكنني الحصول على معرف وجه لمشروع Arduino الخاص بي & quot؛ والجواب نعم … بدأت رحلتي على النحو التالي: الخطوة 1: الوصول إلينا
القرع آدم سافاج الذي تسيطر عليه أليكسا: 5 خطوات (مع صور)
آدم سافاج يقطين الذي يتحكم فيه أليكسا: كل الأضواء في منزلي ذكية لذا اعتدت على الصراخ عليهم لتشغيلها وإيقافها ، لكن انتهى الأمر بجعلي أبدو غبيًا عندما أصرخ في ضوء ليس كذلك . وأبدو غبية بشكل خاص عند الصراخ على الشموع. في العادة ، هذا ليس مو
لديك زر تضغط عليه!: 10 خطوات
لديك زر تضغط عليه!: مرحبًا يا شباب! أنا إيريسا تساي من تايبيه ، تايوان. أنا طالب بالصف التاسع في مدرسة كانغ تشياو الدولية. Kang Chiao هي مدرسة تقع على الجبل مع دورات شاملة يمكن للطلاب أخذها. تتوفر أنواع مختلفة من الموضوعات في