Ai-tracker ET-1000 from The EyeTribe

In recent years, Kinect (limbs, the body as a whole), Siri (voice), and LeapMotion (fingers) have shown that contactless control and data / text input can be very convenient and intuitive for certain tasks. But until recently, few knew about the possibility of using the gaze for the same tasks. And there were two main reasons: a) all the devices were quite expensive (thousands and tens of thousands of euros / dollars), b) and the accuracy of determining the direction of the gaze was frankly lame. And if the accuracy in the top products is already quite high (about half a degree - it still needs to be improved, although it will never reach the same level as the accuracy of positioning the mouse cursor due to the biological characteristics of the eye), then the price of an old car did these devices are very niche: the market was divided into marketing (usability studies,articles on this topic), academic (versatile research at universities), medical (patient research), and “accessibility” (using i-trackers by people with disabilities as a means of management).
And a few years ago, the group Ph.D. Students from Copenhagen Technical University set out to expand the “accessibility” niche to any user of computing devices. Their first i-tracker was a free program (ITU GazeTracker), which calculated the direction of view from the video stream of a conventional webcam; True, you had to install an infrared LED yourself, or buy cameras with one (the choice was very modest). The program worked, although the accuracy was not acceptable for everyone and only with a high immobility (used by some paralyzed in Denmark), however, this applied to all free / open source AI trackers as conventional homemade cameras were their main bottleneck.

The creators of ITU GazeTracker (except the left) and the founders of The EyeTribe
However, Javier San Agustin Martin Tall and Henrik Skovsgaard did not stop at this, and in collaboration with Sune Alstrup Johansen created the EyeTribe startup, which received more than $ 3M of investments (including from Intel). The goal of a startup is to create an affordable product with a quality similar to those sold for $ 20,000, namely for $ 99 . Opening a pre-order in September and sending out the first batch of devices in December-January, the developers said that the next batch will be ready by the end of March, but in general there is no end to those who want to.

ET-1000 by The EyeTribe
It should be noted that companies that dominate the production of i-trackers, such as Tobii Technologies and SensoMotoric Instruments, had already felt where the wind was blowing: for example, Tobii Technologies released Tobii REX two years ago “exclusively for developers” (that is, it’s forbidden with it conduct research or use in business) for $ 1000. But, apparently, the product remained not very popular and was closed and the remainder is sold for a third of the price . Now the same company, having realized it, is trying to hold the sharp rise of The EyeTribe by intensively developing Tobii EyeX for $ 95 / € 70 (with a promise to be sent before the end of this month), and at the same time trying itself in a new patent troll quality. Most likely, the license will remain the same as that of Tobii REX - why change it if you can get such good money from rich western universities ...
So, a month ago, this was received:

ET-1000
Very small - only 20 x 2 x 2 cm, smaller than similar devices from other manufacturers. There is also a small tripod in the box and a very rigid and thick USB 3.0 cable. By the way, USB 3.0 is needed, it will not work on the second version. Nothing more, but you can download installation software with a server and SDK from the official website. And also nothing else, i.e. there are no ready-made computer management programs (there are some demos on the github, but this is only a tutorial for developers), only in the GUI version of the server is it possible to attach the cursor to the detected point of view. The developers write that the creation of such programs is left to others, and they themselves are engaged exclusively in hard and software to determine the point of view. I am one of them (from others), and the share of PR is slightly lower.
Testing of this device (running on Win7 +, promised support for Andoid, Mac and Linux) made an extremely positive impression - I expected less from what it costs as a hundredth Tobii X2-60. After calibration at 9 points (this is not as convenient as Tobii with 5 points, but less is not possible yet), the accuracy was about 1 degree (40-50 pixels - slightly worse than the top brands), but with a slight adjustment by head movement it was very easy to get into the buttons of the "close / minimize" window in Win7 / 8. For a long time I did not test, but in those 3-4 minutes the accuracy did not deteriorate, the eyes and pupil remained detectable almost all the time. In another place with different lighting, the eyes were sometimes “lost” for a short time, but the recovery time was short (offhand, 100-200 ms). In general, this is a very worthy result for the money, and in my opinion, in terms of accuracy and reliability, it is only slightly worse than Tobii products and is very close to those SMI products with which I worked. Formal testing for accuracy has not yet been conducted, perhaps this is the topic for the next article.

6 infrared LEDa on each side.
Now about the SDK. It, like the data server, is still very crude (not all declared functionality works), but is being actively developed (version 9.20 in early February, 9.27 in the end). The interaction process takes place through a socket and looks like this:
0. The TET server is launched (short for The EyeTribe).
1. the client connects to 127.0.0.1:6555/tcp
2. the client sends requests in JSON format, the client responds with the same format. The contents of the packages are listed here .
3. In addition, the client sends a “heartbeat” packet for 3 seconds - they say I'm alive (why this is for a TCP connection is a mystery to me).
4. The client draws the calibration points himself, only notifying the server when to start and finish processing the data to compile the calibration matrix.
5. in push mode, the client receives points of view without requests, 30 points per second (there is also a 60 Hz mode, but I have not checked it yet).
5a. each point contains:
- the coordinates of the viewpoint: averaged and for each eye separately.
- coordinates of the viewpoint after smoothing by some low-pass filter: averaged and for each eye separately.
- pupil size: for each eye separately (I don’t know what units are used).
- coordinates of the pupils in the field of view of the camera.
- commit flag
- server status code.
On githubalready eats a certain amount of code for developers in C ++ and C # so that it was not necessary, like me, to write everything from scratch. However, there is a possibility that the packet format and data types will change slightly in the future, making the old programs for this device incompatible with new versions of the server. For example, I had to find out that in the official description of packages from the link above there were two inaccuracies in data types, and some packages may contain values that are not described there.
On this, you could wish for successful developmentand the development of new markets, but in conclusion I want to share one problem. It consists in the fact that there is no single driver or interface for i-trackers that would make them the same compatible devices among themselves, such as computer mice. Those. Once you have developed software for a specific i-tracker, you can’t connect another one to it, you will have to write a new module. About 12 years ago, I became preoccupied with this issue and wrote a certain middleware platform with a single interface for the client part. Since the next i-tracker comes into my hands, I write a separate module (DLL) for it, and all my software designed to use the gaze on top of this platform immediately begins to work with this device without unnecessary gestures. Naturally, that ETU-Driver (as I called it) already supports ET-1000 (in the near future - a comparison of accuracy with Tobii T60 and X2-60). But over the years of use, its shortcomings were revealed: first of all, the hard format of the data being sent and the implementation in the form of COM. Was alreadyan attempt to rewrite everything from the beginning , but the feeling that the implementation should be some other, perhaps more flexible and platform-independent, does not leave. If anyone has any thoughts about how to properly implement a device-independent platform for such devices - a big request to share.