فهرست مطالب:

ردیابی صورت با استفاده از ARDUINO !!!: 7 مرحله
ردیابی صورت با استفاده از ARDUINO !!!: 7 مرحله

تصویری: ردیابی صورت با استفاده از ARDUINO !!!: 7 مرحله

تصویری: ردیابی صورت با استفاده از ARDUINO !!!: 7 مرحله
تصویری: چطور به کمک چت جی پی تی با آردوینو برنامه نویسی کنیم؟ [Chat GPT] [Arduino] 2024, جولای
Anonim
ردیابی چهره با استفاده از ARDUINO !!!
ردیابی چهره با استفاده از ARDUINO !!!

در دستورالعمل قبلی ، من نحوه برقراری ارتباط بین آردوینو و پایتون را با استفاده از ماژول pyserial و کنترل یک LED به اشتراک گذاشتم. اگر آن را ندیده اید ، اینجا را بررسی کنید: ارتباط بین ARDUINO & PYTHON!

و اینکه چگونه می توانید رنگ یک شی را تشخیص داده و آن را روی صفحه ردیابی کنید ، اینجا را بررسی کنید: COLOR DETECTION با استفاده از OPENCV و PYTHON.

در این دستورالعمل به شما نشان خواهم داد که چگونه می توانید چهره ها را با استفاده از آردوینو و پایتون ردیابی کرده و دوربین را از چهره پیروی کنید. این ممکن است سخت به نظر برسد ، اما باور کنید اینطور نیست ، تنها چیزی که نیاز دارید دانش اولیه در مورد آردوینو و پایتون است.

بنابراین بیایید شروع کنیم…

مرحله 1: موارد مورد نیاز:

چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت

الزامات حداقل است. در اینجا من لیستی از همه چیزهایی که نیاز دارید ارائه کرده ام:

سخت افزار مورد نیاز:

  • آردوینو UNO (آمازون آمریکا / آمازون اتحادیه اروپا)
  • وب کم (آمازون آمریکا / آمازون اتحادیه اروپا)
  • Servos x 2 (آمازون آمریکا / آمازون اتحادیه اروپا)
  • تخته نان (آمازون آمریکا / آمازون اتحادیه اروپا)
  • Servo Pan Tilt Kit (آمازون آمریکا / آمازون اتحادیه اروپا)

نرم افزار مورد نیاز:

  1. پایتون 2.7 (باید نصب شود ، سیستم عامل لینوکس معمولاً آن را از قبل نصب کرده است)
  2. OpenCV (می توانید آن را جداگانه بارگیری کنید یا با استفاده از "pip install" توضیح بیشتری توضیح دهید)
  3. pyserial (قابل نصب با پیپ)
  4. بی حس
  5. Haarcascade.

پس از جمع آوری همه چیز ، می توانیم به مرحله نصب برویم…

مرحله 2: راه اندازی محیط پایتون:

راه اندازی محیط پایتون
راه اندازی محیط پایتون
راه اندازی محیط پایتون
راه اندازی محیط پایتون
راه اندازی محیط پایتون
راه اندازی محیط پایتون

نصب پایتون:

بنابراین ابتدا به پایتون 2.7 نیاز داریم تا اجرا شود. برای انجام این کار ابتدا Python 2.7.14 را بارگیری و نصب کنید. برای بررسی اینکه آیا به درستی نصب شده است بروید: Windows Search >> Type "IDLE" >> Enter را بزنید. یک پوسته پایتون باید ظاهر شود.

یا

در جستجو "CMD" را تایپ کرده و enter را بزنید تا Command Prompt باز شود. در CMD نوع >> python و enter را بزنید ، رابط پایتون باید نمایش داده شود.

اگر خطایی در CMD مشاهده کردید ، نگران نباشید ، احتمالاً باید متغیر محیط را تنظیم کنید. برای تنظیم متغیر محیط می توانید این آموزش را در اینجا دنبال کنید.

نصب "pyserial" ، "OpenCV" و "numpy" در پایتون:

برای نصب این ماژول ها از pip install استفاده می کنیم ،

ابتدا CMD را باز کرده و کدهای زیر را تایپ کنید:-

سریال pip install

pip install opencv-python> pip install numpy

این دستورات ماژول های لازم را نصب می کند. اکنون می توانیم به قسمت کد نویسی برویم…

مرحله 3: اسکریپت پایتون:

اسکریپت پایتون
اسکریپت پایتون

قبل از شروع به نوشتن کد ، اولین کاری که باید انجام دهید این است که یک پوشه جدید بسازید زیرا همه کدها باید در یک پوشه ذخیره شوند. بنابراین یک پوشه جدید ایجاد کنید ، نام آن را هر چیزی که می خواهید بگذارید. و "Haarcascade" را از زیر بارگیری کرده و در پوشه بچسبانید.

حالا دفترچه یادداشت را باز کنید و اسکریپت زیر را بنویسید ، آن را به عنوان 'face.py' در همان پوشه haarcascade ذخیره کنید. (می توانید کدی را که فایل زیر در اختیار شما قرار داده است بارگیری کنید):

#ماژول های مورد نیاز را #وارد کنید

