💢2.1 HAAR CLASSIFIER💢
2.1 HAAR CLASSIFIER
طبقه بند HAAR ،یک روش مبتنی بر یادگیری ماشین است، یک الگوریتم ایجاد شده توسط Paul Viola و Michael Jones؛ که
از تصاویر مثبت (با چهره) و تصاویر منفی (بدون چهره) خیلی خیلی زیاد، آموزش دیده است:
🌐https://en.wikipedia.org/wiki/Haar-like_feature.
🌐https://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
✅این کار با استخراج ویژگی های Haar از هر تصویر شروع می شود که توسط پنجره های زیر نشان داده شده است:
💢💢💢💢💢💢💢💢💢
2.1 HAAR CLASSIFIER
طبقه بند HAAR ،یک روش مبتنی بر یادگیری ماشین است، یک الگوریتم ایجاد شده توسط Paul Viola و Michael Jones؛ که
از تصاویر مثبت (با چهره) و تصاویر منفی (بدون چهره) خیلی خیلی زیاد، آموزش دیده است:
🌐https://en.wikipedia.org/wiki/Haar-like_feature.
🌐https://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
✅این کار با استخراج ویژگی های Haar از هر تصویر شروع می شود که توسط پنجره های زیر نشان داده شده است:
💢💢💢💢💢💢💢💢💢
Wikipedia
Haar-like feature
technique in computer vision
✅هر پنجره بر روی تصویر قرار می گیرد تا یک ویژگی واحد محاسبه شود. این ویژگی یک ارزش واحد است که توسط تفریق به دست می آید:
مجموع پیکسل ها در زیر قسمت سفید پنجره از مجموع پیکسل ها در زیر قسمت سیاه پنجره.
در حال حاضر، تمام اندازه های ممکن هر پنجره ، در همه مکان های ممکن برای هر تصویر ، برای محاسبه مقدار زیادی از ویژگی هاقرار می گیرد.
💢💢💢💢💢💢💢💢💢
مجموع پیکسل ها در زیر قسمت سفید پنجره از مجموع پیکسل ها در زیر قسمت سیاه پنجره.
در حال حاضر، تمام اندازه های ممکن هر پنجره ، در همه مکان های ممکن برای هر تصویر ، برای محاسبه مقدار زیادی از ویژگی هاقرار می گیرد.
💢💢💢💢💢💢💢💢💢
✅به عنوان مثال، در تصویر بالا، ما دو ویژگی را استخراج می کنیم. اولین مورد تمرکز بر ویژگی ای است که ناحیه ی چشمها، اغلب تیره تر از ناحیه بینی و گونه است.
دومین ویژگی مربوط به ناحیه ای است که چشمها تیره از برآمدگی بینی است.
💢💢💢💢💢💢💢💢💢
دومین ویژگی مربوط به ناحیه ای است که چشمها تیره از برآمدگی بینی است.
💢💢💢💢💢💢💢💢💢
✔️اما در میان تمام این ویژگی ها ی محاسبه شده ، بیشتر آنها بی اهمیت هستند. برای مثال، هنگامی که در گونه ها استفاده می شود، پنجره ها نامناسب می شوند، زیرا هیچ یک از این ناحیه ها، تیره تر و سبک تر از سایر نواحی در گونه ها نیستند. بنابراین، فورا ویژگی های نامناسب را کنار می گذاریم و فقط آنهایی را که با تکنیک Adaboost مرتبط هستند را حفظ می کنیم.
☑️تکنیک Adaboost: یک فرآیند آموزش برای تشخیص چهره است که فقط ویژگی های شناخته شده برای بهبود و دقت طبقه بندی (چهره / غیر چهره) ، را انتخاب می کند.
💢💢💢💢💢💢💢💢💢
☑️تکنیک Adaboost: یک فرآیند آموزش برای تشخیص چهره است که فقط ویژگی های شناخته شده برای بهبود و دقت طبقه بندی (چهره / غیر چهره) ، را انتخاب می کند.
💢💢💢💢💢💢💢💢💢
💢2.2 LBP CASCADE CLASSIFIER💢
طبقه بند دیگر، Local Binary Patterns یا به اختصار LBP میباشد.
✔️الگوهای باینری محلی (LBP)، نوعی توصیفگر بصری است که برای طبقه بندی در بینایی کامپیوتری استفاده می شود. LBP مورد خاصی از مدل طیف بافت است.
💢💢💢💢💢💢💢💢
طبقه بند دیگر، Local Binary Patterns یا به اختصار LBP میباشد.
✔️الگوهای باینری محلی (LBP)، نوعی توصیفگر بصری است که برای طبقه بندی در بینایی کامپیوتری استفاده می شود. LBP مورد خاصی از مدل طیف بافت است.
💢💢💢💢💢💢💢💢
✔️بنابراین، ویژگی های LBP ، برای ساخت یک بردار ویژگی، که چهره را از غیر چهره ، طبقه بندی می کند ،استخراج می شوند.
"اما ویژگی های LBP چطور پیدا می شود؟"
هر تصویر آموزشی به چند بلوک تقسیم می شود که در تصویر زیر نشان داده شده است:
💢💢💢💢💢💢💢💢💢
"اما ویژگی های LBP چطور پیدا می شود؟"
هر تصویر آموزشی به چند بلوک تقسیم می شود که در تصویر زیر نشان داده شده است:
💢💢💢💢💢💢💢💢💢
برای هر بلوک، LBP در یک زمان به 9 پیکسل (3 × 3 پنجره) نگاه می کند وتوجه خاصی به پیکسل در مرکز پنجره، دارد.
سپس، مقدار پیکسل مرکزی را با هر پیکسل همسایه در پنجره 3 × 3 مقایسه می کند. برای هر پیکسل همسایگی بزرگتر یا برابر پیکسل مرکزی، مقدار آ 1 می دهد، و برای بقیه، مقدار آنها را به 0 تبدیل میکند.
پس از آن، مقادیر پیکسل به روز (که می تواند 0 یا 1 باشد) را در جهت عقربه های ساعت می خواند و یک عدد دودویی را تشکیل می دهد. بعد، عدد دودویی را به یک عدد دسیمال(دهدهی) تبدیل می کند و عدد دهدهی، ارزش جدیدی باری پیکسل مرکزی است. ما این کار را برای هر پیکسل در یک بلوک انجام می دهیم.
💢💢💢💢💢💢💢💢
سپس، مقدار پیکسل مرکزی را با هر پیکسل همسایه در پنجره 3 × 3 مقایسه می کند. برای هر پیکسل همسایگی بزرگتر یا برابر پیکسل مرکزی، مقدار آ 1 می دهد، و برای بقیه، مقدار آنها را به 0 تبدیل میکند.
پس از آن، مقادیر پیکسل به روز (که می تواند 0 یا 1 باشد) را در جهت عقربه های ساعت می خواند و یک عدد دودویی را تشکیل می دهد. بعد، عدد دودویی را به یک عدد دسیمال(دهدهی) تبدیل می کند و عدد دهدهی، ارزش جدیدی باری پیکسل مرکزی است. ما این کار را برای هر پیکسل در یک بلوک انجام می دهیم.
💢💢💢💢💢💢💢💢
سپس، مقادیر هر بلوک را به یک هیستوگرام تبدیل می کند، بنابراین اکنون ما یک هیستوگرام برای هر بلوک در یک تصویر دریافت کرده ایم، مانند تصویر زیر:
💢💢💢💢💢💢💢💢💢
💢💢💢💢💢💢💢💢💢
در نهایت، هیستوگرام های بلوک را به هم پیوند می دهد تا یک بردار ویژگی برای یک تصویر ایجاد کند که شامل تمام ویژگی هایی است که ما علاقه مند هستیم. بنابراین، چگونگی استخراج ویژگی های LBP از یک تصویر را بررسی کردیم.
💢💢💢💢💢💢💢💢💢
💢💢💢💢💢💢💢💢💢
☑️وقت آن رسیده یکی از این دو الگوریتم را انتخاب، و شروع به کد نویسی کنیم:
💢💢💢💢💢💢💢💢💢
💢💢💢💢💢💢💢💢💢
✔️هر Classifier تشخیص چهره OpenCV ، دارای مزایا و معایبی است، اما تفاوت های عمده در دقت و سرعت است.
بنابراین، در صورتی که تشخیص دقیق تر لازم باشد، از طبقه بند Haar استفاده میشود. که بیشتردر تکنولوژی مانند سیستم های امنیتی مناسب است.
اما طبقه بندLBP سریع تر است، بنابراین باید در برنامه های تلفن همراه یا سیستم های جاسازی شده استفاده شود.
💢💢💢💢💢💢💢💢💢
بنابراین، در صورتی که تشخیص دقیق تر لازم باشد، از طبقه بند Haar استفاده میشود. که بیشتردر تکنولوژی مانند سیستم های امنیتی مناسب است.
اما طبقه بندLBP سریع تر است، بنابراین باید در برنامه های تلفن همراه یا سیستم های جاسازی شده استفاده شود.
💢💢💢💢💢💢💢💢💢
This media is not supported in your browser
VIEW IN TELEGRAM
✔️کدنویسی:
🔺 کتابخانه های مورد نیاز:
import cv2
import matplotlib.pyplot as plt
import time
🔺 کتابخانه های مورد نیاز:
import cv2
import matplotlib.pyplot as plt
import time