عرف العين المقتفي المعايرة



قريباً سيكون هناك عام عندما أصدرنا المنتج مع "معايرة تعقب العين " المخصص على متن الطائرة. لسوء الحظ ، لأسباب مختلفة ، فإنه لا يزال لا يعمل لإنهاء هذه المقالة. ومع ذلك ، فقد وقع حادث مضحك في الآونة الأخيرة دفع إلى إكمال ما بدأ. ولكن ، أول الأشياء أولا. آمل أن يظل شخص ما يستفيد من تجربتنا ، على الرغم من حقيقة أن المشاركة كانت رطبة.

باختصار ، Eye-tracker هو جهاز يتيح لك تتبع اتجاه الرؤية ، وكذلك موضع العينين والرأس.

لدى متتبعو العين عدد قليل من مجالات التطبيق ، أحدها صناعة ألعاب الكمبيوتر ( أكثر قليلاً ).

غالبًا ما يكون اكتشاف النظرة مسؤولًا عن الإجراءات الثانوية (المساعدة) ، ولكن الإجراءات المهمة في الألعاب:

  • حركة الكاميرا ؛
  • تهدف؛
  • اختيار الأشياء للتفاعل.
  • اختيار الأسلحة ؛
  • استدعاء توقف تلقائي عند فقد البصر ؛
  • البعض.


في معظم الحالات ، تكون المعايرة القياسية (سنتحدث عن جهاز Tobii Eye Tracker 4C ) كافية للاستخدام المريح لعصر Eye Track .


ولكن ، لسوء الحظ ، لأغراضنا ، فإن دقة الجهاز التي تم تحقيقها عن طريق المعايرة القياسية ليست كافية ، لأن المظهر في مشروعنا هو آليات التحكم الرئيسية.



مما تقدم ، تم تشكيل المهمة : لتحسين المعايرة القياسية ؛
الشروط : جهاز Tobii Eye Tracker 4C ، لغة التطوير هي C # (WPF) .

يبدو أنه حل على السطح: إذا كنت تريد المزيد من الدقة - أضف المزيد من نقاط المعايرة ، لكنه ليس بهذه البساطة.

لدى Tobii AB الكثير من الأدوات للعمل مع أجهزته. لم يكن Joy يعرف حدودًا عند اكتشاف Tobii Pro SDK ، الذي يحتوي على جميع الكعك للعمل بالمعايرة ، ولكن كما اتضح لاحقًا ، فإن SDK هذا غير مناسب للعمل بشكل خاص مع نموذج تعقب العين لدينا (على الرغم من أنه من الغريب أن لا يزال اكتشاف نظرة الجهاز موجودًا عند استخدام SDK ). اضطررت إلى اتخاذ الأدوات أسهل - Tobii.EyeX.Client .

من الناحية العملية ، تم الكشف عن العدد الأمثل لنقاط المعايرة وموقعها: مصفوفة 4 × 3 مع 12 نقطة معايرة (كل في مركز الخلية).

تم العثور على المعلمات التالية أيضًا بشكل تجريبي:

  • وقت المعايرة عند نقطة معايرة واحدة - 3 ثوانٍ ؛
  • مؤشر النقطة قيد النظر هو 5 (إذا كان مؤشر النقطة المستلمة من الجهاز هو مضاعف ذلك ، فإننا نأخذ ذلك في الاعتبار عند حساب المعايرة) ؛
  • يتم حساب الحد الأقصى المسموح به للانحراف من نقطة المعايرة ( بكسل ) بواسطة الصيغة:

    Math.Min(regionWidth،regionHeight)0.45

    حيث المنطقةعرضو المنطقة $ الارتفاع - عرض الخلية وارتفاع مصفوفة المعايرة ، على التوالي


خوارزمية المعايرة (بسيطة إلى الجنون)


يتم إجراء المعايرة بالتتابع ، لكل خلية من مصفوفة المعايرة:

  1. إذا كانت المسافة بين نقطة المعايرة الحالية والنقطة المستلمة من الجهاز أقل من الحد الأقصى المسموح به للانحراف ، فإن هذه النقطة (المستلمة من الجهاز) تقع في المجموعة لمزيد من المعالجة ، وإلا - تتم إعادة ضبط معايرة الخلية الحالية إلى حالتها الأصلية (وكل شيء جديد) .
  2. بعد استنفاد وقت المعايرة بنقطة معايرة واحدة ، نحصل على متوسط ​​قيمة الإزاحة من البيانات التي تم جمعها مسبقًا.



عند الانتهاء من المعايرة ، لدينا مجموعة من 12 قيم تحيز المتوسط حسب المنطقة (خلايا المصفوفة).



الاستخدام (أسهل)


  1. تحديد المنطقة التي تقع فيها النقطة المستلمة من الجهاز ؛
  2. نحول النقطة المستلمة من الجهاز بمتوسط ​​قيمة الإزاحة في هذه المنطقة.

وبالتالي ، كان من الممكن تحسين دقة جهاز Tobii Eye Tracker 4C برمجيًا (عن طريق إضافة وظيفة إضافية للمعايرة القياسية).

لسوء الحظ ، نظرًا لاتفاقية عدم الكشف ، لا يمكنني تحديد اسم البرنامج ولا تحديد المصدر أو لقطات الشاشة. لحسن الحظ ، سمحوا لي بمشاركة الخوارزمية. آمل أن يكون نشر شخص ما مفيدًا.

توفر المقالة أبسط وصف لعملية المعايرة الرئيسية. بالإضافة إلى ذلك ، هناك مجموعة من الأشياء الأخرى:

  • متوسط ​​قيمة النقطة مع القيمة السابقة (للنعومة) ؛
  • تحقق من تجاوز حدود الشاشة ؛
  • فقدان تتبع البصر ؛
  • تتبع التغييرات في موقف العينين في الفضاء ؛
  • تتبع حالة تعقب العين .
  • تتبع التغييرات في دقة الشاشة ؛
  • تتبع إحباط المعايرة.
  • اختيار عشوائي لنوع علامات المعايرة ؛
  • وأكثر من ذلك بكثير.

وهنا هو الحدث ذاته الذي ساهم في "إكمال" المقالة: بالنسبة لبعض المصادفات التي لا يمكن تصديقها ، أتيحت لي صديقي (من المنشور السابق ) فرصة للدردشة المباشرة مع المطور من Tobii AB . أثناء المحادثة ، ذكر المطور أن المعايرة القياسية لم تكن مثالية وأن جهودنا لم تذهب سدى.

Source: https://habr.com/ru/post/ar457784/


All Articles