After an experiment for determining the ideal IMU sensor location for FHP detection, the participants were asked to type with and without system feedback in front of a computer screen similar to that found in a real-world office environment. This was conducted to observe any difference between the two cases when the FHP detection and correction system process are applied.
4.1. Sensing Location Determination of the IMU Sensor
As it is an IMU sensor, the MPU6050 (TDK Electronics, TDK Worldwide, Tokyo, Japan) [
38,
39] can read gravity acceleration values along x, y, and z-axes, as well as three-axis gyroscope values.
Figure 7a shows the three-dimensional axes and rotation of MPU6050. As shown in
Figure 7b, the MPU6050 sensor is cost-effective, very lightweight, and small, making it a great fit for a wearable sensor in daily life. Among the sensing values provided by MPU6050—using the x, y, and z acceleration values—the current forward tilted angle (
) of the sensor can be obtained through Equation (1), as shown in
Figure 7c [
40]. In Equation (1), x, y, and z are the gravity acceleration values along each of the axes of the MPU6050.
To verify the accuracy of the sensor, we tilted it close to certain angles (0
, 30
, 45
, 60
, and 90
), as shown in
Figure 8, and we checked if the forward tilt angle (
) obtained from the sensor was similar to the angle of the sensor that is measured when taking a photo from the side.
As shown in
Table 1, the small difference (<0.5
) between the forward tilted angle (
) and actual angle sensing data can be useful for our approach.
First, the IMU sensor was attached to several parts of the upper body (as shown in
Figure 9), while the waist and neck were kept straight, which is the standard for good posture (as shown in
Figure 1b). Subsequently, the participant was instructed to gradually extend their neck forward to reach FHP. The CVA of the standard postures (standard CVA) and FHP states differed by up to 20
, wherein the optimal position was determined by testing various attachment positions to verify if the forward tilt angle (
) could be measured to represent the CVA value.
All 10 male participants were asked to adopt the same posture in the same experimental environment, and their CVAs were measured by taking a photo from the side. The information regarding the 10 male participants is shown in
Table 2. In accordance with the guidelines detailed in the Helsinki Declaration [
41], the experiment was conducted after obtaining the written consent of all participants. All participants were normal people with no history of FHP, and their use time of cellphones and computers is shown in
Table 2.
. The CVA values shown in
Table 3 are the average values obtained from adopting different sensor attachment positions for the 10 participants, and the mean and standard deviations of these values are also provided.
When sensors are placed at the [3] back of the neck and [4] cervical spine, the difference in between the FHP and the standard posture is ∼20, which is approximately the same as the difference in CVA between them. However, when the sensor is placed on the [2] chest, the difference in is only 10, while the CVA changes by 20. In this case, it is difficult to predict CVA with the sensing values; hence, the [2] chest position was excluded.
Second, to reduce the number of FHP false positives, the same experiment was performed for a slightly tilted head posture, as shown in
Figure 10. This is a common posture that people assume when looking at the bottom of a monitor or desk while working on a computer. In this case, although the CVA decreased slightly, it is not a FHP condition. The participants were then asked to demonstrate the posture shown in
Figure 10, and their average
were summarized, as shown in
Table 4.
Because the results presented in
Table 4 do not show the FHP, the CVA hardly changed; however, only when a sensor was attached to the [3] back of the neck or [1] forehead did the measured forward tilted angle (
) become similar to the
in the FHP state. That is, if a sensor is attached to the [1] forehead or [3] back of the neck, a state that is not FHP may be mistakenly judged as FHP.
Based on these findings, we decided to attach the MPU6050 sensor to the cervical spine, and then the
and CVA of the sensor changed linearly.
Table 3 shows that, in the standard posture, the average
of the sensor was −40.0
and the average CVA was 49.9
. The forward stretching of the neck reduced the
and CVA of the sensor. In the FHP state, the average
of the sensor was −59.2
and the average CVA was 30.5
.
Figure 11 shows this result graphically, where the CVA and
were observed to decrease with the same slope. Therefore, this can be expressed using Equation (2).
4.2. Experimental Environment
As shown in
Figure 12, the information received from MPU6050 entered the Raspberry Pi through I2C communication [
42] using a connected wire. Afterward, the Raspberry Pi was configured in such a way that it judged the posture via the IMU sensor using Algorithm#1 and Algorithm#2, which were inside the Raspberry Pi, to output the visual results on the monitor. The communication time cycle of the raw data received through I2C communication was very short, taking about 10 s to connect the Raspberry Pi to the MPU6050 to obtain 1000 acceleration values; therefore, the time required to retrieve one value was about 0.01 s. Noise was detected in the raw data. In this experiment, the time sampling method was used to reduce the noise effect. The sampled value was the average of the incoming values with a time interval of 0.5 s. In addition, if a received value was significantly different from the immediately preceding value, it was classified as a missing value to reduce the sampling error. As a result, the value was updated every 0.5 s. To observe the difference between the raw and sampled data, the MPU6050 was tilted for about 10 s and the sensor angles were changed. As a result, 1000 raw data values were obtained, which were quite noisy, as seen in
Figure 13. After time sampling every 0.5 s, it can be seen that the sensor
versus time graph was smoother and less noisy.
All subsequent experiments were conducted by attaching MPU6050 to the cervical spine, as shown in
Figure 14.
Table 5 shows the accepted standard CVA for ∼10 s that was obtained while maintaining a good posture by each participant.
In
Table 5, the CVAs of Person#2 and Person#4 was more than 5
lower than those of Person#1 and Person#3. If the
was set to 50
, the system was determined to be in the FHP state even though Person#2 and Person#4 were in good posture. Therefore, the
should be set differently for each person.
4.3. Experiment 1: The FHP Detection and Correction System
Figure 15 captures a portion of the real-time CVA of Person#2, where the horizontal axis represents time and the vertical axis represents the CVAs.
The standard CVA for Person#2 was 48
, as shown in
Table 5. Thus, Algorithm#1 subtracted 5 from the average angle and defined 43
as the
for Person#2. Changes in the CVA and system judgment over time are shown in
Figure 15. Times corresponding to the region shaded with blue indicate that the subject had a good posture, while those shaded with red indicate that the subject had an FHP.
At about 250 s after the start of the experiment, the participant’s CVA drops below the baseline. However, because Algorithm#1 is based on a bad posture sustained for more than 10 s, it only judges this to be a bad posture after about 10 s and then gives the participant a visual reminder. Algorithm#2 is triggered when this happens, and it tries to bring the CVA back to the baseline. If satisfied, it considers this a good posture. At about 310 s after the start of the experiment, if the CVA falls below baseline again and lasts for more than 10 s, then Algorithm #1 again considers the participant to have poor posture.
Figure 16 shows the participant’s state changes through the posture images.
In the following section, how and why and were distinguished will be explained with respect to Algorithm#2 using real experimental data.
Figure 17 and
Figure 18 shows some of the real-time CVA data obtained from Person#7, who underwent experiments, and the corresponding posture images. Algorithm#1 could determine that the participant was in a bad posture. However, after several experiments, we decided to use
to distinguish between cases where the user belatedly realizes that they are assuming a bad posture, or cases where they try to maintain a good posture (
), as well as cases where the user tries to correct the bad posture (
).
is the average of the data received in the previous 10 s plus 1. Because our system is a personalized system, users can also set
to be based on the average of the previous values for 10 s plus a number such as 0.5 or 2 instead of 1. Therefore, if the user maintains a bad posture, the CVA is unlikely to pass over
.
Figure 17 shows a case where the CVA slowly increased from 510 s, crossed
at 517 s, and then transitioned to
. However, the CVA did not become greater than the baseline, and—at 522 s—it fell below
again, thus transitioning to
. From then until 535 s, Person#7’s CVA remained at 42; as such, the system continued to alert their poor posture. After receiving the alert, Person#7 corrected their posture and their CVA increased, eventually bringing the CVA above the threshold and out of the bad posture.
was for alerting the user when the user corrected their posture and their CVA increased but was still below the baseline; this helped the user escape their bad posture state.
4.4. Experiment 2: Measuring the Effectiveness of the Correction System in Real Life
To show that the proposed system was as effective as an FHP correction system, we conducted the following experiments: two experiments with and without personalized feedback. In the first experiment, participants sat indoors facing a computer monitor similar to a real office environment, and they used the computer for web surfing, typing, etc. The experiment lasted 30 min, and the 10 participants (
Table 2) sat in a chair in the room and initially used the computer with only the sensors attached, such that the subjects were not aware of their current CVA. In the second experiment, we used the proposed system to allow the subjects to see their CVA and posture in real time on the monitor. In the absence of personalized feedback, participants often became engrossed in the computer screen, thus decreasing their CVAs.
Table 6 shows the average CVA of each participant up to 3 min after starting the experiment, as well as the drop in their CVAs due to being immersed in the screen.
Table 6 shows that the CVA of the participants varied from person to person when they were immersed in a screen, and it was shown that it can drop by up to 6 degrees or more from the start. This naturally seems to progress to an FHP posture, but the participants were unable to recognize it.
Furthermore, under the same conditions, we used the proposed method to let the participants know their CVAs in real time, and we identified the times at which they were in an FHP in the two experiments, which was then tabulated. The FHP time was calculated as the time required for Algorithm#2 to run an experiment, which lasted about 900 s. Additionally, the average CVA for each experiment is shown in
Table 7.
Table 7 shows that, in the 15-min experiment, the FHP time in the presence of the feedback from our system varied from participant to participant. However, these values decreased by more than 5 min on average, and the average CVA increased by about 3
. Some of the participants even tried to maintain their initial good posture to avoid the alert; therefore, the system was considered effective for correcting bad posture. It is also a personalized system because the baseline for determining the FHP status is set differently for each person. If the
was adjusted only in accordance with Person#1 and thus all the CVAs below 53
were considered an FHP, then Person#2, Person#4, and Person#6 would have been considered to be exhibiting an FHP even though they were not actually showing an FHP.
In
Table 8, several of the approaches for FHP detection reported in the literature are compared and corrected with the proposed method. First, the feasibility of the FHP detection, which is the neck forward posture, was checked. Other approaches such as the one proposed by Radhakrishnan et al. [
21], which used sensors on chairs, and the approach proposed by Hu et al. [
18], which used the Openpose software, (v. 1.7.0) can detect incorrect posture but not the FHP. Subsequently, the feasibility of customizing the system by considering the different physical conditions of each person was also checked. Studies that used depth cameras [
15] or IMU sensors [
36] utilized fixed threshold values; hence, they cannot detect an FHP depending on the user’s environment or physical condition.
In addition, existing research [
11,
12,
15,
18,
20,
21] on posture determination has focused on detecting incorrect posture and has not been concerned with correcting it. Meanwhile, the research on correcting bad posture [
26,
27] has focused on correcting people who are already in the FHP state and not on detecting whether a person is or not in the FHP state. However, the proposed system detects the FHP condition in a personalized way using different thresholds for each person. The proposed system is convenient as it employs only one wearable sensor, and it uses feedback to increase the average CVA of participants by 3–5
. Participants in a correction system using exercise or therapy for more than four weeks [
25,
26] exhibited an average increase in CVA of ∼4
. Therefore, the correction effect of the proposed system is similar to that of a sustained commitment to exercise and therapy.