ACCELEROMETER BASED HAND GESTURE RECOGNITION SYSTEM
Advisor:
Dr. Kashif Javed
Abstract:
In our society we have people around us with physical disabilities. Although technology is
advancing day by day but there has been no such remarkable progress in this scope of life. Our
goal is to design a wearable device based on tri-axis accelerometer and gyroscope to enable
people who have speech disorders and are amputated trans-radially to be able to write. For this
purpose, the accelerometer and gyroscope sensor (MPU-6050) is placed on the arm and gestures
are recorded from 26 individuals belonging to different age groups and gender. The gestures are
the alphabets of the English language. This data is then divided into train and test in a ratio of 7:3
and processed using the Raspberry Pi controller. One major challenge is removal of noise from
MPU-6050 data. This sensor comes with lot of noise, so our real struggle in this project is to
extract our required gesture by minimizing as much noise as possible. To remove noise, we used
the complementary filter in conjunction with the moving average filter. The complementary filter
passes accelerometer data from low pass filter and gyroscope data from high pass. On the other
hand, the moving average filter calculates a running sum over an interval and then averages over
the same interval. This filtered data is then fused into one value. In this way the six-axis data is
transformed into three-axis. To improve recognition accuracy five windows are applied on the
filtered data with 50% overlap between the adjacent windows. The four features are then
extracted from all 5 windows. Since there are 3-axis of each instance and 20 features are
extracted from each axis hence we have a total of 60 features. Next step is to train the classifier.
This is done on the raspberry pi controller using the Scikit-Learn which is a free software
machine learning library for the python programming language as all our project coding is done
in python language. The library holds a number of classifiers from which we selected the
Support Vector Machine (SVM) and Multi-Layer Perceptron for our application. The accuracy
on train data was 80.2%. In real-time, the wearable device is put on and the amputee performs an
alphabet gesture which is then recognized by the classifier. The average recognition rate for realtime
data is 85.12%.