پوریا توانا
پوریا توانا
خواندن ۳ دقیقه·۳ سال پیش

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


دراین مقاله قصد دارم ی داکیومنت از مرحله به مرحله روند اجرای پروژه بینایی ارایه بدم

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

۱) شناسایی چهره فرد مورد نظر (face detection)

۲) شناسایی هویت فرد مورد نظر(face recognition)

۳) شناسایی جهت چهره فرد مورد نظر(face positioning)

۴) ردیابی چهره فرد مورد نظر(face tracking)

دراین پروژه سعی شده هر چهار حالت تا حدودی پوشش داده بشه.

گام اول (virtualenv):

ابتدا لازمه یه محیط ایزوله(مجازی) یا همون virtual ienviroment ایجاد کنیم(الزامی نیست ولی بودنش بهتره) و اونو فعال کنیم:

از این دوتا لینک می تونید کمک بگیرید

https://virgool.io/@pharzan/python-virtual-enviroment-egsd4jea6gi5

https://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


امیدوارم که واستون مفید بوده باشه.

opencvface detectionface recognitionتشخیص چهره
مهندس کامپیوتر( نرم افزار ). فول استک دولوپر( جنگو ـ ریکت ). علاقه مندبه بازارهای مالی( به جز بورس:( )
شاید از این پست‌ها خوشتان بیاید