Skip to content
candytaco edited this page Feb 3, 2021 · 8 revisions

Why does SharpEyes exist?

Because all the other solutions I have used are either unreliable or not user-friendly.

What does SharpEyes use?

OpenCV is used for actually processing the videos. WPF is used to build the front end UI.

What do I do with the data that it spits out?

Right now, SharpEyes just finds the pupil. The saved eyetracking data is the same format as that ussd by the PupilFinder class in the Eyetracking repo. You can instantiate a Eyetracker or PupilFinder class in python, and then read this data file in, and replace the appropriate field. Then you can continue the analyses in python.

What do I do if there are bugs?

When, not if. This is a work in progress. Open an issue and describe the issue.

What do I need to run SharpEyes?

It targets .NET framework 4.6.1, so you need that. Otherwise, the OpenCV and NumSharp dlls are already included.

What do I need to build SharpEyes?

I built this on VS2017 using the Nuget packages for OpenCVSharp and NumSharp Lite on Win10 20H2. I assume anything around that or newer should work.

What about *nix systems?

No. I am not supporting *nix systems.

You have a few options. The easiest is to just run a VM. It's all CPU-based anyhow, so there shouldn't be too much of a performance hit. You could try wine, but Wine is hilariously awful, esp when trying to run something modern like WPF. The last, but most solid thing you can try to do, is to port the UI to WinForms and re-build with Mono. Remapping the event handlers in MainWindow.xaml.cs to a WinForms app should be trivial if you mirror the controls.

What about GPUs?

Everything runs on CPU and it frankly feels fast enough. The bottleneck here is the human checking the output. The code does make use of multithreading on CPU when it can.

Clone this wiki locally