Class trifinger_object_tracking::PoseDetector

class PoseDetector

Public Types

typedef std::array<std::vector<std::vector<cv::Point>>, PoseDetector::N_CAMERAS> MasksPixels
typedef std::array<std::vector<std::vector<cv::Point>>, PoseDetector::N_CAMERAS> MasksPixels

Public Functions

PoseDetector(BaseCuboidModel::ConstPtr cube_model, const std::array<trifinger_cameras::CameraParameters, N_CAMERAS> &camera_parameters)
Pose find_pose(const std::array<std::vector<FaceColor>, N_CAMERAS> &dominant_colors, const std::array<std::vector<cv::Mat>, N_CAMERAS> &masks)
std::vector<std::vector<cv::Point2f>> get_projected_points() const
std::vector<std::pair<FaceColor, std::array<unsigned int, 4>>> get_visible_faces(unsigned int camera_idx, const cv::Affine3f &cube_pose_world) const

Get corner indices of the visible faces.

Determines which faces of the object is visible to the camera and returns the corner indices of these faces.

Parameters:
  • camera_idx – Index of the camera.

  • cube_pose_worldPose of the cube in the world frame.

Returns:

For each visible face a pair of the face color and the list of the corner indices of the four corners of that face.

std::vector<std::pair<FaceColor, std::array<unsigned int, 4>>> get_visible_faces(unsigned int camera_idx) const

Get corner indices of the visible faces.

Overloaded version that used the last detected pose for the cube. Call find_pose() first, otherwise the result is undefined!

Parameters:

camera_idx – Index of the camera.

Returns:

For each visible face a pair of the face color and the list of the corner indices of the four corners of that face.

inline unsigned int get_num_misclassified_pixels() const
inline float get_segmented_pixels_ratio() const
inline float get_confidence() const
void set_pose(const Pose &pose)
PoseDetector(BaseCuboidModel::ConstPtr cube_model, const std::array<trifinger_cameras::CameraParameters, N_CAMERAS> &camera_parameters)
Pose find_pose(const std::array<std::vector<FaceColor>, N_CAMERAS> &dominant_colors, const std::array<std::vector<cv::Mat>, N_CAMERAS> &masks)
std::vector<std::vector<cv::Point2f>> get_projected_points() const
std::vector<std::pair<FaceColor, std::array<unsigned int, 4>>> get_visible_faces(unsigned int camera_idx, const cv::Affine3f &cube_pose_world) const

Get corner indices of the visible faces.

Determines which faces of the object is visible to the camera and returns the corner indices of these faces.

Parameters:
  • camera_idx – Index of the camera.

  • cube_pose_worldPose of the cube in the world frame.

Returns:

For each visible face a pair of the face color and the list of the corner indices of the four corners of that face.

std::vector<std::pair<FaceColor, std::array<unsigned int, 4>>> get_visible_faces(unsigned int camera_idx) const

Get corner indices of the visible faces.

Overloaded version that used the last detected pose for the cube. Call find_pose() first, otherwise the result is undefined!

Parameters:

camera_idx – Index of the camera.

Returns:

For each visible face a pair of the face color and the list of the corner indices of the four corners of that face.

inline unsigned int get_num_misclassified_pixels() const
inline float get_segmented_pixels_ratio() const
inline float get_confidence() const
void set_pose(const Pose &pose)

Public Static Attributes

static constexpr unsigned int N_CAMERAS = 3

Number of cameras.