Hongzhe’s Status Report for 2023/12/09

This is the last official week of the capstone project course before we step into public demo and final report writing.

Over the past week, we first accomplished the final presentation to showcase the work, result and performance of our system. It is also a great experience to see how other teams has come along the way, and I am really interested in trying their products out in the following week. In the meantime, we were able to come up with more user testing, more detailed verification descriptions that we are planning to put into the final report. For example, about the question on how we are getting the percentages, we conduct tests on user data as well as our own testing data with numerous body images. For each image, there will be multiple key body angles that we keep track of, and that data adds up to calculating the confidence interval of our angle calculation system.

We will work on public demo, as well as a final report/video next week, and thank you, the staffs, for helping out through the semester.

Team Status Report for 12/09/2023

The culmination of our project approached with the final presentation week, during which the team strategically allocated its efforts towards the meticulous creation of slides, thorough reviews of the presentation content, and collaborative endeavors. This period saw extensive discussions centering on crucial aspects such as testing plans, real-world applications, and in-depth data analysis, all with a primary focus on assessing the effectiveness of our developed system.

A significant facet of our recent efforts has been the intensive focus on comparative user testing, specifically aimed at measuring the accuracy of limb angles. This involved a dual approach, incorporating video training alongside our team’s system. As part of this process, ongoing data analysis is underway by Jerry and Ray, with the objective of extracting valuable information that will inform further refinement and optimization.

Our team’s productivity remained consistently high throughout the week, particularly in the preparation for the final presentation. Engaging discussions encompassed quantitative results derived from extensive testing, identification of potential areas of improvement, and careful consideration of user feedback. These discussions proved instrumental in shaping the final narrative of our project, ensuring a comprehensive and polished presentation.

Simultaneously, our focus extended to the backend processes of our project. Collaborative efforts, particularly with respect to finalizing backend functionalities, were undertaken in close partnership with Shiheng and Hongzhe. This phase involved meticulous optimization measures, enhancing overall system efficiency and responsiveness.

Noteworthy attention was also given to the refinement of design elements, with a dedicated effort to ensure optimal user experience. Collaborative discussions, particularly with Hongzhe, aimed at fine-tuning these elements, addressing any remaining concerns, and ensuring a seamless integration of design and functionality.

As the team progresses, we find ourselves currently on schedule, actively engaged in the critical phases of testing and evaluation. The imminent completion of the video and final report stands as a testament to our commitment to delivering key project deliverables with the highest standards of quality and precision. The collective efforts of the team position us well for the successful conclusion of this project.

Our team also wishes to express gratitude to all the faculty and TAs of the course for their continued assistance and guidance throughout the project.
Special thanks to our team’s TA Eshita and Professor Byron for meeting with us weekly, checking our progress, and providing constructive feedback throughout the semester.
ABET Question:

Unit Test on Frontend:
Functionality Testing to ensure the custom file upload feature functions as intended. Users are able to upload custom pictures. Widget Order Testing to verify that widgets associated with file upload are ordered correctly, user are able to rearrange and remove pictures.
UI Testing: UI elements and widgets work correctly under full screen resolution, and scales correctly.
Training Loop Testing: The training loop screen correctly showcased user image, skeleton, and reference picture.
Skeleton Drawing Testing: Correct skeletons are posed for both user and reference posture, previous issue mentioned in last week about scaling have been fixed.
File Storage: Local file storage is working correctly, both for prerecorded poses and reference poses.

Unit Test on Backend:
Angle testing: Justified angles captured by the Openpose system through the keypoints being passed into the backend. Used online protractor to measure angles compared to the calculation derived from keypoints.
Voice testing: Ensure voice module is robust and produces correct instructions as intended. Integrated throughout the testing process and accepted advice from users to improve instruction. Clear verbal instructions given with correct angles.
User posture testing: Different poses are being passed into the algorithm for testing, including incomplete postures, wrong postures. Correct angles and instructions are verified from feedback of group members and volunteers. Incorrect and correct limbs were clearly identified and passed to the frontend for drawing.
Correct person testing: When multiple people are involved in one frame, the algorithm is correctly identifying the user practicing the posture (most similar person).

Integration testing:
Testing on windows laptops, applications constructed by Kivy is able to launch and run correctly.
Pose sequencing: Functionality is working as intended, user is able to move on from one pose after doing it correctly. After finishing the sequencing, user will be presented with overall score of the sequence.
Parameter Adjustment Testing: Users are able to customize preparation time, move-on time, and tolerance angle for custom training. The sliders communicate with backend correctly to reflect the changes.
Time Trials: Timer are utilized to measure performance on different laptop setups from group members. User testing has come back with results of the app being slow, main bottleneck is the Openpose utilizing CUDA. Time requirements are within our set standards.
User Testing: Jerry collected data and did analysis on this part mainly. User experiences were measured, and bugs were found about the training loop, fixes were implemented to address the issue. Efficiency for the application increased after implementing the fix.

Ray’s Status Report for 12/09/2023

