如果你对影视、动画或者游戏有一定关注,相信你一定听说过“动作捕捉”。事实上,无论是屏幕中的战场,还是真实的军事领域,从2K游戏中的虚拟球员,到医疗、康复、运动领域的专业研究;从机器人/无人机的研发设计,到海底隧道的测量工作;科研、工业、教育、娱乐、军事等各个领域中,光学动作捕捉都在提供无比精准的数据支持。那么问题来了,一套光学动作捕捉系统是如何工作的呢?

一套光学动作捕捉系统由红外动作捕捉镜头、反光标识点、POE连接器、动作捕捉软件和若干配件组成(如标定工具和镜头云台等)。其工作原理是:通过镜头发射红外线,红外线照射到标识点上会被反射,镜头上的感应矩阵可接收到反射回来的红外线,两个镜头同时工作,就可以确定标识点在三维空间内的坐标;大量坐标数据通过POE连接器传输给动作捕捉软件,便可以解算出目标在空间中的位置、方向和运动轨迹等信息,实现对目标的追踪。

下面我们会探索光学动作捕捉系统的具体工作流程,以及它是如何在不同领域的应用中发挥作用的。

校准

虽然理论上两个镜头就可以确定目标在三维空间中的坐标,但在实际应用中,目标身上的部分标记点有被遮挡住的可能,因此一套光学动作捕捉系统会配备多个镜头。校准的过程就是使用标定工具,让动作捕捉软件计算出镜头的准确空间位置和角度,建立三维空间坐标(XYZ轴),为精确的动作捕捉做好准备。

NOKOV度量光学三维动作捕捉系统在校准时使用的标定工具,通过L型标定工具确定空间中的X、Y、Z三个坐标轴的方向和原点位置

采集和跟踪

在光学动作捕捉系统中,每个红外动作捕捉镜头上都有红外(长波)发射器,镜头会发射出红外光;被捕捉的目标上附着了能够反射红外光线的标识点(Marker),标识点反射的红外光会被多个镜头上的感应器矩阵接收。

NOKOV度量光学三维动作捕捉系统在工作状态时,高性能红外动作捕捉镜头会发射红外光线。

不同位置的镜头采集到标识点的位置后,就可以计算出这个点在空间中的三维坐标,通过这种原理,动作捕捉系统可以同时采集到目标上多个标识点的一系列三维坐标。

动作捕捉的主要目的是跟踪并还原目标的运动信息,在一段时间轴上,多个镜头持续采集标记点的位置,就可以跟踪到标记点的运动轨迹和动作信息。

在采集过程中,动作捕捉镜头的分辨率和频率非常重要,这直接决定了动作捕捉的精度。无论是娱乐产业,还是科研、工业、军事等领域,对动作捕捉的精度要求都非常严格。目前,世界顶级的动作捕捉镜头的分辨率可达1200万像素,频率可达340Hz,精度可以达到亚毫米级。

反光标识点是动作捕捉中应用最广的传感器,因为它轻便、小巧、成本低,不易损坏,无论捕捉目标是演员、动物、无人机、机器人,还是残障病患、职业运动员,这种标识点都不会对目标的动作造成干扰,从而达到最真实、精准的动作捕捉。

识别目标

在光学动作捕捉系统完成采集和跟踪后,还有一项重要的任务:识别。

无论动作捕捉的目标是表演者、机器人/无人机、还是船舶、车辆模型,都需要分析出各个标识点之间的相互位置关系。因此,在动作捕捉系统第一次工作时,系统需要为每个标识点编码,从而建立目标整体的参考模板(比如目标是人,这个模板就是人的骨骼模型),之后,动作捕捉系统就会根据这个模板完成识别工作。

NOKOV度量光学三维动作捕捉系统用于步态分析测试实验,系统将目标身上的各个标识点建立成整体的腿部模型

实时数据传输/二次处理

光学动作捕捉在众多动作采集、追踪的解决方案中,最显著的优势其一是精准性,其二便是实时性。而实时输出可用数据,也是光学动作捕捉工作的最后一个环节。

例如NOKOV度量光学三维动作捕捉系统在获取目标的位置、方向、关节6自由度等数据后,其动作捕捉软件通过编写底层代码,可实时生成SDK广播,并向多种第三方软件传输,其同步误差达到亚毫秒级,从而帮助使用者实现对目标的实时监测、定位、追踪、测量或渲染。

通过动作捕捉系统对无人机的姿态进行实时监测

更多相关案例及动作捕捉资讯,请关注服务号【NOKOV度量动作捕捉】

