تولباکس SSVEP-پیاده سازی تمام روشهای تشخیص فرکانس SSVEP


واسط مغز-کامپیوتر مبتنی بر SSVEP یکی از پارادایمهای معروف این حوزه هست که به خاطر داشتن نسبت سیگنال به نویز بالا، داشتن ITR نسبتا بالا و زمان آموزش کم کاربر نسبت به سایر پارادایمها، در بین محققین محبوبیت زیادی دارند. عمده ترین چالش در BCI مبتنی بر SSVEP تشخیص فرکانس آن از روی سیگنال مغزی هست. محققین باید سیستمی طراحی کنند که با پردازش سیگنال EEG فرد بتوانند تشخیص دهند که فرد به چه محرکی خیره شده است. روشهای زیادی، از جمله CCA, TRCA, MSI, CORRCA طراحی شده اند که بتوانند با دقت بالا در بازه زمانی کوتاه فرکانس SSVEP را تشخیص دهند. ما در یک مطالعه مروری سعی کردیم تمام روشهای مهم در حوزه تشخیص فرکانس SSVEP را بررسی کرده و یک تولباکس جامع برای پیاده سازی روشها در متلب آماده کنیم. در این پست به معرفی این تولباکس و یافته های مطالعه را می پردازیم.

واسط مغز-کامپیوتر مبتنی بر SSVEP

واسط های مغز- کامپیوتر کانال های ارتباطی هستند که فعالیت الکتریکی نورون های مغزی را به دستورات قابل اجرا جهت ارتباط یا کنترل یک دستگاه خارجی ترجمه و تفسیر میکند. و از اینرو یک راه ارتباطی جدید برای افراد معلول، مخصوصا افراد دارای معلولیت شدید ایجاد میکند تا تواناییهای کنترل محیطی خود را مجددا بدست بیاورند. سیستم های BCI مبتنی بر EEG برای محققان در این حوزه بسیار محبوب هستند، چراکه سیگنال EEG فرایند ثبت نسبتا راحتی دارد، از لحاظ اقتصادی به صرفه است، قابل حمل است و رزولوشن زمانی خوبی دارد. در سالهای اخیر واسط-مغز کامپیوتر عمدتا براساس سه نوع فعالیت مغزی ثبت شده توسط electroencephalograph (EEG) توسعه یافته اند:

  • sensory motor rythms (SMR)
  • event related potentials(ERP)
  • steady-state visual evoked potentials (SSVEP)

در میان اینها، BCI مبتنی بر SSVEP به خاطر داشتن نسبت سیگنال به نویز بالا، داشتن ITR نسبتا بالا و زمان آموزش کم کاربر، مورد توجه فزاینده ای قرار گرفته است.

 

هدف از مقاله مروری BCI مبتنی بر SSVEP

در این مطالعه ما روشهای مبتنی بر الگو (template-based) جهت تشخیص فرکانس SSVEP بررسی کردیم که شامل 19 روش هست که به چهار دسته (CCA, MSI, CORRCA, TRCA) گروه بندی شده اند.

مطالعات زیادی روی BCI مبتنی بر SSVEP ارائه شده است، اما مطالعه ای جامعی که همه روشها رو به صورت یکجا تحلیل و مقایسه انجام بدهد وجود نداشت که ما سعی کردیم در این مطالعه روشهای مهم رو مورد بررسی قرار دهیم و برای هر کدام کد بنویسیم و در شرایط یکسان روشهارو باهم مقایسه کنیم تا با مزایا و معایب روشها آشنا شویم که نتیجه این مقایسات باعث شد به 4 نکته اکتشافی برسیم که در طراحی سیستم‌های BCI مبتنی بر SSVEP، جهت رسیدن به عملکرد بهینه بسیار ضروری هستند.

برای ارزیابی روشها هم از پایگاه داده معتبر 40-کلاسه که از 35 فرد ثبت شده است استفاده کردیم.

