You are on page 1of 6

COMSNETS 2016: Intelligent Transportation Systems Workshop

Bus Boarding Event Detection using Smartphone


Sensors
Shubham Chaudhary∗ , Tanjot Kaur∗ , Naveen Aggarwal∗ , Bhaskaran Raman† , Diyva Bansal‡ and K. K. Ramakrishnan§

UIET, Panjab University, Chandigarh
Email: me@shubhamchaudhary.in, tanjot28@gmail.com, navagg@gmail.com
† IIT, Bombay

Email: br@cse.iitb.ac.in
‡ PEC University of Technology, Chandigarh

Email: diyva@pec.ac.in
§ University of California, Riverside

Email: kk@cs.ucr.edu

Abstract—Rapid growth in smartphones industries has made users is growing at a rapid pace. All crowdsourcing applica-
smartphones omnipresent. The incorporation of a number of tions rely heavily on determining the location of user using
powerful sensors in the smartphones lately have enhanced their different sensors such as GPS, GSM, Wi-Fi etc. However,
applicability besides their customary use for communications.
Sensors in smartphones can be used to detect users activities using these sensors put a lot of burden on smartphone battery.
and localization. But use of all sensors put a lot of burden on Smartphone battery drains very quickly when these sensors are
smartphone battery. Battery drainage is a big problem and most used continuously, which is a strong deterrent for commuters
commuters do not prefer to use power hungry sensors such to use crowdsourcing based applications.
as GPS. In this paper, we explored the possibility to use the
low power smartphone sensors to detect the initial movement of In this paper, we proposed an approach to detect user
users such as bus boarding movement which can act as a trigger activity such as bus boarding activity to act as trigger for
to collect data from other sensors. The proposed approach is data collection in various crowdsourcing based applications
implemented as an android app and consists of two modules. deployed on smartphones. To eliminate the need of subscriber
First module is based on accelerometer sensors to detect initial manually inputting boarding of bus, the process of triggering
staircase pattern movement of user and triggers the second
module. Second module detects linear acceleration of user in the application [1] when subscriber boards the bus must be
one direction and movement of bus using accelerometer and automated. The bus boarding event bears heavy resemblance
GSM sensors.Various experiments are conducted to find the to stair climbing activity [2], [3]. So for early detection of bus
appropriate features to characterize the bus boarding event. boarding movements of user, smartphone’s accelerometer sen-
Based on these features a scaled training model is generated. sor is used in the first phase of our detection process. Although,
This model is deployed along with the Android application to
perform event detection on the smartphone itself. We conducted observing a particular motion does not always guarantee an
experiments using five different phones and found promising ascent on stairs. Some events with similar movements such
results of detecting the event. as running, jumping, etc may be misclassified as climbing up
stairs. Further, pattern of boarding bus is different for different
I. I NTRODUCTION users. Best case is when person climbs a whole flight of
stairs at the bus entrance and moves ahead in the bus aisle. A
With a rapid growth in the number of smartphone users, problem arises when:
using different sensors present in the phone has recently
• A person jumps and gets on board (may take just one
emerged as a promising approach to recognize activities of
step missing all other steps to get on bus)
the users. Because of the small size of these “smart” mobile
• A person does not climb all stairs, just stands on first or
devices, their substantial computing power, their ability to
second stair through the route
send and receive data, and their nearly ubiquitous use in
• If people do not use a queue and there is a chaos, in such
our society, they open exciting gates for real time traffic
a case climbing is not according to default behavior
monitoring. Several methods have been proposed that use
sensors in smartphones for activity detection in various envi- Effect of all the above problems becomes a hindrance in
ronments (Indoor localization, traffic detection and detecting giving discrete results Further, in low floor buses having a
activity of a person). The smartphone based traffic estimation single step, in significant number of cases it may not be
methods eliminate the need for costly, specialized hardware possible to detect the stair climbing pattern. Location of user
installed in vehicles or on the road side. These crowdsourced is also very significant as user is not restricted to climb stairs
solutions (using distributed participatory data collection) have only on a bus. Climbing can also be related to a raised
the advantage of high scalability as the number of smart phone platform other than stairs. Hence it is clear that detecting stair

978-1-4673-9622-6/16/$31.00 ©2016 IEEE 1


COMSNETS 2016: Intelligent Transportation Systems Workshop

