Some context: I hope to use a MobileNetSpatialDetectionNetwork node to recognize a set of inanimate and immobile objects in my environment to assist in localization. I also want to use the node to recognize faces and eventually specific individuals. The inanimate objects are all on or close to the floor of the environment. The faces I expect to be over 1 m from the floor. At this time I do not have my OAK-D mounted on a pan/tilt mechanism and hope to avoid doing so. As a result I need to get the maximum VFOV from the color camera.
I found that the example script spatial_mobilenet.py uses the sensor resolution 1080_P. Further, the camera preview by default is center cropped. Thus the cropped ROI is 1080x1080. That ROI is then scaled to 300x300 as specified. So, the MSDN node sees 100% of the sensor image height, but only 56% of its width. So that means the things I want to detect have to be centered w.r.t. the camera to be seen and detected.
That got me to wondering about moving the ROI so that over some period of time, I could change the ROI and "scan" electronically the entire HFOV if necessary. I found rgb_camera_control.py, which allows you to change exposure and the crop ROI (plus other things). I found when changing the exposure area, it was pretty obvious (visually) that it takes the camera about 5 seconds to settle to a new autoexposure setting.
Changing the crop ROI appears (visually) to work immediately. But I'm not sure that is true; it would not be surprising if it took a frame or two, or maybe more.
These configuration and control changes make me wonder, is there some status setting, or something that indicates some steady state where the configuration and control settings are stable and one can trust the information flowing out of the pipeline? More specifically, is there a way to know when the autoexposure has settled; is there a way to know a new crop ROI is engaged? Or do I just need to perhaps take the best guess at some number of frames?