در گام نخست ابتدا 100 نتیجه نخست جست و جوی تصاویر گوگل را ذخیره کرده ایم. بازیگران خود را از سایت iran-celeb.ir انتخاب کرده و آنها را دانلود کنید
تمامی تصاویری که متعلق به بازیگر شما نیستند را پاک کنید. اگر در یک تصویر چندچهره وجود داشت و در آن بین بازیگر مورد نظر نیز مشاهده میشد آن تصویر را پاک نمیکنیم. همچنین تصاویر کودکی یا تصاویر با گریمهای عجی بازیگر را پام نخواهیم کرد.
تصاویری که در این گام باقیمانده حتما حاوی چهره فرد مورد نظر است.
به تصاویری که تنها یک چهره در آنها مشاهده میشود کاری نخواهیم داشت.
اما برای تصاویری که بیش از 1 چهره در آنها وجود دارد باید محدوده چهره فرد مورد نظر مشخص شود.
بدین منظور از نرم افزار زیر استفاده میکنیم و آن را در حالت YOLO قرار میدهیم.
لطفا قسمت نصب Windows + Anaconda
را بخوانید. https://github.com/tzutalin/labelImg
اگر در یک تصویر چند چهره از فرد مربوط مشاهده میشد تمام محدودههای مربوط به آن فرد را انتخاب میکنیم.
در این گام تمام محدوده های مشخص شده crop میشوند. بدین منظور اسکریپت crop_face.py توسعه داده شده است.
برای استفاده از این اسکریپت ابتدا تمام فایلهای دانلود شده را از زیپ خارج کرده و بدون تغییر در ساختار همه پوشه ها را در یک پوشه کپی کنید. برای مثال در اینجا همه پوشه ها از جمله کد 30 و کد 90 در پوشه ای با نام data کپی شده اند و ساختاری مشابه به ساختار زیر دارند.
data/
30/
احمد مهرانفر
1. 220px-ahmad_mehranfar_at_34th_fajr.jpg
1. 220px-ahmad_mehranfar_at_34th_fajr.txt
2. ahmadmehranfar-monafaezpour-10.jpg
3. 0b3930c53394b80a728aa2a8e097046b.jpg
...
90/
بابک حميديان
1. 220px-babak_hamidian_at_32th_fajr.jpg
2. babak.jpg
2. babak.txt
...
...
python crop_face.py E:\face_data\data E:\face_data\data_croped
ورودی این گام پوشه حاصل از خروجی گام چهارم است. در این گام با الگوریتم تشخیص چهره MTCNN محدوده های چهره مشخص شده و پس از بریده شدن و افزودن یک margin مشخص به اندازه ی دلخواه برده میشوند.
بدین منظور اسکریپت align_dataset_mtcnn.py توسعه داده شده است.
مثالی از نحوه فراخوانی:
python align_dataset_mtcnn.py E:\face_data\data_croped E:\face_data\data_croped_mtcnnpy_182 --image_size 182 --margin 44