├── Images
├── output_26_0.png
├── output_28_0.png
├── output_40_0.png
├── output_41_0.png
├── output_43_1.png
├── output_46_0.png
├── output_48_0.png
├── output_55_1.png
├── output_55_3.png
├── output_55_5.png
├── output_55_7.png
├── output_55_9.png
├── output_56_1.png
├── output_56_3.png
├── output_56_5.png
├── output_75_3.png
├── output_76_0.png
├── output_80_3.png
├── output_83_1.png
├── output_85_1.png
├── output_87_1.png
├── output_89_1.png
├── output_135_0.png
├── output_163_3.png
├── output_198_0.png
├── output_199_0.png
├── output_200_0.png
├── output_201_0.png
├── output_206_1.png
├── output_227_0.png
├── output_228_0.png
├── output_231_1.png
├── output_244_0.png
└── Divide and conqure CNN.png
├── Human Activity Detection.pdf
├── Human Activity Detection-Without Verbose .pdf
└── README.md
/Images/output_26_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_26_0.png
--------------------------------------------------------------------------------
/Images/output_28_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_28_0.png
--------------------------------------------------------------------------------
/Images/output_40_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_40_0.png
--------------------------------------------------------------------------------
/Images/output_41_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_41_0.png
--------------------------------------------------------------------------------
/Images/output_43_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_43_1.png
--------------------------------------------------------------------------------
/Images/output_46_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_46_0.png
--------------------------------------------------------------------------------
/Images/output_48_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_48_0.png
--------------------------------------------------------------------------------
/Images/output_55_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_55_1.png
--------------------------------------------------------------------------------
/Images/output_55_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_55_3.png
--------------------------------------------------------------------------------
/Images/output_55_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_55_5.png
--------------------------------------------------------------------------------
/Images/output_55_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_55_7.png
--------------------------------------------------------------------------------
/Images/output_55_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_55_9.png
--------------------------------------------------------------------------------
/Images/output_56_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_56_1.png
--------------------------------------------------------------------------------
/Images/output_56_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_56_3.png
--------------------------------------------------------------------------------
/Images/output_56_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_56_5.png
--------------------------------------------------------------------------------
/Images/output_75_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_75_3.png
--------------------------------------------------------------------------------
/Images/output_76_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_76_0.png
--------------------------------------------------------------------------------
/Images/output_80_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_80_3.png
--------------------------------------------------------------------------------
/Images/output_83_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_83_1.png
--------------------------------------------------------------------------------
/Images/output_85_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_85_1.png
--------------------------------------------------------------------------------
/Images/output_87_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_87_1.png
--------------------------------------------------------------------------------
/Images/output_89_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_89_1.png
--------------------------------------------------------------------------------
/Images/output_135_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_135_0.png
--------------------------------------------------------------------------------
/Images/output_163_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_163_3.png
--------------------------------------------------------------------------------
/Images/output_198_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_198_0.png
--------------------------------------------------------------------------------
/Images/output_199_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_199_0.png
--------------------------------------------------------------------------------
/Images/output_200_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_200_0.png
--------------------------------------------------------------------------------
/Images/output_201_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_201_0.png
--------------------------------------------------------------------------------
/Images/output_206_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_206_1.png
--------------------------------------------------------------------------------
/Images/output_227_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_227_0.png
--------------------------------------------------------------------------------
/Images/output_228_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_228_0.png
--------------------------------------------------------------------------------
/Images/output_231_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_231_1.png
--------------------------------------------------------------------------------
/Images/output_244_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/output_244_0.png
--------------------------------------------------------------------------------
/Human Activity Detection.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Human Activity Detection.pdf
--------------------------------------------------------------------------------
/Images/Divide and conqure CNN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Images/Divide and conqure CNN.png
--------------------------------------------------------------------------------
/Human Activity Detection-Without Verbose .pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/HEAD/Human Activity Detection-Without Verbose .pdf
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Human Activity Recognition Using Deep Learning
2 | This project is to build a model that predicts the human activities such as Walking, Walking_Upstairs, Walking_Downstairs, Sitting, Standing or Laying. This dataset is collected from 30 persons(referred as subjects in this dataset), performing different activities with a smartphone to their waists. The data is recorded with the help of sensors (accelerometer and Gyroscope) in that smartphone. This experiment was video recorded to label the data manually. got data from [here](https://archive.ics.uci.edu/ml/datasets/human+activity+recognition+using+smartphones)
3 | ### How data was recorded:
4 | By using the sensors(Gyroscope and accelerometer) in a smartphone, they have captured '3-axial linear acceleration'(tAcc-XYZ) from accelerometer and '3-axial angular velocity' (tGyro-XYZ) from Gyroscope with several variations. The sensor signals (accelerometer and gyroscope) were pre-processed by applying noise filters and then sampled in fixed-width sliding windows of 2.56 sec and 50% overlap (128 readings/window). The sensor acceleration signal, which has gravitational and body motion components, was separated using a Butterworth low-pass filter into body acceleration and gravity. The gravitational force is assumed to have only low frequency components, therefore a filter with 0.3 Hz cutoff frequency was used. From each window, a vector of features was obtained by calculating variables from the time and frequency domain.
5 | ### Attribute Information:
6 | For each record in the dataset it is provided:
7 | - Triaxial acceleration from the accelerometer (total acceleration) and the estimated body acceleration.
8 | - Triaxial Angular velocity from the gyroscope.
9 | - A 561-feature vector with time and frequency domain variables.
10 | - Its activity label.(WALKING, WALKING_UPSTAIRS, WALKING_DOWNSTAIRS, SITTING, STANDING, LAYING)
11 | - An identifier of the subject who carried out the experiment.
12 |
13 | You can check my Total work in [ipynb note book](https://github.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/blob/master/Human%20Activity%20Detection.ipynb) and [github link](https://github.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN)
14 | ### Some Analysis findings:
15 | - No of Datapoints per Activity
16 | 
17 | - Plotted tBodyAccMag_mean feature find some interesting plot that we can devide activities into stationary and Moving(Dynamic) see below plot
18 | 
19 | - Magnitude of an acceleration can saperate it well - See below plot
20 | 
21 | - Tried TSNE plots with different perplexity and No of iterations , got similar results as below
22 | 
23 | ### Machine Learning Models:
24 | #### Data:
25 | - We have 561 handcoded features of raw series data.
26 | - Raw data signals in each axis for Accelerometer and Gyroscop. also Accelerometer was divided into body and total. i.e body = total - gravitational force.
27 | - Respective label information
28 | - Data divided into Train and Test
29 | #### Models
30 | 1. Tried some machine learning algoritms and tuned hyperparameters. you can check my entire results in above [ipynb notebook](https://github.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/blob/master/Human%20Activity%20Detection.ipynb)
31 | got best results with Linear SVC with 96.5%. Check Test confusion matrix below.
32 | 
33 | 2. LSTM to Classify features With Raw series data
34 | (SIGNALS ="body_acc_x","body_acc_y","body_acc_z","body_gyro_x","body_gyro_y","body_gyro_z","total_acc_x","total_acc_y","total_acc_z")
35 | Used tensorflow and Keras to build models and Tuned Hyperparameters with Hyperas. Tried 1 and 2 layer LSTM because of lack of hardware to train. Tuend all hyperparameters and got Test accuracy if 91.99%. Below is Test Confusion Matrix. you can check my entire results in above [ipynb notebook](https://github.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/blob/master/Human%20Activity%20Detection.ipynb)
36 | 
37 | 3. CNN with 1d Convolution of Raw data
38 | Tried CNN wit 1d Conv and tuned hyperparameters with Hyperas. Got best test accuracy 92.3%. you can check my entire results in above [ipynb notebook](https://github.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/blob/master/Human%20Activity%20Detection.ipynb). below is Test confusion matrix
39 | 
40 | 4. Divide and Conquer-Based with 1D CNN for Raw series Data
41 | - in Data exploration section we observed that we can divide the data into dynamic and static type so divided walking,waling_upstairs,walking_downstairs into category 0 i.e Dynamic, sitting, standing, laying into category 1 i.e. static.
42 | - used 2 more classifiers seperatly for classifying classes of dynamic and static activities. so that model can learn differnt features for static and dynamic activities as below
43 | 
44 | Trained these 3 cnn models , Tuned hyperparmeters and written prediction pipeline. you can check my entire results in above [ipynb notebook](https://github.com/UdiBhaskar/Human-Activity-Recognition--Using-Deep-NN/blob/master/Human%20Activity%20Detection.ipynb).
45 | Got Test accuracy of 96.9%.. Below is Test confusion Matrix.
46 | 
47 | ### Results:
48 | ##### With Handcoded 561 Features and Machine Learning Algorithms
49 | | Algorithm | Test Accuracy % |
50 | | ------------- |-------------|
51 | | Logistic Regression | 96.3 |
52 | | Linear SVC | 96.5 |
53 | | rbf SVM classifier | 96.27 |
54 | | DecisionTree | 86.39 |
55 | | Random Forest | 91.08 |
56 | | GradientBoosting DT | 92.63 |
57 | ##### With Raw Series data and Deep Learning Algorithms
58 | | Algorithm | Test Accuracy % |
59 | | ------------- |-------------|
60 | | LSTM | 91.99 |
61 | | CNN | 92.3 |
62 | | Divide and Conquer-Based with CNN | 96.9 |
63 |
64 | References:
65 | 1. Deep Learning Models for Human Activity Recognition by machinelearningmastery.com
66 | 2. Divide and Conquer-Based 1D CNN Human Activity Recognition Using Test Data Sharpening [paper]( https://www.mdpi.com/1424-8220/18/4/1055/pdf )
67 |
--------------------------------------------------------------------------------