import numpy as np import serial time import import sys import cv2 #راه اندازی مسیر ارتباطی برای arduino (به جای "COM5" پورتی را که arduino شما به آن متصل است قرار دهید) arduino = serial. سریال ("COM5" ، 9600) time.sleep (2) print ("متصل به arduino …") #وارد کردن Haarcascade برای تشخیص چهره face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') #برای ضبط جریان ویدئو از وب کم. cap = cv2. VideoCapture (0) #تصویر گرفته شده را بخوانید ، آن را به تصویر خاکستری تبدیل کنید و در حالی که 1: ret، img = cap.read () cv2.resizeWindow ('img'، 500، 500) cv2.line (img، (500، 250)، (0، 250)، (0، 255، 0)، 1) cv2.line (img، (250، 0)، (250، 500)، (0، 255، 0)، 1) cv2.circle (img، (250، 250)، 5، (255، 255، 255)، -1) خاکستری = cv2.cvtColor (img، cv2. COLOR_BGR2GRAY) چهره = face_cascade.detectMultiScale (خاکستری ، 1.3) # صورت را تشخیص داده و در اطراف آن مستطیل بسازید. برای (x ، y ، w ، h) در صورتها: cv2 مستطیل (img ، (x ، y) ، (x+w ، y+h) ، (0 ، 255 ، 0) ، 5) roi_gray = خاکستری [y: y+h، x: x+w] roi_color = img [y: y+h، x: x+w] arr = {y: y+h، x: x+w} چاپ (arr) چاپ ('X: '+str (x)) print (' Y: '+str (y)) print (' x+w: '+str (x+w)) print (' y+h: '+str (y+h)) # مرکز روی (مستطیل) xx = int (x+(x+h))/2 yy = int (y+(y+w))/2 چاپ (xx) چاپ (yy) مرکز = (xx ، yy) # ارسال داده به چاپ آردوینو ("مرکز مستطیل است:" ، مرکز) data = "X {0: d} Y {1: d} Z".format (xx، yy) print ("output = '" +data + "'") arduino.write (data) #نمایش جریان. cv2.imshow ('img'، img) #ضربه بزنید 'Esc' برای خاتمه اجرا k = cv2.waitKey (30) & 0xff اگر k == 27: break

پس از انجام این کار ، به نوشتن کد برای arduino ادامه دهید…

مرحله 4: کد آردوینو:

کد آردوینو
کد آردوینو

پس از آماده شدن اسکریپت پایتون ، برای کنترل سروو به طرح آردوینو نیاز داریم. کد زیر را ارجاع دهید ، آن را در Arduino IDE بچسبانید و آن را به عنوان 'servo.ino' در همان پوشه face.py و haarcascade ذخیره کنید. کد را بارگذاری کرده و برای برقراری ارتباط به مرحله بعدی بروید.

(فایل قابل بارگیری در زیر آورده شده است)

#عبارتند از

سرو سرو سرو؛ // Servo Servo ServoHor عمودی ؛ // Horizontal Servo int x؛ int y؛ int prevX؛ int prevY ؛ void setup () {Serial.begin (9600)؛ servoVer.attach (5) ؛ // وصل کردن سرووی عمودی به پین 5 servoHor.attach (6) ؛ // پیوستن Horizontal Servo به پین 6 servoVer.write (90) ؛ servoHor.write (90) ؛ } void Pos () {if (prevX! = x || prevY! = y) {int servoX = نقشه (x، 600، 0، 70، 179)؛ int servoY = نقشه (y ، 450 ، 0 ، 179 ، 95) ؛ servoX = دقیقه (servoX ، 179) ؛ servoX = حداکثر (servoX ، 70) ؛ servoY = دقیقه (servoY ، 179) ؛ servoY = حداکثر (servoY ، 95) ؛ servoHor.write (servoX) ؛ servoVer.write (servoY) ؛ }} حلقه void () {if (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt ()؛ if (Serial.read () == 'Y') {y = Serial.parseInt ()؛ Pos ()؛ }} while (Serial.available ()> 0) {Serial.read ()؛ }}}

مرحله 5: مکانیزم حرکت شیب دار:-

مکانیسم Pan-Tilt
مکانیسم Pan-Tilt
مکانیسم Pan-Tilt
مکانیسم Pan-Tilt

من از یک کیت به راحتی در دسترس برای Pan-Tilt استفاده کرده ام. در صورت تمایل می توانید یکی را با استفاده از چوب/پلاستیک یا حتی چاپ سه بعدی تهیه کنید.

موردی که من استفاده کردم بسیار ارزان است و جمع آوری آن بسیار آسان است. با این حال ، اگر می خواهید دستورالعمل نحوه انجام این کار را پیدا کنید ، می توانید آن را در اینجا پیدا کنید.

مرحله 6: ایجاد ارتباطات:

ایجاد ارتباطات
ایجاد ارتباطات
ایجاد ارتباطات
ایجاد ارتباطات

مدار بسیار ساده است. فقط دو سروو به آردوینو وصل کنید.

  1. عمودی به پین 5
  2. افقی به پین 6
  3. قدرت +5V
  4. زمین به GND

برای مرجع نمودار مدار را بررسی کنید.

مرحله 7: آزمایش:

  • بعد از انجام همه کارها آخرین کار این است که آزمایش کنید آیا کار می کند یا خیر. برای آزمایش ابتدا مطمئن شوید که سرووها به درستی به آردوینو متصل شده اند و طرح بارگذاری شده است.
  • پس از بارگذاری طرح ، مطمئن شوید که IDE را ببندید تا پورت برای اتصال به پایتون آزاد باشد.
  • اکنون 'face.py' را با Python IDLE باز کرده و 'F5' را برای اجرای کد فشار دهید. چند ثانیه طول می کشد تا به arduino متصل شوید و سپس باید بتوانید پنجره ای را مشاهده کنید که به وب کم می رسد. اکنون کد چهره شما را تشخیص می دهد و سرویس ها آن را ردیابی می کنند.
  • هنگام حرکت دادن جسم ، سروو باید حرکت کند. حالا فقط دوربین را به سروو وصل کنید تا همراه سرووها حرکت کند.

متشکرم.

توصیه شده: