Here is the youtube link to our Body Buddy final video:
Before we create the final demo video, we wrapped up the mobile application by updating the UI. Since our main user for the application is elders, the buttons have to be large enough and intuitive for them. Bluetooth connection in the application is added to discover Bluetooth devices near the phone and for connections. We’ve created a video for each part and integration together for the final video.
This week, my team gave final presentations, and we all made video clips for the 10 minute demo video.
In my video clips, I filmed the procedure of data collection. Dropping the dummy forward, backward, and collecting the data via walking.
We confirmed that the mobile application installed in Max’s Android phone can discover the RPi through Bluetooth and read data from it. The integration task will be continued to complete application development. UI needs to be improved for intuitive interaction for users before the final demo, and final integration and project will be done next week.
This week, I collected data to improve the variety of our fall data set. Collecting a better variety of data can improve fall detection because SVM’s make decisions on margin vectors. Collecting more varieties of falls can have a significant impact on margin vectors. As well, I started work on the slides, demo video, and final paper with the rest of the group.
This week I worked on adding new features to the SVM to further increase its accuracy. I tried adding the variance of the angles and magnitudes. Because the variance indicates how spread out the data is, I thought it would be helpful in characterizing the falls as the magnitudes and angles will deviate a lot more from their mean for falls than non-fall activities. Adding variance as a new feature did not change the number of false negatives, but it reduced the number of false positives. I also wrote a program that randomly chooses a test data and returns the number of false positives and false negatives with the model that is trained without the test data. I tried running the program with different combinations of features to find the optimal features.
In addition to this, I worked on the final presentation slides, and prepared for the presentation as I will be presenting next week.
This week, I worked on integration of the SVM code with the Raspberry Pi with Sojeong and Max. I made sure to discuss with Max the expected input and output of the SVM code so it would be runnable on the Raspberry Pi, and then Sojeong and I made the necessary changes for Max.
As well, I began plotting dummy falls and human falls so I could see if there was any significant visual difference between the falls. From visual inspection, I could see no observable differences.
As we wanted to focus on the integration, we confirmed that the simulated mobile application that I implemented can be installed on Max’s Android phone. Because a Bluetooth library can’t be used in the Expo environment, we decided to eject Expo (deployment platform). We found that there are two available Bluetooth libraries and determine which one is better to use for our application. The integration task will be continued, and once we have a stable application environment, the front-end UI will be completed.
This week I worked on refactoring the SVM code for integration with the Raspberry Pi. Previously, the graphical interface for the demo was not separated from the training and prediction portion of the code. I created a separate class for the SVM model and trained the model in the init function. I also moved the prediction to a separate function in the class so that the model only has to be trained once when it is initialized. Max ran the code on the Pi and it did not have any performance problems, so I did not have to make any adjustments to the size of the feature array. I also collected more data for non-fall activities, because I realized that most of the data that we have is for different types of falls.
Next week is the last week before the final presentation, so I will work on final improvements to the SVM. The integration with the pi seems to be working well, and it will not be that hard to import the modified code on the pi, so I will try adding one or more new features to the SVM and make final accuracy calculations.