Make triangulation a zero-copy pure function
This commit is contained in:
+22
-7
@@ -69,13 +69,13 @@ def test_camera_structure_repr():
|
||||
)
|
||||
def test_triangulate_samples(camera_path: str, pose_path: str, roomparams):
|
||||
poses_2d, person_counts, cameras = load_case(camera_path, pose_path)
|
||||
triangulator = rpt.Triangulator(min_match_score=0.95)
|
||||
poses_3d = triangulator.triangulate_poses(
|
||||
poses_3d = rpt.triangulate_poses(
|
||||
poses_2d,
|
||||
person_counts,
|
||||
cameras,
|
||||
np.asarray(roomparams, dtype=np.float32),
|
||||
JOINT_NAMES,
|
||||
min_match_score=0.95,
|
||||
)
|
||||
|
||||
assert isinstance(poses_3d, np.ndarray)
|
||||
@@ -86,18 +86,33 @@ def test_triangulate_samples(camera_path: str, pose_path: str, roomparams):
|
||||
assert np.isfinite(poses_3d).all()
|
||||
|
||||
|
||||
def test_triangulate_repeatability_after_reset():
|
||||
def test_triangulate_repeatability():
|
||||
poses_2d, person_counts, cameras = load_case("data/p1/sample.json", "tests/poses_p1.json")
|
||||
roomparams = np.asarray([[5.6, 6.4, 2.4], [0.0, -0.5, 1.2]], dtype=np.float32)
|
||||
triangulator = rpt.Triangulator(min_match_score=0.95)
|
||||
|
||||
first = triangulator.triangulate_poses(poses_2d, person_counts, cameras, roomparams, JOINT_NAMES)
|
||||
triangulator.reset()
|
||||
second = triangulator.triangulate_poses(poses_2d, person_counts, cameras, roomparams, JOINT_NAMES)
|
||||
first = rpt.triangulate_poses(
|
||||
poses_2d, person_counts, cameras, roomparams, JOINT_NAMES, min_match_score=0.95
|
||||
)
|
||||
second = rpt.triangulate_poses(
|
||||
poses_2d, person_counts, cameras, roomparams, JOINT_NAMES, min_match_score=0.95
|
||||
)
|
||||
|
||||
np.testing.assert_allclose(first, second, rtol=1e-5, atol=1e-5)
|
||||
|
||||
|
||||
def test_triangulate_does_not_mutate_inputs():
|
||||
poses_2d, person_counts, cameras = load_case("data/h1/sample.json", "tests/poses_h1.json")
|
||||
roomparams = np.asarray([[4.8, 6.0, 2.0], [0.0, 0.0, 1.0]], dtype=np.float32)
|
||||
|
||||
poses_before = poses_2d.copy()
|
||||
counts_before = person_counts.copy()
|
||||
|
||||
rpt.triangulate_poses(poses_2d, person_counts, cameras, roomparams, JOINT_NAMES)
|
||||
|
||||
np.testing.assert_array_equal(poses_2d, poses_before)
|
||||
np.testing.assert_array_equal(person_counts, counts_before)
|
||||
|
||||
|
||||
def test_pack_poses_2d_from_ragged_inputs():
|
||||
packed, counts = rpt.pack_poses_2d(
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user