NOKOV度量光学动作捕捉系统工作流程的更多相关文章

  1. 光学动作捕捉系统中的反光标识点(Marker点)

    动作捕捉系统本质上是一种定位系统,通常需要在目标物布置定位设备进行追踪.以红外光学为原理的动作捕捉系统,主要由由光学镜头.动作捕捉软件.反光标识点.POE交换机.和若干配件组成,其中反光标识点(Mar ...

  2. VUP虚拟直播与光学动作捕捉技术

    虚拟直播将虚拟场景.虚拟形象实时显示在观众面前,虚拟场景与人物替代了原有的耗费较大搭建成本的实景场景与真人出镜,为观众带来全新的视觉体验,同时新技术降低了原有场景搭建成本,是近些年继AI.VR.动作捕 ...

  3. 光荣与梦想 | XMove动作捕捉系统(一)

    XMove是我和几个死党从2010年开始开发的一套人体动作捕捉系统,软硬件全部自行开发,投入了大量的精力,历经三年,发展四个版本. 今年春节回到老家,翻出了2011年春节时焊电路用过的松香和和硬盘角落 ...

  4. 真人动作捕捉系统 for Unity

    真人动作捕捉 在Asset Store中浏览Mecanim相关的资源时,发现了这个 资源信息 Asset Store:https://www.assetstore.unity3d.com/#/cont ...

  5. Kafka(分布式发布-订阅消息系统)工作流程说明

    Kafka系统架构Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和 ...

  6. 短期连载 第1回 万代南梦宫工作室动画的流派 BNS动作捕捉汐留工作室的采访

    原文链接:http://cgworld.jp/interview/201607-bandainamco.html     因开发了[偶像大师],[铁拳],[XX传说]系列等各种游戏而被广为人知的万代南 ...

  7. 自述创业史 | XMove动作感应系统(二)

    XMove是沙漠君和几个死党从2010年开始开发的一套人体动作捕捉系统,软硬件全部自行开发,投入了大量的精力,历经三年,发展四个版本.文章分上下篇,本文为下篇,前三代的故事在<光荣与梦想| XM ...

  8. AI动作捕捉技术,会让制造业大幅度降低成本吗?

    现代动作捕捉系统应该是起源于100多年前的动画工业,通过一种叫做"动态遮罩或影像描摹"的技术,动画师们可以获得流畅的.栩栩如生的动作:后来到了20世纪80年代,动画师们设计出带有活 ...

  9. RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍

    RDIFramework.NET ━ .NET快速信息化系统开发框架 工作流程组件介绍 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部 ...

  10. RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件Web业务平台

    RDIFramework.NET ━ .NET快速信息化系统开发框架  工作流程组件Web业务平台 接前两篇: RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介 ...

随机推荐

  1. JavaScript高级程序设计笔记10 函数Function

    函数 1.几种实例化函数对象的方式 以函数声明的方式定义 函数表达式 箭头函数(arrow function) 使用Function构造函数 接收任意多个字符串参数,最后一个参数始终会被当成函数体,而 ...

  2. LabVIEW基于机器视觉的实验室设备管理系统(3)

    目录 行动计划 创建用户信息数据库 后面板连线 初始化 确认修改 确认id 判断旧密码是否正确 判断两次输入的新密码是否相同 修改用户数据库中的密码 结尾 效果演示 上一期我们完成了欢迎登录和信息查询 ...

  3. 使用CompletableFuture实现多个异步任务并行完成后合并结果

    业务场景 需要同时从多个副本数据库中查询数据,并对查询结果进行合并去重处理后返回前端. 实现过程涉及多数据源切换,这里不作过多讨论. 编码实现 实现过程: 1.定义异步查询数据方法: 2.通过Comp ...

  4. 如何利用烛龙和谷歌插件优化CLS(累积布局偏移)

    简介 CLS 衡量的是页面的整个生命周期内发生的每次意外布局偏移的最大突发性_布局偏移分数_.布局变化的发生是因为浏览器倾向于异步加载页面元素.更重要的是,您的页面上可能存在一些初始尺寸未知的媒体元素 ...

  5. JavaScript 文件优化指南

    本文将探讨实用的 JavaScript 文件优化技术.如何处理与 JavaScript 文件相关的性能问题以及帮助优化过程的工具.你将获得提升web应用程序速度的相关知识,从而为你的用户提供无缝体验. ...

  6. 一文搞定K8S监控告警平台选型

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享 前言 最近在搞K8S的监控告警平台选型,对比了目前比较流行两款开源平台kube-prometheus.夜莺,也踩了一些坑分享 ...

  7. cmd命令根据端口号杀进程

    1.根据端口查到进程pid netstat –ano|findstr 端口号 1 2.使用taskkill命令杀死进程 taskkill /pid pid 1 温馨提醒: 1.执行完第一步后,命令行显 ...

  8. 牛客刷java记录第5天

    第一题,下列代码运行结果是? class X { Y y = new Y(); public X() { System.out.print("X"); } } class Y { ...

  9. 牛客刷Java记录第四天

    第一题,单选题 class Car extends Vehicle { public static void main (String[] args) { new Car(). run(); } pr ...

  10. Guava Cache 异步刷新技巧,你值得拥有!

    Guava Cache是一款非常优秀的本地缓存框架,提供简洁易用的 API 供开发者使用. 这篇文章,我们聊聊如何使用 Guava Cache 异步刷新技巧带飞系统性能 . 1 基本用法 首先,在 J ...