Olivia’s Status Report for 4/20

This week I added the Manual Adjustment page to the GUI which will allow users to adjust both angle and height of the stand using button clicks that send serial commands to the Arduino similar to the system used for automatic adjustment.

I also created a focus tracking program using OpenCV that tracks the direction in which a user is looking to determine whether they are looking at their screen. This program keeps track of variations of both horizontal and vertical distances between key facial landmarks to periodically check the user’s head position, and if they have been consistently looking forward at the screen for 20 minutes, not including small breaks or movements, then they will receive a notification in the GUI reminding them to take a break to prevent eye strain. I also wrote a similar, simpler program that periodically detects whether a face is detected in frame which will be used to send notifications via GUI when a user should get up to stretch after long periods of sitting in front of their screen.

I was also able to begin testing the automated adjustment process using the linear actuators on our stand and adjusting the height of the stand manually. I tested the angle adjustment by opening my laptop to several different angles, undergoing calibration, running the angle adjustment code in the integrated subsystem, and tuning the time needed between feedback checks in OpenCV/Python. I found that 250 ms is the smallest delay that can be used between checking landmark distances before the angle adjustment becomes noticeably inaccurate.

I am currently on track, and next week, I plan to integrate the focus tracking aspects to the GUI. After we are able to supply enough torque for the platform jack’s screw rotation, I will more thoroughly test the height adjustment with the automated system.

New Tools and Knowledge:

Over the course of this project, I learned how to use OpenCV and other computer vision tools such as trained models for object classification and detection. To learn about these topics, I used many online tutorials, videos, and the OpenCV documentation to learn the basics of CV programs, and I wrote a bunch of smaller test programs to test out and learn about new features and how I could use them in our project.

Leave a Reply

Your email address will not be published. Required fields are marked *