We are trying to define what would be the best user experience for a tool assisting the manual focusing of a camera.
The user needs to focus a camera that has a calibration panel in front of it, with some black and white patterns, by turning the focus ring clockwise and counter-clockwise. Both the camera and the panel are static. We are live capturing the camera image, and extracting a numeric value from it, that quantifies the quality of the focus.
However, this value has no known bound beforehand, because it depends on external factors like lighting conditions, panel distance, etc. All we have is that if the value goes up, the focus is better. We also do not know which direction the user is turning the ring at any given time, or if it is turning at all.
If the user keeps turning the ring and the focus is increasing, at some point it will reach a maximum and then start decreasing again, which means they need to turn the ring in the opposite direction, reaching the previous maximum again, or close enough. Let's assume that "close enough" is already defined for us.
This graph shows roughly how the angle-focus_value relationship behaves:
With all this information, what would be the best way to aid the user in focusing the camera?
Our current idea is to first find the maximum, and then direct the user to it. The problem is that if the user turns the ring and the focus is increasing, and then starts turning it the other way before reaching maximum, from our point of view it will look like the turning point was the maximum, since we can't know how they are manipulating the ring. The main issue is dealing with this lack of information.