Eye of Horus, Open Source Eye Tracking Assistance
by Innovart Studio in Circuits > Remote Control
12505 Views, 169 Favorites, 0 Comments
Eye of Horus, Open Source Eye Tracking Assistance
Eye of Horus is an open source platform to control any device just looking at them. The project (hardware & software) was built from scratch in Zaragoza to solve the a Global Wearables challenge. This device could help physically handicapped people on their tasks. The system combines eye tracking with a frontal camera to know where you are looking. The target devices are identified using light beacons (similar to LiFi technology) and controlled with wireless protocols.
Physically Handicapped people can not control the objects that surround them freely , sometimes can not interact with them. Normal people doing lab and field work often need to operate with computers and other tools but in some situations this interaction is not easy and may cause them to interrupt their activities. The physical problems hinder the mobility of the people inside their home and may affect their work, life and safety.
Interacting with objects just looking at them has always been a dream for humans. And now Eye of Horus allow you to interact with any device. For example with robots,drones...or a wheelchair.
The Challenge
The challenge is to design and build a wearable accessory that could be useful for the people in their activities. The device would facilitate their work through a natural interface so they can do different things without using their hands. Thanks to it, they will be able, for instance, to interact with a distant device just looking at it.
- Wearables: Wearable refers to the set of electronic devices which are incorporated in any part of our body that continuously interact with the user and other devices in order to perform a specific function. Smart watches, sports shoes built-in with GPS and bracelets that monitor our health are examples of this technology which is increasingly present in our lives. One of the best known wearables is Google Glass. Our device could be designed as an accessory to use with Google Glass to simplify the hardware and reduce its costs.
- 3D printing: The device must be durable and made from a non-brittle material. Due to this, we have decided to make it using 3D printers. This technology is cheap and easy to build so the device could be replicated worldwide or even in the space.
- Open Source: We believe open knowledge is contributing to a better world and Eye of Horus is designed as an open source platform, both hardware and software. The schematics and the implemented software can be found in the project Github repository, allowing people to modify, improve and redistribute their contributions.
- Internet of Things: The Internet of Things (IoT) is a growing trend that extends internet connectivity beyond traditional devices like computers, smartphones and tablets to a diverse range of devices and everyday objects. This revolution increases the possibilities of the Eye of Horus allowing you to control the light level of your kitchen or turning on the coffee machine just using your vision. Therefore, the device must have built-in wireless capabilities, which is the base of IoT.
- Low Cost Solution: We have developed a simple and low cost solution to detect and identify the objects in our surrounding. Infrared leds are used as light beacons (similar to LiFi technology) emitting different frequency pulses for each device (PC, camera, TV, microwave...). The frontal camera of our dispositive detects this light, differentiating and communicating the objects when you look at them.
Eye of Horus lets you interact with devices and objects just looking at them. The main application in the current challenge is to improve the work and safety of the NASA ground engineers and astronauts but this device could also make common people's lives easier:
- Disability. People with functional diversity or who is hospitalized could use it to perform tasks which would be impossible due to their reduced mobility.
- Driving safety and control. Thanks to our device, drivers could interact with the radio or car phone with both hands on the wheel. Their eyes could be also monitored to detect drowsiness or lack of attention on the road and prevent a potential accident.
- Entertainment. It could be used as an eye-controlled mouse to play video games and position the targets just looking at them.
Components
The parts used in the different versions of the prototype are common:
- VoCore v1.0: VoCore is a coin-sized Linux computer with wireless capabilities. It is also able to work as a fully functional router. It runs OpenWrt on top of Linux and contains 32MB SDRAM, 8MB SPI Flash and using 360MHz MIPS processor.
- Power circuit: It includes a system DC/DC which supply 5V to the circuit thanks to a lithium battery.
- Webcam Camera: A small size USB endoscope camera was disassembled to remove the infrared blocking filter and replace it with a band pass filter with the oposite effect. This task was complicated due to the small size of the optical elements.
- IR leds: infrared leds are responsible to illuminate the eye. The pupil is an aqueous medium that absorbs this light and results in a dark spot clearly visible in the images.
- Bandpass filter: Lens that filters the non-infrared frequencies of light emphasize the monochrome effect and prevents ambient light from affecting the system.
The system also integrates a bluetooth low energy (BLE) module which can receive requests from other devices. In our case, a computer linked with other BLE module is in charge of sending the turn on/off request when the main device indicates that the user is in front of the object and the eye tracking reveals that is looking at the beacon (in the example it would be the light).
The integrated components in this prototypes are:
- Serial Bluetooth 4.0 BLE Module: responsible for the communication of BLE with PC.
- Relay control module: to control a device connected to the network.
- Arduino Pro mini: the main microcontroller in charge of communicating with other modules and components.
- Infrared LED: responsible for carrying out the lighting flash.
3D Design
3D Printing
The casing was designed to integrate the electronic components of the system. It consists of several 3D printed pieces to hold and position the camera, the infrared lights and allocate the electronics and batteries. The complete 3D model can be viewed online in the following link.
We started with a simple design that has been improved to the current version:
- Version 1: The first goal was to design and fabricate a case which could be fitted as an accessory of the Google Glass. A replica was 3D printed as we did not have an actual product. The casing consists of a small box containing the battery and the processor connected through an USB wire to the camera. An articulated tube which ends in the camera holder and the infrared lights allows the system to be mobile and frame the eye pupil.
- Version 2: In the second version, which is the end of this prototype, the molding of the glasses is independent and functional without the need of the Google Glass. The look and the fastening system of the electronic components have been improved in this second version.
You can see all the 3D design files in our GitHub:
Hardware
Eye Tracking device
This part corresponds to the wireless system that captures and analyzes the eye pupil images under infrared illumination. During the development process, several iterations have been made improving the prototype features and finally designing a printed circuit board (PCB) that could be manufactured with a low cost.
- Prototype 1: A first prototype was built over the table with no case to test hardware and software. The parts used in the different versions of the prototype are common.
- Prototype 2: Once the basic software and hardware was validated, a second version was developed to complete and integrate the system using the 3D printing models of the first version of the casing. The system was modified to overcome the following hardware problems:
- Remove the electronic noise emitted by WiFi shield that affects data transmission in the camera wire.
- Correct the placement, orientation and intensity of the infrared LEDs for a correct eye pupil illumination.
All electronics components of the prototype were replicated in the second version to get a better finish of the product. The assembly is the result of the first model of the product. It could be an addition to google glasses using the front camera, which this device has, like a data gathering system of the physical world. - Prototype 3: On this part, a printed circuit board was designed based on the information obtained from the previous prototypes. It would allows a low cost and replicable electronic device. This is a open source project, so all schematics are available. Anyone can download, edit and manufacture the device.
Light beacon device
A prototype was designed using infrared flashlight pulses with adjustable frequency. This light, only visible in the front camera thanks to a band-pass filter, allow to differentiate the targeted devices.
The system also integrates a bluetooth low energy (BLE) module which can receive requests from other devices. In our case, a computer linked with other BLE module is in charge of sending the turn on/off request when the main device indicates that the user is in front of the object and the eye tracking reveals that is looking at the beacon (in the example it would be the light).
Software
Our final goal is to obtain an autonomous device but during the weekend the software development was divided in two blocks: server and client. Server software is running inside the Eye of Horus while the client is running on a laptop computer.
Server
This part of the software is executed in the VoCore module, a coin sized linux computer suitable for many applications. This module acts as a server running OpenWrt, a Linux distribution for embedded devices.
The server software is in charge of:
- Capturing the video captured by the camera
- Streaming the data over WiFi using a lightweight webserver
Client
This part is in charge of:
- Receiving the video stream
- Processing the images of the eye in order to detect the center of the pupil
- Provide a user interface to calibrate the system
- Control the mouse in the laptop computer according to the coordinates dictated by the eye
The video stream in the client was processed in real time using HTML5. A segmentation library was developed from scratch to threshold the images and analyze its morphology to detect the pupil and compute its center of mass.
At this point, the user has a mouse controlled by his eye and can interact with any 3rd party software installed in the computer.
A demo of the client sofware recognizing the center of the pupil can be seen in our website. You can play with the range selectors in order to see how it affects the recognition and reach optimal calibration when only the pupil is highlighted. The system will consider the center of gravity of the highlighted area as the coordinates where the eye is pointing. Calibration is very important and it may depend of the illumination. Thats the reason why the Eye of Horus has 4 leds illuminating the area of the eye. The pupil detection system has proven to be quite robust with the illumination provided by the device.
You can see all the software in our GitHub:
https://github.com/Makeroni/Eye-of-Horus
VERSION 1 https://github.com/Makeroni/Eye-of-Horus/tree/mas...
First prototype of the Eye of Horus.
VERSION 2 https://github.com/Makeroni/Eye-of-Horus/tree/mas...
Example
Here you can see the first test using the frontal camera with an example detecting the position of the eye in a keyboard.
Source Files
You can see all the software in our GitHub:
https://github.com/Makeroni/Eye-of-Horus
VERSION 1 https://github.com/Makeroni/Eye-of-Horus
VERSION 2 https://github.com/Makeroni/Eye-of-Horus
This version 2 of "The Eye of Horus" contains major improvements in Hardware and Software. We organized the repository in version_1 and version_2 folders as a clear way to see the historical evolution of the project. For additional information please check also the version_1 folder.
Assembly
Here we show the renders of our actual version of the product:
Prototype in Action
We have developed several examples using Eye of Horus:
- Web interface
- Driving
- PC control
- IR control
- Calibration
- Keyboard
- Number detection
- Drone control
- Robot control
- Light control
You can find all of them in our Vimeo and Youtube channels:
Amazing Result
The first version of Eye of Horus was born during the Space Apps Zaragoza to solve the Space Wearables challenge. This device could help engineers from NASA and astronauts on their tasks. The system combines eye tracking with a frontal camera to know where you are looking. The target devices are identified using light beacons (similar to LiFi technology) and controlled with wireless protocols.
NASA engineers doing lab and field work often need to operate with computers and other tools but in some situations this interaction is not easy and may cause them to interrupt their activities. The absence of gravity hinders the mobility of the astronauts inside the station and may affect their work and safety. We accepted the Space Apps challenge for creating a wearable accessory that could help people interacting with computers, electronic devices and also everyday things just looking at them.
We won this contest and we had the opportunity of visit NASA kennedy space center. An amazing experience for our team!
The four members of the team have different technological backgrounds as electronic engineering, physics and computer science but we all share passion for making all kind of inventions mixing any available technology.
We are all members of MAKERONI LABS, a non profit that was born in Zaragoza in 2012 following the MAKER movement that is currently shaking the world.
Its main purposes are:
- Promote a collaborative workspace for the development of new technologies.
- Promote the dissemination of new technologies; both projects developed by members of the association, as other people.
- Create and maintain a physical or virtual, collaborative work space.
- Promote and coordinate the development of technological projects for companies and individuals, by members of the association.
- Promote the capacities of members of the association in competitions, talks and exhibitions.
- Conduct outreach to the diffusion of new technologies activities.