跳到主要内容
🤖AI-generated documentation curatedAI Generated
This page was drafted by an AI assistant and may contain inaccuracies. This content has been reviewed by a human curator.
About content generation types
🤖
AI GeneratedPage drafted entirely by AI from codebase or prompt instructions.
(e.g., docs generated from codebase analysis)
← this page
✋→🤖
AI TransformattedHuman provided raw material; AI restructured it into a different format.
(e.g., livestream → blog post, meeting notes → docs)
Human GeneratedPage written entirely by a human author.
(e.g., hand-written tutorial)
More info about content generation types ↗

设计理念

这些原则与更广泛的 FreeMoCap 项目理念共通——研究级工具应当免费提供并让所有人都能使用。

通用设计

SkellyCam 应该同时适用于没有技术背景的 13 岁少年和运行多摄像头动作捕捉实验室的研究人员。相同的工具、相同的界面、相同的文档——只是不同的深度层次。

这意味着:

  • 为常见路径提供大而友好的按钮:检测摄像头、录制、回放。无需任何先验知识。
  • 为专家提供精细控制:编解码器选择、曝光调节、自定义录制目录、直接 API 访问。
  • 没有任何功能在基本使用层面要求技术专长,但应该回报专业知识以获得额外能力。

渐进式披露

信息和复杂性分层展示,而非一次全部呈现。默认体验简单易用。详细信息按需提供给有需要的人。

在实践中,这意味着:

  • 在界面中 — 主要控制始终可见。高级设置位于可展开面板后。技术细节位于可折叠部分后。
  • 在文档中 — 每个页面以实用的"如何使用"内容开头。技术深度在可折叠的 <details> 块中提供。每个披露树的底部链接到外部资源(维基百科、教程等),让想要继续学习的用户有前进的路径。
  • 在 API 中 — 一切都有合理的默认值。您可以通过单个 POST 请求开始录制。自定义配置可用但从不强制要求。

易用性优于复杂性

当在更"正确"的技术实现和更容易理解的实现之间选择时,优先选择更容易理解的——除非正确性对安全、数据完整性或科学准确性而言是必需的。

摄像头作为科学仪器

摄像头从特定区域在特定时间捕获光线——它是一种时空测量仪器。图像定义了数据的空间方面,保真度由摄像头传感器、镜头、环境和设置决定。时间戳定义了时间方面。在 FreeMoCap 流水线中,提取量化的 2D 空间信息(如骨骼关节位置)由 skellytracker 处理。SkellyCam 的重点是时间维度:确保多摄像头帧在时间上精确同步。

大多数研究级多摄像头系统使用硬件触发器——一个同时触发所有摄像头传感器的外部信号。这提供了近乎完美的同步,但需要昂贵的专用摄像头。SkellyCam 旨在通过软件端控制廉价消费级 USB 摄像头来提供研究级同步——使同步多摄像头捕获无需专有硬件即可实现。

这一框架——将摄像头视为经验测量仪器——影响了 SkellyCam 中每一个重要的设计决策,从帧计数门控捕获协议到详细的时间戳管道。

热循环、硬循环和软循环

SkellyCam 的架构将操作分为三个类别,这些类别驱动技术决策和开发治理:

  • 热循环 — 时间关键的操作,任何延迟都会直接降低时间保真度。摄像头捕获循环、帧同步门控和共享内存写入。这些在隔离进程中运行,具有最少的依赖。
  • 硬循环 — 正确性关键的操作,计算必须正确,但时间灵活。时间戳计算、录制完成、跨摄像头统计。性能对于一般可用性显然很重要,但我们在这里乐于以速度换取准确性和鲁棒性。
  • 软循环 — 尽力而为的操作,短期内可以接受一些弹性和偏差。界面渲染、WebSocket 流媒体、日志转发都是软循环的例子。如果前端延迟,帧会从流中丢弃——但录制永远不会受到影响。

这种分类也驱动开发治理:涉及热/硬循环的贡献比仅涉及软循环的贡献受到更高的审查。完整的技术处理请参阅架构页面。

开源、开放科学

SkellyCam 是自由开源软件,作为 FreeMoCap 基金会使命的一部分在公开环境中开发,旨在让研究级动作捕捉对所有人可及。我们随时欢迎贡献、问题和反馈。