کنترل موس با چشم
پروژهای متنباز در حوزهی بینایی ماشین که نشانگر موس را فقط با حرکت چشم و یک وبکم معمولی کنترل میکند. آن را برای رویداد امید ساختم و رتبهی دوم را گرفت؛ توسعهی آن هنوز ادامه دارد.
تصویر وبکم در یک رشتهی جداگانه پردازش میشود: MediaPipe Face Landmarker نقاط چهره، چشم و عنبیه (۴۷۸ نقطه) را پیدا میکند، موقعیت هر عنبیه نسبت به گوشههای همان چشم بهعنوان ویژگی نگاه محاسبه میشود و یک نگاشت کالیبرهشده آن را به مختصات صفحه تبدیل میکند.
کالیبراسیون تمامصفحهی ۹ نقطهای با نشانگر پایداری نگاه انجام میشود و سه روش نگاشت (Affine، چندجملهای و RBF) دارد. حرکت نشانگر با فیلتر کالمن یا EWMA نرم میشود و کلیک با پلک زدن، مکث نگاه یا چشمک چپ و راست انجام میشود. یک کلید توقف اضطراری در همهی برنامهها کار میکند و تنظیمات و کالیبراسیون بین اجراها حفظ میشوند.
رابط با PyQt6 ساخته شده و روی ویندوز، مک و لینوکس اجرا میشود. همهی پردازش تصویر روی خود دستگاه انجام میشود و هیچ فریمی ذخیره یا ارسال نمیشود. کد با pytest تست میشود و تستها روی GitHub Actions اجرا میشوند. کاربرد اصلی آن دسترسپذیری برای کسانی است که نمیتوانند از موس معمولی استفاده کنند.
ویژگیهای کلیدی
- رتبهی دوم رویداد امید
- ردیابی چهره، چشم و عنبیه با MediaPipe Face Landmarker
- کالیبراسیون ۹ نقطهای با نگاشت Affine، چندجملهای و RBF
- نرمسازی حرکت با فیلتر کالمن یا EWMA
- کلیک با پلک، مکث نگاه یا چشمک چپ و راست
- کلید توقف اضطراری در همهی برنامهها
- پردازش کاملاً محلی؛ هیچ تصویری ذخیره یا ارسال نمیشود
- رابط PyQt6 برای ویندوز، مک و لینوکس با تست خودکار
تکنولوژیها
نقش من در پروژه
توسعهدهنده — بینایی ماشین
این پروژه متنباز است و کد آن روی گیتهاب در دسترس است.