| Literature DB >> 25608213 |
Muhammad Shoaib1, Stephan Bosch2, Ozlem Durmaz Incel3, Hans Scholten4, Paul J M Havinga5.
Abstract
Physical activity recognition using embedded sensors has enabled many context-aware applications in different areas, such as healthcare. Initially, one or more dedicated wearable sensors were used for such applications. However, recently, many researchers started using mobile phones for this purpose, since these ubiquitous devices are equipped with various sensors, ranging from accelerometers to magnetic field sensors. In most of the current studies, sensor data collected for activity recognition are analyzed offline using machine learning tools. However, there is now a trend towards implementing activity recognition systems on these devices in an online manner, since modern mobile phones have become more powerful in terms of available resources, such as CPU, memory and battery. The research on offline activity recognition has been reviewed in several earlier studies in detail. However, work done on online activity recognition is still in its infancy and is yet to be reviewed. In this paper, we review the studies done so far that implement activity recognition systems on mobile phones and use only their on-board sensors. We discuss various aspects of these studies. Moreover, we discuss their limitations and present various recommendations for future research.Entities:
Mesh:
Year: 2015 PMID: 25608213 PMCID: PMC4327117 DOI: 10.3390/s150102059
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1.Activity recognition steps.
Figure 2.Local approach for activity recognition on mobile phones.
Implemented classifiers on mobile phones for online activity recognition.
| Decision Tree | [ | 11 |
| SVM | [ | 6 |
| KNN | (Clustered KNN [ | 5 |
| Naive Bayes | [ | 4 |
| Multi-layer Classifiers | (Decision tree, dynamic hidden Markov model (DHMM) [ | 3 |
| Probabilistic Neural Networks | [ | 1 |
| Rule-based Classifier | [ | 1 |
| Quadratic Discriminant Analysis | [ | 1 |
| Decision Table | [ | 1 |
| Fuzzy Classification | [ | 1 |
Training process on mobile phones (online vs. offline).
| Offline | [ | 24 |
| Online | [ | 6 |
Phones, activities and data features used in online activity recognition.
| [ | A1, A2, A3, A5 | mean, SD, number of peaks | Nokia N95 |
| [ | A1, A5, A8, A9, A10 | A's mean, VAR, FFT coefficients and GPS speed | Android Phone, Nokia N95 |
| [ | A1, A5, A8, A11 | SD (based on accelerometer magnitude) | Nokia N95 |
| [ | A1, A2, A3, A6, A9, A16, A17, phone in hand, typing text messages; talking on the phone | mean, VAR | OpenMoko Neo Freerunner |
| [ | A1, A5, A6, A7, A12, A17, Idle | Fundamental frequency, average acceleration, max and min amplitude (based on accelerometer magnitude) | Motorola Droid |
| [ | A1, A5, A8, A9, A11 | mean, VAR, mean crossing rate, spectrum peak, sub-band energy, sub-band energy ratio, spectral entropy | Nokia N95, iPhone |
| [ | A1, A5, A8, A9, A11 | A's VAR, DFFTcomponents and GPS speed | Nokia N95 |
| [ | A1, A4, A5, A12 | similarity score using geometric template matching algorithm | Android phones |
| [ | A1, A5, A8, A10 | mean, VAR | Android Nexus One |
| [ | A1, A2, A3, A5, A6 | mean, root mean square, difference between max and min values | Android phones |
| [ | Different physical activities | maximum and minimum euclidean norm | ZTE Blade |
| [ | A1, A2, A3, A4, A5, A9 | signal magnitude, coefficient of variance, counts per minute | Samsung Galaxy S |
| [ | A1, A2, A3, A5 | mean, min, max, SD | Samsung Galaxy Gio |
| [ | A1, A3, A5 | mean, VAR, SD, correlation between axes, inter-quartile range, mean absolute deviation, root mean square and energy | HTC Evo 4G |
| [ | A1, A2, A3, A5, A6, A7, A9, A10, A12, A16 (prone, supine) | mean (axis, magnitude), SD (axis, magnitude), tilt, linear regression coefficients, wavelet coefficients | HTC G11, Samsung i909 |
| [ | A1, A5, A15, A16, WD, IR, BT, HD, FTT, BRD, unknown | A's VAR, MFCC (Mel-frequency cepstral coefficient), RMS (root mean square), ZCR (zero-crossing rate) as acoustic features. | Android phone |
| [ | A1, A2, A4, A6, A7 | peak, SD/mean, FFT energy | HTC Hero |
| [ | A1, A2, A3, A5, A9, A10 | 21 features, including mean, SD, min, max, 5 different percentiles and observations below/above these percentiles | Samsung Galaxy Mini, Nokia N8 |
| [ | A1, A1 (power), A4, A8 | For details, refer to [ | iPhone |
| [ | A1 (slow), A2, A3 (relax, normal), A7, A13, A14 | Mean, VAR, magnitude, covariance, FFT energy and entropy | Nokia N95, Samsung Galaxy S2 |
| [ | A1, A2, A3, A6, A7, A16 | For details, refer to [ | Samsung Galaxy S2 |
| [ | A1, A5, A6, A7, A8, A9, A10 | 9 features based on the auto-correlation function of accelerometer signals | Samsung Galaxy Y |
| [ | A1, A2, A5, A6, A7, A12 | Auto-regressive coefficients | LG Nexus 4 |
| [ | A1, A5, A6, A7, A8 | SD and auto-regressive fitting of y-axis, correlation of x, y, z, signal magnitude area, mean, SD and skewness of the pitch | Android smartphone |
| [ | A1(slow, normal, rush), A2, A3, A5 | Mean, VAR, zero crossing rate, 75th percentile, correlation, inter-quartile, signal energy, power spectrum centroid, FFT energy, frequency-domain entropy | Google Nexus S |
| [ | A1, A2, A3, A5, A9, A10, A17 | SD, min, max, the remainder between percentiles (10, 25, 75, 90), median, the sum, square sum and number of crossings of values above or below the percentile (10, 25, 75 and 90) | Nokia N8, Samsung Galaxy Mini |
| [ | A1, A2, A3, A5, A12, A16 | mean, SD | iPhone 4S |
| [ | A1, A4, A6, A7, A9 | time gap peaks, mean, SD, A's energy, Hjorth mobility and complexity | HTC Nexus |
| [ | A1, A4, A6, A7, A8, A9, A13, A14 | Average period, VAR, average energy, binned distribution for each axis and correlation between y and z | Samsung Nexus S |
| [ | A1, A5, A1/A5 on treadmill, A6, A7, A9, A10, A11, A12, A13, A14, A15, idle (A2/A3), watching TV | mean, SD, correlation, signal magnitude area, auto-regressive and moving average coefficients for A; altitude difference for pressure sensor; mean, VAR, min and max for audio sensor | LG NEXUS 4 |
Activities: walking, A1; standing, A2; sitting, A3; jogging, A4; running, A5; walking upstairs, A6; walking downstairs, A7; still, A8; biking, A9; driving a car, A10; in vehicle, A11; jumping, A12; using elevator up, A13; using elevator down, A14; vacuuming, A15; laying, A16; phone on table/detached, A17; washing dishes, WD; ironing, IR; brushing teeth, BT; hair drying, HD; flushing the toilet, FTT; boarding, BD; unknown
Mobile phone platforms used for online activity recognition.
| Android | [ | 23 |
| Symbian | [ | 8 |
| iOS | [ | 3 |
| Debian Linux | [ | 1 |
Sensors used for online activity recognition. A, accelerometer; G, gyroscope; M, magnetometer.
| A | [ |
| A, M | [ |
| A, Mic | [ |
| A, GPS | [ |
| A, G, M | [ |
| A, PS, Mic | [ |
| A, G, M, Gravity Sensor, LA, Orientation Sensor | [ |
Studies with resource consumption analysis.
| CPU (percentage) | [ | 8 |
| Memory (MBs) | [ | 6 |
| Battery (hours or watt-hours per hour) | [ | 11 |
Details of battery usage analysis.
| Miluzzo | Decision tree | A | Symbian | Nokia N95 | 6 | 950 | Various rates |
| Wang | Decision tree | A | Symbian | Nokia N95 | 11.3 | 950 | NA |
| Reddy | Decision tree + DHMM | A, GPS | Symbian | Nokia N95 | 8.3 | 950 | 32 Hz |
| Lu | Decision tree | A | Symbian | Nokia N95 | 16 | 950 | 32 Hz |
| Lane | Naive Bayes | A | Android | Android Nexus One | 15 | 1400 | NA |
| Guiry | Rule-based classifier | A | Android | Samsung Galaxy S | 6–8 | 1500 | 90 Hz |
| Siirtola, [ | KNN, QDA (quadratic discriminant analysis) | A | Android | Samsung Galaxy Mini, Nokia N8 | 24 | 1200, 1200 | 40 Hz |
| Lara | Decision tree | A | Symbian, Android | HTC Evo 4G | 12.5 | 1500 | 50 Hz |
| Liang | Hierarchical recognition scheme using decision tree | A | Android | HTC G11, Samsung Galaxy S2 | 7, 8, 10 | 1450, 1650 | 20, 10, 2 Hz |
Studies with CPU usage analysis.
| Miluzzo | Decision tree | Symbian | Nokia N95 | A | 31 |
| Reddy | Decision tree + DHMM | Symbian | Nokia N95 | A, GPS | 4.72 |
| Lu | Decision tree | Symbian, iOS | Nokia N95, iPhone | A | iPhone (0.9–3.7), Nokia N95 (1–3) |
| Berchtold | Fuzzy classification | Debian Linux | OpenMoko Neo Freerunner | A | 3.3 |
| Lane | Naive Bayes | Android | Android Nexus One | A | 11 |
| Siirtola [ | QDA | Symbian, Android | Samsung Galaxy Mini, Nokia N8 | A | 5 |
| Kose | Naive Bayes, KNN clustered | Android | Samsung Galaxy Gio | A | 42 (Naive), 29 (KNN clustered) |
| Siirtola and Roning. [ | Decision tree | Symbian | Nokia N8 | A | 15 |
Studies with memory usage analysis.
| Miluzzo | Decision tree | Symbian | Nokia N95 | A | 34 |
| Reddy | Decision tree + DHMM | Symbian | Nokia N95 | A, GPS | 29.64 |
| Lane | Naive Bayes | Android | Android Nexus One | A | 14.74 |
| Kose | Naive Bayes, KNN clustered | Android | Samsung Galaxy Gio | A | 12.6 (naive Bayes), 21.9 (KNN clustered) |
| Martin | Decision table, naive Bayes, decision tree | Android | Google Nexus S | A, M, G, linear acceleration, gravity | 16.5 (decision table), 0.00146 (naive Bayes), 0.8376 (decision tree) |
Evaluation of online activity recognition systems.
| 6–8 weeks by 6 users with Nokia N95/6 days by 2 users with Samsung Galaxy S2 | [ |
| 4 weeks | [ |
| 1 week | [ |
| 2 days | [ |
| 1 day | [ |
| Less than an hour | [ |
| NA | [ |
| NA | [ |
Studies with orientation-independent activity recognition. OI-F, orientation-independent features; OI-ST orientation-independent signal transformation.
| [ | OI-F | A, GPS |
| [ | OI-F | A |
| [ | OI-ST | A |
| [ | OI-Training | A |
| [ | OI-ST + OI-F | A |
| [ | OI-F | A |
| [ | OI-ST | A |
| [ | OI-F | A |
| [ | OI-ST | A |
Position-independent activity recognition.
| Yes (Method 1) | [ | 5 |
| Yes (Method 2) | [ | 2 |
| Yes (Method 3) | [ | 2 |
| Yes (Method 4) | [ | 1 |
| No | [ | 15 |
| NA | [ | 5 |
Sampling rates used in online activity recognition.
| 50 | [ |
| 20 | [ |
| 32 | [ |
| 100 | [ |
| 40 | [ |
| 10 | [ |
| 125 | [ |
| 90 | [ |
| 16, 5 | [ |
| 8 | [ |
| 6.25 | [ |
| 2 | [ |
| NA | [ |
Detailed comparison of all 30 studies. O-Ind: Orientation Independence; Pos-Ind: Position Independence.
| [ | A1, A2, A3, A5 | Decision tree | Symbian | A | NA | yes | yes | yes | no | no | offline |
| [ | A1, A5, A8, A9, A10 | Decision tree | Symbian, Android | A, GPS | 32 | no | no | no | no | NA | offline |
| [ | A1, A5, A8, A11 | Decision tree | Symbian | A | NA | yes | no | no | no | yes | offline |
| [ | A1, A2, A3, A6, A9, A16, A17, phone in hand, typing text messages talking on phone | Fuzzy classification | Debian Linux | A | 100 | no | no | yes | yes | yes | offline |
| [ | A1, A5, A6, A7, A12, A17, Idle | KNN classifier | Android | A | 125 | no | no | no | yes | no | offline |
| [ | A1, A5, A8, A9, A11 | Decision tree | Symbian, iOS | A | 32 | yes | no | yes | yes | yes | offline |
| [ | A1, A5, A8, A9, A11 | Decision tree + DHMM | Symbian | A, GPS | 32 | yes | yes | yes | yes | yes | offline |
| [ | A1, A4, A5, A12 | SVM | Android | A | NA | no | no | no | no | no | online |
| [ | A1, A5, A8, A10 | Naive Bayes | Android | A | NA | yes | yes | yes | no | no | offline |
| [ | A1, A2, A3, A5, A6 | Naive Bayes | Android | A | 20 | no | no | no | no | no | offline |
| [ | Different physical activities | Naive Bayes | Android | A | NA | no | no | no | no | NA | online |
| [ | A1, A2, A3, A4, A5, A9 | Custom classifier | Android | A | 90 | yes | no | no | yes | no | offline |
| [ | A1, A2, A3, A5 | Naive Bayes, KNN clustered | Android | A | 10, 20, 100 | no | yes | yes | no | no | offline |
| [ | A1, A3, A5 | Decision tree | Android | A | 50 | yes | no | no | no | NA | offline |
| [ | A1, A2, A3, A5, A6, A7, A9, A10, A12, A16 (prone, supine) | Hierarchical decision tree | Android | A | 2, 10, 20 | yes | no | no | no | no | online |
| [ | A1, A5, A15, A16, WD, IR, BT, HD, FTT, BRD, unknown | SVM | Android | A, audio (mic) | 20 (A), 16 k (mic) | no | no | no | no | no | offline |
| [ | A1, A2, A4, A6, A7 | Decision tree | Android | A | 50 | no | no | no | no | no | online |
| [ | A1, A2, A3, A5, A9, A10 | KNN, QDA | Symbian, Android | A | 40 | yes | no | yes | yes | no | offline |
| [ | A1, A1 (power), A4, A8 | SVM | iOS | A | 50 | no | no | no | no | no | offline |
| [ | A1 (slow), A2, A3 (relax, normal), A7, A13, A14 | Decision tree | Symbian, Android | A | 5, 16, 50, 100 | yes | no | no | no | NA | online |
| [ | A1, A2, A3, A6, A7, A16 | SVM | Android | A | 50 | yes | no | no | no | no | online |
| [ | A1, A5, A6, A7, A8, A9, A10 | Decision tree | Android | A | 8 | no | no | no | yes | yes | offline |
| [ | A1, A2, A5, A6, A7, A12 | PNN | Android | A | 20 | no | no | no | no | yes | offline |
| [ | A1, A5, A6, A7, A8 | Hierarchical SVM | Android | A,G,M | 50 | no | no | no | no | no | offline |
| [ | A1 (slow, normal, rush), A2, A3, A5 | Decision tree, naive Bayes, decision table | Android | A, M, G, LA, gravity | At least 6.25 | no | yes | no | no | yes | offline |
| [ | A1, A2, A3, A5, A9, A10, A17 | Decision tree | Symbian, Android | A | 40 | no | no | yes | yes | yes | offline |
| [ | A1, A2, A3, A5, A12, A16 | KNN | iOS | A | 50 | no | no | no | yes | yes | offline |
| [ | A1, A4, A6, A7, A9 | SVM + K-medoids clustering | Android | A | 32 | yes | yes | no | no | no | offline |
| [ | A1, A4, A6, A7, A8, A9, A13, A14 | Decision tree + PNN | Android | A,M | 50 | no | no | no | no | NA | offline |
| [ | A1, A5, A1/A5 on treadmill, A6, A7, A9, A10, A11, A12, A13, A14, A15, idle (A2/A3), watching TV | SVM | Android | A, Pressure (ps), audio (mic) | 50 (A, PS), 800 (Mic) | no | no | no | no | yes | offline |
Activities: walking, A1; standing, A2; sitting, A3; jogging, A4; running, A5; walking upstairs, A6; walking downstairs, A7; still, A8; biking, A9; driving a car, A10; in vehicle, A11; jumping, A12; using elevator up, A13; using elevator down, A14; vacuuming, A15; laying, A16; phone on table/detached, A17; washing dishes, WD; ironing, IR; brushing teeth, BT; hair drying, HD; flushing the toilet, FTT; boarding, BD; unknown.