-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Manual exposure control results in frames being dropped #8673
Comments
Hi @bulveops Setting exposure manually can affect FPS if the value is set within a certain range, as described in the link below: If you wish to control exposure on a per-frame basis then the RealSense SDK's High Dynamic Range (HDR) mode may be suitable. The principles are described in Intel's HDR white-paper document. https://dev.intelrealsense.com/docs/high-dynamic-range-with-stereoscopic-depth-cameras This section of the white paper describes how HDR Enabled mode can be tested in the RealSense Viewer program. A RealSense user shared their Python script for setting the hdr_enabled option. There is also an example script for doing so in the paper. |
Thank you for fast reply, @MartyG-RealSense |
My concern is that using a per-frame exposure technique that dates from before the HDR feature may be unsuited to the slow rolling shutter on the D415 camera model, compared to the fast global shutter on left and right sensors of the D435 / i and on both RGB and left-right sensors on the D455. |
@MartyG-RealSense , |
If the goal is to enforce the intensity value of the pixels inside the ROI at a constant then I am not sure that the exposure will directly influence that. When auto-exposure is enabled, the value that the ROI tries to average the pixel intensity at is determined by a value called the setpoint, described in point 3 of the section of Intel's camera tuning paper linked to below. |
The auto-exposure algorithms operates with a static ROI. I want to enforce the intensity value of pixels inside the dynamic ROI to be constant. Alternatively to adjust exposure parameters for pixels belonging to the foreground. |
My research of your question about the setpoint value indicates that it does not have a unit description associated with it. I ran tests with the setpoint in the RealSense Viewer whilst the depth stream was enabled and editing the setpoint value altered the depth image in real-time. My understanding though is that the Mean Intensity Set Point is part of the Advanced Mode's STAEControl struct (see the link below) but is normally custom-configured through a json file at program start-up rather than accessible dynamically during runtime. https://intelrealsense.github.io/librealsense/doxygen/struct_s_t_a_e_control.html |
There have been a couple of recent cases involving exposure difficulties that were resolved by the SDK's new feature for setting auto-exposure and gain maximum limits for IR sensors that was added in SDK version 2.42.0 and firmware version 5.12.11.0. The header at the top of this case states that your currently installed firmware is 5.12.8.200, so updating to 5.12.11.0 or newer may provide an immediate benefit. |
A RealSense user has posted Python code that they used to set the intensity setpoint. |
Hi @bulveops Do you require further assistance with this case, please? Thanks! |
Thank you for the assistance! I found out that changing exposure parameters with interval more than 2-3 frames resolves the problem. |
Excellent to hear that you found a solution @bulveops - thanks for the update! |
Issue Description
I'd like to control exposure of an infrared sensor in an more sophisticated way, because auto-expose with static a region of interest results in bad depthmaps. The idea is to set exposure option on every frame, attempting to make constant the mean value of pixels inside tracked roi. I tried to change exposure time on each frame, but unfortunately there is a significant number of dropped frames.
With this sample of code, I get the next output:
*** No manual exposure control ***
Processed 152 frames, dropped 0 frames in 5.0 seconds
*** Manual exposure control ***
Processed 51 frames, dropped 99 frames in 5.0 seconds
Is it a normal behaviour? How to control exposure without loosing frames?
The text was updated successfully, but these errors were encountered: