Documentation / Gemini 330 series /
Use depth presets

Use depth presets

A – Overview

The Orbbec Viewer tool and Orbbec SDK, as well as wrappers (for instance ROS 1 Wrapper, ROS 2 Wrapper, etc.), supports diverse predefined depth presets which should be selected appropriately according to the dedicated use cases and can provide users with more favorable depth performance in comparison to using a universal depth configuration.
The predefined presets are listed in a table below. The table includes major features for each predefined depth preset, along with recommend use cases.

Users of Gemini 330 series cameras can also modify relevant depth settings and save a customized depth preset. All the settings can be selected via the tool’s menu of Orbbec Viewer. We use machine learning algorithms and capture of ground truth datasets to optimize presets for certain conditions, and we may add more presets in the future.
The key to obtain a good depth performance is to start from our recommended depth defaults:

  • Gemini 335: 1280 x 800 @30fps, with auto-exposure enabled, post-processing with default settings.
  • Gemini 330: 1280 x 800 @30fps, with auto-exposure enabled, post-processing with default settings.
  • Gemini 336: 1280 x 800 @30fps, with auto-exposure enabled, post-processing with default settings.
  • Gemini 335L: 1280 x 800 @30fps, with auto-exposure enabled, post-processing with default settings.
  • Gemini 330L: 1280 x 800 @30fps, with auto-exposure enabled, post-processing with default settings.
  • Gemini 336L: 1280 x 800 @30fps, with auto-exposure enabled, post-processing with default settings.

If you have poor depth performance, please try manual exposure first and adjust exposure value of depth sensor. Keep depth sensor gain value as low as possible (preferably 16) and adjust laser power as necessary.

 

B – Supported Devices

Gemini 330 series, including Gemini 335, Gemini 330, Gemini 336, Gemini 335L, Gemini 330L, Gemini 336L and new cameras of this series coming up later.

 

C – Table of Predefined Presets

Preset Features Recommended use cases
Default ●   Best visual perception

●   Overall good performance in accuracy, fill rate, tiny objects, etc.

●   Generic

●   Robotics

Hand ●   Clear hand and finger edges ●   Gesture recognition
High

Accuracy

●   Depth of high confidence

●   Barely noise depth values

●   Lower fill rate

●   Collision avoidance

●   Object scanning

High

Density

●   Higher fill rate

●   More tiny objects

●   May suffer from noise depth values

●   Object recognition

●   Pick & place

●   Foreground & background manipulation

Medium

Density

●   Balanced performance in fill rate and accuracy

●   In comparison to Default: lower fill rate, better edge quality

●   Generic and alternative to Default
Custom ●   User defined Preset

●   Dervied from Presets above, with customized modifications, e.g. a new configuration for the post-processing pipeline, modified mean intensity set point of depth AE function, etc.

●   Better depth performance achieved using customized configurations in comparison to using predefined presets

●   For well-established custom configurations

AMR with IR-Pass ●   For Gemini 336 & Gemini 336L only

●   Reduce the impact of strong light and improve the depth issues caused by high visible light reflection

●   Overall good performance in accuracy, fill rate, tiny objects, etc.

●   Autonomous Mobile Robot

D – Example Captures under Diverse Presets

Please refer to the example captures below using the diverse presets. The depth presets are evaluated and compared based on a 3D scene including a variety of object types, materials, textures, reflectivities and distances.

All images were acquired with following settings/conditions:

Ambient fluorescent lighting: 150 – 200 Lux, approximately

Depth RGB
Resolution 1280 x 800 1280 x 720
Frame Rate 30fps 30fps
Auto Exposure enabled enabled

D1 – Gemini 335 & 330 & 336

Gemini 335 & 330 & 336 3D Camera

Scene RGB Image
Scene Depth Image

@ Preset:

– Default

 

 

  • Good fill rate, most objects visible
  • Barely noise depth values
  • Edges of acceptable quality
  • Missing a significant part of the glass bottle
  • Merged fingers
Scene Depth Image

@ Preset:

– Hand

  • Outstanding edge quality for fingers and squares
  • No noise depth value
  • Significantly lower fill rate
  • Hardly visible glass bottle
Scene Depth Image

@ Preset:

– High Accuracy

  • Good edge quality for fingers and squares
  • No noise depth value
  • Slightly lower fill rate
  • Hardly visible glass bottle
Scene Depth Image

@ Preset:

– High Density

  • Clearly visible glass bottle
  • Full body of the tripod
  • Poor dege quality for fingers
  • Few noise depth values
Scene Depth Image

@ Preset:

– Medium Density

  • Good fill rate, most objects visible
  • Barely noise depth values
  • Good edge quality for fingers
  • Missing a significant part of the glass bottle
Scene Depth Image

@ Preset:

AMR with IR-Pass

 

 

  •  Good fill rate, most objects visible
  • Barely noise depth values
  • Good edge quality for fingers
  • Missing a significant part of the glass bottle

