جدول المحتويات:
- اللوازم
- الخطوة الأولى: تثبيت Python و OpenCV
- الخطوة الثانية: ما هي الميزات الشبيهة بـ Haar؟
- الخطوة الثالثة: البرمجة بلغة بايثون
- الخطوة 4: برمجة Arduino
- الخطوة 5: الخاتمة
فيديو: جهاز تتبع الوجه! Python & Arduino: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
بواسطة Techovator0819 قناتي على اليوتيوب تابع المزيد من قبل المؤلف:
حول: أنا فقط أحب صنع أشياء جديدة. مثل الأشياء التي تتعامل مع وحدات التحكم الدقيقة والهندسة الميكانيكية والذكاء الاصطناعي وعلوم الكمبيوتر وأي شيء يثير اهتمامي على الإطلاق. وهنا ستجد كل … المزيد حول Techovator0819 »
مرحبًا بالجميع يقرؤون هذه التعليمات. هذا جهاز لتتبع الوجوه يعمل على مكتبة بيثون تسمى OpenCV. السيرة الذاتية تعني "رؤية الكمبيوتر". ثم قمت بإعداد واجهة تسلسلية بين جهاز الكمبيوتر الخاص بي و Arduino UNO. هذا يعني أن هذا لا يعمل فقط مع بايثون.
يتعرف هذا الجهاز على وجهك في الإطار ، ثم يرسل أوامر معينة إلى Arduino لوضع الكاميرا بطريقة تبقى داخل الإطار! يبدو جيدا؟ دعنا نقفز مباشرة في ذلك الحين.
اللوازم
1. Arduino UNO
2. 2 x Servo Motors (أي محركات مؤازرة ستكون جيدة لكنني استخدمت Tower Pro SG90)
3. تثبيت بايثون
4. تثبيت OpenCV
5. كاميرا الويب
الخطوة الأولى: تثبيت Python و OpenCV
تثبيت بايثون أمر سهل ومباشر!
www.python.org/downloads/
يمكنك اتباع الرابط أعلاه لتنزيل إصدار python (Mac أو windows أو Linux) الذي يناسبك (64 بت أو 32 بت). ما تبقى من عملية التثبيت بسيط وسوف يتم توجيهك من خلال الواجهة.
بمجرد الانتهاء من التثبيت ، افتح موجه الأوامر واكتب ما يلي:
نقطة تثبيت opencv-python
يجب أن يتم تثبيت مكتبة OpenCV. في حالة حدوث مشكلة ، يمكنك التحقق من هذه الصفحة.
بعد إعداد البيئة وجميع المتطلبات الأساسية ، دعنا نرى كيف يمكننا بالفعل بناء هذا!
الخطوة الثانية: ما هي الميزات الشبيهة بـ Haar؟
الميزات التي تشبه Haar هي ميزات الصورة الرقمية. الاسم يأتي من موجات هار. هذه عبارة عن عائلة من الموجات المربعة الشكل والتي تستخدم لتعريف السمات في صورة رقمية. Haar cascades هي عبارة عن مصنف يساعدنا في اكتشاف الكائنات (في وجوهنا) باستخدام ميزات تشبه haar.
في حالتنا ، من أجل التبسيط ، سنستخدم Haar Cascades المدربة مسبقًا لتحديد الوجوه. يمكنك اتباع هذا الرابط لصفحة جيثب وتنزيل ملف xml لـ Haar Cascade.
1. انقر فوق "haarcascade_frontalface_alt.xml"
2. انقر فوق الزر "Raw" في الجزء العلوي الأيمن من نافذة الكود.
3. سيوجهك إلى صفحة أخرى بها نص فقط.
4. انقر بزر الماوس الأيمن واضغط على "حفظ باسم.."
5. احفظه في نفس الدليل أو المجلد مثل كود Python الذي أنت بصدد كتابته.
الخطوة الثالثة: البرمجة بلغة بايثون
استيراد السيرة الذاتية 2
استيراد numpy كوقت استيراد تسلسلي استيراد np
نقوم باستيراد جميع المكتبات التي نحتاجها.
ard = serial. Serial ("COM3" ، 9600)
نقوم بإنشاء كائن تسلسلي يسمى "أرض". نحدد أيضًا اسم المنفذ و BaudRate كمعلمات.
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
نقوم بإنشاء كائن آخر لشلالنا Haar Cascade. تأكد من بقاء ملف HaarCascade في نفس المجلد مثل برنامج python هذا.
vid = cv2. VideoCapture (0)
نقوم بإنشاء كائن يلتقط الفيديو من كاميرا الويب. 0 كمعامل يعني أول كاميرا ويب متصلة بجهاز الكمبيوتر الخاص بي.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
احيانا صحيح:
_، frame = vid.read () # يقرأ الإطار الحالي للإطار المتغير grey = cv2.cvtColor (frame، cv2. COLOR_BGR2GRAY) #converts frame -> صورة ذات تدرج رمادي # السطر التالي يكتشف الوجوه. #First المعلمة هي الصورة التي تريد الكشف عنها في # minSize = () تحدد الحد الأدنى لحجم الوجه من حيث البكسل # انقر فوق الرابط أعلاه لمعرفة المزيد عن Cascade Classification faces = face_cascade.detectMultiScale (رمادي ، minSize = (80، 80)، minNeighbours = 3) #A for loop لاكتشاف الوجوه. لـ (x ، y ، w ، h) في الوجوه: cv2.rectangle (frame، (x، y)، (x + w، y + h)، (255، 0، 0)، 2) # يرسم مستطيلًا حوله الوجه Xpos = x + (w / 2) # يحسب الاحداثى X لمركز الوجه. Ypos = y + (h / 2) #calcualtes الإحداثي Y لمركز الوجه إذا كان Xpos> 280: # تحقق كتل الكود التالية مما إذا كان الوجه هو ard.write ('L'.encode ()) # on اليسار أو اليمين أو أعلى أو أسفل بالنسبة للوقت. النوم (0.01) # مركز الإطار. elif Xpos 280: ard.write ('D'.encode ()) time.sleep (0.01) elif Ypos <200: ard.write (' U'.encode ()) time.sleep (0.01) else: ard.write ('S'.encode ()) time.sleep (0.01) break cv2.imshow (' frame '، frame) # يعرض الإطار في نافذة منفصلة. k = cv2.waitKey (1) & 0xFF if (k == ord ('q')): #if 'q' مضغوط على لوحة المفاتيح ، فإنه يخرج من حلقة while. استراحة
cv2.destroyAllWindows () # يغلق كافة النوافذ
ard.close () #closes الاتصال التسلسلي
vid.release () #stops تلقي الفيديو من كاميرا الويب.
الخطوة 4: برمجة Arduino
لا تتردد في تعديل البرنامج وفقًا لإعدادات الأجهزة التي تناسب احتياجاتك.
#يشمل
أجهزة مؤازرة
أجهزة مؤازرة
كثافة العمليات س = 90 ؛
int y = 90 ؛
الإعداد باطل() {
// ضع رمز الإعداد هنا ، للتشغيل مرة واحدة: Serial.begin (9600) ؛ servoX.attach (9) ؛ servoY.attach (10) ؛ servoX.write (x) ؛ servoY.write (ص) ؛ تأخير (1000) ؛ }
إدخال شار = "" ؛ // يتم تخزين المدخلات التسلسلية في هذا المتغير
حلقة فارغة() {
// ضع الكود الرئيسي هنا ، للتشغيل بشكل متكرر: إذا (Serial.available ()) {// يتحقق مما إذا كانت أي بيانات موجودة في إدخال المخزن المؤقت التسلسلي = Serial.read () ؛ // يقرأ البيانات في متغير إذا (المدخلات == 'U') {servoY.write (y + 1) ؛ // يضبط زاوية المؤازرة وفقًا للإدخال y + = 1 ؛ // يقوم بتحديث قيمة الزاوية} else if (input == 'D') {servoY.write (y-1)؛ ص - = 1 ؛ } else {servoY.write (y) ؛ } if (input == 'L') {servoX.write (x-1) ؛ س - = 1 ؛ } else if (input == 'R') {servoX.write (x + 1) ؛ س + = 1 ؛ } else {servoX.write (x) ؛ } المدخلات = "" ؛ // يزيل المتغير} // تستمر العملية في التكرار !!:)}
الخطوة 5: الخاتمة
هذه طريقة لطيفة وتفاعلية يمكنك من خلالها تصميم دمج رؤية الكمبيوتر في مشاريع Arduino الخاصة بك. رؤية الكمبيوتر هي في الواقع ممتعة للغاية. وآمل حقًا أن تكون قد أحببت ذلك يا رفاق. إذا كانت الإجابة بنعم ، فأعلمني في التعليقات. ويرجى الاشتراك في قناة اليوتيوب الخاصة بي. شكرا مقدما <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
موصى به:
تتبع الوجه باستخدام أردوينو: 7 خطوات
تتبع الوجه باستخدام ARDUINO !!!: في تعليمات سابقة شاركت كيف يمكنك التواصل بين Arduino و Python باستخدام وحدة 'pyserial' والتحكم في LED. إذا لم تكن قد شاهدته ، فتحقق من ذلك هنا: COMMUNICATION BETWEEN ARDUINO & amp؛ بايثون! وكيف يمكنك اكتشاف اللون أو
DIY الذكية روبوت تتبع مجموعات السيارات تتبع السيارات حساسة للضوء: 7 خطوات
DIY الذكية روبوت تتبع مجموعات السيارات تتبع السيارات حساس للضوء: التصميم بواسطة SINONING ROBOT يمكنك الشراء من تتبع سيارة الروبوت ، تقارن رقاقة TheoryLM393 بين المقاومين ، عندما يكون هناك جانب واحد من المقاوم الضوئي LED على الأبيض سيتوقف جانب المحرك على الفور ، والجانب الآخر من المحرك تدور ، بحيث
مسدس تتبع الوجه: 4 خطوات
مسدس تتبع الوجه: هذا المشروع هو امتداد لمشروع بندقية سلك رحلة الليزر الموضح هنا - https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ؟ ALLSTEPS والفرق الوحيد هو أن البندقية لن يتم تشغيلها بواسطة الليزر ولكن بواسطة
روبوت التسول مع تتبع الوجه والتحكم بواسطة وحدة تحكم Xbox - Arduino: 9 خطوات (بالصور)
تسول الروبوت مع تتبع الوجه والتحكم بواسطة وحدة تحكم Xbox - Arduino: سنصنع روبوتًا متسولًا. سيحاول هذا الروبوت إثارة أو جذب انتباه الأشخاص العابرين. سوف يكتشف وجوههم ويحاول إطلاق الليزر عليهم. إذا أعطيت الروبوت عملة معدنية ، فسوف يغني أغنية ويرقص. سيحتاج الروبوت إلى
& acirc؛ & ndash؛ & rsquo؛. :: *، Awesome Design (Microsoft Paint)، * ::. & acirc؛ & ndash؛ & rsquo ؛: 4 خطوات
& acirc؛ & ndash؛ & rsquo؛. :: *، Awesome Design (Microsoft Paint)، * ::. & acirc؛ & ndash؛ & rsquo ؛: سأوضح لك كيفية عمل تصميم رائع باستخدام طلاء Microsoft ، أو مجرد قلم رصاص وورقة! ! ملاحظة. يرجى تقييم والتصويت لمسابقة الكتاب. مليون شكرا