WearEIT

An EIT-based wearable device for real-time hand gesture recognition and control of upper-limb prostheses

WearEIT

Project Overview

WearEIT explores Electrical Impedance Tomography (EIT) as a viable alternative to electromyography (EMG) for real-time hand gesture recognition and control of upper limb prostheses.

Conventional myoelectric prostheses rely on EMG, a passive biosignal technique that measures the electrical activity generated when muscles contract using surface electrodes. While this approach is widely adopted, it has several important limitations. For instance, EMG only captures the transient activity of muscles that are contracting, so it provides little information about the state of muscles that are mainly under constant tension. On top of that, EMG signals have low amplitude and share a similar magnitude with mechanical vibrations and motion related noise, especially at the skin electrode interface. In practice, this means EMG primarily picks up superficial, localized activity and offers limited information about how deeper or adjacent muscle groups behave as a whole. As a result, EMG-based prostheses are highly susceptible to mains interference at 50 or 60 Hz, motion artifacts, and even changes in ambient humidity.

WearEIT addresses these limitations by using EIT, a non-invasive active biosignal technique that measures changes in muscle bioimpedance by injecting AC currents into the limb and measuring the resulting surface voltage changes. Because the excitation frequency can be selected and adjusted, EIT can be made more robust to motion artifacts and electrical noise than traditional EMG.

Figure 1: Current injection and voltage measurement using the tetrapolar/adjacent method

Figure 1: Current injection and voltage measurement using the tetrapolar/adjacent method.

When applied to a residual limb, EIT provides a 2D cross sectional conductivity map, or even 3D if multiple electrode layers are used, offering a more complete and detailed picture of the residual limb's anatomy and function, as depicted in Figure 2. These maps capture how the remaining muscles, bones, and connective tissue in the residual limb move and contract in patterns that reflect the user’s intended arm and hand movements. By learning a mapping between these EIT patterns and target actions with a machine learning model, WearEIT allows for intuitive real-time control of upper limb prosthetic devices.

Figure 2: Example of a conductivity map of a residual limb obtained using EIDORS software

Figure 2: Example of a conductivity map of a residual limb obtained using EIDORS software.

System Architecture

WearEIT is implemented as a wearable device for the residual limb. The system uses a high-performance STM32H7 microcontroller, which enables on-device machine learning inference, decoupling the system from a PC and resulting in a portable, self-contained solution. An external HC-06 Bluetooth module provides wireless data streaming which, combined with a custom MATLAB-based GUI, allows for real-time off-device training and tuning of the machine learning model.

On the analog side, the proposed system consists of four main components:

  • A DDS-based AC current generator that can be programmed to output AC-coupled sinusoidal currents with frequencies up to 1 MHz.
  • A discretely implemented Voltage-Controlled Current Source (VCCS) based on a Howland topology, supporting both single-ended and differential current injection in the range of 70 µA to 350 µA via external digital potentiometers.
  • A set of analog multiplexers that select different electrodes for current injection and voltage measurement across up to 16 channels.
  • An analog front-end that filters and amplifies the electrode voltage signals, using digital potentiometers to maximize SNR, followed by a 12-bit ADC sampling at 10 MHz.

The device also implements an autocalibration procedure that adjusts the analog gain to maximize the SNR of the electrode voltage signals and prevent ADC saturation.

Figure 3: Block diagram of the WearEIT wearable device

Figure 3: Block diagram of the WearEIT wearable device.

Implementation

In order to allow for a more versatile and scalable implementation, the system was implemented in a modular fashion, separating the analog section and the digital section into two separate PCBs, and thus allowing for different electrode configurations, without the need to redesign the entire system. The two boards snap together using three low-profile connectors, allowing for easy assembly and disassembly of the system.

Figure 4: Assembly of the WearEIT wearable device

Figure 4: Assembly of the WearEIT wearable device.

In order to train the machine learning model, we used a MATLAB-based GUI, shown in Figure 5, which supports real-time data acquisition, off-device model training, and ML model parameter tuning.

Once a Bluetooth connection is established between the PC and the WearEIT device, the system streams raw measurements to the PC, where the data are processed and the model is trained and tuned. After training, the learned weights are sent back to the device and stored on a microSD card. On power-up, the device automatically loads these weights from the microSD card into RAM, enabling fully on-device inference. Thanks to the CMSIS DSP Software Library, each inference takes less than 360 μs, so its contribution to the overall frame time is very small compared to data acquisition. For a tetrapolar/adjacent configuration, the system needs Nelectrodes(Nelectrodes − 3) RMS voltages per frame (208 when Nelectrodes = 16), and several periods of the input signal are required to accurately compute each RMS value. As a result, the limiting factor for the recognition rate is the EIT measurement process rather than the neural network itself, leaving substantial headroom to increase the model complexity without significantly degrading the frame rate.

The model itself is implemented as a feedforward neural network with one hidden layer with 25 neurons, which maps the RMS voltages from a single frame to N different classes chosen by the user. After training, the GUI shows the final confusion matrix, the obtained accuracy, and a plot of the training loss over epochs.

Figure 5: MATLAB-based GUI for the WearEIT wearable device

Figure 5: MATLAB-based GUI for the WearEIT wearable device.

Key Findings

Using the tetrapolar/adjacent electrode configuration shown in Figure 1 with 16 electrodes, the proposed system achieves a 54 Hz recognition/frame rate, improving on the 16 Hz frame rate reported by Zhang et al. [1] under a similar configuration. The system also reaches a recognition accuracy of 90.46% for 10 different body conductivity patterns, as shown in Figure 6.

Disclaimer: Although the hardware and processing pipeline were verified to operate as intended, limitations in collecting sufficient in-house data for generalizable training and testing meant that the results in Figure 6 are based on an open-source dataset provided by the authors of Fernandez-Fuentes et al. [2]. This dataset contains more than 3000 tetrapolar/adjacent measurements acquired using phantoms of different shapes and sizes. Since the data were not originally labeled, K-means was used to cluster the measurements and a subset of clusters was used to train the on device model. The reported frame rate includes both the data acquisition time and the model inference time.

Figure 6: Confusion matrix of the WearEIT wearable device

Figure 6: Confusion matrix of the WearEIT wearable device.

References

[1] Y. Zhang, R. Xiao, and C. Harrison, "Advancing Hand Gesture Recognition with High Resolution Electrical Impedance Tomography," in Proc. 29th Annu. Symp. User Interface Softw. Technol., Tokyo, Japan, 2016, pp. 843–850, doi: 10.1145/2984511.2984574.
[2] X. Fernández-Fuentes, D. Mera, A. Gómez, and I. Vidal-Franco, "Towards a Fast and Accurate EIT Inverse Problem Solver: A Machine Learning Approach," Electronics, vol. 7, no. 12, Art. no. 422, 2018, doi: 10.3390/electronics7120422.