ویژگی های مطالعه

  • بررسی جامع روشهای تشخیص فرکانس SSVEP
  • ارائه توضیحات ساده و قابل فهم از رویکرد هر روش
  • ارائه فلوچارت/شبه کد برای هر روش که درک و پیاده سازی روشها رو بسیار ساده میکند.
  • ارائه یک تولباکس متلب که شامل کدهای پیاده‌سازی شده برای همه روشها است.
  • انجام آزمایشات مختلف جهت ارزیابی روشها در شرایط مختلف
  • ارائه چند نکته اساسی در پیاده سازی روشهای جدید جهت رسیدن به ماکزیمم عملکرد

تولباکس SSVEP-پیاده سازی تمام روشهای تشخیص فرکانس SSVEP

آزمایشات

  • بررسی عملکرد مدلها به ازای بازه های زمانی مختلف (محاسبه Accuracy و ITR)
  • بررسی عملکرد مدلهای پایه در شرایط یکسان (CCA, MSI, CORRCA, TRCA)
  • بررسی عملکرد بهترین مدلها در شرایط یکسان
  • بررسی robust بودن روشها (میزان مستعد بودن روشها به overfitting)
  • بررسی پیچیدگی محاسباتی روشها
  • بررسی تاثیر سیگنالهای مرجع
  • بررسی تاثیر تعداد تریالهای آموزشی در عملکرد روشها
  • تصویرسازی فیلترهای استخراج شده به ازای روشهای مختلف

بررسی نتایج آزمایشات نشان میدهد که در طراحی یک روش کارامد (چه از لحاظ دقت و چه از لحاظ robust بودن) چهار نکته ی اساسی را باید در نظر گرفت.

تولباکس SSVEP-پیاده سازی تمام روشهای تشخیص فرکانس SSVEP

💡نکته 1: استفاده از فیلتر بانک جهت به کار گرفتن موثر اطلاعات هارمونیکها بسیار مهم است.

✅تمام روشهایی که از فیلتربانک استفاده کردند، عملکردشان به صورت معنادار بهبود پیدا کرده است.

تولباکس SSVEP-پیاده سازی تمام روشهای تشخیص فرکانس SSVEP

💡نکته  2: استفاده از داده آموزشی در جهت ساخت سیگنالهای مرجع

🔵 روشهای مختلفی مثل Multiset یا MCA سعی بر بهینه سازی سیگنالهای مرجع ساختگی سینوسی کسینوسی داشته اند، اما این روشها در بهترین حالت همانند میانگین ترایالهای آموزشی (individual templates) عمل کرده اند.

✅راه بهینه اینه که هر دو سیگنال مرجع باهم ادغام شوند (مثل رویکرد combination method)

تولباکس SSVEP-پیاده سازی تمام روشهای تشخیص فرکانس SSVEP

💡نکته 3: استفاده از فیلترهای سایر محرکها در استخراج ویژگی

🔵 روشهایی مثل TSCORRCA و Ensemble TRCA این رویکرد رو استفاده کرده اند که علاوه بر مقاوم کردن روشها در برابر Overfitting، دقت آنها را نیز به صورت معنادار بهبود داده است.

تولباکس SSVEP-پیاده سازی تمام روشهای تشخیص فرکانس SSVEP

💡نکته 4: استفاده از داده های آموزشی جهت محاسبه فیلترها

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

تولباکس SSVEP-پیاده سازی تمام روشهای تشخیص فرکانس SSVEP

 

و سخن پایانی

اولین روش برای تشخیص فرکانس SSVEP، تحلیل طیفی (PSD) بود که به دلیل رویکرد تک-کاناله، نسبت به نویز بسیار حساس بود و به بازه زمانی طولانی جهت تخمیت ضرایب فرکانسی نیاز داشت. سپس الگوریتم CCA معرفی شد و این مشکلات را حل کرد.

الگوریتم CCA یک روش آماری هست که برای اولین که توسط Lin و همکارانش برای تشخیص فرکانس SSVEP استفاده شد. CCA علارغم عملکرد بهتر در مقایسه با PSD، محدودیهایی هم داشت.

در گذر زمان، رویکردهای مختلفی جهت بهبود عملکرد CCA ارائه شد که بین آنها روش combination method و Data driven CCA بسیار خوب عمل کرده اند.

 