The past week has been the final presentation week. I mainly focused on working with creating the slides with my team and filling out the final presentation reviews. I had a great time learning about all the useful and fun systems the other teams created.

Besides the final presentation, we had discussions among ourselves about the testing plan and real-world application of the application. We did some analysis on the data Jerry collected and checked how supportive the tests will be for showing the effectiveness of our system.

We also created the poster for next Monday’s public demo, which we believe will be a good opportunity to show case our application and collect some good user testing data. I managed some of the formatting and layout process for the poster.

Overall, we have completed all the functional implementations for the project. We are well on track finalizing our project, and for next week, I’ll work on the public demo and the final report, wrapping up the project as smoothly as possible.

 

Shiheng’s Status Report for 12/09/2023

This past week has been incredibly productive as I dedicated a significant portion of my time to preparing for an upcoming presentation. The focal point of our discussion centered around the quantitative results derived from the extensive test trials we conducted. Through a thorough analysis of the gathered data, we were able to draw valuable insights that formed the backbone of our presentation.

One key aspect of our discussions revolved around potential areas of improvement, which we identified through meticulous examination of user feedback obtained during the testing phase. This feedback proved invaluable in shaping our understanding of user experiences and guiding us towards refining the functionalities of the project.

Simultaneously, my attention was devoted to finalizing the backend processes of our project. Collaborating closely with Hongzhe, we delved into intricate details to ensure the seamless integration and optimal performance of the backend. Several optimizations were implemented, enhancing the overall efficiency and responsiveness of the system.

In addition to the technical aspects, I engaged in detailed discussions with Hongzhe regarding the design elements of our project. Fine-tuning the design for optimal user experience was a priority, and we worked collaboratively to address any remaining concerns on the backend.

Hongzhe’s Status Report for 12/02/2023

This is the last week before the final presentation and we have mostly done the final tuning of the application development process together as a team.

I participated in the demo for final check to the course faculty, helped design the user testing questionnaire. I am also in charge of the backend performance testing (time consumed for each portion of the code that processes user data and counted into the waiting time), and worked with Roland in designing backend accuracy/performance testing plan. I am also the model for the accuracy plan which would be shown later in the presentation.

In the future week, I am planning to help conduct more user testing and gather opinions of the functionalities and parameter tuning of the system. We will also focus on preparing the final paper/poster work for the course together as a team.

Ray’s Status Report for 12/02/2023

My team and I made considerable progress on the project in the past two weeks. Except for some minor bugs, our application is functioning properly in general, and we are also actively optimizing our application to make it more convenient for our users.

To briefly summarize my work over the two weeks:

a. Training page posture sequencing works

Last Saturday and Sunday, I worked on the training page posture sequencing based on the implementation plan I created in advance. Since I finished the posture drawing functionality ahead of the plan, I implemented the posture sequencing functionality as well.

Now, for a Taichi posture sequence, the training page go through all subposetures in the sequence so that the users can actually train themselves on the full Taichi posture. When the user correctly performed a subpose, the training will automatically switch to the next subpose.

I also created a new configurable parameter “move-on time” for the users  in the setting screen to control the interval between subposes. It is different from the “preparation time” parameter, which is time interval between the moment start button is pressed and the evaluation of the first subpose.

Below is a image of the new trianing page (Image provided by Shiheng (Roland)).

b. Result page implemented

When the training of a Taichi posture ends, training screen now switches to a result screen, showing average score, total time, and a random tip on how to use our application correctly.

c. Tutorial page implemented

I created a new page showing a tutorial on how to use our application correctly. It is accessible from the menu page. Below is the tutorial page.

d. Minor fixes for better user experience

Selection screen has much larger pose item in order to make the image preview easier to view. Back buttons in all screens are enlarged. I also made a few small fixes on training screen timer display issues.

In general, my team and I am back on the schedule and we are promptly finalizing our project. Next week, I will fix the bugs and issues I found during testing and also brainstorm on what extra feature I want to add to our application.

Shiheng’s Status Report for 12/02/2023

For this week, I mostly focused on fixing minor bugs along with integration issues faced with testing out the application with rest of the group. Guidance was improved for users not fitting inside the frame of the camera and about correcting positions. I worked with Ray about issues I found in comparing skeletons about missing joints and scaling of the reference picture. Eric also assisted me in rerunning the openpose script on cropped picture for better performance in the application.

Issues were also found inside our voice module causing unintended termination of the application, which were found caused by pygame module. For the weekend and upcoming week, I will be preparing for the upcoming presentation and doing testing on my backend module along with Eric for justifications and evaluation purposes.

Team Status Report for 12/02/2023

For our Taichine project this week, we finished all planned functionalities in our MVP and were mostly focused on polishing the final details of the projection prior to the testing and verification phase.

During Monday and Wednesday meetings, the team focused on testing on the front end along with demos of the project to faculty members. In the process, bugs were found throughout the test when group members were trying out our final product.

