通用动作捕捉监控平台及数据传输接口研究

(整期优先)网络出版时间:2021-10-14
/ 3

通用动作捕捉监控平台及数据传输接口研究

唐健明 郑乃中 赵小溪 赵勇 温翔 刘朋 黄铁脉 翟臣

(中移(成都)信息技术通信有限公司 成都市 610200)


摘要:随着动作捕捉技术的发展,动作捕捉应用日益广泛,除了捕捉技术本身,也逐渐产生了对动作捕捉监控平台和数据传输方面的需求。不同的动捕平台提供的数据格式和传输协议及传输方式都不同,因此统一的规范和管理方式成为动捕系统通用性的必要要求。本文讨论了一种可提高通用性的系统监控方式,同时讨论了使用这种方式时采用的数据传输及数据加密方式,为动捕平台的统一数据接入和管理提供了一种可能性。

关键词:动作捕捉、平台管理、数据标准化、数据传输


AbstractWith the development of motion capture technology, motion capture applications are becoming more and more extensive. In addition to the capture technology itself, there is also a gradually demand for motion capture monitoring platforms and data transmission.Different motion capture platforms provide different data formats and transmission protocols and transmission methods. Therefore, unified specifications and management methods have become a necessary requirement for the versatility of motion capture systems.This article discusses a system monitoring method that can improve versatility, and at the same time discusses the data transmission and data encryption methods used when using this method, which provides a possibility for unified data access and management of the motion capture platform.

Key words: Motion capture, platform management, data standardization, data transmission

0 引言

动作捕捉,通过数字测量技术获取人体实时三维动信息,并对信息进行进一步处理和分析[1]。在对信息进行处理的过程中,很容易出现因为系统耦合度高、开放性不好、灵活度低等问题影响后续的数据处理[2]。目前,随着动作捕捉技术的日益成熟,动作捕捉的应用更加广泛,对动捕平台的监控和数据传输的需求也越来越大[2]。目前,用户的后续开发获取所需的动捕的数据需要通过动作捕捉的服务器端通过网络数据传输的方式获得,而不同的动捕平台提供的动捕数据的格式各不相同,所使用的数据传输协议和方式也不同,缺乏统一的规范和方式。

现有的技术只支持使用一种动捕系统,无法用一个接口同时支持多种动捕的平台进行有效的监控管理。此外用户在使用需要去熟悉不同的动捕系统对应的程序,不太便于操作。同时不同的动捕系统数据传输的方式也不同,且数据没有进行过标准化处理,客户需要自己根据动捕系统去实现对应的动捕数据传输从而获取数据进行开发,提高了开发的复杂度。

1 研究意义

针对上述目前现有技术存在的缺陷,本研究提供了通用的动作捕捉监控平台及数据传输接口,可以支持不同的动作捕捉系统,同时对于不同的系统做了数据标准化的处理。在数据传输方面,支持跨网段传输,支持网络数据加密,支持同时连接多个客户端,简化了用户的使用操作,便于用户进行后续的开发。

2 系统监控

本研究提供了通用动作捕捉监控平台及数据传输接口,降低了用户的使用难度,提高了用户的开发效率,主要采用以下几个方式:

  1. 本接口可以支持多种常用的动作捕捉系统,用户选择需要建立连接的动捕平台,以及所需的配置信息,即可建立连接。

  2. 通过本接口采用TCP方式建立与动作捕捉系统的服务器端的连接并接受消息。

(3)本接口对动作捕捉系统的监控的主要模块主要包含以下几项:

A.当前的刚体和角色的信息,包括id,名称,位置等。

刚体/角色骨骼的位置通过六自由度信息给出(x,y,z,rx,ry,rz)。

不同的动作捕捉系统提供的位置信息存在着坐标系不一致的问题(左右手坐标系,坐标轴不同)和长度单位不一致(cm/mm),此接口使用了统一的坐标系,对不同的动作捕捉系统的数据进行了标准化的处理。

B.动捕相机信息,包括相机的参数(FOV,帧率,阈值等),相机的位置(六自由度),校准进度,校准结果以及动捕相机捕捉到的Blob点信息等。

C.动作捕捉系统的设置,包括校准类型,是否自动启用环境光,刚体坐标偏移等。

D.动作捕捉系统的状态,包括接口与服务器端的网络连接状态(连接/断开)和动作捕捉系统的追踪状态(追踪中,开始追踪,追踪停止等)。

通过上述的几个模块即可让用户获取到各个方面的监控信息,及时获取监控到相机、系统的状态改变的信息,从而实现用户对当前的动作捕捉平台的监控的需求。

3 数据传输

在传统的数据传输格式中,仅会考虑传输最主要的刚体的数据,很少会考虑传输动捕平台的状态信息,因此,客户无法通过接口传输的内容来直接获取到这些信息,只能在当前动作捕捉平台的界面上查看状态信息,从而影响对动作捕捉平台的直接监控。

本接口提供了动捕数据的传输的功能,对数据格式进行了统一处理。数据格式的定义如下:

(1)刚体ID号

(2)数据的帧序号

(3)位置信息

(4)旋转信息(四元数)

ID号前100留给刚体使用,角色骨骼的在接口中的ID号是由角色ID乘以定义的最大的骨骼数加上100所得到的。

通过定义数据结构可以以最简单的方式传输所有的数据,没有冗余的信息。和传统的数据接口相比网络负荷较小,节省网络带宽。此外,不同平台的数据传输的内容格式不统一,用户无法直接对接不同平台的数据,而本接口则对不同平台的数据进行了统一的处理,将各个平台的坐标系统一转换成同一个坐标系,位置信息统一单位为mm,旋转信息通过四元数,欧拉角,旋转矩阵的转换公式,统一转换成四元数(x,y,z,r)的形式,实现同一个应用支持来自不同平台数据的需求。

