Kalibrasi Pelacak Mata Kustom



Segera akan ada satu tahun ketika kami merilis produk dengan Custom ' eye-tracker calibration'. Sayangnya, karena berbagai alasan, masih tidak berfungsi untuk menyelesaikan artikel ini. Namun, sebuah kejadian lucu baru-baru ini terjadi yang mendorong untuk menyelesaikan apa yang dimulai. Tapi, hal pertama yang pertama. Saya berharap seseorang akan tetap mendapat manfaat dari pengalaman kami, meskipun faktanya postingan itu ternyata lembab.

Singkatnya, Eye-tracker adalah perangkat yang memungkinkan Anda untuk melacak arah pandang, serta posisi mata dan kepala.

Eye-pelacak memiliki beberapa area aplikasi, salah satunya adalah industri game komputer ( lebih sedikit ).

Seringkali, deteksi tatapan bertanggung jawab atas tindakan sekunder (tambahan), namun penting dalam permainan:

  • pergerakan kamera;
  • bertujuan;
  • pemilihan objek untuk interaksi;
  • pemilihan senjata;
  • panggilan jeda otomatis saat kehilangan penglihatan;
  • lainnya.


Dalam kebanyakan kasus, kalibrasi standar (kita akan berbicara tentang perangkat Tobii Eye Tracker 4C ) sudah cukup untuk penggunaan era Eye Track yang nyaman .


Tetapi, sayangnya, untuk keperluan kami, keakuratan perangkat yang dicapai oleh kalibrasi standar tidak cukup, karena, dalam proyek kami, tampilan adalah mekanisme kontrol utama.



Dari hal tersebut di atas, tugas dibentuk: untuk meningkatkan kalibrasi standar;
kondisi : Perangkat Tobii Eye Tracker 4C , bahasa pengembangan adalah C # (WPF) .

Tampaknya menjadi solusi di permukaan: jika Anda ingin lebih akurat - tambahkan lebih banyak titik kalibrasi, tetapi itu tidak begitu sederhana.

Tobii AB memiliki banyak alat untuk bekerja dengan perangkatnya. Joy tidak mengenal batas ketika Tobii Pro SDK ditemukan, yang memiliki semua roti untuk bekerja dengan kalibrasi , tetapi ternyata kemudian, SDK ini tidak cocok untuk bekerja secara khusus dengan model pelacak mata yang kita miliki (meskipun aneh bahwa deteksi tatapan perangkat masih ada saat menggunakan SDK ini). Saya harus mengambil alat lebih mudah - Tobii.EyeX.Client .

Secara empiris, jumlah optimal titik kalibrasi dan lokasinya terungkap: matriks 4x3 dengan 12 titik kalibrasi terletak (masing-masing di tengah sel).

Parameter berikut juga ditemukan secara empiris:

  • waktu untuk kalibrasi pada satu titik kalibrasi - 3 detik;
  • indeks titik yang dipertimbangkan adalah 5 (jika indeks titik yang diterima dari perangkat adalah kelipatan dari ini, maka kami memperhitungkannya saat menghitung kalibrasi);
  • deviasi maksimum yang diizinkan dari titik kalibrasi ( px ) dihitung dengan rumus:

    Math.Min(regionWidth,regionHeight)βˆ—$0,4

    dimana regionLebardan regionTinggi- Lebar sel dan tinggi matriks kalibrasi, masing-masing


Algoritma Kalibrasi (Simple to Madness)


Kalibrasi dilakukan secara berurutan, untuk setiap sel dari matriks kalibrasi:

  1. jika jarak antara titik kalibrasi saat ini dan titik yang diterima dari perangkat kurang dari deviasi maksimum yang diizinkan , maka titik tersebut (diterima dari perangkat) jatuh ke dalam koleksi untuk diproses lebih lanjut, jika tidak - kalibrasi untuk sel saat ini diatur ulang ke keadaan semula (dan semuanya baru) ;
  2. setelah waktu kalibrasi oleh satu titik kalibrasi habis, kami memperoleh nilai rata-rata perpindahan dari data yang dikumpulkan sebelumnya.



Setelah menyelesaikan kalibrasi, kami memiliki koleksi 12 nilai bias rata-rata berdasarkan wilayah (sel matriks).



Penggunaan (bahkan lebih mudah)


  1. tentukan wilayah mana yang diterima titik dari perangkat;
  2. kami menggeser titik yang diterima dari perangkat dengan nilai rata - rata offset di wilayah ini.

Dengan demikian, dimungkinkan untuk secara terprogram meningkatkan keakuratan perangkat Tobii Eye Tracker 4C (dengan membuat tambahan pada kalibrasi standar).

Sayangnya, karena perjanjian non-pengungkapan, saya tidak dapat menentukan nama perangkat lunak, atau memasukkan sumber atau tangkapan layar. Untungnya, mereka mengizinkan saya untuk berbagi algoritme. Saya harap posting seseorang masih berguna.

Artikel ini memberikan deskripsi paling sederhana dari proses kalibrasi utama. Selain itu, ada banyak hal lain:

  • rata-rata nilai poin dengan yang sebelumnya (untuk kelancaran);
  • periksa untuk melampaui batas layar;
  • kehilangan pelacakan penglihatan;
  • melacak perubahan posisi mata di ruang;
  • Pelacakan status Pelacak Mata ;
  • melacak perubahan dalam resolusi layar;
  • melacak kalibrasi yang gagal;
  • pemilihan acak jenis tanda kalibrasi;
  • dan masih banyak lagi.

Dan di sini adalah peristiwa yang berkontribusi pada "penyelesaian" artikel: untuk beberapa kebetulan yang tak terbayangkan, teman saya ( dari posting sebelumnya ) memiliki kesempatan untuk mengobrol langsung dengan pengembang dari Tobii AB . Selama percakapan, pengembang menyebutkan bahwa kalibrasi standar tidak ideal dan upaya kami tidak sia-sia.

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


All Articles