Shiheng and Ray worked on the backend and integration scripts about cases where users were not correctly positioned in frame and when nobody is detected in the camera. Previous solutions were not comprehensive to users and more for the purpose of debugging, which now have been replaced by voice instructions and redrawing of the skeleton to guide users to improve their current posture. Shiheng also worked on implementing voice instructions and fixed failures where the pygame module will cause unintended termination of the training. Ray improved UI elements on the frontend and changed scaling algorithms for better showcase of skeletons.

Hongzhe (Eric) worked on cropping and regeneration of the openpose data on the Taichi pose pictures to accommodate the frontend changes of picture frame, during which he also helped figuring out the bugs encountered on the frontend on skeleton drawing for the reference pose and user input. Eric also suggested that logic improvements on the backend to Shiheng about pose priority, where fixes were implemented upon.

Jerry worked more on the custom pose implementation side and focused on file storage structures for sequencing and stepping through the images for prerecorded poses. Now both pipelines follow similar naming trends and users are more easily directed to figure out where the custom poses are stored. Also, some button logics were revised on the frontend by Jerry to improve performance of the application and remove redundancy.

We will focus on testing, verification, and validation of our project for the weekend and for the week prior to final demo. In addition, we will work simultaneously on other scheduled matters including slides, posters, and videos to accommodate for more flexibility during the final week.

Shiheng’s Status Report for 11/18/2023

My work this week reflects the efforts I made on the backend on integration with Ray and continued progress in implementing vocal instructions.

I have been actively driving progress in the project, specifically focusing on enabling pose selection from multiple persons. My work involves extensive Python scripting to develop a flexible system that is automated to choose poses from different individuals and pick out the Taichi practitioner. User will be able to train in environment not so private (e.g. gyms) without the need of having the room cleared to prevent the system from capturing other body parts.

Additionally, I have taken on the responsibility of building the backend support for skeleton drawing. Through passing angles with a reference frame, I enabled Ray to pinpoint and draw the vectors for the reference skeleton. The user skeleton follows the similar logic, and I have lay down the foundation for comparison through passing a boolean list for verfication purposes and creating visual cues on the front end.

I am still working and researching on creating good vocal instructions while putting the sequence and body parts priority in mind, which should be done by the end of this weekend and ready for testing. For following weeks, I will focus on testing and fixing bugs from our final product with all the functions done.

Team Status Report for 11/18/2023

As we are approaching the end of semester, our team worked on integration and finetuning the infrastructure for the upcoming testing and verfication.

Jerry has been focused on enhancing the user experience by introducing custom pose sequence support. He’s also succeeded in integrating the app with file manager to handle multiple files, providing users with an efficient way to manage their custom pose uploads. Additionally, Jerry has improved user interaction by enabling the removal and reordering of files to be uploaded, directly within the app’s display.

Shiheng has taken on the challenge of allowing pose selection from multiple persons, a crucial feature for users within more complex environments and handling different outputs when multiple bodies are found in frame. In addition, he is concentrating on backend support for skeleton drawing for Ray, implementing a new and different approach for measuring angles that could be handled better on the frontend without the need for processing the raw data from Openpose.

Hongzhe (Eric) is dedicated to refining the visual aspects of the application. His work involves processing reference images to enhance their display quality. He is also focusing on establishing parameter connections, which will contribute to a more cohesive and user-friendly experience. Additionally, Hongzhe is also involved in fine-tuning the logic on the training page to ensure an optimized user journey.

Ray is playing a pivotal role in consolidating the efforts of the team. He is synthesizing key points and reference angles provided by Shiheng into the overall skeleton drawing process. Ray is also leading the redesign of UI components for improved aesthetics and usability, working on cleaning up the code and optimization. Furthermore, he is involved in refactoring reference pictures to enhance user experience with bigger picture components for better feedback experience.

ABET Question (How we have grown as a team?):

Throughout the semester, our team has experienced substantial growth and cohesion. We have established a robust framework for collaboration and decision-making, utilizing Google Drive for weekly reports, design documents, Github repo for codes, and Slack channel for communication and collaboration efforts.

Our mandatory lab sessions on Mondays and Wednesdays have provided consistent opportunities for team members to discuss progress and align our efforts. Additionally, our Friday or Saturday sessions over zoom have been dedicated to refining plans and syncing up progress during the week.

The use of Gantt Charts has proven instrumental in visualizing our project timeline and ensuring that tasks are allocated efficiently. This strategic planning has allowed us to stay on track and adapt to unforeseen challenges effectively. By regularly revisiting and adjusting our goals based on progress and feedback, we have fostered a dynamic and adaptive team culture.

Our commitment to an open and inclusive environment has been foundational to our success. We actively seek input from all team members, ensuring that each voice is heard and valued. Though we faced changes in group composition and change of plan in the beginning of the semester, everyone in the group was equally treated.

Thanks to everyone’s effort in creating an equal and exclusive environment, we have been able to make substantial progress from scratch as a group and advance through the hardships we faced throughout the semester.