本接口在网络传输中所具有的特点包括:

(1)支持不同网段穿透功能,可以将数据传输到云端。通过NAT(Network Address Translation)实现网络地址转换,将内部私有IP地址翻译成合法的网络IP地址。在本接口中实现了NAT穿透的功能,使连接可以不受防火墙和不同网段的影响,并实现端到端之间连接的建立。通过中间服务器实现保存内外网信息和发出建立隧道的命令。

(2)本接口提供了一种NAT表项的管理方法,复用端口资源,提高了端口分配的效率。传统的NAT系统会在较多用户同时访问同一公网服务器的时候发生较多的冲突,从而影响报文转发的性能。在收到了需要转发至公网的报文之后,如果当前未建立该报文所属连接对应的会话时,则获取报文的目的IP地址。接口会从目的IP地址对应的未使用端口集合中,选择其中的一个端口,作为针对报文进行NAT时分配的端口。由于对目的IP地址进行了区分,以目的IP地址为索引,可以在该目的IP地址对应的未使用端口的集合中选择一个端口,作为针对报文进行NAT时分配的端口,以保证分配端口时不会发生冲突,只需分配一次就可以分配到有效端口,提高了端口分配的效率。

(3)支持断线后自动重新连接,减少因网络波动断线带来的影响,客户器端在发生断线之后,会间隔一段时间重新发起连接请求。在发生心跳包超时后,服务器端会认为该客户端已经掉线,从而结束与客户端的连接。如果不是客户端主动关闭而是网络环境较差的情况导致客户端超时掉线时,客户端在网络状态正常之后,就会自动通过在客户端处记录下的上一次的连接状态,重新向服务器端发送连接指令,尝试发起连接直到最终重新完成连接,因此不需要用户重新手动重新连接。

(4)支持多个客户端同时连接,多个客户端可以同时获取到来自数据接口的数据。本接口的传输数据是建立在服务器与客户端连接的前提下的。在这种模式下,服务器端对每一个连接上的客户端都会产生一个独立的管理模块,而在这个模块中会记录客户端的所有的配置信息,可以根据不同客户端对数据传输的需求进行针对性的数据传输。因此本接口可以实现向多个客户端发送数据的同时,满足客户端对数据的个性化配置。

(5)支持TCP/UDP传输方式,用户可以根据需要选择采用所需协议。服务器端可以通过客户端发送的参数来确认客户需要使用哪一种连接方式,从而用指定的传输方式建立连接。

4 传输加密

为了保障数据安全,接口对发送到网络上的数据进行了加密处理,由客户端进行解密。在应用层与传输层之间采用了SSL(secure socket layer)协议对数据进行保护。SSL协议分为记录协议和握手协议。

SSL记录协议为高层协议提供数据封装、压缩、加密等,定义传输格式。SSL握手协议在记录协议之上,是在传输开始前进行身份认证、协商加密算法、交换加密密钥等。

在加密算法方面,本接口选择的加密算法为RSA,采用公钥加密,私钥解密的方式。具体实现思路如下:

(1)选择两个保密的大素数p和q。

(2)计算n = pq, r = (p - 1)(q - 1)。其中n公开,r保密。

(3)随机选取正整数1< e < r, 满足gcd(e, r) = 1,其中e是公开的加密密钥。

(4)计算d,满足de = 1 mod r。d是保密的解密密钥。

(5)加密变换: c = m^e mod n

(6)解密变换: m = c^d mod n 其中m为明文, c为密文

5 时间偏移处理

本接口支持实时计算服务器端与客户端之间的时间偏移。使用PTP协议(高精度时间同步协议)的方式,记录如下图所示的四个时间点t1、t2、t3、t4。t1时刻,客户端向服务器发请求,服务器收包时间为t2时刻。在t3时刻,服务器把t2时刻发向客户端, 客户端收包时间为t4时刻。

由此即可得到时间偏移(offset)和传输时延(delay)

t2 - t1 = offset +delay

t4 - t3 = delay - offset

计算出

delay = (t4 - t3 + t2 - t1)/ 2

offset = (t2 - t1 - t4 + t3) / 2

本接口通过以上算法可以获取较为精准的时钟估计,便于用户在应用中实现时间的管理。与传统的数据传输相比,本接口使用了PTP物理硬件设备,通过主从同步系统,直接在 MAC层进行PTP协议包分析,这样可以不经过UDP协议栈,减PTP在协议栈中驻留时间,可以达到亚微妙级的精度,比传统的通过网络或者软件进行简单的估计的时间控制更为精准,可以满足对时钟同步有高需求的客户。


6 总结

本文提出了一种动作捕捉监控平台及数据传输接口算法,通过数据标准化处理,可支持不同的动作捕捉系统,可以由用户选择所需的动作捕捉系统;本接口统一了数据传输的格式,对来自不同动作捕捉系统的数据做了归一化处理,统一了各个系统的单位和数据格式,为用户提供了统一的规范;支持跨网段传输和防火墙穿透,支持断线自动重连,支持多个客户同时连接,支持数据安全加密。

参考文献:

  1. 夏为浩,张少帅.基于惯性传感器的动作捕捉系统设计[J].计算机测量与控制,2019,27(09):283-287.

  2. 师一鑫,王春水,刘戈三,赵建军.电影虚拟化制作中支持多平台的接口研究和设计[J].现代电影技术,2017(11):34-40.

  3. 陈义新. 人体动作捕捉系统软件设计[D].大连理工大学,2017.