در ادامه برخی از محققین سعی بر تغییر مدل پایه یعنی CCA کردند و روشهای مثل MSI, TRCA  و CORRCA را مطرح کردند. که دو تای آخر بهبودهای قابل توجهی ارائه دادند اما محدودیتهای خود را دارند.

کلا الگوریتم MSI رو فراموش کنید! هم پیچیدگی محاسباتی بسیار بالایی دارد (در آزمایشات ما الگوریتم های مبتنی بر MSI بیشترین زمان اجرا رو با اختلاف زیادی به خود اختصاص دادند) و هم MSI در بهترین حالت ممکن مثل CCA عمل میکند! پس اصلا جایگزین خوبی نمیتونه باشه! تازه منطعف هم نیست در مقایسه با CCA.

الگوریتم CORRCA میزان محاسبات رو نسبت به CCA نصف کرد. در مقایسه با CCA هم دقت بهتری دارد و هم سرعت اجرای بالایی دارد. میتواند جایگزین CCA شود اما مثل CCA منعطف نیست و نمیتوان رویکردهای مختلفی رو باهاش پیاده سازی کرد. چون در این روش هر دو سیگنال باید تعداد متغیرهای یکسانی داشته باشند!!!

الگوریتم TRCA با اختلاف از همه روشها بهتر است، اما نتایج آزمایشات ما و یک مطالعه دیگه ثابت کرده اند که TRCA و CCA از لحاظ تئوری و عملی مثل هم عمل می‌کنند. برای همین عملا چیز جدیدی نیست!! امااااا، TRCA پیچیدگی محاسباتی بسیار پایین تری دارد. البته TRCA هم مثل CORRCA منعطف نیست!

و نکته آخر، قدرت CCA رو دست کم نگیرید، بسیار روش کارامد و منعطفی در طراحی روشهای تشخیص فرکانس SSVEP  است. آنچه نیاز به تغییر دارد، خود CCA نیست، بلکه نحوه استفاده از آن است، همانطور که روش Data-driven CCA به ‌خوبی نشان داده است.


تولباکس SSVEP

تولباکس SSVEP-پیاده سازی تمام روشهای تشخیص فرکانس SSVEP

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

  • پیاده سازی الگوریتم standard-CCA
  • پیاده سازی الگوریتم Spatio-spectral CCA (SS-CCA)
  • پیاده سازی الگوریتم Fusing CCA
  • پیاده سازی الگوریتم Filter bank CCA
  • پیاده سازی الگوریتم data driven CCA (DDCCA)
  • پیاده سازی الگوریتم individual template CCA (IT-CCA)
  • پیاده سازی الگوریتم Mulitset CCA
  • پیاده سازی الگوریتم Multiway CCA (MCCA)
  • پیاده سازی الگوریتم Regularized Multiway CCA (L1-MCCA)
  • پیاده سازی الگوریتم Multilayer correlation maximization model (MCM)
  • پیاده سازی الگوریتم combination method
  • پیاده سازی الگوریتم MSI
  • پیاده سازی الگوریتم Individual signal mixing template MSI (IST‑MSI)
  • پیاده سازی الگوریتم Filter bank MSI
  • پیاده سازی الگوریتم Correlated component analysis (CORRCA)
  • پیاده سازی الگوریتم Two‑stage CORRCA (TSCORRCA)
  • پیاده سازی الگوریتم Filter bank CORRCA (FBCORRCA)
  • پیاده سازی الگوریتم Task‑related component analysis (TRCA)
  • پیاده سازی الگوریتم Filter bank TRCA
  • پیاده سازی الگوریتم Filter bank Ensemble TRCA

کافی هست تولباکس رو دانلود کنید و سپس فایل readme را بخوایند و از ابزار پیاده سازی شده در داخل این تولباکس استفاده کنید.

تولباکس SSVEP در GitHub

https://github.com/Mohammad-Norizadeh-Cherloo/SSVEP-Toolbox

مقاله مروری SSVEP

A comprehensive study of template-based frequency detection methods in SSVEP-based brain–computer interfaces

موفق باشید..  


دیدگاه ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

code