estimate_point_cloud
Skill class for ai.intrinsic.estimate_point_cloud skill.
The estimate_point_cloud skill estimates the 3D point cloud of a scene using observations from at least two cameras. We recommend using the Intrinsic Plenoptic System (IPS) cameras for improved reconstruction.
The goal of this skill is to dynamically reconstruct the scene in case the digital twin does not accurately represent the real world scene. The skill also features collision avoidance with objects that are either misrepresented or entirely missing from the simulated environment.
The skill uses input images and user-defined stereo pairs to compute the scene's 3D reconstruction.
Prerequisites
Required inputs:
- capture_data : This parameter must be linked to the output of the
capture_imagesskill. This provides image data for each camera that is intended to be used for point cloud estimation. - stereo_pair_ids : A list of stereo pairs required for point cloud estimation. Each pair is defined by two cameras, where each camera specifies a camera slot id (integer value) and an optional sensor_id (integer value). The camera_slot_id refers to the ID of the camera provided via
capture_dataparameter, while the sensor_id indicates which specific sensor of that camera to use. For single-sensor cameras (e.g., Basler), the sensor_id can be omitted. For IPS cameras the sensor_ids are defined as follows:- sensor_id 1: RGB camera
- sensor_id 2: Polarized camera
- sensor_id 3: Polarized camera
- sensor_id 4: Infra-red camera
- point_cloud_service_name : the name of the service to be used for point cloud estimation. It has to be an existing service in the solution. Based on this, the algorithm will be automatically chosen. Available services for point cloud estimation can be selected from the Service Catalog.
- Min Depth and Max Depth define the depth range of the scene..
The cameras must be extrinsically calibrated w.r.t each other. This means that, if the solution is running in real world, the relative position and orientation of the cameras should match (up to the calibration accuracy) the real world position. Follow camera-to-camera calibration process for more information on how to calibrate multiple cameras.
Usage Example
- Add
capture_imagesskill for each camera you want to use for the point cloud estimation. - Link the CaptureData output of different
capture_imagesskills to the list ofCaptureDatainestimate_point_cloud. - Add one of the point cloud estimation services available from the catalog: Multi-View Point Cloud Estimator (for high performance despite slower runtime) or Point Cloud Estimator (for faster runtime with a trade-off in performance). Give an arbitrary name to the service.
- Add the name to the point_cloud_service_name parameter of the
estimate_point_cloudskill.
(Optional parameters):
image_scaledefine the scale of the images to run the algorithm. Should be in the range [0, 1]. A lower scale results in a faster estimation but can degrade performance. The default value is 1.0.point_cloud_renderingcontains additional parameters to optionally add the point cloud to the world.return_paramscontains additional parameters to optionally add return values to the skill (e.g point_cloud proto or image 3d).debug_paramscontains additional parameters to help in debug purposes. Can be used to log debug data to reproduce the results.
Parameters
capture_data
A list of capture data that can be linked to the output of capture_images skill for multiple cameras.
stereo_pair_ids
A list of stereo pair that are defined by camera slot id and (optionally) sensor_id for both the first and the second camera in the stereo pair.
point_cloud_service_name
Name of the available service that should be used for point cloud estimation.
min_depth
Minimum depth in the working volume observed by the cameras.
max_depth
Maxium depth in the working volume observed by the cameras.
[Optional] image_scale
How to scale the input images. Should be in the range [0, 1]. The smaller the scale, the faster the algorithm can run, but the accuracy could be lower. For example, for scale 0.5 all images would be downsampled by a factor of 2 (in both dimensions). Default value is 1.0.
[Otional] point_cloud_rendering
Optional parameters to render the estimated point cloud in the world.
[Otional] return_params
Optional parameters to return specific additional values (e.g point cloud proto or image3D).
[Otional] debug_params
Optional parameters to help debugging.
Error Code
The skill does not have error codes yet.