D2 – Gemini 335L & 330L & 336L

Gemini 335L & 330L & 336L 3D Camera
Scene RGB Image
Scene Depth Image

@ Preset:

– Default

 

 

  • Acceptable fill rate, most objects visible
  • Barely noise depth values
  • Edges of acceptable quality
  • Missing a significant part of the glass bottle
  • Merged fingers
Scene Depth Image

@ Preset:

– Hand

  • Outstanding edge quality for fingers
  • No noise depth value
  • Significantly lower fill rate
  • Hardly visible glass bottle
Scene Depth Image

@ Preset:

– High Accuracy

  • Good edge quality for fingers
  • No noise depth value
  • Slightly lower fill rate
  • Hardly visible glass bottle
Scene Depth Image

@ Preset:

– High Density

  • Good fill rate, most objects visible
  • Few noise depth values
  • A significant part of the glass bottle visible
  • Poor dege quality for fingers
Scene Depth Image

@ Preset:

– Medium Density

  • Good fill rate, most objects visible
  • Less noise depth values
  • Hardly visible glass bottle
  • Good edge quality for fingers
Scene Depth Image

@ Preset:

AMR with IR-Pass

 

 

  • Good fill rate, most objects visible
  • Less noise depth values
  • Hardly visible glass bottle
  • Good edge quality for fingers

 

E – Use Presets

E1 – Orbbec Viewer

Preset Default Default => High Accuracy High Accuracy
Orbbec

Viewer

In the table above, we illustrate how to switch the Depth Preset option from Default to High Accuracy. The drop box for the Depth Preset option is located at tof left of Orbbec Viewer under Device Control settings group. All depth presets available for selection are listed in the drop box and an arbitrary selection is valid if streams are all disabled. A switch between different depth presets while depth or ir streaming will lead to unexpected depth performance. This must be avoided under any conditions.

E2 – Orbbec SDK

E2A – C/C++ APIs

C++ APIs:

// header file: libobsensor\hpp\Device.hpp

/**
 * @brief Get current preset name
 * @brief The preset mean a set of parameters or configurations that can be applied to the device to achieve a specific effect or function.
 * @return const char* return the current preset name, it should be one of the preset names returned by @ref getAvailablePresetList.
 */
const char *getCurrentPresetName();

/**
 * @brief load the preset according to the preset name.
 * @attention After loading the preset, the settings in the preset will set to the device immediately. Therefore, it is recommended to re-read the device
 * settings to update the user program temporarily.
 * @param presetName The preset name to set. The name should be one of the preset names returned by @ref getAvailablePresetList.
 */
void loadPreset(const char *presetName);

C APIs:

// header file: libobsensor\Ddevice.h

/**
 * @breif Get the current preset name.
 * @brief The preset mean a set of parameters or configurations that can be applied to the device to achieve a specific effect or function.
 *
 * @param device The device object.
 * @param error  Log error messages.
 * @return  The current preset name, it should be one of the preset names returned by @ref ob_device_get_available_preset_list.
 */
const char *ob_device_get_current_preset_name(ob_device *device, ob_error **error);

/**
 * @brief Get the available preset list.
 * @attention After loading the preset, the settings in the preset will set to the device immediately. Therefore, it is recommended to re-read the device
 * settings to update the user program temporarily.
 *
 * @param device The device object.
 * @param preset_name  Log error messages. The name should be one of the preset names returned by @ref ob_device_get_available_preset_list.
 * @param error  Log error messages.
 */
void ob_device_load_preset(ob_device *device, const char *preset_name, ob_error **error);

E2B – C++ Code Sample:

// Create a Context.
ob::Context ctx;

// Query the list of connected devices
auto devList = ctx.queryDeviceList();

// Create a device, 0 means the index of the first device
auto dev = devList->getDevice(0);

// Get the current preset name
auto devicePreset     = dev->getCurrentPresetName();

// Switch the preset to “High Accuracy”
auto newPreset = “High Accuracy”;
dev->loadPreset(newPreset);

E3 – ROS  Wrapper

E3A – ROS 1

To configure the depth preset for RealSense cameras in ROS 1, update your launch file as demonstrated below. For detailed information about the available depth presets, refer to the Preset Table provided above. It is crucial to avoid switching depth presets online while streaming.

<launch>
    <!– Additional pre-existing configurations –>

    <!– Setting the depth preset for the camera –>
    <arg name=”device_preset” default=”Default”/>

    <!– Additional subsequent configurations –>
</launch>

E3B – ROS 2

For ROS 2 users, the procedure to set the depth preset involves using the DeclareLaunchArgument function within the launch file. Ensure to select the preset prior to streaming as online switches between depth presets are not recommended.

# Other pre-existing configurations…

# Setting the depth preset for the camera
DeclareLaunchArgument(‘device_preset’, default_value=’Default’),

# Additional subsequent configurations…

 

Stay updated

Be the first to learn about our new
products and updates.