case climbing pattern is not sufficient to detect bus boarding the data set, three classification techniques from the WEKA
movement. data mining suite were used to induce models for predicting
So after detecting the initial movement of user, we have the user activities: decision trees (J48), logistic regression and
proposed a combination of accelerometer and GSM sensor to multilayer neural networks. Their work has shown significant
detect the location of user and movement of bus. There are accuracy of about 90% in detecting different human activities.
several ways of doing that including use of sensors such as Similar to this work, Anguita et al. [6] used SVM to improve
Wi-fi, GPS etc, but use of low power consuming sensors is the accuracy of human activity recognition. Lee et al.[7] uses
preferred to accomplish this task. Average power consumption two step hidden markov model to recognize the limited set
of accelerometer at a sampling rate of 4 Hz is about 195 of activity. They proved that ‘boarding a bus’ activity has
mW which is very less as compared to GPS, which consumes very difficult pattern for classification and their approach
623 mW approx in outdoor conditions [4]. To collect data gives very low accuracy in this case. Wu et al. [8] used the
and validate the proposed approach, an open-source Android gyroscope along with accelerometer to improve the accuracy
application is developed which acts as a trigger for the crowd- of human activity recognition. They performed multiple sets
sourcing application. Android is a good mobile OS choice of experiments with different window sizes and different
because it is widely available and all the machine learning al- features in time and frequency domain. They used different
gorithms required are available as stable open-source-libraries linear, non-linear and meta classifiers. Their study concluded
(such as libsvm). The source code for this application is also that linear classifiers are sufficient and efficient in time as
available online on Github[5].Main contributions of paper are: compared to other classifiers. Machado et al. [9] proposed
• An approach for early detection of bus boarding move- a learning model that can easily be used on-board for real
ment of a person using accelerometer and GSM sensor time classification. Siirtola et al. [10] designed an application
which achieves an accuracy of more than 90% in different for real time recognition using smartphones. They concluded
experimental conditions. that only orientation insensitive activities can be recognized
• Feature set analysis of accelerometer data using SVM with good accuracies due to movement of smartphones during
classification. activity. Bus boarding event detection is different from normal
• Validation of proposed approach and analysis of clas- human activity detection problem due to sequence of different
sification techniques on different smartphones using an small duration activities. We believe that there is no significant
android app. work done in literature for bus boarding event detection using
Rest of the paper is organized as follows. Section 2 repre- smartphone sensors.
sents the related work in this field. Section 3 briefly discusses III. BACKGROUND
about the background on data collection using accelerometer
Most new smartphones contain tri-axial accelerometers. The
based detection. Section 4 presents the proposed approach
accelerometer measures the acceleration of the device on the
in detail. Section 5 explains the data collection strategy and
x (lateral), y (longitudinal), and z (vertical-pointing out of the
results are discussed in detail in Section 6. Finally Section 7
phone) axes. Accelerometers can be used to detect movement
concludes the paper.
and the rate of change of the speed of movement. These
II. R ELATED W ORK accelerometers are also capable of detecting the orientation of
A lot of past work has been done related to the activity the device which can provide useful information for activity
recognition tasks for classifying various activities including recognition. The data received from the accelerometer is in
upstairs and downstairs. But most of them uses specialized the form of a three-valued vector of floating point numbers
devices or accelerometers at various body positions rather than that represented the individual accelerations of the smartphone
mass marketed devices like smartphones containing sensors device in the X, Y, and Z axes subtracted by the gravity vector
like accelerometer all at a single place. Bao & Intille [2] col- g. The acceleration values are recorded in meters per second
lected data from 20 users by using five different accelerometers squared (m/s2 ). Thus, laid flat on a level surface, the expected
attached to different body parts. It was clearly evident from reading of the accelerometer would be approximately [0, 0,
their results that the accelerometer positioned around thighs -9.81].
gives the best accuracy. This is very similar to smartphones The coordinate-system is defined relative to the screen of
which are also placed in pockets. the phone in its default orientation as shown in Figure 1. The
A few studies that have involved commercial devices such axes are not swapped when the device’s screen orientation
as smart phones. Among these, the work of Kwapisz et al. changes.
[3] appears more relevant to our problem. They demonstrated • The X axis is horizontal (along the width of the phone)
that it is possible to perform activity recognition with nearly pointing towards the right,
ubiquitous equipment and yet achieve highly accurate results. • The Y axis is vertical pointing towards top of the phone
They collected raw time series data of 29 users performing • The Z axis pointing out of the front face of the screen.
various activities for specific period. Data is collected using Android provides libraries to separate gravitational com-
an application that record different user attributes with the ponent from acceleration. But, raw acceleration is used in
label of the activity being performed. After the formation of our experiments because the gravitational component helps in

