Automatic Fall Detection System of Unsupervised Elderly People Using Smartphone

With the increasing elderly population around us, complications in ensuring their proper welfare are also on a rise. Among these, unsupervised falling or collapsing is one of the main problems we face regarding elderly people. Though the prevention of fall should unarguably be the main focus but practically that can never be achieved with a full guarantee. Hence, development of systems that can detect unsupervised fall and inform concerned group(s) immediately is a necessity. This paper aims at building a system that will automatically detect the fall of an elderly person and immediately inform those in charge of his/her well-being. Although visual sensors offer an easy way to do that, considering the cost, inconvenience, and privacy, this research is based on building a system using motion sensors. The objective is to build the system with an existing device so that it would not be necessary to buy a new device to use this system. Keeping this in mind, we used smartphones as the main component of our system as it is widely used by almost everyone. We want to achieve convenience, accuracy and cost effectiveness for our system to be successful. A dataset was first established and by analyzing it, an appropriate algorithm was devised. Finally, the algorithm was implemented and the system was tested and fall was detected in real time.


Introduction
With the gradual improvement of the healthcare sector, life expectancy is now higher than ever.Older people (aged 65 and above) now make up an increasing share of the total population.According to a UN report [1], the number of older persons, those aged 60 years or over, has increased substantially in recent years in most countries and regions, and that growth is projected to accelerate in the coming decades.By 2050, the global population of older persons is projected to more than double its size in 2015, reaching nearly 2.1 billion.This upcoming change in our socio-economic life also means that problems regarding elderly people are going to escalate.One such problem is falling down/ collapsing.Falls are common among older people, so much so that according to a report from World Health Organization (WHO), Falls are the second leading cause of accidental or unintentional injury deaths worldwide [2].Prevention of fall should be the utmost objective but if a fall occurs, reducing the imminent risk should be a priority.Falls have unique patterns that can be exploited to detect and predict them [3].If a fall of an elderly person is not immediately detected, the chance of injury increases as time passes.So detecting the fall immediately should be the objective.
3-axis accelerometer gives a comprehensive measurement of acceleration in three axes.And it is fairly straight forward that a fall will have a change in acceleration to various degrees.Our objective is to build a reliable and convincingly accurate fall detection system that can manipulate the sensor acceleration data and let out an alert if a fall is detected using a smartphone.Now, let us look at the definition of fall according to World Health Organization: "A fall is defined as an event which results in a person coming to rest inadvertently on the ground or floor or other lower level."So to detect the fall, we have divided our research into 4 parts: Collecting samples: The first task was to collect a lot of samples regarding different types of fall with variation in height and body weight.A comprehensive dataset was designed which documented different types of falls.Analyzing and feature extracting: Our next task was to analyze the samples and extract common features in the change in acceleration which could be manipulated in designing the fall detection system.Developing an algorithm: Then, we proceeded to build our fall detection algorithm based on our analysis.Building the system: The developed algorithm was tested successfully and fall was detected convincingly.Then the system was built using an existing device: Smartphone.

Related Works
The threshold based algorithm for fall detection was first developed by Williams et al. [4].However, the first real time fall detection system was done by Degen et al. [5] by inventing a wrist-watch named Speedy.Another real time monitoring of elderly people was developed by Hwang et al. [6].
Chen et al. [7] used a tri-axial accelerometer worn on the waist of two martial arts students, who performed some common fall motions over 10 trials.If the root sum vector of the three squared accelerometer outputs exceeded a threshold, it is possible that a fall had occurred (Additionally, the orientation was calculated over 1 second before the first impact and 2 seconds after the last impact using the dot product of the acceleration vectors [Change in orientation]).The angle change that constitutes a change in orientation can be set arbitrarily based on empirical data, as suggested by the authors.
Kangas et al. [8] attached a tri-axial accelerometer to the waist, wrist, and head of three healthy middle-aged volunteers, who performed three standardized types of falls (forward, backward, and lateral) towards a mattress.Examples of activities of daily living (ADL) were collected from two healthy subjects, representing dynamic activities (e.g., walking, climbing stairs, picking up objects from the floor, etc.) Bourke et al. [9] fixed two tri-axial accelerometers to the trunk (at the sternum) and the thigh.Ten young subjects were involved in simulated falls onto large crash mats.

Development of Algorithm
The main research on the principles of fall detection focuses on the changes in acceleration that occur when a human is falling.Fig- 1 shows us a sample of daily activities for 1 hour.The fall detector is mounted on a belt on the individual's chest.The blue trace is the acceleration vector sum magnitude, 1 g at equilibrium.Because elderly people move at a comparatively slow pace, no significant change will occur during the walking motions.We observed that when the subjects intend to sit down, the most significant acceleration is a maximum 2g spike in vector sum.
The accelerations during falling are completely different.Figure 2 shows the acceleration changes during an accidental fall.We can see that there are four critical differences that are characteristics of a falling event that we can use as our criterions for detecting falls.
Beginning of fall: The phenomenon of weightlessness will always occur at the start of a fall.It will become more significant during free fall, and the vector sum of acceleration will tend to be towards 0 g.The duration will depend on the height from which the subject starts to experience free fall.Even though weightlessness during an ordinary fall will not be close to 0 g, the vector sum of acceleration will still be significantly less than 1 g (while in normal condition it is 1g).Therefore, this is the first criterion for detecting the fall.Impact: After experiencing weightlessness, the human body will impact the ground or other objects.So there will be a sudden change in velocity and we will get a large spike in acceleration curve.We can use this as our second criterion.
Aftermath: The human body cannot rise immediately just after hitting the ground or other objects.Rather, it stays static for a short period of time.Hence, we will get a flat line in the accelerometer curve.
Change of orientation: After a fall, the subject's body will not be in the same orientation as before, so in the motionless period, the acceleration in three axes will be different from the period when the subject did not experience any kind of fall (Figure 2).If we can compare the values of acceleration before and after the fall, then we will certainly see a change in the average value of acceleration in the three axes.We can use it as our last criterion for detecting fall.
So we divided the whole fall incident into four zones as shown in Fig. 3. Acceleration curve for a fall (zoomed).
Zone-1 indicates a trough in the curve which represents the free fall.We can see that the acceleration tends to go towards 0. So, this indicates the start of our fall.The lowest point in zone 1 indicates the first point of impact.
Zone-2 indicates the spike of the impact.We can see it goes up as far as 2.6 g. in this specific sample which is very distinguishable from other daily activities' curve.This happens due to the sudden huge change of velocity from free fall to zero.
The above two zones describe the two phases of a fall that was previously discussed.However, as we are trying to extract distinguishable features of a fall, we found another one which is not really visible from the curve.Zone-3 indicates the steady state of acceleration of the person before fall.Zone-4 is the steady state the person reaches after the fall.Around 2 seconds after the fall, we can see the curve steadies itself.It is when the person gets steady after the impact of the fall.Although there is no apparent difference between the vector sum curves of the two zones, if we think about the individual axis acceleration, then there is a big difference between the individual data.As the person was upright before falling and was in a lying position after the fall, the individual axis acceleration is different from each other.We are calling it the change in Orientation.
Hence, we have already found three distinguishable features of the fall.Now we have to develop the algorithm so that our program can differentiate the fall from other daily activities.If we see the curve of the daily activities, it can be seen that there is a trough, spike like impact and orientation change in some curves but, these three do not come in order in any of the curves.
Therefore, the key to our algorithm should be finding out the trough, impact and change of orientation and in this order only.And if it finds them in order it will send a fall alert.Following are the keywords we used to describe the different phases of the fall.The time difference between Fall_Start and impact should not be too long as free fall is likely to retain for a very short time, unless the person is falling from a high building, which will make the whole detection system redundant.After falling, a person is usually still for at least 2-3 seconds.And if the person is still for a long time after impact, it will mean the person is probably unconscious.In that case, the system will send a critical fall alert to those in charge of his/her well-being.

Developed algorithm to generate critical fall detection
A.
Building the system: The samples we took so far were not analyzed in real time.We collected the samples and then processed them to see the graphs.But now the program had to run in real time for our algorithm to work.We know that our modern day smartphones have built-in accelerometer in them.So we attempted to use it to implement our algorithm.We used MATLAB Mobile to send sensor data from the smartphone to the computer.We coded our algorithm in MATLAB 2014b version in the computer.We can see the setup in the following figures.The volunteer subject kept the smartphone in the left chest pocket of his shirt and got ready for the fall on a cushioned mattress.We ran the program on both the phone and the computer and repeated the experiment, implementing our algorithm.Figure 5 shows the code running in MATLAB computer and figure 6 shows the MATLAB Mobile app sending the accelerometer data to MATLAB computer.Our alert system was based on the MATLAB "sendmail" command, which sends an email to a given address if the command is triggered as shown in Fig. 7.The crucial part of our system is detecting the orientation change after falling because it is hard to keep the smartphone in a fixed orientation before the fall hence the system could detect a false change in orientation.So in our system, we built an alarm which would buzz after detecting a fall.If the person does not stop the alarm in 10 seconds, our system will assume that the person has become unconscious and then it will send the alert.

Methodology
We used three methods to detect fall.Initially, after plotting our accelerometer datasets, we noticed that there is an obvious spike when the subject falls down.Therefore, at first, we tried to detect fall by using only the spike as our deciding factor.We call this spike 'Impact' and we have already learned about it in Section III.However, after taking the data of ADL (activities of daily living), we noticed that there is also a spike while attempting to sit or lie down.For this reason, the accuracy was not satisfactory in this method.Hence, we realized, IMPACT cannot be our only deciding factor.Then reanalyzing the dataset, we noticed that there is a sudden fall in the magnitude of the vector sum of 3 axes accelerometer data.So we also considered this as a factor.We call this Fall START and it was also mentioned in Section III.Therefore, we only considered the Impact factors which was obtained after the FALL START.In this way, we improved the accuracy of our system.However, there was a case where the subject would attempt to sit down on the floor.In this case, the system can also give a false alarm.For solving this problem, we decided to include another parameter.We noticed that the orientation of the subject would never be the same after falling and so we included orientation as our third factor.Therefore, if FALL START, IMPACT and ORIENTATION_CHANGE factors occur sequentially in a pre-determined period, only then our system will detect a fall.
Method 1: In this method, we used Impact as our only factor.The key steps of this method are: (i) Reading and logging the data in real time.(ii) Analyzing the data and comparing it with the pre-determined threshold of Impact.

Result and Analysis
In this work, seven completely healthy people volunteered to perform stimulated fall to measure the performance of our system.It is very difficult to create a fall-down dataset, as each adult must fall-down a number of times.It is indeed a physically painful experiment.However, we have created a dataset on fall-down.Based on our study, there is no dataset on fall-down.The Accuracy, the PPV, and the NPV are reported in Table 1 for each algorithm.To keep balance, we had to trade off NPV with Accuracy and PPV.Although Accuracy of method 1 is slightly better than both methods 2 and 3, but PPV of method 1 is really poor.Thus we excluded method 1.Again, Accuracy is almost equal for method 2 and method 3, but PPV of method 3 is much better than that of method 2. Therefore, PPV was the main reason of choosing method 3 over method 1 and 2.

Falling
A test case is also presented with the proposed solution to verify the algorithm.Each position, including falling forward, falling backward, falling to the left, and falling to the right is tested 7 times.Table 2 presents the test results.
Check marks (✓) indicate each condition that is satisfied.
The volunteers performed fall in four ways which are shown in Table 2.We can see that prolonged motionless period in all kinds of fall for almost all subjects are obtained when the subject is not moving.Therefore, our system can successfully distinguish the motionless period which will be needed to send the critical fall alert.

Conclusions
We set out to build a system, which could detect unsupervised fall of an elderly person.We collected samples, analyzed them, developed an algorithm, tested it and in total built a smartphone based fall detection system.The system achieved reasonable accuracy and can accurately measure a fall.Though there are some commercial devices available in the market for fall detection, our goal was to build a system that uses the devices people use in their daily lives.As smartphones and laptops are available in almost every house, anyone who is concerned about the well-being of elderly people can use our system.Reaching to the mass public with a fall detection system was our utmost objective and we believe our system can accomplish the goal.
Although our system can detect a fall, unfortunately it cannot prevent the fall which should be our utmost objective.As mentioned earlier, there are some devices in the market which can be used in fall detection but none of them can store the accelerometer data which was produced before and after falling down.Our system is able to store the accelerometer data of daily life and hence we can easily obtain the data produced before and after falling.This data sets can be used later to detect any kind of pattern in accelerometer data before falling.
We can also connect an EEG headset with our system and analyze the activity of the brain before falling.It can help us detecting the possibility of falling down, hence falls can be prevented.The whole processing can be done in the cloud.So, we need a device which can obtain the data of 3 axes accelerometer and send it to the cloud for processing.SensorTag CC2650, which is an IoT device developed by Texas Instrument is such a device which can serve this purpose.Also, if the data can be sent to the cloud in real time, anyone can monitor the activity of the elderly people from a remote place.This system can also be used to monitor children and toddlers' activities.In MATLAB Mobile application, the mobile sensor is needed to be connected manually to the main computer.An application can be developed, which can automatically connect the mobile sensors to the main computer as a future work or extension of this research.

Figure 2 .
Figure 2.Acceleration curve of a sample fall.

Fall_Start:
This keyword indicates the start of the free fall.Impact: It indicates the impact of the fall.Orientation_Change: This keyword indicates the change in orientation of previous and after states.Timeout: The maximum allowed time interval between two phases of the fall.It was specified using an empirical method.The system resets itself if this specified time exceeds.

Figure 5 .
Figure 5.Screenshot of MATLAB while working.

Figure 6 .
Figure 6.Screenshot of MATLAB mobile while working

Method 2 :Method 3 :
In this method, we used Fall_Start and Impact as our factors.The key steps of this method are: (i) Reading and logging the data in real time.(ii) Analyzing the data and comparing it with the pre-determined threshold of Fall_Start.(iii) If the read data value exceeds pre-determined threshold value of Fall_Start then comparing it with the pre-determined threshold of Impact.(iv) If the read data value exceeds pre-determined Impact threshold value then fall has been detected.Parameters: Vector sum = √(   +   +   ) In this method, we used Fall_Start and Impact as our factors.The key steps of this method are given below: (i) Reading and logging the data in real time; (ii) Analyzing the data and comparing it with the pre-determined threshold of Fall_Start; (iii) If the read data value exceeds pre-determined threshold value of Fall_Start then comparing it with the pre-determined threshold of Impact; (iv) If the read data value exceeds pre-determined Impact threshold value then analyzing the orientation.(v) If there is a change in orientation then fall has been detected.Parameters: Vector sum = √(   +   +   ) Threshold: Fall_Start = 0.6g Impact_Threshold = 2.2 g Algorithm's rationale: Start of fall + Impact detection + change in orientation.
Period after Falling.Note: The ✓ symbol indicates a detected fall; and the × symbol indicates an undetected fall.* Symbol indicates a detected prolonged motionless period after falling

Table 1 .
Accuracy, PPV and NPV for each algorithm.

TABLE 2 .
Test Results