پروژه ساخت آینه جادویی با رزبری پای – قسمت سوم – تشخیص چهره با آینه جادویی

تشخیص چهره با آینه جادویی

ای آینه ی روی دیوار چه کسی از همه زیبارو تر است؟ حالا میتوانید با یک آینه ی جادویی مجهز به تشخیص چهره ی هوشمند تصمیم بگیرید.

در دو قسمت قبلی یک آینه جادویی با استفاده از نرم افزار شگفت انگیز MagicMirror2 ساخته و پیکربندی کردیم. اکنون که آینه خود را به سلیقه خود ساخته و پیکربندی کرده ایم. وقت آن است که به مرحله ی بعدی شخصی سازی برویم. به نظرتان اگر صفحه نمایش آینه بر اساس شخصی که در مقابل آن ایستاده است طراحی شود شگفت انگیز نخواهد بود؟ آیا بهتر نخواهد بود اگر این اتفاق از طریق آینه و با تشخیص شخصی که در آنجا ایستاده است رخ دهد؟ به نظر می رسد این کاملا در محدوده قابلیت های رایانه رزبری پای است. ما چندین پیکربندی آینه ایجاد می کنیم که وقتی شخص مورد نظر تشخیص داده می شود ظاهر شود.

 

وسایل مورد نیاز برای تشخیص چهره با آینه جادویی:

  • یک آینه جادویی (قسمت اول و قسمت دوم آموزش را ببینید)
  • ماژول دوربین رزبری پای
  • کیس (قاب) چاپ شده به صورت سه بعدی (اختیاری)

 

01 جادویی کردن آینه با رزبری پای

این پروژه آموزش هایی را که در دو قسمت قبلی (قسمت اول – قسمت دوم) به آن پرداخته ایم، پوشش میدهد. این بدان معناست که شما قبل از این که جلوتر بروید به یک آینه جادویی احتیاج خواهید داشت. برای یادآوری، ما یک نسخه “budget” با استفاده از صفحه لمسی رسمی Raspberry Pi، یک قاب کوچک Ikea و مقدار زیادی نوار گافر تهیه کردیم. مقدماتی است اما به طرز شگفت آوری کاربردی است. در مقاله دوم آینه ی خود را از لحاظ نرم افزاری کمی تعمیم خواهیم داد.

ماژول دوربین رسمی رزبری پای یک انتخاب عالی برای این پروژه است.

 

02 قاب دوربین رزربری پای

اگر بخواهیم قابلیت سفارشی سازی صفحه نمایش را بر اساس افرادی که در جلوی آن ایستاده اند اضافه کنیم. در این صورت به کمی قدرت بینایی نیاز داریم. ساده ترین انتخاب ماژول رسمی دوربین رزبری پای است. کوچک و قدرتمند است و به آسانی متصل میشود. این که چگونه می خواهید دوربین را روی پروژه خود نصب کنید کاملاً به نظر شما بستگی دارد. اینجا ما یک قاب کوچک برای ماژول را به صورت سه بعدی چاپ کرده ایم تا با محیط اطراف آن متناسب باشد. کیس (case) کوچک با قاب مطابقت دارد و به راحتی محکم و ایمن می شود. اگر بخواهید این کار را به صورت جاه طلبانه انجام دهید می توانید دوربین را مستقیما به قاب وصل کنید.

 

03 دوربین را وصل کرده و فعال کنید

از هر راه حلی که برای استفاده از دوربین تصمیم می گیرید، باید آن را به رایانه رزبری پای متصل کنید. اگر از ماژول دوربین استفاده می کنید، کابل نواری را طبق دستورالعمل به برد اصلی وصل کنید (میتوانید از این لینک کمک بگیرید magpi.cc/picamera). پس از اتصال به برد، آن را با اجرای دستور sudo raspi-config از خط فرمان (command line) و فعال کردن دوربین از طریق “Interfacing Options” پیکربندی کنید. اگر از وب کم USB استفاده کرده اید دستورالعمل های ارائه شده را مشاهده کنید و قبل از خرید سازگاری رزبری پای را بررسی کنید.

تشخیص چهره با آینه جادویی

تشخیص چهره با آینه جادویی

04 صفحه را بچرخانید

ممکن است بخاطر موقعیت دوربین مجبور شوید جهت آینه را تغییر دهید. در صورت استفاده از ماژول دوربین، کابل نواری نیاز دارد که تصویر رزبری پای در قسمت بالا باشد. تغییرات در سیستم های گرافیکی با انتقال به Raspberry Pi 4 و Raspberry Pi OS ساده ترین راه برای تنظیم جهت صفحه در خود دسکتاپ است. با وارد کردن این پیام در خط فرمان، نرم افزار MagicMirror2 را متوقف کنید: pm2 stop MagicMirror. سپس در محیط دسکتاپ به منو بروید، “Preferences” و سپس “Screen Configuration” را انتخاب کنید. روی “DSI-1” راست کلیک کرده و “orientation” ، سپس “right” را انتخاب کنید. اکنون روی “تیک (tick)” کلیک کنید تا ذخیره شود.

 

05 OpenCV و موارد دیگر را نصب کنید

اکنون ما آماده کار هستیم. برای اینکه بتوانیم چهره ها را تشخیص دهیم  به کمی هوش مصنوعی نیاز داریم. نرم افزار شگفت انگیز OpenCV نه تنها رایگان است. بلکه در تشخیص اشیاء، از جمله چهره های فردی نیز فوق العاده است. همانطور که مشخص است این برنامه یک برنامه ی هیولایی است. بنابراین ما Raspberry Pi 4 را با حداقل 2 گیگابایت حافظه توصیه می کنیم. می توانید آن را روی مدلهای قدیمی اجرا کنید. اما بسیار پیچیده تر است. برای اطلاعات بیشتر به منبع pyimagesearch.com مراجعه کنید. برای نصب، موارد زیر را از خط فرمان اجرا کنید:

sudo apt -y update && sudo apt -y upgrade sudo apt install libopencv-dev python3-opencv

 

06 ابزار بندی

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

cd ~ git clone https://github.com/mrpjevans/MMMFacial-Recognition-Tools.git

اگر با پیام خطا مواجه شدید، دستور (sudo apt install git) را اجرا کرده و سپس دوباره تلاش کنید.

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

 

07 زمان تمرین

اکنون زمان آموزش آینه ما است. دستورات زیر را اجرا کنید:

cd ~/MMM-Facial-Recognition-Tools python3 capture.py

انتخاب کنید که عکس های زنده را ازطریق وب کم خود بگیرید یا از عکس های JPEG استفاده کنید (باید آنها را از قبل بارگذاری کنید). نام شما را می پرسد. اسم ساده ای مانند Pi بگویید. اکنون باید صورت خود را روی صفحه نمایش آینه ببینید. صورت خود را با نحوه ای که فکر می کنید به آینه نگاه می کنید تراز کنید (“درجا” بهترین حالت است) و ENTER را فشار دهید تا از صورت خود عکس فوری بگیرید. قبل از فشار دادن CTRL+C این کار را حداقل ده بار تکرار کنید. در نهایت ، python3 train.py را اجرا کنید تا تصاویر را به داده های ریاضی تبدیل کنید. وقتی از شما الگوریتمی خواسته شد، LBPHF را انتخاب کنید.

 

08 زمان آزمایش

برای تأیید اینکه آموزش کارآمد است. یک اسکریپت تست ارائه می شود. از همان فهرست، این دستورات را اجرا کنید:

export FACE_ALGORITHM=1

export FACE_USERS=pj

python3 facerecognition.py

(نام “pj” را با نامی که انتخاب کرده اید جایگزین کنید.)

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

 

09 ماژول را نصب کنید

در حال حاضر ما اطلاعات دریافت شده توسط ماشین خود را داریم. می توانیم پیش برویم و ماژول تشخیص چهره واقعی را نصب کنیم. برای انجام این کار باید کدهای زیر را در فهرست ماژول های MagicMirror2 نصب کنیم:

cd ~/MagicMirror/modules git clone https://github.com/mrpjevans/MMMFacial-Recognition

اینکار همه فایلهایی را که برای افزودن ماژول به سیستم نیاز داریم نصب می کند. برای تکمیل نصب ، باید وابستگی ها را اضافه کنیم:

cd MMM-Facial-Recognition npm install

پس از مدت کوتاهی تمام فایل هایی که برای اجرای ماژول نیاز داریم نصب می شود. در نهایت یک کپی از داده های آموزش از مرحله 07 را در فهرست ماژول ها تهیه کنید:

cp ~/MMM-Facial-Recognition-Tools/training. xml ~/MagicMirror/modules/MMM-FacialRecognition/

 

10 ماژول را پیکربندی کنید

اکنون همگی آماده ایم که ماژول را به آینه جادویی خود اضافه کنیم. باید فایل /config/config.js را برای افزودن ماژول خود ویرایش کنیم. این در قالب JSON است که خطاها را نادیده نمیگیرد. بنابراین موارد را با دقت انجام دهید و در صورتی که شک و تردید داشتید ابتدا یک کپی از فایل تهیه کنید تا در صورت نیاز بتوانید از “برگشت” استفاده کنید.

nano ~/MagicMirror/config/config.js

فایل را پایین بیاورید تا قسمت “ماژول ها” را ببینید. یک سری ورودی گروه بندی شده توسط {and} وجود خواهد داشت که همه آنها در [ and ] گروه بندی شده اند. شما باید لیست list1.js چاپ شده در اینجا را به گروه [and] اضافه کنید. هر گروه از {and} باید با کاما (بجز گروه آخر) از یکدیگر جدا شوند. فایل را هنوز ذخیره نکنید.

 

11 ماژول ها را شخصی سازی کنید

به بخش پیکربندی که به تازگی اضافه کرده اید نگاهی بیندازید که به آن بخش “کاربران” میگویند. مطمئن شوید که نام های داخل پرانتز با نامهایی که برای آنها آموزش داده اید مطابقت داشته باشد. مورد ما “pj” بود، بنابراین باید [“pj”] را بخواند. اگر برای چندین نفر این آموزش را انجام داده اید، آنها را با کاما جدا کنید: مثلا [‘alice’, ‘bob’]. اکنون برای هر ماژولی که می خواهید برای هر فرد شخصی سازی کنید یک پارامتر اضافی از “کلاس (‘classes’)” اضافه کنید. این یک رشته است که برای ورودی های مختلف بااستفاده از فاصله جدا شده است. برای چهره ای که همیشه نمایش داده میشود حالت “پیش فرض” ، برای هر چهره ی تشخیص داده شده حالت “هرکسی” و برای چهره های شناخته شده نام های خاص آنها را اضافه کنید. برای مثال فهرست list2.js را مشاهده کنید.

 

12 امتحان کنید!

اکنون بالاخره وقت آن رسیده است که آینه خود را امتحان کنید. با اجرای این دستور نرم افزار MagicMirror2 را راه اندازی مجدد کنید:

pm2 restart MagicMirror

 

پس از چند ثانیه ، سیستم باید راه اندازی مجدد شود و ماژول های “پیش فرض” نشان داده می شوند. همانطور که در مرحله ی آموزش دیدید به دوربین نگاه کنید و ببینید آیا ماژول های شما ظاهر می شوند یا خیر. پس از یک یا دو ثانیه آینه باید با انتخاب صفحه نمایش شما ریفرش شود. درصورت بروز هرگونه مشکلی از SSH برای اتصال به آینه خود و اجرای log های مربوط به pm2 استفاده کنید. این کار یک به روز رسانی زنده از آنچه در حال رخ دادن است را به شما نشان می دهد. به طور معمول بروز مشکلات بخاطر آموزش ناکافی یا نور ضعیف میباشد. فقط کافی است مراحل قبلی را دنبال کرده و دوباره انجام دهید. به زودی یک آینه جالب خواهید داشت که برای هر یک از بازدیدکنندگان منحصر به فرد است.

منتظر قسمت های بعدی پروژه آینه بینهایت با رزبری پای باشید…

 

هر سه شنبه با مقالات رزبری پای همراه توسکانیک باشید

گردآوری و ترجمه:صبا علیزاده

منبع: The official Raspberry Pi Handbook

 

کتاب راهنمای رسمی شروع کار با رزبری پای

آخرین مقالات

مقالات مرتبط