مجتمع فنی تهران پایتخت
ثبت نام
شکل 1: نمونه اولیه نویسنده در طول آزمایش

پروژه ساخت ربات هوشمند برای تشخیص چهره

hasan veisi

این مقاله توضیح می دهد که چگونه می توانید یک ربات هوشمند طراحی کنید که بتواند چهره شما و سایر بازدیدکنندگان معمولی را تشخیص دهد. اگر ربات به درستی تشخیص دهد، سلام می کند و نام را صدا می کند.

پروژه ساخت ربات هوشمند برای تشخیص چهره

این پروژه می تواند برای اهداف امنیتی از طریق پخش زنده ویدیو با استفاده از دوربین همراه با این سیستم استفاده شود. نمونه اولیه نویسنده که برای آزمایش استفاده می شود در شکل 1 نشان داده شده است.

شما می توانید از هر ماسک صورت از جمله ماسک ربات Tahta موجود در بازار استفاده کنید. این پروژه از یک ماسک صورت متن باز ربات InMoov استفاده می کند، همانطور که در شکل 2 نشان داده شده است.

نمونه اولیه نویسنده در طول آزمایش

شکل 1: نمونه اولیه نویسنده در طول آزمایش

شکل 1: نمونه اولیه نویسنده در طول آزمایش

ماسک صورت InMoov

شکل 2: ماسک صورت InMoov

شکل 2: ماسک صورت InMoov

اجزای مورد نیاز برای این پروژه در جدول 1 آورده شده است.

 مونتاژ چهره ربات

پروژه ساخت ربات هوشمند برای تشخیص چهره

مونتاژ چهره ربات

مراحل مونتاژ ممکن است بسته به شکل و اندازه سر ربات متفاوت باشد. برای آزمایش، ما از سر ربات InMoov استفاده کردیم که با استفاده از یک چاپگر سه بعدی ایجاد شده است. حتی می توانید صورت خود را به صورت سه بعدی پرینت بگیرید و از آن به عنوان سر ربات استفاده کنید یا یک سر ربات پرینت سه بعدی را از thingiverse.com تهیه کنید.

دو ماژول نمایشگر OLED (DIS1 و DIS2) به عنوان چشم ربات استفاده می شود. هر دو ماژول نمایشگر را لحیم کنید و اتصالات مناسب را ایجاد کنید. همانطور که در شکل 3 نشان داده شده است، مطمئن شوید که نمایشگرهای OLED را روی چشمی سر ربات پیچ کرده اید. اتصالات OLED با آردوینو در جدول 2 فهرست شده است.

مجموعه سر ربات

شکل 3: مجموعه سر ربات

شکل 3: مجموعه سر ربات

سپس، دوربین رزبری پای (متصل به برد رزبری پای) را با دقت نزدیک نمایشگرهای OLED نصب کنید. یک سروو موتور را نزدیک دهانه سر ربات وصل کنید. این به خط فک ربات اجازه می دهد که باز و بسته شود (به شکل 4 مراجعه کنید).

موتور Sevo متصل به خط فک ربات

شکل 4: موتور Sevo متصل به خط فک ربات

شکل 4: موتور Sevo متصل به خط فک ربات

پشتیبانی از سر ربات

سروو موتور دوم را با کمک پیچ یا چسب حرارتی روی مقوا یا پایه چوبی محکم کنید. این حرکت بالا و پایین را برای سر ربات فراهم می کند.

برای ایجاد یک تکیه گاه محکم، سه میله فلزی نازک را نزدیک سروو موتور دوم مانند سه پایه دوربین وصل کنید. همانطور که در شکل 5 و 6 نشان داده شده است، یک سر یکی از میله های فلزی را به شفت سروو موتور دوم و دو میله باقی مانده را به سر ربات وصل کنید.

مطالب مرتبط: آموزش رباتیک robotic

(توجه: در پروژه نشان داده شده از موتورهای سروو به عنوان تکیه گاه استفاده شده است؛ حرکت فک و سر اجرا نشده است.)

سروو موتور دوم روی پایه مقوایی قرار می گیرد

شکل 5: سرو و موتور دوم که روی پایه مقوایی قرار گرفته است

شکل 5: سرو و موتور دوم که روی پایه مقوایی قرار گرفته است

سه میله فلزی برای پشتیبانی

شکل 6: سه میله فلزی برای پشتیبانی

شکل 6: سه میله فلزی برای پشتیبانی

سر ربات با چشم های OLED

سر ربات نهایی با چشم هایی که از دو ماژول نمایشگر OLED استفاده می کند، شبیه شکل 7 خواهد بود.

کد نویسی

کد نویسی دارای دو بخش است: کدنویسی برای چشمان ربات با استفاده از آردوینو و کدنویسی برای تشخیص چهره با استفاده از Raspberry Pi.

کد نویسی برای چشم ربات قبل از شروع با کد آردوینو (smartface_recog.ino)، به مدیر کتابخانه آردوینو IDE بروید و کتابخانه های زیر را نصب کنید:

Adafruit GFX

SSD1306 OLED

کتابخانه های آردوینو بالا را با استفاده از تابع ‘include’ به کد اضافه کنید و سپس کد هگزادسیمال بیت مپ را همانطور که در شکل 8 نشان داده شده است وارد کنید.

 

بیت مپ هگزادسیمال در کد آردوینو

بیت مپ هگزادسیمال در کد آردوینو

در مرحله بعد، یک تابع حلقه برای فراخوانی کدهای بیت مپ برای پیش نمایش آنها در صفحه نمایش OLED ایجاد کنید. برای اینکه چشم ها تعاملی تر و سرزنده تر شوند، از یک مولد تابع تصادفی ( ) استفاده کنید (به شکل 9 مراجعه کنید).

مولد تابع تصادفی

شکل 9: مولد تابع تصادفی

شکل 9: مولد تابع تصادفی

کدنویسی برای تشخیص چهره Raspberry Pi برای تشخیص فرد مقابل روبات (معلوم یا ناشناس) استفاده می شود. کتابخانه های زیر را در Raspberry Pi برای محیط Python3 نصب کنید:

  • Numpy
  • Scipy
  • Open cv
  • Cv2
  • Face recognition
  • Espeak
  • Matplot
  • Keras

برای نصب این کتابخانه ها، دستورالعمل های نصب کتابخانه موجود در پوشه اسناد هر کتابخانه را دنبال کنید.

مطالب مرتبط: رباتیک چیست؟ انواع و کاربردهای آن

پروژه ساخت ربات هوشمند برای تشخیص چهره

همانطور که در شکل 10 نشان داده شده است، سه ماژول را در کد پایتون وارد کنید: تشخیص چهره، cv2 و numpy. آرایه های مختلف برای تشخیص چهره ها و نام ها ایجاد کنید. مطمئن شوید که نام فایل تصویری همه افراد شناخته شده (که می خواهید شناخته شوند) را در کد قرار دهید و آنها را در یک پوشه برای تشخیص صحیح چهره ذخیره کنید (به شکل 11 مراجعه کنید).

کد پایتون برای تشخیص چهره

کد پایتون برای تشخیص چهره

شکل 10: کد پایتون برای تشخیص چهره

شکل 10: کد پایتون برای تشخیص چهره

نام افراد شناخته شده را در کد ذکر کنید

شکل 11: نام افراد شناخته شده را در کد ذکر کنید

شکل 11: نام افراد شناخته شده را در کد ذکر کنید

در قسمت بعدی کد، برنامه چهره ای را که توسط دوربین گرفته شده است با آرایه چهره های شناخته شده مطابقت می دهد. اگر چهره مطابقت داشته باشد، کد تابع سینت سایزر ‘espeak.synth ( )’ را اجرا می کند تا نام فرد را از طریق بلندگوی متصل به Raspberry Pi صدا کند. کد با تابع ‘espeak.synth ( )’ در شکل 12 نشان داده شده است.

 

کد با تابع espeak.synth ( ).

شکل 12: کد با تابع espeak.synth ( ).

شکل 12: کد با تابع espeak.synth ( ).

اتصال با اسپیکر و دوربین

برای دریافت خروجی صدا از طریق Raspberry Pi، خروجی صوتی TRRS (Aux) Raspberry Pi را به TRRS (Aux) هر بلندگوی دارای آمپلی فایر متصل کنید. ماژول دوربین Raspberry Pi را به th وصل کنید پورت mera موجود در برد Raspberry Pi.

اکنون برد آردوینو نانو متصل به نمایشگرهای OLED را از طریق پین 5 ولتی Raspberry Pi روشن کنید. ربات تشخیص چهره شما آماده کار است.

روش تست

پس از اتمام اتصالات سخت افزاری و راه اندازی نرم افزار، Raspberry Pi خود را راه اندازی مجدد کنید.

اسکریپت تشخیص چهره (FaceRecoginitionv1.py) را از ترمینال Raspberry Pi باز کنید و آن را اجرا کنید. شما باید بتوانید حرکات چشم ربات را از طریق نمایشگرهای OLED ببینید.

اگر جلوی دوربین بروید، ربات چهره شما را تشخیص می دهد. همانطور که در شکل 13 نشان داده شده است، نام شما را صدا می کند و همچنین نام شما را بر روی صفحه کامپیوتر نشان می دهد.

تشخیص چهره با نام در حال نمایش بر روی صفحه نمایش کامپیوتر

شکل 13: تشخیص چهره با نام نمایش داده شده بر روی صفحه کامپیوتر

جهت دانلود کد پروژه ساخت ربات هوشمند برای تشخیص چهره کلیک کنید.

مطالب مرتبط: لیست پروژه های الکترونیک و رباتیک

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]
hasan veisi
نویسنده: hasan veisi
تعداد نوشته ها:322

خلاصه از نویسنده: به عنوان یکی از اعضای تیم تهران پایتخت هستم

دیدگاه کاربران
0 0 رای ها
امتیازدهی به مقاله

0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
مقالات مشابه
© تمامی حقوق برای تهران پایتخت محفوظ میباشد.