سلام!
به دوره جدید من "تشخیص چهره با یادگیری عمیق با استفاده از پایتون" خوش آمدید. این یک دوره به روز شده از سری Computer Vision من است که شامل تشخیص چهره مبتنی بر یادگیری عمیق پایتون، تشخیص چهره، احساسات، جنسیت و طبقه بندی سنی با استفاده از همه مدل های محبوب از جمله Haar Cascade، HOG، SSD، MMOD، MTCNN، EigenFace، FisherFace، VGGFace، FaceNet، OpenFace، DeepFace
تشخیص چهره و تشخیص چهره پرکاربردترین برنامه های بینایی کامپیوتر است. با استفاده از این تکنیکها، رایانه میتواند یک یا چند چهره را در یک تصویر یا ویدیو استخراج کند و سپس آن را با دادههای موجود برای شناسایی افراد موجود در آن تصویر مقایسه کند.
تشخیص چهره و تشخیص چهره به طور گسترده توسط دولت ها و سازمان ها برای نظارت و پلیس استفاده می شود. ما همچنین روزانه از آن در بسیاری از برنامهها مانند قفلگشایی با چهره تلفنهای همراه و غیره استفاده میکنیم.
این دوره شروع سریعی برای افرادی خواهد بود که میخواهند با استفاده از Python بدون نیاز به پرداختن به همه پیچیدگیها و ریاضیات مرتبط با فرآیند یادگیری عمیق، عمیقاً به تشخیص چهره بپردازند.
ما از یک کتابخانه پایتون به نام تشخیص چهره استفاده خواهیم کرد که از کلاسها و روشهای ساده برای پیادهسازی آسان تشخیص چهره استفاده میکند. ما همچنین از OpenCV، Dlib و Pillow برای پایتون به عنوان کتابخانه های پشتیبانی استفاده می کنیم.
بیایید اکنون فهرستی از موضوعات جالبی که در این دوره گنجانده شده است را ببینیم.
در ابتدا یک جلسه تئوری مقدماتی درباره فناوری تشخیص چهره و تشخیص چهره خواهیم داشت.
پس از آن، ما آماده هستیم تا با دانلود و نصب بسته anaconda، کامپیوتر خود را برای کدنویسی پایتون آماده کنیم. سپس بقیه وابستگیها و کتابخانههای مورد نیاز خود از جمله dlib، تشخیص چهره، opencv و غیره را نصب میکنیم و یک برنامه کوچک را امتحان میکنیم تا ببینیم همه چیز به خوبی نصب شده است یا خیر.
ممکن است اکثر شما از پس زمینه برنامه نویسی مبتنی بر پایتون نباشید. چند جلسه و مثال های بعدی به شما کمک می کند تا مهارت اصلی برنامه نویسی پایتون را برای ادامه جلسات موجود در این دوره کسب کنید. موضوعات شامل تخصیص پایتون، کنترل جریان، توابع و ساختارهای داده است.
سپس مقدمهای بر اصول اولیه و کار آشکارسازهای چهره خواهیم داشت که چهرههای انسان را از یک رسانه مشخص تشخیص میدهند. ما کد پایتون را امتحان می کنیم تا چهره ها را از یک تصویر مشخص تشخیص دهد و چهره ها را به عنوان تصاویر جداگانه استخراج می کنیم.
سپس تشخیص چهره از یک ویدیو را ادامه خواهیم داد. ما ویدیوی زنده بیدرنگ را از وبکم رایانه پخش خواهیم کرد و سعی خواهیم کرد چهرهها را از آن تشخیص دهیم. ما مستطیل اطراف هر چهره شناسایی شده در ویدیوی زنده را می کشیم.
در جلسه بعدی، برنامه تشخیص چهره را سفارشی میکنیم تا چهرههای شناساییشده را به صورت پویا از جریان ویدیوی وبکم تار کند.
پس از آن، ما تشخیص حالت چهره را با استفاده از مدل یادگیری عمیق از پیش آموزش دیده امتحان خواهیم کرد و احساسات چهره را از ویدیوی وب کم بلادرنگ و همچنین تصاویر ثابت را شناسایی خواهیم کرد
و سپس پیشبینی سن و جنسیت را با استفاده از مدل یادگیری عمیق از قبل آموزش دیده امتحان میکنیم و سن و جنسیت را از ویدیوی وبکم بلادرنگ و همچنین تصاویر ثابت شناسایی میکنیم
بعد از تشخیص چهره، مقدمهای بر اصول و عملکرد تشخیص چهره خواهیم داشت که چهرههایی که قبلاً شناسایی شدهاند را شناسایی میکند.
در جلسه بعدی، کد پایتون را امتحان خواهیم کرد تا نام افراد و چهره آنها را از روی یک تصویر مشخص شناسایی کنیم و یک مستطیل دور صورت را با نام آنها روی آن بکشیم.
سپس، همانطور که در تشخیص چهره انجام دادیم، تشخیص چهره از یک ویدیو را ادامه خواهیم داد. ما ویدیوی زنده بیدرنگ را از وبکم رایانه پخش خواهیم کرد و سعی خواهیم کرد چهرههای موجود در آن را شناسایی و نامگذاری کنیم. ما مستطیل اطراف هر چهره شناسایی شده و زیر آن نام آنها را در ویدیوی زنده ترسیم می کنیم.
بیشتر اوقات در طول کدنویسی، همراه با تصمیم تطبیق چهره، ممکن است نیاز داشته باشیم که میزان تطابق چهره را بدانیم. برای آن، پارامتری به نام فاصله چهره دریافت خواهیم کرد که مقدار تطابق دو وجه است. ما بعداً با استفاده از ریاضیات ساده، این مقدار فاصله اسمی را به درصد تطبیق چهره تبدیل خواهیم کرد.
در دو جلسه آینده، نحوه تغییر نقاط عطف چهره مورد استفاده برای تشخیص چهره را یاد خواهیم گرفت. ما خطی را رسم می کنیم که این نقاط نشانگر چهره را به یکدیگر متصل می کند تا بتوانیم نقاطی را در چهره ای که رایانه برای ارزیابی استفاده می شود تجسم کنیم.
با ارتقای سفارشیسازی نقاط مشخصه به سطح بعدی، از نقاط برجسته برای ایجاد آرایش صورت سفارشی برای تصویر صورت استفاده خواهیم کرد.
تاکنون از کتابخانه شخص ثالث تشخیص چهره برای دستیابی به اکثر عملکردها استفاده می کردیم. اما از این به بعد ما مراحل خط لوله تشخیص چهره را که شامل تشخیص چهره، تراز چهره، تأیید استخراج ویژگی چهره و طبقهبندی میشود، بهصورت جداگانه یکی یکی با استفاده از کتابخانههای محبوب امتحان میکنیم. در این جلسه مقدمه ای در مورد این موارد خواهیم داشت.
در جلسه بعدی، با تشخیص چهره شروع می کنیم. ما آنها را به روشهای سنتی تشخیص چهره و روشهای مدرن که شامل CNN میشود، تقسیم میکنیم.
در ابتدا الگوریتم تشخیص شیء Haar Cascade را برای تشخیص چهره امتحان خواهیم کرد. ما ابتدا آن را برای تصاویر ثابت امتحان خواهیم کرد و بعداً آن را برای ویدیوهای ذخیره شده و همچنین ویدیوهای وب کم زنده اجرا خواهیم کرد.
یکی دیگر از الگوریتم های محبوب برای تشخیص چهره، HOG یا هیستوگرام گرادیان های جهت دار است. در ابتدا مقدمه ای بر کار الگوریتم HOG خواهیم داشت و سپس روش HOG را برای تصاویر، فیلم ها و جریان وب کم بلادرنگ امتحان خواهیم کرد.
الگوریتم بعدی تشخیص چهره که امتحان خواهیم کرد SSD یا Single Shot Detection است. ما تمرینات عملکردی مشابه را برای SSD نیز تکرار خواهیم کرد. و سپس MMOD می آید. ما تمرینات عملکردی مشابه را برای SSD نیز تکرار خواهیم کرد.
سپس MMOD، Max-Margin Object Detection. ما تمرینات عملکردی مشابه را برای MTCNN نیز تکرار خواهیم کرد.
سپس الگوریتم بعدی می آید که MTCNN است، شبکه های کانولوشن آبشاری چند وظیفه ای. ما تمرینات عملکردی یکسانی از جمله تصویر، ویدئو و پخش زمان واقعی را برای MTCNN نیز تکرار خواهیم کرد.
در نهایت ما یک مقایسه سریع بین عملکرد این الگوریتمهای تشخیص چهره خواهیم داشت.
پس از تشخیص چهره، تراز چهره را ادامه خواهیم داد. ما از پیادهسازی پایتون کتابخانه محبوب Dlib برای انجام تراز چهره برای جریانهای تصویر، ویدیو و ویدیو استفاده خواهیم کرد.
بعد از تمرینهای همترازی چهره، در جایی که تشخیص چهره واقعی انجام میشود، به تأیید و طبقهبندی چهره ادامه میدهیم. در ابتدا مقدمه ای در مورد طبقه بندی چهره خواهیم داشت. ما تکنیک ها را به روش های سنتی تشخیص چهره و روش های مدرن که شامل CNN می شود تقسیم می کنیم.
در ابتدا تکنیکهای Eigenface Fisherface و LBPH، هیستوگرام الگوی باینری محلی را امتحان خواهیم کرد. ما یک معرفی کوتاه در مورد این الگوریتم ها خواهیم داشت و سپس با
ادامه می دهیمآماده سازی مجموعه داده تصویر برای این الگوریتم ها.
سپس ما پیش نیاز آنها را تنظیم می کنیم. بعداً به تشخیص چهره با استفاده از MTCNN و پیش پردازش چهره شناسایی شده برای تشخیص ادامه خواهیم داد. سپس تمرینات شامل آموزش با مجموعه داده تصویر و تلاش برای پیشبینی تصاویر. سپس این مدل را ذخیره میکنیم تا بتوانیم بعداً آن را بارگیری کنیم و بدون نیاز به آموزش مجدد، پیشبینی کنیم.
ما همچنین آن را برای ویدیوهای از پیش ذخیره شده و جریان وب کم زمان واقعی امتحان خواهیم کرد. پس از اتمام کار، مقایسه سریع الگوریتم های Eigenface Fisherface و LBPH خواهیم داشت.
این همه روشهای سنتی است، اکنون به یادگیری عمیق تشخیص چهره ادامه میدهیم. در ابتدا از مدل محبوب VGGNet برای تشخیص چهره به نام VGGface استفاده شد. ما مقدمه ای بر چهره VGG خواهیم داشت و سپس تأیید چهره VGGface را برای تصاویر پیاده سازی می کنیم. بعداً تأیید چهره VGGface را برای ویدیوها و همچنین جریانهای بیدرنگ امتحان خواهیم کرد.
و سپس مقدمهای بر مدلهای FaceNet، OpenFace و DeepFace داریم. برای پیادهسازی بقیه تکنیکهای معروف یادگیری عمیق، از یک چارچوب تشخیص چهره python منبع باز و محبوب به نام deepface استفاده میکنیم.
ما دیپ فیس را روی رایانه خود نصب می کنیم و سپس ابتدا آن را برای تشخیص چهره و تراز چهره امتحان می کنیم. سپس دیپ فیس را برای تایید چهره یک به یک امتحان می کنیم. بعداً با تغییرات کمی، میتوانیم از آن برای طبقهبندی چهره استفاده کنیم که شامل مقایسه یک به چند است. از deepface می توان برای انجام تحلیل چهره شامل جنسیت، سن، احساسات، قومیت و غیره نیز استفاده کرد
این همه در مورد موضوعاتی است که در حال حاضر در این دوره سریع گنجانده شده است. کد، تصاویر و کتابخانه های مورد استفاده در این دوره در یک پوشه آپلود و به اشتراک گذاشته شده است. لینک دانلود آنها را در آخرین جلسه یا قسمت منابع این دوره قرار خواهم داد. شما آزاد هستید که از کد در پروژه های خود استفاده کنید بدون اینکه سوالی پرسیده شود.
همچنین پس از اتمام این دوره، گواهی پایان دوره به شما ارائه می شود که ارزش افزوده ای به مجموعه شما خواهد داشت.
بنابراین فعلاً تمام است، به زودی شما را در کلاس می بینیم. یادگیری مبارک و اوقات خوبی داشته باشید.
استاد و برنامه نویس ارشد مهندسی کامپیوتر در دبی من یک پیشگام ، با استعداد و امنیت گرا Android/iOS Mobile و PHP/Python Web Developer Application Developer با بیش از هشت سال تجربه کلی فناوری اطلاعات که شامل طراحی ، پیاده سازی ، یکپارچه سازی ، آزمایش و حمایت از تأثیر است برنامه های کامل وب و تلفن همراه. من دارنده مدرک کارشناسی ارشد کارشناسی ارشد در رشته علوم کامپیوتر و مهندسی هستم. تجربه من با برنامه نویسی PHP/Python یک مزیت اضافی برای برنامه های سرویس گیرنده Android و iOS مبتنی بر سرور است. من در حال حاضر تمام وقت به عنوان یک معمار ارشد راه حل مشغول به کار هستم که پروژه های مشتری خود را از ابتدا تا انتها مدیریت می کنم تا از طراحی با کیفیت ، ابتکاری و کاربردی اطمینان حاصل کنم.
نمایش نظرات