1
0
forked from HQU-gxy/CVTH3PE

feat: Enhance play notebook with new data structures and visualization utilities

- Added new TypedDict classes for camera parameters, including Resolution, Intrinsic, and Extrinsic.
- Updated dataset reading logic to accommodate new camera parameters structure.
- Introduced functions for reading datasets by port and visualizing whole body keypoints.
- Improved the affinity matrix calculation logic in the camera module.
- Updated dependencies in pyproject.toml to include Plotly and SciPy for enhanced functionality.
This commit is contained in:
2025-04-16 18:53:05 +08:00
parent 3f32333de4
commit 3cc93e5eae
8 changed files with 1394 additions and 80 deletions

View File

@ -350,7 +350,7 @@ def calculate_affinity_matrix_by_epipolar_constraint(
else:
camera_wise_split = classify_by_camera(detections)
num_entries = sum(len(entries) for entries in camera_wise_split.values())
affinity_matrix = jnp.zeros((num_entries, num_entries), dtype=jnp.float32)
affinity_matrix = jnp.ones((num_entries, num_entries), dtype=jnp.float32) * -jnp.inf
affinity_matrix_mask = jnp.zeros((num_entries, num_entries), dtype=jnp.bool_)
acc = 0
@ -361,7 +361,7 @@ def calculate_affinity_matrix_by_epipolar_constraint(
sorted_detections: list[Detection] = []
for camera_id, entries in camera_wise_split.items():
for i, _ in enumerate(entries):
camera_id_index_map[camera_id].add(acc + i)
camera_id_index_map[camera_id].add(acc)
sorted_detections.append(entries[i])
acc += 1
camera_id_index_map_inverse[camera_id] = (
@ -374,6 +374,8 @@ def calculate_affinity_matrix_by_epipolar_constraint(
for i, det in enumerate(sorted_detections):
other_indices = camera_id_index_map_inverse[det.camera.id]
for j in other_indices:
if i == j:
continue
if affinity_matrix_mask[i, j] or affinity_matrix_mask[j, i]:
continue
a = compute_affinity_epipolar_constraint_with_pairs(