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

دراین مقاله قصد دارم ی داکیومنت از مرحله به مرحله روند اجرای پروژه بینایی ارایه بدمبینایی در تشخیص و شناسایی چهره به طور خاص تر شامل ۴ بخش زیر میشه:۱) شناسایی چهره فرد مورد نظر (face detection)۲) شناسایی هویت فرد مورد نظر(face recognition)۳) شناسایی جهت چهره فرد مورد نظر(face positioning)۴) ردیابی چهره فرد مورد نظر(face tracking)دراین پروژه سعی شده هر چهار حالت تا حدودی پوشش داده بشه.گام اول (virtualenv):ابتدا لازمه یه محیط ایزوله(مجازی) یا همون virtual ienviroment ایجاد کنیم(الزامی نیست ولی بودنش بهتره) و اونو فعال کنیم:از این دوتا لینک می تونید کمک بگیریدhttps://virgool.io/@pharzan/python-virtual-enviroment-egsd4jea6gi5https://blog.faradars.org/python-virtual-environments/گام دوم(مقدمه، پیش نیازها و وابستگی ها):اساس کار این پروژه بر مبنای deep metric learning (فرقش با deep metric learning چیه؟) هستاگر تجربه قبلی در زمینه یادگیری عمیق دارید، می‌دونید که ما معمولاً شبکه‌ای را آموزش می‌دیم تا یک تصویر ورودی را بپذیره و یک طبقه بندی/برچسب برای آن تصویر خروجی بگیرید.با این حال، یادگیری متریک عمیق متفاوت است. به جای تلاش برای خروجی یک برچسب واحد (یا حتی مختصات/جعبه مرزی اشیاء در یک تصویر)، در عوض یک بردار ویژگی با ارزش واقعی را خروجی می‌دهیم.برای شبکه تشخیص چهره dlib، بردار ویژگی خروجی 128-d (یعنی لیستی از 128 عدد با ارزش واقعی) است که برای تعیین کمیت صورت استفاده می شود.معماری شبکه ما برای تشخیص چهره مبتنی بر ResNet-34 است.لینک اطلاعات بیشتر: https://arxiv.org/abs/1512.03385دراین پروژه ۴ تا پیش نیاز داریم که باید قبل از اجرای پروژه اونارو نصب و کانفیک کنیماولیش کتابخونه dlib هست. این کتابخونه از Davis King که حتما پیش نهاد میکنم این مقالشو بخونید http://blog.dlib.net/2017/02/high-quality-face-recognition-with-deep.htmlواسه نصبش کافیه دستور زیر را در ترمینال(محیط مجازی یا گلوبال) وارد کنید$ pip install dlibدومیش کتابخونه face_recognition هست.این کتابخونه از Adam Geitgey که بازم پیشنهاد جدی تری میکنم این مقالشو بخونید(به فارسیم ترجمه شده)https://medium.com/@ageitgey/machine-learning-is-fun-part-4-modern-face-recognition-with-deep-learning-c3cffc121d78واسه نصبش کافیه دستور زیر را در ترمینال(محیط مجازی یا گلوبال) وارد کنید$ pip install face_recognitionسومین مورد کتابخونه نام اشنای opencv هستش. $ pip install opencv-pythonو اخرین مورد کتابخونه imutils هست.$ pip install imutilsگام سوم(ساختار پروژه):ساختار پروژه به این صورت هستdataset/حاوی تصاویر چهره برای کاراکتر هاست که بر اساس نام مربوطه در زیر شاخه‌ها سازماندهی شده‌اند.examples/دارای تعدادی تصویر چهره برای آزمایش است که در مجموعه داده نیست.output/اینجا جایی است که می تونید ویدیوهای پردازش شده تشخیص چهره خود را ذخیره کنید.videos/ویدئوهای ورودی باید در این پوشه ذخیره شوند.search_bing_api.pyساخت یک مجموعه داده است (من قبلاً این کار را انجام دادم واستون).پس احتمالا نیازی بهش نخواهید داشت encode_faces.pyرمزگذاری (بردارهای 128 بعدی) برای چهره ها با این اسکریپت ساخته شده است.recognize_faces_image.pyتشخیص چهره ها در یک تصویر واحد (بر اساس رمزگذاری های مجموعه داده شما).ورودیش ی عکس داخل دایرکتوری examples/ و خروجیش چهره و هویت شناسایی شده اشخاص در قالب ی عکس هستrecognize_faces_video.pyتشخیص چهره ها به صورت زنده و با استفاده از وبکم سیستمrecognize_faces_video_file.pyتشخیص چهره ها در فیلمورودیش ی فیلم هست که داخل دایرکتوری videos/ و خروجیش چهره های شناسایی شده در قالب فیلم هست که میتونید داخل دایرکتوری output/ مشاهدشون کنید encodings.pickleرمزگذاری‌های هایی که از طریق encode_faces.py تولید می‌شند اینجا نوشته و ذخیره میشند.گام چهارم(توضیحات کدها):توضیحات کاملی از کدهای پروژه داخل خود پروژه کامنت گذاری شدهلینک پروژه: https://drive.google.com/drive/folders/1JMG_58GjhIWEiaIF-9tGPDLvdoiiGffa?usp=sharingگام پنجم(نحوه اجرای پروژه):درقالب یک فیلم کوتاه به طور کامل نحوه اجرای پروژه توضیح داده شدهلینک فیلم: https://drive.google.com/file/d/1SgfBv5_AnhlDJ3_523JsMT_nTHAWIgVT/view?usp=sharingامیدوارم که واستون مفید بوده باشه.