۴- تا زمانی که Fi > Ftarget میباشد، دستورات زیر انجام شود:
۴-۱- i = i + 1 ، ni = ۰ و Fi = Fi-1.
۴-۲- تا زمانی که Fi > f × Fi-1 است، دستورات زیر را انجام شود:
۴-۲-۱- ni = ni + ۱.
۴-۲-۲- با بهره گرفتن از مجموعههای P و N یک طبقهبندیکننده قوی شامل ni ویژگی آموزش داده شود.
۴-۲-۳- با بهره گرفتن از مجموعه آزمایشی، مقدار Fi و Di طبقهبندیکننده چند لایه کنونی محاسبه شود.
۴-۲-۴- مقدار حدآستانه طبقهبندیکننده قوی لایه i، تا زمانی که مقدار Di بیشتر از d × Di-1 شود، کاهش یابد. کاهش مقدار حد آستانه باعث افزایش Fi نیز میشود.
۴-۴- اگر Fi > Ftarget است، طبقهبندیکننده چند لایه فعلی (شامل i لایه) با مجموعه N مورد ارزیابی قرار گیرد، سپس تمام عناصر N به جز عناصری که به اشتباه جزو تصاویر مثبت (چهره) آشکارسازی شدهاند، پاک شود.
شکل ۳‑۸: الگوریتم تشکیل یک درخت تصمیم آبشاری بر اساس چند طبقهبندیکننده قوی [۳۳]
برای کاهش نرخ آشکارسازی اشتباه الگوریتم آشکارسازی چهره معمولا تعداد تصاویر غیرچهره بیشتر از تصاویر چهره است (چند یا چند ده برابر). آموزش یکباره سیستم با تمام دادههای آموزشی نیاز به حافظه بسیار زیاد و زمان زیاد دارد. به همین دلیل معمولا در آموزش درخت تصمیم، در مرحله ساخت هریک از گرهها، از تمام تصاویر چهره و تعدادی از تصاویر غیرچهره استفاده میشود. معمولا تعداد تصاویر غیرچهره که برای ساخت یک گره از درخت تصمیم استفاده میشود، برابر با تعداد تصاویر چهره است. سایر تصاویر غیرچهره برای تشکیل گرههای بعدی درخت مورد استفاده قرار خواهد گرفت. پس از ساخت هر گره، تصاویر غیرچهرهای که توسط آن گره به اشتباه چهره شناخته میشوند، به همراه تعداد دیگری از تصاویر غیرچهره جدید، به عنوان بخشی از تصاویر غیرچهره آموزشی گره بعد استفاده خواهد شد.
ردیابی چهره
همان گونه که قبلا توضیح داده شد، دو مرحله اصلی در ردیابی عبارتند از: تخمین حرکت و تطابق. برای مرحله تخمین حرکت از روش پنجره جستجو و برای مرحله تطابق از محاسبه ضریب همبستگی و مجموع قدرمطلق تفاضل (SAD) استفاده شده است.
پنجره جستجو
جستجو در پنجره جستجو به چندین روش مختلف قابل اجرا است. از جمله مهمترین روشهای جستجو میتوان به جستجوی کامل[۱۱۵]، جستجوی لگاریتمی دوبعدی[۱۱۶] و جستجوی چند مرحلهای[۱۱۷] اشاره کرد. براساس نتایج ارائه شده در [۵۵]، بهترین دقت مربوط به روش جستجوی کامل است، هرچند این روش بیشترین پیچیدگی محاسباتی را دارد. در این نتایج روش جستجوی چند مرحلهای از لحاظ حجم محاسبات و دقت جستجو مناسبترین روش جستجو گزارش شده است. در آزمایشات انجام شده از دو روش جستجوی کامل و جستجوی چند مرحلهای استفاده شده است.
جستجوی کامل
در روش جستجوی کامل، از تمام نقاط پنجره جستجو برای محاسبه میزان انطباق قالب شی و تصویر استفاده میشود. اگر اندازه پنجره جستجو M×N باشد، تعداد نقاط جستجو برابر M×N نقطه خواهد بود. به دلیل اینکه تمام نقاط پنجره مورد جستجو قرار میگیرد، بهترین نقطهای که بیشترین تطابق را دارد به عنوان مکان شی تشخیص داده خواهد شد. اما حجم محاسبات این روش بسیار زیاد است. یکی از راهکارهای کاهش حجم محاسبات در روش جستجوی کامل، استفاده از گامهای یکسان بزرگتر از یک برای جستجو در پنجره میباشد. به عنوان مثال به جای محاسبه میزان انطباق در تکتک پیکسلها (تمام ردیفها و ستونهای پنجره)، محاسبه میزان انطباق فقط در پیکسلهایی انجام شود که در ردیف و ستون زوج قرار دارند. به این ترتیب تعداد نقاط مورد جستجو به حدود یک چهارم کاهش خواهد یافت.
جستجوی چند مرحلهای
جستجوی چند مرحلهای یک روش سلسله مراتبی[۱۱۸] محسوب میگردد. به عبارت دیگر در مراحل ابتدایی جستجو، گامهای جستجو بزرگ میباشد و با افزایش تعداد مراحل، گامها کوچکتر و دقت جستجو بیشتر میشود. در این روش، جستجو از مرکز پنجره و ۸ نقطه اطراف آن آغاز میشود. در هر مرحله، نقطهای که بیشترین انطباق در آن رخ داده به عنوان مرکز انتخاب شده و عمل جستجو به مرکزیت آن نقطه و با گامی برابر نصف گام قبلی انجام میگیرد. جستجو زمانی پایان مییابد که طول گام جستجو به یک برسد. در شکل ۳‑۹ روند جستجوی سه مرحلهای نمایش داده شده است. جستجوی چند مرحلهای با کاهش تعداد نقاط جستجو، حجم محاسبات را کاهش داده و باعث افزایش سرعت ردیابی میشود.
روند جستجوی سه مرحلهای با بزرگی نقاط تعیین شده است. جستجو از نقاط بزرگتر شروع شده و در نهایت به نقطه تیره ختم میشود.
شکل ۳‑۹: نمایش چگونگی انجام جستجوی سه مرحلهای
معیار تطابق
دو معیار تطابق برای ردیابی چهره استفاده شد: ضریب همبستگی و مجموع قدرمطلق تفاضل (SAD). هرچند حجم محاسباتی روش ضریب همبستگی بیشتر از روش SAD است، اما دقت این روش بیشتر میباشد. روش محاسبه ضریب همبستگی و مجموع قدرمطلق تفاضل (SAD) در فصل دوم معرفی گردید.
استخراج ویژگیهای مربوط به کاهش هوشیاری
ویژگیهای استخراج شده جهت تشخیص کاهش هوشیاری را میتوان به دو دسته اصلی تقسیمبندی کرد: ویژگی ناحیه چهره و ویژگیهای ناحیه چشم. ویژگی ناحیه چهره شامل آشکارسازی چرخش سر و ویژگیهای ناحیه چشم شامل درصد بسته بودن چشم (PERCLOS)، نرخ پلک زدن و کاهش فاصله بین پلکها میباشد.
ویژگی ناحیه چهره از اطلاعات ردیابی چهره و بررسی انطباق قالب چهره رو به جلو و تصویر کنونی چهره بدست میآید. ویژگیهای ناحیه چشم نیز از پروجکشن افقی نیمه بالایی تصویر چهره و تشکیل یک مدل مکانی-زمانی[۱۱۹] استخراج میگردد.
ویژگیهای ناحیه چشم
در سیستم پیشنهادی، برای استخراج ویژگیهای ناحیه چشم، از پروجکشن افقی نیمه بالایی تصویر چهره استفاده شده است. هرچند تاکنون در سیستمهای نظارت چهره راننده از این ویژگی بسیار استفاده شده، اما نوآوری آن در محاسبات وفقی و تشکیل یک مدل مکانی-زمانی برای استخراج ویژگی میباشد. در اکثر سیستمهایی که از پروجکشن افقی نیمه بالایی چشم برای آشکارسازی چشم و بررسی باز یا بسته بودن چشم استفاده کردهاند، فقط از اطلاعات فریم جاری استفاده شده است. همچنین معمولا در این سیستمها با فرض تیرهتر بودن مردمک چشم نسبت به پوست، محل چشم آشکارسازی و بسته بودن آن مشخص میگردد. این روشها اغلب در آشکارسازی چشم افراد سیاهپوست دچار مشکل میشود. اما در روش پیشنهادی محاسبات وفقی بوده و براساس اطلاعات ثبت شده در دقایق قبلی ویژگیهای مفید استخراج میشود.
در روش پیشنهادی برای استخراج ویژگیهای ناحیه چشم، برخلاف سایر روشهای قبلی نیاز به آشکارسازی صریح چشم است. بلکه استخراج ویژگی فقط بر اساس تغییرات پروجکشن افقی چشم در طول زمان میباشد.
ویژگیهای استخراج شده از ناحیه چشم برای تشخیص کاهش هوشیاری (خستگی و عدم تمرکز حواس) عبارتند از:
درصد بسته بودن چشم در یک دوره معین (PERCLOS)
نرخ پلک زدن در یک مدت معین
کاهش فاصله بین پلکها
ویژگی درصد بسته بودن چشمها برای تشخیص خستگی بسیار مفید است. چنانچه درصد بسته بودن چشم نسبت به حالت طبیعی بیشتر باشد، نشانه خستگی راننده است. ویژگی کاهش فاصله بین دو پلک نیز برای تشخیص خستگی راننده مورد استفاده قرار میگیرد. در هنگام خستگی، فاصله بین دو پلک نسبت به حالت طبیعی کاسته شده و پلکها به هم نزدیکتر میشوند. از طرفی اگر نرخ پلک زدن کمتر از حالت طبیعی باشد، نشانه عدم تمرکز حواس راننده به رانندگی میباشد.
در روش پیشنهادی با فرض حالت طبیعی (هوشیار) راننده در فریمهای ابتدایی، اطلاعات رفتاری چشم راننده استخراج میشود. این اطالاعات شامل درصد بسته بودن چشم (PERCLOS)، نرخ پلک زدن و فاصله بین پلکها در حالت طبیعی (هوشیار) است. این مرحله را مرحله یادگیری مینامیم. لازم به ذکر است که به طور طبیعی میان مقادیر درصد بسته بودن چشم (PERCLOS)، نرخ پلک زدن و فاصله بین پلکها در افراد مختلف تفاوت وجود دارد. به عنوان مثال برخی افراد به دلیل بیماری عصبی ممکن است نرخ پلک زدن بیشتری داشته باشند. همچنین فاصله بین پلکها در نژادهای جنوب شرقی آسیا کمتر از نژادهای منطقه خاورمیانه و اروپا است. بنابراین برای افزایش کارایی و کاهش نرخ خطای سیستم پیشنهادی، مرحله یادگیری ضروری به نظر میرسد. در این سیستم، بر اساس تغییرات مقادیر ویژگی نسبت به مقادیر بدست آمده در مرحله یادگیری، کاهش هوشیاری راننده تشخیص داده میشود. بنابراین روش پیشنهادی، برخلاف سایر روشهای ارائه شده قبلی، یک روش وفقی و بر پایه استفاده از یک مدل مکانی-زمانی میباشد.
مرحله یادگیری
مرحله یادگیری حدود یک یا دو دقیقه به طول میانجامد. برای افزایش دقت ویژگیهای استخراج شده، مدت زمان مرحله یادگیری باید بیشتر باشد، اما حداقل یک دقیقه زمان (معادل ۱۵۰۰ فریم) برای مرحله یادگیری توصیه میشود.
در مرحله یادگیری، از N (حدود ۱۰۰) فریم ابتدایی، پروجکشن افقی چشم در حالت باز (HPO) تعیین میگردد. این کار با انجام میانگینگیری بردار پروجکشن تصویر چهره در N فریم ابتدایی قابل انجام میباشد (رابطه (۱۱)). در رابطه (۱۱) HPi بردار پروجکشن افقی ناحیه چشم در فریم i و HPO پروجکشن افقی چشم در حالت باز است. مهمترین فرض در این رابطه، باز بودن چشم در اغلب N فریم ابتدایی است.
پس از استخراج HPO، بر اساس میزان تطابق بردار پروجکشن افقی فریم کنونی (HPi) و HPO، باز یا بسته بودن چشم آشکارسازی میشود. برای این منظور ابتدا ضریب همبستگی HPi و HPO محاسبه میگردد (رابطه (۱۲)). این مقدار با CHPi نمایش داده میشود.
در حالتی که چشم باز باشد، مقدار CHPi نزدیک به یک است، اما در حالتی که چشم بسته شود، ضریب همبستگی دو بردار پروجکشن کاسته میشود. بسته یا باز بودن چشم بر اساس رابطه (۱۳) تعیین خواهد شد. در رابطه (۱۳) اگر CHPi کوچکتر از حد آستانه thCHP=0.96 باشد، چشم بسته تشخیص داده میشود.
با گذر زمان، معمولا راننده دچار خستگی شده و فاصله بین دو پلک کاهش مییابد. در نتیجه بردار پروجکشن افقی چشم باز تغییر خواهد کرد. بنابراین بهتر است بردار پروجکشن چشم باز (HPO) در فریمهایی که چشم باز تشخیص داده میشود، به روز رسانی شود. برای به روز رسانی بردار HPO از روش میانگینگیری مداوم[۱۲۰] استفاده شده است. در روش میانگینگیری مداوم که در رابطه (۱۴) نشان داده شده، از پارامتری به نام α استفاده میگردد. این پارامتر در بازه [۰,۱] میباشد و میزان به روز رسانی بردار HPO را تعیین میکند. هرچه مقدار α به یک نزدیکتر باشد، میزان به روز رسانی کمتر خواهد بود.
نسبت تعداد فریمهایی که چشم بسته تشخیص داده شده به تعداد کل فریمهای مرحله یادگیری، درصد بسته بودن چشم در حالت طبیعی را معین خواهد کرد. این مقدار را با PERCLOSN نمایش میدهیم. تعداد دفعات بسته شدن چشم در مرحله یادگیری به عنوان نرخ پلک زدن در حالت طبیعی محاسبه شده و با CLOSNON نمایش داده میشود. هرچند در مرحله یادگیری فاصله بین دو پلک محاسبه نشده، اما در پروجکشن افقی چشم باز (HPO)، فاصله بین دو پلک به صورت ضمنی وجود دارد. پروجکشن افقی چشم باز (HPO) پس از پایان مرحله یادگیری به عنوان معیار فاصله بین دو پلک در حالت هوشیاری ذخیره شده و با HPLO نمایش داده میشود. از HPLO برای تشخیص کاهش فاصله بین دو پلک استفاده خواهد شد.
روش پیشنهادی برای استخراج ویژگیهای ناحیه چشم نسبت به رنگ پوست و نور محیط حساسیت چندانی ندارد، چرا که بر اساس یک مدل نسبی ویژگیها را استخراج میکند. به عبارت دیگر، محاسبات انجام شده برای تشخیص بسته یا باز بودن چشم در روش پیشنهادی بر اساس مقادیر مطلق نیست، بلکه بر اساس تغییرات مقدار پروجکشن ناحیه چشم در فریمهای متوالی میباشد که نسبت به رنگ پوست چهره و نور محیط حساسیت چندانی ندارد.
استخراج ویژگی
پس از مرحله یادگیری، لازم است تا ویژگیهای PERCLOS، CLOSNO و فاصله بین پلکها از فریمهای متوالی استخراج شود. ماهیت ویژگیهای PERCLOS و CLOSNO با ویژگی کاهش فاصله بین پلکها تاحدودی با هم متفاوت است. مقادیر PERCLOS و CLOSNO برای یک مدت معین (چند فریم اخیر تا فریم کنونی) تعریف میشوند، اما فاصله بین پلکها برای هر فریم قابل محاسبه است. هرچند برای افزایش سرعت سیستم، تغییرات فاصله بین پلکها در هر فریم محاسبه نخواهد شد.
t t-1
t-2 t-3
t-4 t-5
بازه تعریف فاصله بین پلکها
بازه تعریف PERCLOS و CLOSNO
فریم جاری
شکل ۳‑۱۰: نمایش بازه تعریف ویژگیهای درصد بسته بودن چشم (PERCLOS)، نرخ پلک زدن و فاصله بین پلکها
تعداد فریمهای لازم برای استخراج ویژگیهای PERCLOS و CLOSNO برابر تعداد فریمهای مرحله یادگیری در نظر گرفته شده است. برای این منظور از یک لیست حلقوی به نام Leye_closure با طول NL استفاده شده که مقادیر آن صفر و یک است. صفر به معنی بسته بودن چشمها و یک به معنی باز بودن آن میباشد. لیست حلقوی باید معادل تعداد فریمهای مرحله یادگیری (حدود ۱۵۰۰-۳۰۰۰ فریم) ظرفیت داشته باشد. بنابراین طول لیست حلقوی حدود ۱۵۰۰-۳۰۰۰ خواهد بود. پس از پر شدن کامل لیست حلقوی، دادههای جدید بر روی دادههای قدیمیتر قرار خواهند گرفت، به این ترتیب لیست حلقوی همواره اطلاعات بستهبودن چشم در فریمهای اخیر را در خود نگهداری میکند.