Settings Selector based on Capture Speed

This section provides detailed guidance on the best camera settings based on your time budget from when you trigger an acquisition until you get the point cloud. Here we also consider your PC specs because data transfer and point cloud processing depend on that as well. We address settings for 3D captures to get good point clouds and 2D captures to get good color images.

You have determined which Zivid camera to use for your Piece Picking application, and you have mounted it and positioned it correctly. The next step is to select the camera settings that meet your cycle time requirements, given your PC specs. If you haven’t got a PC yet, then this section is also about finding the PC specs that will meet your capture time requirements in combination with the settings used.

3D settings

We have split the Piece Picking application into two categories based on scene complexity. For each category, we specify and recommend settings that meet the given imaging requirements and capture speed requirements.

Consumer Goods

If your scene does not consist of very bright, shiny, and dark objects, you can save significant cycle time by choosing Fast settings for Piece Picking. The Fast settings cover a narrower dynamic range but provide faster captures. Here is an example of a scene where Fast settings work well. As you can see, there are no items that cause strong direct reflections, highlights and saturation, and there are no very dark items.

Consumer Goods scene - Fast settings

Note

If there are no bright, shiny, and dark items in your scene, choose Fast settings.

With Quality settings for Consumer Goods, the camera covers a reasonably wide dynamic range, providing good point clouds for a large variety of objects. The scene can, in this case, include anything from bright and reflective plastic-wrapped objects and items in poly bags to dark absorptive material. The image below depicts a typical complex Consumer Goods scene that requires Quality settings.

Note

If you want to be sure that the camera will not miss seeing anything, choose Quality settings.

Settings Selector Table

The following table represents a settings selector tool based on the required capture time budget. The same table indicates the performance and thus the cost of a PC that can meet your capture speed requirements. Check out Recommended Industrial PCs to see examples of High-End, Mid-End, and Low-End configurations.

Application

Capture Time (2D + 3D)

Camera Settings

High-End PC

Mid-End PC

Low-End PC

Consumer Goods (Quality)

~1000 ms

~1250 ms

~1500 ms

Z2+ M130 Quality

Z2+ M60 Quality

Z2+ L110 Quality

Z2 M70 Quality

Z2 L100 Quality

Consumer Goods (Fast)

~500 ms

~750 ms

~1000 ms

Z2+ M130 Fast

Z2+ M60 Fast

Z2+ L110 Fast

Z2 M70 Fast

Z2 L100 Fast

To download the desired settings file, connect to the camera (your specific model) in Zivid Studio, select the preset settings, turn on Ambient Light Adaption, and export the settings. The capture time with settings adapted for ambient light frequency might be longer.

To download the desired settings file, connect to the camera (your specific model) in Zivid Studio, select the preset settings, turn on Ambient Light Adaption, and export the settings. The capture time with settings adapted for ambient light frequency might be longer.

Note

If you plan to take a separate 2D capture, then you can disable color in your 3D capture by setting Sampling::Color to disabled to save capture time. The color in the preset settings is enabled by default.

To demonstrate reaching the above requirements for piece picking we continuously run benchmark capture programs with our cameras on various PCs. The following table shows the results.

Parcel Picking

Parcel is also split into two settings depending on scene complexity and capture time.

Parcels Fast (Zivid 2+) / Matte (Zivid 2) settings are designed to achieve the shortest cycle times. These settings have a limited dynamic range but are good enough for objects that are relatively straightforward for imaging, for example:

  • cardboard boxes

  • white envelopes

  • bright poly bags

Note

If you image only boxes, parcels, satchels, etc., choose Parcels Fast (Zivid 2+) / Matte (Zivid 2) settings.

Tip

Try increasing the exposure time for more data coverage on dark specular objects or switch to Parcels Quality (Zivid 2+) / Reflective (Zivid 2) presets.

For more challenging scenes, you should try out Parcels Quality (Zivid 2+) / Reflective (Zivid 2) settings. These settings have larger dynamic range and are capable of getting good surface coverage on objects such as:

  • black poly bags

  • dark plastic bags

  • dark plastic wrap

Tip

To reduce capture time, switch the engine from Omni to Stripe; note that you may get less coverage on black parcels.

Settings Selector Table

If you experience artifacts in the form of ripples/waves across the whole point cloud, choose 50/60 Hz to select presets adapted to the ambient light (grid) frequency. If the ambient light is unproblematic, select Off for optimal performance.

Application

Capture Time (2D + 3D)

Camera Settings

High-End PC

Mid-End PC

Low-End PC

Parcels (Quality/Reflective)

~400 ms

~600 ms

~800 ms

Z2+ M130 Quality

Z2+ L110 Quality

Z2 M70 Reflective

Z2 L100 Reflective

Parcels (Fast/Matte)

~200 ms

~350 ms

~500 ms

Z2+ M130 Fast

Z2+ L110 Fast

Z2 M70 Matte

Z2 L100 Matte

To download the desired settings file, connect to the camera (your specific model) in Zivid Studio, select the preset settings, turn on Ambient Light Adaption, and export the settings. The capture time with settings adapted for ambient light frequency might be longer.

To download the desired settings file, connect to the camera (your specific model) in Zivid Studio, select the preset settings, turn on Ambient Light Adaption, and export the settings. The capture time with settings adapted for ambient light frequency might be longer.

Note

If you plan to take a separate 2D capture, we recommend disabling color in your 3D capture by setting Sampling::Color to disabled. This will reduce the capture time. The color in the preset settings is enabled by default.

To demonstrate reaching the above requirements for parcels we continuously run benchmark capture programs with our cameras on various PCs. The following table shows the results.

Testing 3D Settings

We can use Zivid Studio to test 3D settings.

To import the settings in Zivid Studio:

  • Click on FileImport Capture Settings

  • Navigate to the location of your settings file

  • Click Open

Tip

Drag and drop a YML file to import the settings to Zivid Studio - added in Zivid SDK 2.5.

Settings can be loaded using the Zivid SDK as well.

Go to source

source

std::cout << "Loading settings from file" << std::endl;
const auto settingsFile =
    std::string(ZIVID_SAMPLE_DATA_DIR) + "/Settings/" + settingsFolder(camera) + "/Settings01.yml";
const auto settings = Zivid::Settings(settingsFile);
Go to source

source

Console.WriteLine("Loading settings from file");
var settingsFile = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
                   + "/Zivid/Settings/" + SettingsFolder(camera) + "/Settings01.yml";
var settings = new Zivid.NET.Settings(settingsFile);
Go to source

source

print("Loading settings from file")
settings_file = Path(user_options.settings_path)
settings = zivid.Settings.load(settings_file)

2D settings

Although you get color images through 3D captures, they may not be adequate for your 2D application due to the light from the projector of the camera. You can read more about this in 2D + 3D Capture Strategy. We provide two options for acquiring 2D settings for your Piece Picking application:

  • Get 2D settings automatically using the Zivid calibration board with a code sample

  • Use a look-up table and find your appropriate 2D settings

  • Manually tune 2D settings

Automatic 2D settings

Run the auto_2d_settings.py sample to automatically find the acquisition settings and color balance for a 2D capture using a Zivid calibration board. Place the calibration board at either the top or bottom of the bin and run the sample by specifying the calibration board location and the desired focus range (bin height) as command line arguments. If you, for example, place the calibration board at the bin top and the bin height is 400 mm, run the sample as:

python auto_2d_settings.py --desired-focus-range 400 --checkerboard-at-start-of-range

If you place the calibration board at the bin bottom, run:

python auto_2d_settings.py --desired-focus-range 400 --checkerboard-at-end-of-range

This sample does not use the internal projector when finding 2D settings by default, but this can be set by the optional argument --use-projector. Additionally, you can choose to not balance colors by the optional argument --no-color-balance. Since the sample calibrates with the ambient light in the scene you should use similar lighting conditions as in your actual application.

Settings Selector Table

The table below is a settings selector tool for 2D settings based on the illuminance at the bottom of the bin and the distance to the bin top. These 2D settings assume not using the internal projector as the light source, only the external light source.

To use the table, first determine the illuminance at the bottom of the bin given the expected lighting conditions. Then, choose the settings based on the distance from the camera to the bin top.

Note

Illuminance, measured in lux (lx), is the total luminous power incident on a surface per unit area. Luminous power, measured in lumen (lm), is a measure of the total quantity of visible light emitted by a source per unit of time.

lux measurement

Tip

You can roughly measure the illuminance in the scene with a light meter app for Android or Apple; for an accurate measurement, you need a Light / Lux Meter.

At bin bottom

To bin top

600 mm

800 mm

1100 mm

1400 mm

1700 mm

1900 mm

~300 lx

Zivid Two M70

Zivid Two M70

Zivid Two L100

Zivid 2 Plus M130

Zivid 2 Plus M130

Zivid 2 Plus M130

Zivid Two L100

Zivid 2 Plus M130

Zivid 2 Plus L110

Zivid 2 Plus M130

Zivid 2 Plus L110

Zivid 2 Plus L110

~1000 lx

Zivid Two M70

Zivid Two M70

Zivid Two L100

Zivid 2 Plus M130

Zivid 2 Plus M130

Zivid 2 Plus M130

Zivid Two L100

Zivid 2 Plus M130

Zivid 2 Plus L110

Zivid 2 Plus M130

Zivid 2 Plus L110

Zivid 2 Plus L110

Tip

To benchmark 3D and/or 2D settings on your PC, you can run ZividBenchmark.cpp sample with settings loaded from YML files. Go to Samples, and select C++ for instructions.

Below we show 2D benchmark captures with our cameras on various PCs.

Manually tune 2D settings

If automatic tuning or the look-up table does not provide sufficient 2D quality, you can manually tune the color settings by adjusting the color balance and gamma parameters. Gamma correction can be used to either darken or brighten the image. The color channel parameters makes the color image look more natural. We recommend using our projector as a flash when capturing 2D images. IN this case, you do not need to adjust the color balance. If you choose to capture without the projector, you need to re-tune the white balance. We explain how to do this in Color Balance article.

For an in-depth tutorial on how to optimize for colors, see Optimizing Color Image.

Testing 2D Settings

To test 2D settings, you can either use the 2D capture mode in Zivid Studio or run our code sample.

To import the settings in Zivid Studio:

  • Click on FileImport Capture Settings

  • Navigate to the location of your settings file

  • Click Open

Tip

Drag and drop a YML file to import the settings to Zivid Studio - added in Zivid SDK 2.5.

Settings can be loaded using the Zivid SDK as well.

Using our code sample, you can provide the path to the 2D acquisition settings YML file as an argument.

python capture_2d_with_settings_from_yml.py <path-to-2d-settings.yml>

The sample load the 2D settings, capture an image, displays it, and saves it.

Go to source

source

user_options = _options()
camera = app.connect_camera()
settings_2d = zivid.Settings2D.load(user_options.path)
with camera.capture(settings_2d) as frame_2d:
    image = frame_2d.image_rgba()
    rgba = image.copy_data()
    display_rgb(rgba[:, :, 0:3], title="RGB image", block=True)
    image_file = "Image.png"
    print(f"Saving 2D color image to file: {image_file}")
    image.save(image_file)

Note

We have tested the 3D and 2D settings we recommend for the above typical scenes in low (~300 lx) and high (~1000 lx) ambient light conditions. This we have done for the range of distances that we specify in the Camera Selector section, and all with various items in the scene. Therefore, we are confident that these settings will work the majority of scenes that fit into these categories. However, if you know exactly what items you expect in your scene and you are an expert camera user, you can manually configure settings to optimize them for your case. Check out Capturing High Quality Point Clouds to learn how to do that.

In the next section, we cover Optimizing Robot Cycle Times for speed by making use of multithreading.