feat(exercise): 优化死虫式训练姿态检测算法

- 调整视频处理频率从每帧处理改为每2帧处理
- 添加膝角趋势平滑算法减少单帧抖动误判
- 改进对角伸展检测逻辑支持准备位手臂上举
- 优化状态机确保严格回到准备姿态才计数
- 添加姿态丢失时的候选帧清理机制
- 更新音频文件生成路径至resources目录
- 改进macOS音频生成使用AIFF格式提高质量
- 添加详细的帧处理日志输出间隔配置
This commit is contained in:
2026-06-10 22:57:35 +08:00
parent ea0c007441
commit 6dee2a2ff3
9 changed files with 281 additions and 39 deletions
+3 -3
View File
@@ -9,7 +9,7 @@ def has_required_visibility(landmarks: list[Point], required_indices: tuple[int,
def detect_diagonal_extension(metrics: DeadBugMetrics) -> str | None:
"""检测是否存在对角伸展(左臂+右腿 或 右臂+左腿"""
"""检测对角伸展(腿部只允许单侧伸展,手臂允许准备位上举带来的识别重叠"""
if metrics.left_leg_extended and metrics.right_leg_extended:
return None
@@ -21,7 +21,7 @@ def detect_diagonal_extension(metrics: DeadBugMetrics) -> str | None:
def is_ready_position(metrics: DeadBugMetrics) -> bool:
"""判断是否处于准备姿态(膝弯曲且四肢未伸展)"""
"""判断是否处于准备姿态(膝弯曲且双腿未伸展dead bug 准备位允许手臂上举"""
knees_bent = metrics.left_knee_angle <= 140 and metrics.right_knee_angle <= 140
legs_not_extended = not metrics.left_leg_extended and not metrics.right_leg_extended
return knees_bent and legs_not_extended and detect_diagonal_extension(metrics) is None
return knees_bent and legs_not_extended