جدول المحتويات:

Opencv التعرف على الوجوه: 4 خطوات
Opencv التعرف على الوجوه: 4 خطوات

فيديو: Opencv التعرف على الوجوه: 4 خطوات

فيديو: Opencv التعرف على الوجوه: 4 خطوات
فيديو: Face recognition in real-time | with Opencv and Python 2024, شهر نوفمبر
Anonim
Opencv التعرف على الوجوه
Opencv التعرف على الوجوه

يعد التعرف على الوجوه أمرًا شائعًا الآن في العديد من التطبيقات مثل الهواتف الذكية والعديد من الأدوات الإلكترونية. يتضمن هذا النوع من التكنولوجيا الكثير من الخوارزميات والأدوات وما إلى ذلك.. والتي تستخدم بعض منصات SOC المدمجة مثل Raspberry Pi ورؤية الكمبيوتر مفتوحة المصدر مكتبات مثل OpenCV ، يمكنك الآن إضافة ميزة التعرف على الوجوه إلى تطبيقاتك الخاصة مثل أنظمة الأمان.

في هذا المشروع ، سأخبرك بكيفية إنشاء التعرف على الوجوه باستخدام Raspberry Pi وقد استخدمنا arduino + Lcd لعرض اسم الشخص..

الخطوة 1: الأشياء التي تحتاجها

أشياء تحتاجها
أشياء تحتاجها

1. RASPBERRY PI

2. ARDUINO UNO / NANO

3.16x2 LCD DISPLAY

4. RASPI-CAMERA / WEBcam (أفضل كاميرا الويب للحصول على نتائج أفضل)

الخطوة 2: فتح مقدمة والتثبيت

Opencv-Intro والتثبيت
Opencv-Intro والتثبيت

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 ترقية

اكتب الأوامر التالية في الجهاز لتثبيت الحزم المطلوبة لـ OpenCV على Raspberry Pi الخاص بك.

sudo apt تثبيت libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswale4 libqtg4

اكتب الأمر التالي لتثبيت 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.انتقل إلى الجهاز الطرفي الخاص بك و typr "python"

2. ثم اكتب "import cv2".

3. ثم اكتب "cv2._ نسخة_".

ثم قم بتثبيت هذه المكتبات

pip3 تثبيت python-numpy

pip3 تثبيت python-matplotlib

اختبار الكود لاكتشاف الوجوه في الصورة:

استيراد السيرة الذاتية 2

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

image = cv2.imread ('اسم ملفك') #example cv2.imread ('home / pi / Desktop / filename.jpg')

ستحصل على الإخراج مثل مربعات مربعة تم تشكيلها على وجوه الأشخاص الموجودين في الصورة.

الخطوة الثالثة: اكتشاف الوجه والتعرف عليه في فيديو في الوقت الفعلي

استيراد السيرة الذاتية 2

استيراد 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 ('Dataset'):

im = cv2.imread ('Dataset /' + filename، 0)

images.append (im)

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

#print اسم الملف

names_file = فتح ('labels.txt')

الأسماء = names_file.read (). split ('\ n')

أداة التعرف. القطار (الصور ، np.array (التسميات))

طباعة 'تم التدريب…"

الخط = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # جهاز الفيديو الخاص بك

lastRes = '' count = 0

بينما (1):

_ ، الإطار = الحد الأقصى للقراءة ()

رمادي = cv2.cvtColor (إطار ، cv2. COLOR_BGR2GRAY)

الوجوه = faceCascade.detectMultiScale (رمادي ، 1.3 ، 5)

العد + = 1

لـ (س ، ص ، ث ، ح) في الوجوه:

مستطيل cv2. (إطار ، (س ، ص) ، (س + ث ، ص + ح) ، (255 ، 0 ، 0) ، 2)

if count> 20: res = names [Recognizer.predict (grey [y: y + h، x: x + w]) - 1]

إذا الدقة! = lastRes:

lastRes = الدقة

طباعة lastRes

ser.write (lastRes)

العد = 0

استراحة

cv2.imshow ("إطار" ، إطار)

ك = 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. Leo-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 ، فقد تم تحديده باسم Tom Cruise ، لذا يرجى توخي الحذر أثناء تحميل الصور …………………

ثم قم بتوصيل اردوينو الخاص بك بـ raspberry Pi الخاص بك وقم بإجراء تغييرات في main.py codeer = serial. Serial ('/ dev / ttyACM0'، 9600، timeout = 1) 3. قم بإدخال جميع الملفات التي تم تنزيلها (main.py ، مجلد مجموعة البيانات ، haarcascade_frontalface_default.xml في مجلد واحد.)

3- افتح الآن Raspi-terminal وشغل الكود الخاص بك عن طريق "sudo python main.py"

موصى به: