# A New Approach to Fall Detection Based on the Human Torso Motion Model
## 3 Our Approach for Fall Detection
### Human Torso Motion Model
The general block can be divided into two main steps. The first step is calculating the torso angle of every frame and comparing it with the threshold value. When the torso angle reaches the threshold value, the program turns to Step 2. The second step is tracking the changing rate of torso angle and centroid height frame by frame in a given period of time. Once both rates exceed the threshold value, the activity is judged as a fall, and the system starts alarming; or the activity is considered as a normal activity when the given period of time is over, and the program turns back to Step 1 to start another loop. The pseudocode of our fall detection method is described in the following Algorithm 1. In HTMM, we introduced the torso angle to clearly judge whether the supervised person is in balance or not. Furthermore, the centroid height is used to find out whether the person is falling. These two features make HTMM have high accuracy in fall detection and work well in differentiating fall and fall-like activities. Figure 7 lists three typical fall-like activities that cause a high false alarm rate in previous approaches. In the bounding box ratio analysis approach, the ellipse shape analysis approach or even deep learning approach, the biggest shortcoming of these methods is that there is not a clear line between balance and unbalance. Therefore, when fall-like activity appears, the system will consider it as a fall. However, the torso angle together with the centroid height make it easy for HTMM to distinguish fall-like activities. Take the activities in Figure 7 as examples; each activity reaches only one threshold of two features. For controlled lying down and bending, although the torso angle changes greatly in a short period of time, the centroid height has no changes or changes little during this activity; while for crouching, the centroid height changes dramatically in a short period time, but the torso angle keeps at 12.5 degrees, which is lower than the threshold. Section 4 elaborates detailed statistics of our experiments. Figure 6: General block diagram of our approach; where \(Max(V_{t}^{h})\) is the max changing rate of the centroid height in the given period of time and \(Max(V_{t}^{a})\) the max changing rate of the torso angle in the given period of time. The definitions of the given threshold values are elaborated in Section 4. ```
Input: Sequence of the skeleton frames captured by Kinect sensor Output: bool bFallIsDetected Loop 1: while(torsoAngle < \(T_{a}\)) {  joint_shoulderCenter \(\leftarrow\) fetch shoulder center 3D position from current skeleton frame;  joint_hipCenter \(\leftarrow\) fetch hip center 3D position from current skeleton frame;  torsoAngle \(\leftarrow\) calculate torso angle of current skeleton frame; }
```  
Loop 2: While (trackingTime < \(T\) ) {  V_torsoAngle \(\leftarrow\) calculate the current torso angle changing rate by current frame;  MaxV_torsoAngle \(\leftarrow\) update its value if V_torsoAngle is larger  V_CentroidHeight \(\leftarrow\) calculate the current centroid height changing rate by current frame;  MaxV_CentroidHeight \(\leftarrow\) update its value if V_CentroidHeight is larger  If (MaxV_torsoAngle > \(T_{\texttt{tx}}\) && MaxV_CentroidHeight > \(T_{\texttt{td}}\)) {  bFallIsDetected = TRUE;  fallAlarm(); } } goto Loop 1; ```  
**Algorithm 1**Pseudocode of our proposed method for fall detection.