Keep with few limbs.
This commit is contained in:
@ -515,7 +515,7 @@ std::vector<std::vector<std::array<float, 4>>> TriangulatorInternal::triangulate
|
||||
// Run post-processing steps
|
||||
std::vector<cv::Mat> final_poses_3d = all_merged_poses;
|
||||
add_extra_joints(final_poses_3d, joint_names);
|
||||
filter_poses(final_poses_3d, roomparams, core_joint_idx, core_limbs_idx, true);
|
||||
filter_poses(final_poses_3d, roomparams, core_joint_idx, core_limbs_idx);
|
||||
add_missing_joints(final_poses_3d, joint_names);
|
||||
last_poses_3d = final_poses_3d;
|
||||
|
||||
@ -1492,8 +1492,7 @@ void TriangulatorInternal::filter_poses(
|
||||
std::vector<cv::Mat> &poses,
|
||||
const std::array<std::array<float, 3>, 2> &roomparams,
|
||||
const std::vector<size_t> &core_joint_idx,
|
||||
const std::vector<std::array<size_t, 2>> &core_limbs_idx,
|
||||
bool drop_few_limbs = true)
|
||||
const std::vector<std::array<size_t, 2>> &core_limbs_idx)
|
||||
{
|
||||
const float min_score = 0.1;
|
||||
std::vector<int> drop_indices;
|
||||
@ -1608,30 +1607,6 @@ void TriangulatorInternal::filter_poses(
|
||||
continue;
|
||||
}
|
||||
|
||||
if (drop_few_limbs)
|
||||
{
|
||||
// Drop poses with less than 3 valid limbs
|
||||
size_t found_limbs = 0;
|
||||
for (size_t j = 0; j < core_limbs_idx.size(); ++j)
|
||||
{
|
||||
size_t start_idx = core_joint_idx[core_limbs_idx[j][0]];
|
||||
size_t end_idx = core_joint_idx[core_limbs_idx[j][1]];
|
||||
|
||||
float *joint_start_ptr = pose.ptr<float>(start_idx);
|
||||
float *joint_end_ptr = pose.ptr<float>(end_idx);
|
||||
|
||||
if (joint_start_ptr[3] > min_score && joint_end_ptr[3] > min_score)
|
||||
{
|
||||
found_limbs++;
|
||||
}
|
||||
}
|
||||
if (found_limbs < 3)
|
||||
{
|
||||
drop_indices.push_back(i);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate total limb length and average limb length
|
||||
const float max_avg_length = 0.5f;
|
||||
const float min_avg_length = 0.1f;
|
||||
|
||||
Reference in New Issue
Block a user