ویرگول
ورودثبت نام
طاده الکسانی
طاده الکسانیمهندس یادگیری ماشین
طاده الکسانی
طاده الکسانی
خواندن ۴ دقیقه·۹ سال پیش

مقدمه ای بر الگوریتم تشخیص چهره Viola Jones - بخش اول


اعمال الگوریتم تشخیص چهره بر سلفی معروف اسکار
اعمال الگوریتم تشخیص چهره بر سلفی معروف اسکار

مقدمه


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

این الگوریتم در سال های 2001 و 2004 به کمک دو شخص به نام های Paul Viola و Michael Jone منتشر شد که از 4 عنصر Haar Features ، Integral Images ، Ada boost و Cascading تشکیل میشود.

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

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

مشاهده این سخنرانی پیشنهاد می شود:

https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures?utm_campaign=tedspread--a&utm_medium=referral&utm_source=tedcomshare



شرح عناصر مختلف الگوریتم

ما در بخش اول مقاله سعی میکنیم دو عنصر ابتدایی این الگوریتم که بی ربط به یکدیگر نیستند را توضیح دهیم.

1 - ویژگی های هار ( Haar Features )

نمونه هایی از مستطیل های استفاده شده در الگوریتم
نمونه هایی از مستطیل های استفاده شده در الگوریتم


ویژگی ها در واقع مستطیل هایی هستند که نشان دهنده بخش های مختلف صورت میباشد و بر روی عکس ها با روند تکراری قرار میگیرند.

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

الگوریتم Viola Jones از یک پنجره ۲۴ در ۲۴ برای طی این مراحل و قرار دادن مستطیل ها بر روی صورت استفاده می کند که با در نظر گرفتن تعداد و سایز های مختلف این ویژگی ها (مستطیل ها) با یک حساب سرانگشتی به این نتیجه میرسیم که برای محاسبه نتیجه نهایی برای هر یک از این پنجره های ۲۴ در ۲۴ ما نیازمند انجام ۱۶۰+ هزار محاسبه داریم که منطقا تعداد بالایی است و هزینه و زمان زیادی از ما را برای هر عکس خواهد گرفت.

اینجاست که عنصر بعدی یعنی Ada Boost وارد میشود.

مشاهده ویدیو زیر که به صورت ساده و خلاصه مفهوم تشخیص چهره توسط کامپیوتر ها را توضیح میدهد پیشنهاد میشود (توسط آزمایشگاه زمین BBC)
https://www.aparat.com/v/woD65


2- Ada Boost

همانطور که در بالا توضیح دادیم ممکن است برای تشخیص هر چهره در این الگوریتم ما نیاز داشته باشیم تا با قرار دادن ویژگی ها (مستطیل ها) مختلف در سایز ها، ابعاد و مکان های مختلف به محاسبه بپردازیم که در پایان مجبور به انجام ۱۶۰+ هزار محسابه خواهیم شد که به وضوح به صرفه نمی باشد.

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

این کار در الگوریتم Viola Jones به صورت خودکار به کمک عنصر Ada Boost انجام میشود.

آدا بوست یک الگوریتم یادگیری ماشینی میباشد که وظیفه آن پیدا کردن ویژگی های کاربردی از میان آن ۱۶۰+ هزار ویژگی میباشد.

بعد از شناسایی ویژگی های مختلف، از ترکیب حساب شده ای از آن برای برآورد و‌ تصمیم گیری در مورد هر پنجره استفاده میشود و‌ مشخص میگردد که ‌‌آیا هر یک از آن ها در خود دارای صورت میباشد یا خیر.

هرکدام از فاکتورهای انتخاب شده مثبت در نظر گرفته می شود در صورتی که حداقل بتواند بهتر از حدس زدن تصادفی عمل کنند (بیش از نیمی از موارد را تشخیص می دهد) .

این ویژگی ها همچنین با عنوان دسته بندی های ضعیف نیز معرفی میشوند. Ada boost در دسته بند قوی (Strong Classifier)، تعداد زيادی دسته بند ضعيف (Weak Classifier ) را با هم ترکيب ميکند. Viola Jones يک سری از Ada boost Classifier ها را به عنوان يک زنجيره فيلتری با هم ترکيب می کند. هر فيلتر يک Ada boost classifier مجزا است که از تعداد کمی Weak Classifier تشکيل شده است.

 فرمول محاسبه دسته بندی قوی هر کدام از Weak classifier یا یک خروجی صفر یا یک تولید میکنند
فرمول محاسبه دسته بندی قوی هر کدام از Weak classifier یا یک خروجی صفر یا یک تولید میکنند


با استفاده از این الگوریتم که با وزن دادن به ویژگی ها (Feature ها) انجام میشود، ۱۶۰+ هزار ویژگی قبلی به کمتر از ۲۵۰۰ ویژگی کاهش پیدا میکند که صرفه جویی زیادی در زمان و انرژی محسوب میشود.


https://www.betafaceapi.com/demo.html
https://www.betafaceapi.com/demo.html

همچنین برای تست الگوریتم تشخیص چهره به صورت آنلاین می توانید از سرویس Betaface استفاده کنید. پیشنهاد میکنیم همین الآن این ویژگی را امتحان کنید!

امیدواریم تا اینجای مقاله لذت برده باشید، سوالات خود را در بخش نظرات با ما در میان بگذارید!
در بخش دوم به معرفی دو عنصر بعدی الگوریتم Viola Jones یعنی Integral Image و Cascading پرداختیم:

https://virgool.io/@tadeh/viola-jones-face-detection-algorithm-2-krawyarayjms





مقالهالگوریتمتشخیص چهرهفناوریتکنولوژی
۷
۵
طاده الکسانی
طاده الکسانی
مهندس یادگیری ماشین
شاید از این پست‌ها خوشتان بیاید