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
+7 -2
View File
@@ -33,7 +33,12 @@ class VideoReceiver:
async def run(self) -> None:
"""持续接收视频帧并进行姿态检测、渲染和语音播报"""
logger.info("Start receiving video frames, process_every_n={}", config.video.process_every_n_frames)
log_every_n_frames = max(1, config.video.log_every_n_frames)
logger.info(
"Start receiving video frames, process_every_n={}, log_every_n={}",
config.video.process_every_n_frames,
log_every_n_frames,
)
frame_count = 0
processed_count = 0
@@ -70,7 +75,7 @@ class VideoReceiver:
display_img = last_annotated if last_annotated is not None else raw_img
show_frame(display_img)
if frame_count % 100 == 0:
if frame_count % log_every_n_frames == 0:
logger.info(
"Received {} frames, processed={}, raw_shape={}, reps={}, phase={}, feedback={}, {}",
frame_count,