2
COMSNETS 2016: Intelligent Transportation Systems Workshop

is a movement similar to staircase pattern it triggers the


second module.
2) GSM module: This module is used to further strengthen
the recognition accuracy.

A. Acceleration Module
We have used a binary classifier to classify the movements
of users, where resulting values close to 1 predict staircase
pattern while values close to 2 show occurrence of other activ-
ities. This module takes 20 samples per second and buffer the
data for 10 seconds to detect the event. There are two options
to implement this module either to train the system on client
Fig. 1: Orientation of accelerometer axes in Android side or deploy a preprocessed training model. It is a difficult
task to make the system learn about the staircase pattern on
client side. That will involve a lot of user intervention. So
reorientation when generalizing the assumption regarding the a training model is created and deployed with the Android
fixed phone orientation. application. Training set includes two types of data sets which
Acceleration frequencies vary depending on the quality of is collected from various devices for different activities and
accelerometer in the device. But in general approximate then labeled. First set contains actual bus boarding event and
frequency[11] can be guessed by four accelerometer modes staircase climbing data (labeled as 1). The second set includes
provided by Android API all other remaining activities (labeled as 2). Various features
1) Fastest (∼ 40Hz) are extracted from raw acceleration data and a training model
2) Game (∼ 20Hz) is created for classification. We analyzed various classification
3) UI (∼ 10Hz) techniques on different feature sets and found Support vector
4) Normal (∼ 4Hz) machines gives best results. Detail of these results is presented
Duration of the bus boarding event is very small so, the dura- in Section VI. The flow of acceleration module is depicted in
tion window cannot be too small. However, if the window is Figure 2
too large, that will increase the CPU usage in data processing.
20Hz turns out to be an optimal frequency for this task. Hence,
in the android application[5] game mode is used which records
around 20 data points per second.
In order to develop a trigger mechanism, pattern recognition
is done on accelerometer readings assuming fixed orientation
of the phone. This assumption can then be easily relaxed using
reorientation techniques [12] which gives readings along fixed
X, Y, Z axis. However, reorientation techniques best works
when phone is stationary. Reorientation techniques uses value
of g along phone’s axis by using accelerometer readings and
then finds rotation angle based on that.

IV. P ROPOSED A PPROACH


Bus boarding event has characteristics similar to stair climb-
ing activity but with possibilities of many false cases. Initially, Fig. 2: Flow for acceleration module
the problem of detection of boarding the bus is considered
similar to the activity of climbing the stairs. But complete SVM implementation is provided by the libsvm java pack-
pattern recognition can not rely on just one technique. Simple age — tw.edu.ntu.csie:libsvm:3.17. The training model de-
stair case detection gives false results and is not sufficient ployed with the app is used to train an SVM. Stair pattern
alone. So overall event is considered as two consecutive predictions are made using this trained machine. Instead of
sequences of activity. In first sequence, user makes initial retraining the machine for every execution, the trained machine
movement similar to stair climbing pattern and in consecutive is stored locally on the mobile device to fasten the prediction
sequence, user moves in bus to find seat and bus starts moving time.
at a speed more than walking speed of humans. To detect both
sequences, following two stand-alone modules are developed: B. GSM Module
1) Acceleration module: This module captures accelerom- It has two sub modules. First is to look for continuous
eter data to detect initial movement of user and if there acceleration vector in one direction for a long period and

3
COMSNETS 2016: Intelligent Transportation Systems Workshop

second is to start polling for location changes using low power several windows of duration one second which corresponds to
GSM data for speed estimation. approximately 20 data point at accelerometer’s game mode
Algorithm 1 explains the detailed flow of the approach. frequency[11]. Different time and frequency domain features
This algorithm is implemented in Android app. Initially, are calculated for each window.
acceleration module is started and if it detects stair climbing Various features are tried one by one and together in groups
pattern continuously together i.e. approximately 7 out of to figure out which features gave best accuracy values for
10 windows then the bus boarding event is assumed to be this problem. Due to the fixed orientation assumption, body
detected. Otherwise, acceleration module starts polling for movement components are observed along y and z axis.
continuous acceleration vector detection and gsm module for To figure out the stair climbing event, the features need to
speed detection. Acceleration module is polled at 10 seconds incorporate two aspects —
intervals now and GSM module at 1 minute intervals. If either 1) the magnitude of acceleration which may vary depend-
of them gives positive result, the event is detected, else initial ing on user speed etc.
pattern recognition is deemed as false and restarted. 2) the unique pattern observed in y & z (fixed orientation
assumption, Figure 1) which uniquely identifies the stair
Algorithm 1 Bus Boarding Event Detection algorithm climbing pattern from other activities.
1: procedure D ETECT B US B OARDING E VENT For magnitude, we calculated features in time domain
2: while DetectionModeOnInApp do such as mean, standard deviation, median, difference between
3: acc data ← Read Acceleration Data consecutive acceleration values etc.
4: window count ← acc data.StairPatterns() For the unique stair climbing pattern, the distance between
5: if window count > 0.7 ∗ T otalW indows then consecutive crests and troughs of y & z can be used. To
6: return EventDetected identify crest and trough the max and min values in a window
7: else cannot be used directly. To circumvent this frequency domain
8: if acc data.hasConstantAcceleration() then features are used — DC component and energy. Energy is
9: return EventDetected calculated by squaring the values resulting from applying FFT
10: end if and averaging. The first value i.e. DC Component has been
11: gsm data ← Read GSM Data excluded from average calculation.
12: if gsm data.hasSpeed() then 2
13: return EventDetected E = avg((F F T (acc)) )
14: end if In the Android application, finally, four features are used —
15: end if two in time domain (mean and standard deviation) and two in
16: end while frequency domain (DC component and energy).
17: end procedure
VI. R ESULTS
For analysis of performance of the proposed approach,
V. DATA C OLLECTION AND P ROCESSING android app is installed on five different phones: Nexus 4,
Data on which all the classifiers and features are tested have Lenovo S650, Moto G2, Karbon A10, HTC Wildfire S. Data
been collected by different people in varying conditions (fast, is collected separately from both modules viz: acceleration
slow, indoors, outdoors, straight stairs, round stairs, etc). A module and GSM module. This helps in better analysis of
variety of activities like walking, running, jumping, jogging, data. These results are discussed in following subsections:
sitting, standing, ascending and descending stairs were per- • Analysis of different classification techniques
formed to create the dataset. Also, to check consistency of • Feature set analysis using SVM classification
our results, same activity is performed on different phones • Classification Results of Bus Boarding event detection
and compared. Initial data collected is raw acceleration along • Accuracy on different phones
three axis from accelerometer sensors using an Android app
at a constant rate of 20Hz. A large training set is prepared by A. Analysis of different classification techniques
collecting data using multiple volunteers for various activities Our first analysis was to check the accuracy of different clas-
with many repetitions. We have also used another data set sifier for staircase prediction using accelerometer data. In bus
provided by UCI [13]. This data set also contain same set boarding event, duration of staircase pattern is very small. So
of human activities recorded at same sampling rate. Multiple we trained the classifier using the UCI HAR data set [13]. In
experiments are conducted using both data sets by dividing this data set, we labeled the staircase climbing activity as class
randomly into training and test sets. Data generated by tri-axial 1 and all other activities as class 2. Different classifiers such
sensors contains gravitational component and body motion as Support vector machine (SVM), Decision tree classifier
components. It is assumed that gravitational component would and regressor, Naive Bayes (Gaussian, Bernoulli), Stochastic
not change as frequently as other components. Hence, to detect gradient descent and Nearest neighbor are trained on this data
the gravitational component from other components, a simple set. After training, these classifiers are deployed in our android
Butterworth low-pass filter is used. The data-set is divided into app and volunteers tested these to detect the bus boarding

4
COMSNETS 2016: Intelligent Transportation Systems Workshop

