Detection3DSettings< OBJECT_FIT_METHOD::LINE_FIT_LONG_AXIS >

3D detection

The object pose is computed based on a line fit of all points that lie inside the roiPercentage of the detected object. The line is fit such that it projects onto a line from the center top to the center bottom points of the 2D object detection result. The objects coordinate system is positioned in the center, where x points to the right of the object (width direction), y points to the top of the object (height direction) and z is the object surface normal. This detection method should be used when the object has a very high / very low aspect ratio since the plane detection algorithms would then be unstable (i.e. rotation around long axis).

Member Functions

virtual OBJECT_FIT_METHOD type() const override

JSON Type: string +Requirement: Must be OBJECT_FIT_METHOD::LINE_FIT_LONG_AXIS. Type of the 3D detection.

Member Variables

maxNumObjects

std::optional< int >, default: {100} JSON Type: (optional) int UNIMPLEMENTED +Requirement: Must be greater than zero. Maximum number of objects that should be computed in the 3D detection pipeline.

[[-2]] roiPercentage:: float, default: \{0.8f\} JSON Type: float +Requirement: Must be greater than zero. Dilate 2D object detection results by this factor. The resulting area is used to determine all points that are considered for the geometric fit.

[[-3]] minNumPoints:: int, default: {50} JSON Type: (optional) int +Requirement: Must be greater than zero. Minimum number of points required for the geometric fit.

[[-4]] centerStrategy:: CENTER_STRATEGY, default: \{CENTER_STRATEGY::REPROJECT_2D_CENTER\} JSON Type: (optional) string +Requirement: Must be a CENTER_STRATEGY. Type of the 3D center estimation strategy.

[[-5]] sizeStrategy:: SIZE_STRATEGY, default: \{SIZE_STRATEGY::REPROJECT_2D_DETECTION\} JSON Type: (optional) string +Requirement: Must be a SIZE_STRATEGY. Type of the 3D object size estimation strategy.

[[-6]] useKdeCorrection:: bool, default: {false} JSON Type: (optional) bool DEPRECATED: see shiftCorrection

[[-7]] shiftCorrection:: SHIFT_CORRECTION, default: \{SHIFT_CORRECTION::NONE\} JSON Type: (optional) string +Requirement: Must be a SHIFT_CORRECTION. Correct the detected object by shifts in teh direction specified in shiftReference

[[-8]] kdeAllowedShiftRange:: std::array< float, 2 >, default: \{0, 0.1\}

[[-9]] kdeShiftCorrectionFallback:: float, default: \{0.0\} If shift correction fails(i.e. outside of kdeAllowedShiftRange), shift correction will fallback to this value. Requirement: Must >= 0

[[-10]] shiftCorrectionPercentage:: float, default: \{1.0\} JSON Type: (optional) float +Requirement: Must be a within [0, 1]. While doing a shift correction, the only the x farthest/closest percent of the pointcloud will be considered (depending on the shift correction settings: CLOSEST/FARTHEST). This makes the shifting process less sensitive to outliers.

[[-11]] shiftReference:: SHIFT_REFERENCE, default: \{SHIFT_REFERENCE::OBJECT_NORMAL\} JSON Type: (optional) string +Requirement: Must be a SHIFT_REFERENCE. Set he direction detected objects are to be shifted in.

[[-12]] shortAxisAlignment:: AXIS_ALIGNMENT, default: \{AXIS_ALIGNMENT::FROM_FIT_METHOD\} JSON Type: (optional) string +Requirement: Must be a AXIS_ALIGNMENT. Aligning short axis of the detected object by the camera position.

[[-13]] longAxisAlignment:: AXIS_ALIGNMENT, default: \{AXIS_ALIGNMENT::FROM_FIT_METHOD\} JSON Type: (optional) string +Requirement: Must be a AXIS_ALIGNMENT. Aligning long axis of the detected object by the camera position.

Enumerations

Table 1. OBJECT_FIT_METHOD
Value Description

PLANE_FIT

See Detection3DSettings<OBJECT_FIT_METHOD::PLANE_FIT>.

RANSAC_PLANE_FIT

See Detection3DSettings<OBJECT_FIT_METHOD::RANSAC_PLANE_FIT>.

MIXED_PLANE_FIT

See Detection3DSettings<OBJECT_FIT_METHOD::MIXED_PLANE_FIT>.

LINE_FIT_LONG_AXIS

See Detection3DSettings<OBJECT_FIT_METHOD::LINE_FIT_LONG_AXIS>.

GRIP_FROM_ENVIRONMENT

See Detection3DSettings<OBJECT_FIT_METHOD::GRIP_FROM_ENVIRONMENT>.

RANSAC_CYLINDER_FIT

See Detection3DSettings<OBJECT_FIT_METHOD::RANSAC_CYLINDER_FIT>.

OBJECT_MATCHING

See Detection3DSettings<OBJECT_FIT_METHOD::OBJECT_MATCHING>.

OBJECT_REFINEMENT

See Detection3DSettings<OBJECT_FIT_METHOD::OBJECT_REFINEMENT>.

Table 2. SIZE_STRATEGY
Value Description

REPROJECT_2D_DETECTION

Determine the size of the 3D object by reprojecting all centers of the 2D oriented bounding box sides into the object plane.

FROM_3D_POINTS

Determine the size of the 3D object from the 3D bounding box of all points that that lie inside the roiPercentage of the detected object.

Table 3. CENTER_STRATEGY
Value Description

REPROJECT_2D_CENTER

The 3D object center is determined by reprojecting the oriented bounding box center onto the object plane.

REPROJECT_2D_DETECTION

DEPRECATED! The 3D object center is determined by reprojecting the centers of all sides of the oriented bounding box onto the object plane. The average of all projected points defines the center point.

FROM_3D_BBOX

The 3D object center is chosen as the center of the topmost xy-plane of the computed 3D bounding box.

Table 4. SHIFT_CORRECTION
Value Description

NONE

Do not shift the object.

KDE

This feature shifts a detected object plane in the direction of its normal to the first echo. Consider the case when an object has holes and the camera observes points that lie under the object. Then a RANSAC_PLANE_FIT should be used to robustly detect one of the planes (either top or parallel one below). The kde correction then shifts the detected plane to the top.

CLOSEST

Shift the object along its normal direction such that it has the same height as the top-most point (i.e. closest to camera) of the subset of points used for the fit.

FARTHEST

Shift the object along its normal direction such that it has the same height as the bottom-most point (i.e. furthest to camera) of the subset of points used for the fit.

Table 5. SHIFT_REFERENCE
Value Description

OBJECT_NORMAL

Shift objects along object normal

OBJECT_RAY

Shift objects along the connection line between object and origin (camera position)

Table 6. AXIS_ALIGNMENT
Value Description

TO_CAMERA_AXIS

Align the indicated axis towards the camera axis

TO_CAMERA_PLANE

Align the indicated axis towards the camera plane

FROM_FIT_METHOD

Do not change axis alignments