FPGA Implementation of Eye Movement Detection Algorithm

In this paper, we propose an simple and eﬃcient VLSI hardware architecture is implemented for eye movement detection. For Eye movement detection reading activity Electrooculography (EOG) signal is considered. Here, for denoising the noisy EOG signal eﬃcient FIR ﬁlter and for decomposition of denoised EOG signal an eﬃcient Haar wavelet transform architecture is used respectively. The modiﬁed VLSI hardware architecture method detected the saccade (left movement of eye and right movement of eye) and blink eﬃciently. The hardware architecture of the eye movement detection algorithm functionality is veriﬁed by using Xilinx System Generator hardware co-simulation tool. The eye movement detection algorithm is implemented on the ZedBoard FPGA using Xilinx Vivado design suite.


Introduction
Biomedical engineering is one of the most advanced research in engineering, making use of extensive research in medicine. The aim of this area is to assist and improve our daily lives by way of making use of engineering and clinical knowledge with the increasing strength of computer systems. The computer systems are efficient, straightforward and by no means get worn-out or ill, even as people although are smart and innovative, come to be ill, weak and restrained.
Communique between human beings appear usually lots simple than the one entails humans and machines. This problem is exacerbated when the person is having a disability. However, particularly these types of people benefit the most from getting machine assist for their daily life. Inside the field of assistive technology, the Electrooculogram (EOG) may be used as a communique channel and as the premise of a Human-Machine Interface. For a variety of control applications, eye movement tracking is very famous nowadays. In particular, it is very beneficial for people with Amyotrophic Lateral Sclerosis (ALS) or other medical condition, which prevents their organs from responding properly and preventing them from speaking. Monitoring and critical analysis of eyeball movements constitute a crucial diagnostic tool for clinicians and neurologists. Eye movement detection have been used by clinicians to diagnostic number of diseases like Motor Neuron disease (MND) [1], cerebral palsy [2], multiple sclerosis, Best disease [3], parkinson's disease [4] and epilepsy [5].
Electrooculography plays a vital role in the development of ophthalmological diagnosis and human computer interface (HCI) applications. Eye movement measurement is performed by way of putting pairs of electrodes both above and under the eye, or to the left and right of the eye. If the eye moves from one central position to one of the two electrodes, this electrode looks at the positive aspect of the retina, and the opposite electrode looks at the negative facet of the cornea, causing a potential difference between the electrodes. Recorded probability is a measure of eye position. The electrode placement is shown in Figure 1. In Figure 1, CH1 represents vertical eye movement EOG signal and CH2 represents horizontal movement EOG signal.
Increasingly more researchers are using video-based eye-tracking to examine eye actions inside the natural surroundings. This has caused significant progress in our understanding of the way the brain processes things [7]. EOG is a measurement technology this is cheaper, non-invasive, easy to use, reliable  [6] and comparatively simple in comparison to the head-worn cameras utilized in video-based eye trackers [8].
In the present research work, we are considering EOG as the physiological signal. The eye can be polarized with a positive pole at the cornea and its negative pole at the retina. Assuming that the potential difference between the cornea and the retina is stable, the eye is the source of a constant electric potential field. The electric signal that may be measured in this field is known as an Electrooculogram. The amplitude range of the EOG signal is 50-3500 micro Volts(µV ). The EOG signal frequency range is 0-30(Hz).
The Electrooculogram is the signal extracted from the electrode retinal potentials, which interpret the eyeball movement. Eye movements are categorized into three types. These eye movements can be easily identified with EOG signal and the eye movements are saccade, blink, and fixation [8].

Saccade
At the point when somebody peruse a visual scene, the eyes isn't keep in one spot however move continually with the intrigue area to develop a "psychological guide". The way toward procuring data through coordinated development of two eyes is called saccade [9].

Fixations
In visual scene, obsessions are the fixed states that the eyes are fixed on a particular area. In Human movement acknowledgement framework, obsessions are generally characterized as the extra time between every two saccades [10].

Blinks
The frontal piece of the cornea is covered with a slender fluid film, the supposed "precornial tear film". To spread this liquid over the corneal surface, normal opening and shutting of the eyelids, or Blinking, is required [11].
The main challenges in detecting eye movements from raw EOG signals are noise caused by other physical sources of interference, such as residential power lines, measuring circuits, electrodes, cables, and electromyography (EMG) signals.
The present work is divided into 5 sections. Section 2 describes motivation for the research work. In section 3, the eye movement detection architecture is discussed. In section 4, the eye movement detection algorithm is discussed. The FPGA prototype of eye movement detection algorithm is discussed in section 5 and followed by conclusion.

Motivation for the Proposed Work
In the literature, numerous techniques were proposed through the years to detect eye movement in EOG signals. The existing Electrooculography systems are purely software simulation based like either M AT LAB simulation or any other programming languages like C or C + + and P ython. In this research work, a hardware implementation of eye movement detection algorithm is implemented.
In most of the literature reported eye movement detection methods, the feature extraction, as well as post-processing blocks, are computationally intensive.
The real-time signal processing applications require low-latency and low-power hardware implementations. Since Moore's law and technology scaling are slowing down, technology alone will not address the computation requirement. To solve this problem, the research work is focused on efficient algorithms and domain-specific hardware architectures.
The identity of physical hardware components and their interrelationships is known as hardware architecture. Hardware architectures permit developers to recognize how components suit right into a machine. With latest advances in integrated circuit (IC) technology, there had been reports of diverse hardware systems for real-time applications. The overall performance of the algorithm obtained the usage of prototyping is likewise vital earlier than tape out of an IC. The hardware prototyping is essential, because it affords critical facts about the algorithm construction, together with hardware necessities, electricity consumption, structural complexity, and real-time overall performance [12].
Reconfigurable hardware systems give designers the choice to implement prototype hardware with an algorithm at low price and quicker time to marketplace.
Field Programmable Gate Arrays(FPGA) have the ability to re-configure the hardware IC. Hardware structures can be verified using FPGA. The FPGA implementation of various digital systems is user-definable rather than fixed during production. Therefore, they are greater suitable for validating digital machine hardware architectures and prototyping digital signal processing (DSP) algorithms. The FPGAs were successfully carried out in a variety of areas such as telecommunications, electrocardiogram (ECG) analysis, electroencephalogram (EEG) analysis, pattern recognition, and robotic [13] [20].
To quickly implement the proposed algorithms on FPGAs, this research uses a design tool based on the Xilinx System Generator (XSG) [18][21] [22]. The XSG tool is a set of intellectual property (IP) cores such as basic digital logic blocks to more complicated mathematical features and control logic. Those IPs are related to the FPGA according to the hardware architecture developed for its implementation. Hardware can be verified via virtual FPGA using the hardware co-simulation feature. XSG is compatible with hardware co-simulation through blocks inside and outside the gateway. In hardware co-simulation, digital samples of input signals may be provided directly from the MATLAB workspace to process on FPGA. In hardware co-simulation, as soon as the input sample is processed on FPGA, the hardware output may be observed in Scope [23]. Figure 2: Saccades, Fixations and Blinks for EOG signal in reading [24] In this work, we are consider the reading activity EOG signal for saccade (left movement of eye and right movement of eye) and blink detection. Three basic types of eye movements of saccades, fixations, and blinks are shown in Figure   2 for reading activity signal. In general, a sentence is read from left to right position. After reaching the end of the line, the eye movement suddenly changes from right to left position. This sudden change in eye movement is called as a saccade. Blinking is required to maintain the precornial tear film across the corneal surface. The saccade is detected with the horizontal eye movement data set, while blink is detected with vertical eye movement data set.

Architecture of Eye Movement Detection using EOG
Architecture for eye movement detection on the example of EOG signal is shown in Figure 3. The proposed architecture for eye movement detection mainly consists of denoising, saccade detection, blink detection, left movement and right movement of eye. The saccade is detected using horizontal EOG signal, while blink is detected using vertical EOG signal. Haar wavelet transform is most suitable for saccade and blink detection [8]. In this research work, an reading activity EOG signal is considered for eye movement detection. In general, a sentence is read from left to right position. After reaching the end of the line, the eye movement suddenly changes from right to left position. This sudden change in eye movement is called as a saccade. Blinking is required to maintain the precornial tear film across the corneal surface.

Eye Movement Detection Algorithm
This research work mainly focuses on denoising the EOG signal, eye movement detection in horizontal EOG signal for reading activity. The detailed algorithm of the eye movement detection is given in Algorithm 1. The input for the modified algorithm is noisy horizontal EOG signal and the output is left eye movement, right eye movement.
The first step for the modified eye movement detection algorithm is preprocessing the noisy EOG signal. For denoinsing the EOG signal, the required frequency component is in between 0 Hz -30 Hz. The modified FIR filter [25] efficiently removes the noise in EOG signal. In the second step, the preprocessing EOG signal is given to Haar wavelet transform for getting the detailed coefficients. These threshold values are determined by visual inspection.
The example for eye movement detection algorithm of horizontal EOG signal is shown in Figure 4. The denoised horizontal EOG signal for reading activity is shown in Figure 4a. Figure 4b shows the Haar wavelet transform detailed coefficients with four thresholds (±thd small and ±thd large).

FPGA Prototype of Modified Eye Movement Detection Algorithm
The hardware architecture of eye movement detection is shown in Figure 5.
The transposed direct form FIR filter is used for denoising the EOG signal. The Verilog HDL of the FIR filter is imported using Black Box from Xilinx System Generator tool set. The filter Black Box has one 16 bit input, one reset input and one 16 bit output ports. The Black Box is synthesis using XSG and then the raw EOG signal is given as input to the filter block. The output of the filter  [27] block is denoised EOG signal. The EOG signal data is taken from [27].
The efficient Haar wavelet transform architecture is implemented in article [26]. The Haar wavelet transform is for decomposition of denoised EOG signal.
The Verilog HDL of the Haar DWT architecture is imported using Black Box from XSG tool set. Here, unit-delay element of hardware is denoted by Z −1 .
The Haar wavelet transform Black Box has two 16 bit input ports and two 16 bit output ports. The Black Box is synthesis using XSG and then the denoised

Hardware Co-Simulation
The modified eye movement detection algorithm is hardware co-simulated by exporting EOG samples from the MATLAB workspace to XSG-Simulink environment. The EOG samples are given to the proposed design model through input gateways. The Eye movement detected by the designed model is transferred to the MATLAB environment for the visualization through output gateways.
The hardware architecture of the modified algorithm is verified by hardware co-simulation.
The real EOG signal dataset of reading activity is considered from [8]. Here, two sets of EOG signals are considered. One is horizontal EOG signal and another one is vertical EOG signal. These EOG signal data samples are given to the modified eye movement detection hardware architecture of Figure 5. The horizontal EOG signal dataset will recognize the reading activity from left to right movement of eye, while the vertical EOG signal dataset will identify the blinks.
The denoised horizontal and vertical reading activity EOG signal output waveforms are plotted and shown in Figure 6 and Figure 7 respectively. The denoised horizontal and vertical reading activity EOG signal is given to Haar wavelet transform architectue and generated output waveforms are plotted and shown in Figure 8 and Figure 9 respectively. In both these waveform approximation and detailed coefficients are the outputs of Haar wavelet transform.
The detailed coefficients in Figure 8 gives the information about left to right eye movement and vice versa. The large and small peaks in Figure 8 are the end of reading line and jumps between the words respectively. Similarly, the detailed coefficients in Figure 9 gives the information about blink detection of human eye. In Figure 9, the short duration of two large peaks, which shown in detail coefficients vector, one positive and other negative is identified as single blink.
In Figure 8, saccades are encoded as ±1 and 0. The amplitude value of +1 represents large saccade i.e left movement for horizontal EOG signal. In reading activity, these large saccades required to go back to the next start line.
The amplitude value of −1 represents small saccade i.e right movement for horizontal EOG signal. In reading activity, these small saccades required to jumping between the words of sentence. The amplitude value of 0 represents no saccade i.e Fixation in reading of sentence. In Figure 9, blinks are encoded as +1. The amplitude value of +1 represents blinks for vertical EOG signal.

FPGA Prototype Results
The modified eye movement detection algorithm is synthesized on XSG with 16-bit precision signed fixed-point data type. Xilinx XSG blocks are used in this designs as they provide the best possible synthesis results on FPGA. The modified design of synthesized model is exported as net-list from the XSG for implementation and is then implemented on ZedBoard (XC7Z020-CLG484-1) FPGA board using Xilinx Vivado 2016.2 design suite. The hardware utilization for the implementation of the modified eye movement detection algorithm on FPGA is summarized in Table 1.

Conclusion
In this paper, a VLSI hardware architecture is implemented for detecting eye movements. For eye movement detection reading activity EOG signal  The eye movements detected by using the modified method is also verified by the hardware co-simulation.