三维数据传输方法及电子设备、信令服务器与流程

文档序号:29561486发布日期:2022-04-09 01:00阅读:176来源:国知局
三维数据传输方法及电子设备、信令服务器与流程

1.本发明涉及数据传输技术领域,特别涉及一种三维数据传输方法及电子设备、信令服务器。


背景技术:

2.三维重建是指根据单视图或者多视图的图像重建三维信息的过程。三维重建技术分为离线和实时,离线模式下,可以通过体积视频像用户展示提前录制好重建后的3d数字人。而实时三维重建则是需要将实时采集人体模型数据和驱动数据,通过网络传输到对端进行实时渲染。基于三维重建的虚拟社交为应用场景,通过三维通讯系统,可以实现不同用户通过三维重建将各自的动态三维模型和驱动数据传输给其他用户,通过vr(virtual reality,虚拟现实)或者ar(augmented reality,增强现实)设备,将达到身临其境面对面交互的沉浸体验,有别于传统电话或者视频会议的通讯方式。
3.三维重建后的数据分为模型数据和驱动数据。模型数据是人体静止状态下,通过深度摄像机360度拍摄人体扫描后的点云以及纹理数据;驱动数据则是实时人体的动作变化数据,利用实时驱动数据就可以驱动模型数据。由于驱动数据是动态的,每一帧都是变化的,这样在一个终端就要同时接收多路三维重建数据,数据量巨大,对传输要求很高,传统数据传输方案是建立端到端的连接,但是不满足三维通信系统中采集端和渲染端的多路传输需求,且服务器压力较大。


技术实现要素:

4.本技术的目的是提供一种三维数据传输方法及系统、电子设备。用于解决相关技术中数据传输方案是建立端到端的连接,不满足三维通信系统中采集端和渲染端的多路传输需求的问题,且服务器压力较大。
5.第一方面,本技术实施例提供了一种三维数据传输方法,应用于采集端,所述方法包括:
6.与信令服务器建立连接,向所述信令服务器发送多连接请求,所述多连接请求包括采集端标识及协商参数;
7.经所述信令服务器基于所述采集端标识确定与所述采集端属于同一群组的渲染端后,通过所述信令服务器基于所述协商参数与同一群组中的各渲染端建立端到端的连接;
8.通过所述信令服务器与所述同一群组中各渲染端建立的端到端连接,发送携带与各渲染端对应的数据传输通道标识的通道建立请求,与各渲染端间创建p2p的数据传输通道;
9.响应于三维数据的采集指令,采集三维数据并通过创建的与各渲染端间的p2p的数据传输通道,将所述三维数据分别发送到对应的渲染端。
10.第二方面,本技术实施例提供了一种三维数据传输方法,应用于渲染端,该方法包
括:
11.与信令服务器建立连接,接收信令服务器转发的与所述信令服务器连接的同一群组的各采集端的多连接请求,所述多连接请求包括采集端标识及协商参数;
12.通过所述信令服务器基于所述协商参数与同一群组中的各渲染端建立端到端的连接;
13.通过所述信令服务器,确定与所述同一群组中建立端到端连接的各采集端创建的与p2p的数据传输通道;
14.接收同一群组的各采集端通过与各渲染端间的p2p的数据传输通道发送的三维数据,并利用所述三维数据进行三维模型重建。
15.第三方面,本技术实施例提供了一种三维数据传输方法,应用于信令服务器,所述方法包括:
16.通过端口监听,与不同的采集端和不同的渲染端建立连接;
17.收到已建立连接的任一采集端发送的多连接请求时,所述多连接请求包括采集端标识及协商参数,基于所述采集端标识确定与所述采集端属于同一群组的渲染端后,基于所述协商参数将各采集端与同一群组中的各渲染端建立端到端的连接;
18.在各采集端和同一群组的各渲染端连接协商过程中,转发相应的消息以使同一群组各采集端与各渲染端分别建立端到端的连接;
19.在各采集端与同一群组的各渲染端建立端到端的连接后,转发各采集端发送的携带与同一群组中各渲染端对应的通道标识的通道建立请求,以使各采集端与同一群组中各渲染端间创建p2p的数据传输通道。
20.第四方面,本技术实施例提供一种三维数据传输设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面提供的应用于采集端的三维数据传输的方法;或者以使所述至少一个处理器能够执行上述第二方面提供的应用于渲染端的三维数据传输的方法。
21.第五方面,本技术实施例提供一种信令服务器,该信令服务器包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第三方面提供的应用于信令服务器端的三维数据传输的方法。
22.本技术实施例提出一种三维数据传输方法、设备及系统,能够支持多路数据传输,低延时、高可靠保证渲染的帧率,平滑且连续,可以满足实时多路数据传输并三维重建渲染的要求和虚拟社交多人实时交互的场景需求。
23.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
24.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本技术的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1为根据本技术一个实施例的三维重建通讯系统示意图;
26.图2为根据本技术一个实施例的三维数据传输方法,应用于采集端的流程示意图;
27.图3为根据本技术一个实施例的三维数据传输方法,应用于渲染端的流程示意图;
28.图4为根据本技术一个实施例的三维数据传输方法,应用于信令服务器的流程示意图;
29.图5为根据本技术一个实施例的三维数据传输方法整体流程示意图;
30.图6为根据本技术一个实施例的三维通讯系统多路采集传输渲染示意图;
31.图7为根据本技术一个实施例的一种电子设备结构示意图。
具体实施方式
32.下面将结合附图对本技术实施例中的技术方案进行清楚、详尽地描述。在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,另外,在本技术实施例的描述中,“多个”是指两个或多于两个。
33.在本技术实施例的描述中,除非另有说明,术语“多个”是指两个或两个以上,其它量词与之类似应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
34.为进一步说明本技术实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本技术实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施例提供的执行顺序。方法在实际的处理过程中或者控制设备执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
35.鉴于相关技术中数据传输方案是建立端到端的链接,不满足三维通信系统中采集端和渲染端的多路传输需求的问题。本技术提出一种三维数据传输方法、设备及系统,能够支持多路数据传输,低延时、高可靠保证渲染的帧率,平滑且连续,可以满足实时多路数据传输并三维重建渲染的要求和虚拟社交多人实时交互的场景需求。
36.有鉴于此,本技术的发明构思为:基于同一组群的多端之间彼此建立p2p连接,并建立对应的数据传输通道,形成一个数据通道网络,而这个网络只是采集端到渲染端。采集端发送三维数据,所有的渲染端都可以接收到,并实时渲染,通过上述方法,就可以实现多端传输、多端渲染显示,并减轻服务器的压力。
37.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
38.本技术涉及到的名词解释:
39.模型数据:由深度相机拍摄,算法生成顶点坐标,点云、网格结构、骨骼点位置和纹
理等信息。
40.驱动数据:由深度相机拍摄,算法生成骨骼位置变化信息。
41.采集端:三维重建采集终端,使用深度相机,将人体模型和动作采集并计算出模型数据和驱动数据,将模型数据和驱动数据实时发送到与其建立连接的各个渲染端。
42.渲染端:将采集端发送的三维数据,进行解析并渲染,重建出采集端采集的人物模型和动作。
43.信令服务器:各端建立连接的媒介,通过信令服务器转发信令,来帮助同一群组中的采集端与渲染端进行媒体协商。
44.媒体协商:通过信令服务器,同一群组中各个采集端和各个渲染端交换各自支持媒体信息,例如:媒体格式,编解码方式等,达成一致便可以建立端到端连接。
45.sctp(stream control transmission protocol)是一种传输协议,在tcp/ip协议栈中所处的位置和tcp、udp类似,兼有tcp/udp两者特征,并支持可靠传输。
46.数据传输通道:同一群组中建立端到端连接后,可创建p2p数据传输通道,可实现p2p可靠、低延时传输。
47.下面结合附图对本技术实施例中的三维数据传输方法进行详细说明。
48.参见图1,三维重建过程分为三维数据采集、三维数据传输、三维数据渲染。采集的数据分为模型数据和实时驱动数据,模型数据和驱动数据传输到渲染端进行解析渲染,整个过程便是三维通讯系统的基础流程。在实际应用场景中,对于传输的要求很高,首先应保证实时性,若是延迟很高,传输过程很长,将会出现三维模型动作卡顿现象,而且无法进行实时互动,影响用户体验。再者就是要支持多端采集、传输、渲染,因为在一个实际应用场景中,需要进行多人三维重建,在虚拟场景中实时交互。
49.本技术一个实施例提供的三维数据传输系统,该系统包括至少一个采集端、至少一个渲染端以及信令服务器,其中:
50.对于采集端:用于与信令服务器建立连接,向所述信令服务器发送多连接请求,所述多连接请求包括采集端标识及协商参数;经所述信令服务器基于所述采集端标识确定与所述采集端属于同一群组的渲染端后,通过所述信令服务器基于所述协商参数与同一群组中的各渲染端建立端到端的连接;通过所述信令服务器与所述同一群组中各渲染端建立的端到端连接,发送携带与各渲染端对应的数据传输通道标识的通道建立请求,与各渲染端间创建p2p的数据传输通道;响应于三维数据的采集指令,采集三维数据并通过创建的与各渲染端间的p2p的数据传输通道,将所述三维数据分别发送到对应的渲染端;
51.对于渲染端:用于与信令服务器建立连接,接收信令服务器转发的与所述信令服务器连接的同一群组的各采集端的多连接请求,所述多连接请求包括采集端标识及协商参数;通过所述信令服务器基于所述协商参数与同一群组中的各渲染端建立端到端的连接;通过所述信令服务器,确定与所述同一群组中建立端到端连接的各采集端创建的与p2p的数据传输通道;接收同一群组的各采集端通过与各渲染端间的p2p的数据传输通道发送的三维数据,并利用所述三维数据进行三维模型重建。
52.对于信令服务器端:用于通过端口监听,与不同的采集端和不同的渲染端建立连接;收到已建立连接的任一采集端发送的多连接请求时,所述多连接请求包括采集端标识及协商参数,基于所述采集端标识确定与所述采集端属于同一群组的渲染端后,基于所述
协商参数将各采集端与同一群组中的各渲染端建立端到端的连接;在各采集端和同一群组的各渲染端连接协商过程中,转发相应的消息以使同一群组各采集端与各渲染端分别建立端到端的连接;在各采集端与同一群组的各渲染端建立端到端的连接后,转发各采集端发送的携带与同一群组中各渲染端对应的通道标识的通道建立请求,以使各采集端与同一群组中各渲染端间创建p2p的数据传输通道。
53.信令服务器启动后,监听网络ip及端口,则可以监听到连接到信令服务器的各采集端和渲染端。信令服务器使用websocket技术,与各采集端或渲染端建立连接,各采集端与信令服务器建立连接后,向信令服务器发送多连接请求,信令服务器基于采集端标识确定属于同一群组的采集端和渲染端,可转发采集端和渲染端之间的信令,采集端和渲染端之间媒体协商必须通过信令服务器才能完成,媒体协商成功后,采集端和渲染端之间建立端到端的连接。
54.在启动各个采集端之后,首先需要将各个采集端与信令服务器建立连接,并向所述信令服务器发送多连接请求,这里连接使用的是websocket,数据传输协议为tcp。同一群组的群组账号可以但不限于是信令服务器预先为各采集端对应分配的,同样信令服务器也会预先为各渲染端分配对应的群组账号,信令服务器会确定属于同一群组的采集端和渲染端,实现同组之间各采集端与各渲染端之间的数据传输。
55.在一些实施例中,采集端或者渲染端通过携带群组账号和/或密码的访问请求来加入服务器中创建的群组业务。
56.在一些实施例中,在采集端加入群组后,或者在检测到有渲染端新加入群组的时候,触发采集端发送多连接请求。
57.采集端向所述信令服务器发送的多连接请求中包括采集端的媒体信息及采集端标识,需要说明的是媒体信息包括但不仅限于采集端支持的音视频编解码,数据通道传输协议等;采集端标识用于唯一标识该采集端。采集端通过向信令服务器发送多连接请求目的是通过信令服务器与同一群组中各个渲染端进行连接。
58.在一些实施例中,多连接请求中的采集端标识可以不包括已经建立端到端连接的渲染端的标识,仅包含新加入群组的渲染端的标识。
59.在采集端与渲染端进行连接之前,采集端首先需要通过信令服务器与各渲染端进行协商,协商结果分为进行协商的采集端和渲染端可以建立端到端的连接,或者进行协商的采集端和渲染端不可以建立端到端的连接。
60.在采集端与各渲染端建立端到端的连接之后,涉及到采集端开始向建立连接的同一群组中各渲染端进行三维数据传输的过程。在三维数据传输之前需要先创建从采集端到与其连接的同一群组中各渲染端的p2p的数据传输通道。当数据传输通道创建完成之后,开始进行三维数据的传输,响应于三维数据的采集指令,采集端首先采集三维数据,通过各数据传输通道传输到对应的渲染端。
61.在启动各个渲染端之后,首先需要将各个渲染端与信令服务器建立连接,这里连接使用的是websocket,数据传输协议为tcp。
62.通过信令服务器接收同一群组中各采集端发送的多连接请求,需要说明的是,每个渲染端接收的是通过信令服务器转发的同一群组中所有与信令服务器建立连接的采集端的连接请求,例如同一群组中有三个采集端与信令服务器建立连接,每个渲染端都将接
收通过信令服务器转发的这三个采集端的各自连接请求。
63.渲染端如果想要和同一群组中各采集端建立连接,需要通过信令服务器与各同一群组中采集端进行协商,通过协商过程确定能与自身建立连接的采集端,并与可以建立连接的同一群组中各采集端建立端到端的连接。在渲染端与同一群组中各采集端建立端到端的连接之后,涉及接收并解析同一群组中采集端向渲染端传输的三维数据的过程,首先需要确定同一群组中各采集端创建的与自身进行数据传输的数据传输通道。渲染端接收同一群组中采集端通过各数据传输通道发送的三维数据之后,进行三维模型重建,从而实时渲染出三维重建后的模型和动作。
64.当采集端建立与同一群组中渲染端进行三维数据传输的数据传输通道以后,对应的同一群组中渲染端需要通过信令服务器转发相应的数据传输通道消息。
65.本技术中同一群组中多个采集端与多个渲染端之间彼此建立连接,并建立p2p的数据传输通道,形成一个数据通道网络,而这个网络只是采集端到渲染端,采集端到采集端不需求数据传输通道。采集端发送三维数据,所有与其建立连接的同一群组中渲染端都可以接收到,并实时渲染,通过上述方法,就可以实现多端传输、多端渲染显示。
66.图2示出了本技术一个实施例提供的三维数据传输方法,应用于采集端的流程示意图,包括:
67.步骤201,与信令服务器建立连接,向所述信令服务器发送多连接请求,所述多连接请求包括采集端标识及协商参数。
68.步骤202,经所述信令服务器基于所述采集端标识确定与所述采集端属于同一群组的渲染端后,通过所述信令服务器基于所述协商参数与同一群组中的各渲染端建立端到端的连接。
69.步骤203,通过所述信令服务器与所述同一群组中各渲染端建立的端到端连接,发送携带与各渲染端对应的数据传输通道标识的通道建立请求,与各渲染端间创建p2p的数据传输通道。
70.步骤204,响应于三维数据的采集指令,采集三维数据并通过创建的与各渲染端间的p2p的数据传输通道,将所述三维数据分别发送到对应的渲染端。
71.作为一种可选的实施方式,通过所述信令服务器基于所述协商参数与同一群组中的各渲染端建立端到端的连接,包括如下步骤:
72.步骤1,通过所述信令服务器将所述多连接请求,发送到所述同一群组中各渲染端,所述协商参数包括所述采集端的媒体信息。
73.具体来讲,当采集端与同一群组中各渲染端进行连接时,首先每个采集端会向信令服务器发送一个多连接请求并携带该采集端的媒体信息,将媒体信息封装,由websocket传输到信令服务器。
74.信令服务器会在与此采集端属于同一群组的遍历当前已经连接的渲染端,并将采集端发送的多连接请求进行转发。
75.多个采集端的多连接请求,通过信令服务器转发至属于同一群组的每个渲染端,每个渲染端都接受到若干个采集端发送过来的多连接请求。
76.步骤2,接收信令服务器转发的同一群组中各渲染端收到所述多连接请求后回复的响应消息,所述响应消息携带渲染端标识及渲染端从所述多连接请求中获取的媒体信
息。
77.具体来讲,当渲染端接收到同一群组中采集端发送的多连接请求,确定可以与自身建立端到端的连接的采集端后,会向信令服务器发送一响应消息,用于通知同一群组中各个采集端自身的媒体信息及渲染端标识,用以使采集端确定可以与自己建立端到端的连接。
78.响应消息中携带渲染端标识目的是通过信令服务器转发使采集端获知是同一群组中的哪一个渲染端回复的响应消息。
79.步骤3,将所述响应消息中的媒体信息与自身媒体信息进行对比,若对比结果一致,确定与同一群组中的各渲染端建立端到端的连接。
80.具体来讲,当接收到信令服务器传送的响应消息后,采集端将响应消息中携带的渲染端的媒体信息与自身的媒体信息进行对比。
81.若渲染端传送过来的媒体信息与自身的媒体信息的对比结果一致,证明该渲染端与自身可以建立端到端的连接,若渲染端传送过来的媒体信息与自身的媒体信息的对比结果不一致,证明该渲染端与自身不可以建立端到端的连接。
82.作为一种可选的实施方式,采集三维数据并通过创建的与各渲染端间的p2p的数据传输通道,将所述三维数据分别发送到对应的渲染端的过程中,还包括:
83.接收信令服务器确定同一群组中任一渲染端离线后传输的离线指令,终止通过创建的与离线的渲染端的p2p的数据传输通道进行三维数据传输。
84.具体来讲,当同一群组中任一渲染端出现离线状态时,信令服务器会将此离线指令发送至同一群组中的各采集端,采集端确定离线的渲染端后,停止向此渲染端进行三维数据传输,避免了不必要的资源浪费,减轻了服务器的工作载荷。
85.作为一种可选的实施方式,采集三维数据并通过创建的与各渲染端间的p2p的各数据传输通道,将所述三维数据分别发送到对应的渲染端的过程中,还包括:
86.通过数据传输通道接收同一群组中各渲染端反馈的各数据传输通道稳定性;
87.确定数据传输通道稳定性不满足传输需求时,终止向对应的渲染端进行三维数据传输。
88.具体来讲,数据传输通道为非绝对的单向传输,本技术中数据传输通道协议预设有容错机制,根据数据传输通道接收渲染端反馈的通道稳定性状态,如果稳定性不高,则终止向对应的渲染端进行三维数据传输。
89.作为一种可选的实施方式,通过所述信令服务器与所述同一群组中各渲染端建立的端到端连接,发送携带与各渲染端对应的通道标识的通道建立请求,与各渲染端间创建p2p的数据传输通道,包括如下步骤:
90.步骤1,为建立端到端连接同一群组中的各渲染端创建p2p的数据传输通道,并将所述采集端标识作为key,将数据传输通道标识作为value,将key-value的存储单元采用map方式进行存储。
91.具体来讲,采集端与同一群组中渲染端建立了端到端连接,创建p2p的数据传输通道,多端数据,为方便描述,方便管理,本技术中数据传输通道记为dxy,代表采集端x到渲染端y的数据传输通道。例如,采集端a到渲染端a的数据传输通道为daa,采集端a到渲染端b的数据传输通道为dab。
92.采集端使用map(以key和value为存储单元的存储介质)存储数据传输通道,将所述采集端的标识作为key,将数据传输通道标识作为value,存储形式为map(ry,dxy)。分别代表采集端x到渲染端y(ry)的数据传输通道dxy,例如采集端a与渲染端a和渲染端b分别建立了连接,存储形式为map(ra,daa)和map(rb,dab),分别代表采集端a到渲染端a(ra)的数据传输通道daa,采集端a到渲染端b(rb)的数据传输通道dab。
93.步骤2,将为同一群组中各渲染端创建的p2p的数据传输通道标识携带在回调消息中,通过信令服务器将所述回调消息发送到各渲染端。
94.具体来讲,采集端创建完p2p的数据传输通道也需要向同一群组中各渲染端发送回调消息,以使同一群组中各渲染端在接收回调消息时,通过回调消息中的数据传输通道标识确定是同一群组中哪个采集端发送的回调消息,以及确定该采集端创建的哪条数据传输通道是与自身进行数据传输的数据传输通道。
95.作为一种可选的实施方式,采集三维数据并通过创建的与各渲染端间的p2p的数据传输通道,将所述三维数据分别发送到对应的渲染端,包括:
96.采集构建人体三维模型的模型数据,将采集的模型数据通过创建的与各渲染端间的p2p的数据传输通道,将所述三维数据分别发送到对应的渲染端;
97.采集人体动作变化的驱动数据,将采集的驱动数据通过创建的与各渲染端间的p2p的数据传输通道,将所述三维数据分别发送到对应的渲染端。
98.具体来讲,在上述采集端与同一群组中各渲染端创建完成数据传输通道后,采集端开始进行三维重建采集过程,采集构建人体三维模型的模型数据,然后遍历map中存储的数据传输通道,确定已和自身建立连接并且创建成功数据传输通道的各渲染端,通过创建的与各渲染端间的p2p的数据传输通道,将所述三维数据分别发送到对应的渲染端。
99.当采集端采集模型数据完毕后,人体可以进行一些动作,比如抬起胳膊,抬起腿等,此时深度相机会实时采集人体动作变化的驱动数据,驱动数据主要记录人体主要骨骼区域顶点变化信息,将实时驱动数据通过数据传输通道分别将所述三维数据分别发送到对应的渲染端。
100.基于相同的发明构思,本技术还提供一种三维数据传输方法,如图3所示,应用于渲染端,该方法的步骤包括:
101.步骤301,与信令服务器建立连接,接收信令服务器转发的与所述信令服务器连接的同一群组的各采集端的多连接请求,所述多连接请求包括采集端标识及协商参数。
102.步骤302,通过所述信令服务器基于所述协商参数与同一群组中的各渲染端建立端到端的连接。
103.步骤303,通过所述信令服务器,确定与所述同一群组中建立端到端连接的各采集端创建的与p2p的数据传输通道。
104.步骤304,接收同一群组的各采集端通过与各渲染端间的p2p的数据传输通道发送的三维数据,并利用所述三维数据进行三维模型重建。
105.作为一种可选的实施方式,通过所述信令服务器基于所述协商参数与同一群组中的各采集端建立端到端的连接,包括:
106.将同一群组的任一采集端的媒体信息与自身媒体信息进行对比,若对比结果一致,确定与同一群组中的该采集端建立端到端的连接;
107.通过所述信令服务器向同一群组中的各采集端回复响应消息,所述响应消息携带所述渲染端的媒体信息及该渲染端的标识信息。
108.具体来讲,渲染端接收到同一群组的各采集端发送的多连接请求,将渲染端的媒体信息封装作为回复的响应消息发送给信令服务器,信令服务器转发渲染端的响应消息给同一群组中各采集端,采集端接收到渲染端发送的媒体信息与自身媒体进行对比。
109.若采集端传送过来的媒体信息与自身的媒体信息的对比结果一致,证明该采集端与自身可以建立连接,若采集端传送过来的媒体信息与自身的媒体信息的对比结果不一致,证明该采集端与自身不可以建立连接。
110.作为一种可选的实施方式,接收同一群组的各采集端通过与各渲染端间的p2p的数据传输通道发送的三维数据,还包括:
111.通过数据传输通道向同一群组中各采集端反馈各数据传输通道稳定性。
112.作为一种可选的实施方式,接收同一群组的各采集端通过与各渲染端间的p2p的数据传输通道发送的三维数据,还包括:
113.通过信令服务器向同一群组中任一采集端传输离线后的离线指令,终止同一群组中各采集端通过创建的与离线的渲染端的p2p的数据传输通道进行三维数据传输。
114.作为一种可选的实施方式,通过所述信令服务器,确定与所述同一群组中建立端到端连接的各采集端创建的与p2p的数据传输通道,包括:
115.接收同一群组的任一采集端通过信令服务器发送的回调消息,所述回调消息包括该采集端与同一群组的各渲染端建立的p2p的数据传输通道的标识;
116.从该采集端与同一群组的各渲染端建立的p2p的数据传输通道的标识中,确定该采集端与自身建立的数据传输通道标识;
117.将所述渲染端的标识作为key,将确定的数据传输通道标识作为value,将key-value的存储单元采用map方式进行存储;
118.创建与map中各数据传输通道标识对应的线程,以监听是否收到同一群组的采集端通过对应的数据传输通道发送的三维数据。
119.渲染端接收到同一群组的采集端创建好的p2p的数据传输通道的回调消息,回调消息用于使渲染端确定与同一群组的每个采集端进行三维数据交互的数据传输通道,以便之后当接收到三维数据时,可以确定是同一群组的哪个采集端通过哪个数据传输通道发送过来的。
120.渲染端使用map(以key和value为存储单元的存储介质)存储数据传输通道,将所述采集端的标识作为key,将数据传输通道标识作为value,存储形式为map(sx,dxy),代表采集端x创建到渲染端y的数据传输通道dxy,以便后面多端数据通道管理。
121.渲染端同时创建并开启与map中各数据传输通道标识对应的线程,线程tx1阻塞式等待接收来自同一群组的采集端x发送的数据。线程tx1的线程id设置为sx,线程tx1接收数据传输通道从map中寻找key为sx,value为dxy,这样线程和数据传输通道进行绑定,新创建的线程tx1,只接受来自同一群组的采集端x发送的数据。渲染端中有多少条数据传输通道,便有多少个对应的线程,渲染端希望获取哪条数据传输通道的数据,可以根据采集端唯一标识,获取到对应的数据传输通道及对应的接收线程,就可以获取到对应采集端的三维数据。
122.基于相同的发明构思,本技术还提供一种三维数据传输方法,如图4所示,应用于信令服务器,该方法包括:
123.步骤401,通过端口监听,与不同的采集端和不同的渲染端建立连接;
124.步骤402,收到已建立连接的任一采集端发送的多连接请求时,所述多连接请求包括采集端标识及协商参数,基于所述采集端标识确定与所述采集端属于同一群组的渲染端后,基于所述协商参数将各采集端与同一群组中的各渲染端建立端到端的连接;
125.步骤403,在各采集端和同一群组的各渲染端连接协商过程中,转发相应的消息以使同一群组各采集端与各渲染端分别建立端到端的连接;
126.步骤404,在各采集端与同一群组的各渲染端建立端到端的连接后,转发各采集端发送的携带与同一群组中各渲染端对应的通道标识的通道建立请求,以使各采集端与同一群组中各渲染端间创建p2p的数据传输通道。
127.参见图5,假设采集端a、采集端b,渲染端a、渲染端b属于同一群组,以2路采集端(采集端a、采集端b),2路渲染端(渲染端a、渲染端b)为例,其中为了展示多终端跨平台,渲染端a为pc平台,渲染端b为vr一体机平台,展示采集端a和采集端b实时采集三维人体模型和动作,并通过本技术提供的同一群组的多端传输方法实现实时传输。
128.其中,采集端a与采集端b整体执行步骤相同,渲染端a与渲染端b整体执行步骤相同。由于在各个采集端与各个渲染端建立连接时,信令服务器需要将各个采集端的媒体信息转发给所有的渲染端,即采集端进行连接请求时,所有的渲染端已和信令服务器建立了连接。所以首先启动渲染端a、b,再启动采集端a、b,采集端a、b在启动程序后开始执行上述实施例的步骤201-步骤204。渲染端a、b在启动程序后开始执行上述实施例的步骤301-步骤304,其中在步骤303之后,步骤304之前需要创建与map中各数据传输通道标识对应的线程,以监听是否收到采集端通过对应的数据传输通道发送的三维数据。
129.参见图6所示的三维通讯系统多路采集传输渲染示意图。
130.采集端a此时进行三维数据采集,模特a进入已搭建好的深度相机采集环境区域静止不动,采集人体三维模型的模型数据,然后遍历map中存储的数据传输通道,分别为daa和dab,通过数据传输通道分别发送给渲染端a和渲染端b;渲染端a接收到模型数据后,线程ta1中开始进行解析,解析出模型数据,构建人体模型、骨架、纹理等;渲染端b接收到数据后,线程tb1中开始进行解析,解析出模型数据,构建人体模型、骨架、纹理等;采集端a模型数据采集完毕,模特a可以进行一些动作,比如抬起胳膊,抬起腿等,此时深度相机会实时采集人体生成驱动数据,驱动数据主要记录人体主要骨骼区域顶点变化信息,将实时驱动数据通过数据传输通道分别发送给渲染端a和渲染端b;渲染端a接收到采集端a发送的驱动数据,ta1线程中进行解析,解析出驱动数据,驱动数据可以驱动模型数据,使模型数据可以根据驱动数据顶点位置变化而重新渲染模型,模型会做出和采集端a一样的动作;采集端a到渲染端a三维重建通讯系统流程即完成;渲染端b接收到采集端a发送的驱动数据,tb1线程中进行解析,解析出驱动数据,驱动数据可以驱动模型数据,使模型数据可以根据驱动数据顶点位置变化而重新渲染模型,模型会做出和采集端a一样的动作;采集端a到渲染端b三维重建通讯系统流程即完成。
131.采集端b到渲染端a、b三维重建通讯系统流程同上,此处不再赘述。
132.在介绍了本技术示例性实施方式的三维数据传输方法和装置之后,接下来,介绍
根据本技术的另一示例性实施方式的电子设备。
133.所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
134.在一些可能的实施方式中,根据本技术的电子设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本技术各种示例性实施方式的三维数据传输中的步骤。
135.下面参照图7来描述根据本技术的这种实施方式的电子设备130,即上述三维数据传输设备。图7显示的电子设备130仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
136.如图7所示,电子设备130以通用电子设备的形式表现。电子设备130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。
137.总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
138.存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(rom)1323。
139.存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
140.电子设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备130交互的设备通信,和/或与使得该电子设备130能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口135进行。并且,电子设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于电子设备130的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
141.在一些可能的实施方式中,本技术提供的一种三维数据传输方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本技术各种示例性实施方式的一种三维数据传输方法的步骤。
142.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读
存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
143.本技术的实施方式的用于监控的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在电子设备上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
144.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
145.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
146.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务端上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
147.应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
148.此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
149.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
150.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和方框图来描述的。应理解可由计算机程序指令实现流程图和方框图中的每一流程和/或方框、以及流程图和方框图中的流程和方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图
一个流程或多个流程和方框图一个方框或多个方框中指定的功能的装置。
151.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能。
152.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的步骤。
153.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
154.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1