feat(pose): add joint similarity visualization in skeleton drawing

This commit is contained in:
gameloader
2025-06-30 18:53:51 +08:00
parent 1d94e77557
commit 389a7fd16b
2 changed files with 94 additions and 4 deletions

View File

@@ -93,6 +93,19 @@ class PoseSimilarityAnalyzer:
final_similarity = (weighted_similarity / total_weight) * 100 if total_weight > 0 else 0
return min(max(final_similarity, 0), 100)
def calculate_joint_similarities(self, angles1, angles2):
"""计算每个关节的相似度"""
joint_similarities = {}
if not angles1 or not angles2: return joint_similarities
common_joints = set(angles1.keys()) & set(angles2.keys())
for joint in common_joints:
angle_diff = abs(angles1[joint] - angles2[joint])
similarity = math.exp(-(angle_diff ** 2) / (2 * (30 ** 2)))
joint_similarities[joint] = min(max(similarity * 100, 0), 100)
return joint_similarities
def add_similarity_score(self, score, timestamp=None):
"""Adds a similarity score to the history."""