TABLE I: Results with different time and frequency domain feature sets
event. Due to separate training and test data sets, all classifier
performed poorly. It is observed that the SVMs give reasonably SNo. Feature set used Accuracy
better accuracy as compared to other classifiers as shown
1 Entropy, Mean, Standard 37.4%
in Figure 3. Moreover, SVMs are fast, which is necessary
Deviation
to save smartphone’s CPU cycle and hence keep the battery
consumption low [14]. SVMs are also fairly less complex and 2 Difference between 60.7%
easy to implement on multiple platforms. Experimental results max (and min) y and
show that SVMs achieve significantly higher search accuracy z acceleration in a window
than traditional query refinement schemes after just three to
3 Mean, Standard Deviation, 87%
four rounds of relevance feedback.
DC Component
4 Mean and Standard devia- 88.3%
tion of y and z
5 Mean and Standard Devia- 89.2%
tion along all axis
6 Mean and Standard Devi- 90.1%
ation, DC Component and
Energy

TABLE II: Accuracy in different cases

Cases Accuracy using Accuracy using


Fig. 3: Different Classifiers with UCI HAR Dataset single accelera- both modules
tion module
Single phone for 67.4% 89.2%
B. Feature set analysis using SVM classification training and test-
To find the minimal set of features which gives reasonable ing
accuracy, different permutations of time and frequency domain
Different phones 58.7% 78.1%
features are tested using SVM Classifier. Raw accelerometer
for training and
data along all three axis is divided into fixed size windows of
testing
10s and with 20 Hz sampling frequency. In each window, time
domain features such as mean, standard deviation, entropy,
difference between maximum and minimum values are calcu-
lated along all axis. Similarly in each window, after necessary
padding, frequency domain features such as DC Component respectively. In plot 1 the expert data used to train the machine
and Energy are calculated. Results of accuracy obtained using is marked along vertical lines (at the end of each window). In
different permutations of these features are shown in Table I. plot 2 values along vertical line shows machine predictions. In
In these results, training and test data is collected by same user both plots, value 1 and 2 corresponds to event detected or not
using single phone and both acceleration and GSM modules detected in the window. According to the algorithm 1, multiple
are used. ones in succession means event is detected.
It is observed that increase in number of features is not at
all related to the accuracy of predictions involved. Addition of
one unrelated feature decreases the overall accuracy drastically
(e.g. entropy). The best accuracy is observed when mean,
standard deviation along all axis, dc component and energy
are used in a feature set. But a minimal feature set of mean
and standard deviation along all axis also gives reasonable
good accuracy.

C. Classification Results of Bus Boarding event detection


Based on the analysis of previous sub sections, we used only Fig. 4: Acceleration vs. Time Graph showing classification made by SVM
mean and standard deviation in the feature set and SVM as
classifier in acceleration module. The graph in Figure 4 shows We analyzed the accuracy in different cases as shown in
two acceleration v/s time plots for training and testing data Table II.

5
COMSNETS 2016: Intelligent Transportation Systems Workshop

It is observed that best accuracy is obtained when training to solve this problem. Nevertheless, the initial observations
and test data is collected on single phone by same user. helped us to recognize the features that perform well upon the
Further, there is considerable increase in accuracy when both model as well as showed the variations in the acceleration
modules are used in sequence. values while performing the activities. We tested different
classifier in acceleration module to detect staircase pattern
D. Accuracy on different phones and found Support vector machines gives good accuracy. In
Results obtained when similar experiments were conducted our future work, we will try to strengthen this approach by
with different phones are shown in Figure 5. The accuracy adapting from user’s past behavior.
value on different phones varied from 61%-84%. There are
VIII. ACKNOWLEDGEMENT
several reasons to explain this variation in accuracy, first being
the difference in expert data marked for activities recorded. Work, presented in this paper, is a part of the project CARTS
The data classified using SVM is tested for correctness with (Communication Assisted Road Transportation Systems) un-
the data marked manually as staircase event or not. Hence, der ITRA. We thank ITRA Media Lab Asia for sponsoring
accuracy is higher if expert data markings resemble the actual this work.
activity along time. Another reason which leads to variation R EFERENCES
in accuracy is that different people perform similar tasks
[1] “Tum Tum Tracker,” {”https://play.google.com/store/apps/details?id=in.
in different ways. Also, some phones show lower accuracy ac.iitb.cse.carts.tumtumtracker&hl=en”}, [Online; accessed 4-Jul-2014].
because their accelerometer has limited range. [2] L. Bao and S. S. Intille, “Activity recognition from user-annotated
acceleration data,” in Pervasive computing. Springer, 2004, pp. 1–17.
[3] J. R. Kwapisz, G. M. Weiss, and S. A. Moore, “Activity recognition us-
ing cell phone accelerometers,” ACM SigKDD Explorations Newsletter,
vol. 12, no. 2, pp. 74–82, 2011.
[4] K. Sankaran, M. Zhu, X. F. Guo, A. L. Ananda, M. C. Chan, and L.-
S. Peh, “Using mobile phone barometer for low-power transportation
context detection,” in Proceedings of the 12th ACM Conference on
Embedded Network Sensor Systems. ACM, 2014, pp. 191–205.
[5] Tanjot Kaur, Shubham Chaudhary, Naveen Aggarwal, “CARTS Bus
Boarding Application,” {https://github.com/carts-uiet/cartsbusboarding.
git}, Minor project for BE in CARTS UIET.
[6] D. Anguita, A. Ghio, L. Oneto, X. Parra, and J. L. Reyes-Ortiz, “Human
activity recognition on smartphones using a multiclass hardware-friendly
support vector machine,” in Ambient assisted living and home care.
Fig. 5: Accuracy for staircase data on different phones
Springer, 2012, pp. 216–223.
[7] Y.-S. Lee and S.-B. Cho, “Activity recognition using hierarchical hidden
markov models on a smartphone with 3d accelerometer,” in Hybrid
VII. C ONCLUSION AND F UTURE W ORK Artificial Intelligent Systems. Springer, 2011, pp. 460–467.
[8] W. Wu, S. Dasgupta, E. E. Ramirez, C. Peterson, and G. J. Norman,
In this paper, we have proposed an approach to detect the “Classification accuracies of physical activities using smartphone motion
bus boarding event using the smartphone sensors: accelerome- sensors,” Journal of medical Internet research, vol. 14, no. 5, p. e130,
2012.
ter and GSM. Detecting the bus boarding event of commuters [9] I. P. Machado, A. L. Gomes, H. Gamboa, V. Paixão, and R. M. Costa,
help us to trigger the data collection from other power hungry “Human activity data discovery from triaxial accelerometer sensor: Non-
sensors such as GPS.The information about the boarding supervised learning sensitivity to feature extraction parametrization,”
Information Processing & Management, vol. 51, no. 2, pp. 204–214,
event of commuters can also give us real time information 2015.
about the commuters using the public transportation systems [10] P. Siirtola and J. Röning, “Recognizing human activities user-
and the occupancy level of the bus. This helps us to save independently on smartphones based on accelerometer data,” Inter-
national Journal of Interactive Multimedia and Artificial Intelligence,
considerable battery of smartphones. We developed an android vol. 1, no. 5, 2012.
app consisting of two modules used in sequence to detect the [11] Google Inc., “Android Source Code - Lollipop Release,” {https:
sequence of activities performed by commuters boarding the //github.com/android/platform frameworks base/blob/lollipop-release/
core/java/android/hardware/SensorManager.java#L1565}.
bus. First module detects the staircase climbing pattern using [12] Bhoraskar, R. and Vankadhara, N. and Raman, B. and Kulkarni, P.,
accelerometer and triggers second module. Second module “Wolverine: Traffic and road condition estimation using smartphone
then detects linear acceleration of commuters in one direction sensors,” in Communication Systems and Networks (COMSNETS), 2012
Fourth International Conference on, 2012.
and movement of bus. Even though commuters who are [13] D. Anguita, A. Ghio, L. Oneto, X. Parra, and J. L. Reyes-Ortiz, “A public
carrying the smartphone could keep it anywhere according domain dataset for human activity recognition using smartphones,” in
to their comfort, but for initial data collection, we assumed European Symposium on Artificial Neural Networks, Computational
Intelligence and Machine Learning, ESANN, 2013.
the fixed orientation of phone. Event recognition tasks are [14] “Support Vector Machine,” {http://en.wikipedia.org/wiki/Support
performed with data collected from the different activities vector machine}, [Online; accessed 4-Jul-2014].
performed by multiple users. This is different from the actual
scenario where the problem is more generic and not specific to
an individual. There are variations in the acceleration values
from one user to the other. Larger data sets collected from the
activities performed by more number of users are expected

You might also like