feat(pose): add joint similarity visualization in skeleton drawing
This commit is contained in:
@@ -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."""
|
||||
|
||||
Reference in New Issue
Block a user