This week, I worked on a function that get the real life distance a laptop would need to rise based on the distance in pixels. To do this, I’m using the camera calibration as described in the OpenCV documentation to find the focal length of my camera and used these in my calculations assuming the distance from the screen is constant.
I also integrated the calibration setup for gathering facial landmarks with the current landmark distance calculation, so that we are using the calibration data points to calculate the reference difference and compare them to current landmarks. I’m able to detect if the camera is at a height lower than the one determined at calibration, higher, or within threshold.
However, when neither the height or pitch of the laptop are known, it is difficult to determine whether the correct course of action for the system will be to raise the height of the stand or to angle to the laptop using the linear actuators since either a change in height or change in angle can produce similar results in vertical landmark difference. In order to solve this issue, I’m working on using a few vectors between landmarks to measure the skew of certain sections of a user’s face to be able to decide if the camera is at an angle or at a height difference.
I am currently on schedule, and next week I will continue working on this height vs. angle determination. I also hope to begin creating a starter GUI to display basic functionalities such as calibration and setup.