一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于边缘计算存储的CloudVR数据传输方法和系统与流程

2022-02-20 05:52:25 来源:中国专利 TAG:
一种基于边缘计算存储的cloudvr数据传输方法和系统
技术领域
:1.本发明涉及cloudvr数据传输
技术领域
:,尤其是涉及一种基于边缘计算存储的cloudvr数据传输方法和系统。
背景技术
::2.本地vr向cloudvr演进已成为了必然趋势,支持云端渲染的cloudvr对于提升用户体验、降低用户消费vr成本、保护vr内容版权、普及vr商业场景等方面都有巨大价值。cloudvr将计算渲染云化后,由于vr的庞大数据量,传输部分将成为整个系统瓶颈,因此降低传输数据量至关重要。完整传输全景图像存在较大冗余,但是仅传输视野内的图像会因网络延时及抖动出现延迟或黑屏等情况,大大影响观看体验。技术实现要素:3.本发明的目的就是为了克服上述现有技术存在完整传输全景图像存在较大冗余,会因网络延时及抖动出现延迟或黑屏等情况,大大影响观看体验的缺陷而提供一种基于边缘计算存储的cloudvr数据传输方法和系统。4.本发明的目的可以通过以下技术方案来实现:5.一种基于边缘计算存储的cloudvr数据传输方法,用于向用户端设备传输全景图的图像数据,所述方法包括以下步骤:6.s1:采用四棱锥投影方式对全景图进行映射计算,将每张全景图根据视点投影划分为多个不同视场角的视频版本进行存储;7.s2:获取并进行动态预测用户端设备的三维运动数据并计算用户视角信息;8.s3:根据所述用户视角信息,选取对应的视场角的视频版本,并对该视频版本进行金字塔贴图操作,得到立体图像数据,计算视角切换相应的视点位置移动向量并向用户端设备传输立体图像数据。9.进一步地,所述步骤s2具体包括以下步骤:10.s21:获取并进行动态预测用户端设备的视图矩阵,并进行只旋转和求逆求转置处理,所述视图矩阵包括旋转矩阵乘以平移矩阵,用于将物体的世界坐标系转换为摄像机坐标系;11.s22:计算用户端设备在当前播放帧中视角的三维方向向量。12.进一步地,所述步骤s3具体包括以下步骤:13.s31:根据所述三维方向向量,获取对应的视场角的视频版本;14.s32:根据该视频版本以及当前播放指针,生成视频画面组,对该视频画面组进行金字塔贴图操作,得到立体图像数据;15.s33:判断前后帧是否发生视点版本切换,若是,则计算视角切换相应的视点位置移动向量,并且把立体图像数据中当前帧的视点进行相应方向的移动,若否则不继续处理,最后向用户端设备传输最终的立体图像数据。16.进一步地,若前后帧发生视点版本切换的操作过程具体为:17.获取前一帧的视角方向和当前帧的视点中心,把当前帧视点中心移动到与前一帧视角方向重合。18.进一步地,所述采用四棱锥投影方式对全景图进行映射计算包括基于地球仪经纬度的映射法,该基于地球仪经纬度的映射法包括:19.在赤道上,从0度开始,每隔30度选定一个视点,赤道上有12个视点版本;在南维30度和北维30度上,从0度开始,每隔60度选定一个视点,南维30度和北维30度上各有6个视点;在南维90度和北维90度上,从0度开始,每隔180度选定一个视点,南维90度和北维90度上各有2个视点;最后南北极各是一个视点,由此12 6 6 2 2 1 1=30个不同视点版本构成。20.进一步地,步骤s1还包括:对所述视频版本编号后进行存储;步骤s31具体为:根据所述三维方向向量,获取对应的视场角的视频版本的编号。21.进一步地,所述获取对应的视场角的视频版本的编号的计算过程具体为:22.以南北纬15度,45度,75度为界限,经度线则在两个水平视点的中间经度线为界限,视点在南北维15度以内并且经度左右15度以内移动,则不发生视点切换操作,否则发生视点切换操作,该视点切换操作为切换到视点移动后的视频版本的编号。23.进一步地,步骤s2中,所述动态预测用户端设备的三维运动数据并计算用户视角信息具体为:24.采用航位推测法,保留前一帧的视点三维数据,并和当前帧的视点三维数据进行线性预测,得到下一帧的视点三维数据,根据下一帧的视点三维数据计算用户视角信息。25.进一步地,所述采用四棱锥投影方式对全景图进行映射计算后,得到正方形全景图,所述金字塔贴图操作包括:26.将正方形全景图四角点都设为p,四条边中点依次设为a,b,c,d,p对应正四棱锥的顶点,a,b,c,d分别对应正四棱锥底部正方形的四角,以此进行金字塔贴图操作。27.本发明还提供一种基于边缘计算存储的cloudvr数据传输系统,用于向用户端设备传输全景图的图像数据,所述系统包括边缘计算存储服务器、客户端主机和用户端设备;所述系统的数据处理过程包括以下步骤:28.s1:边缘计算存储服务采用四棱锥投影方式对全景图进行映射计算,将每张全景图根据视点投影划分为多个不同视场角的视频版本进行存储;29.s2:客户端主机获取并进行动态预测用户端设备的三维运动数据并计算用户视角信息,最后将用户视角信息传给边缘计算存储服务器;30.s3:边缘计算存储服务器根据所述用户视角信息,选取对应的视场角的视频版本,发送至客户端主机,客户端主机对该视频版本进行金字塔贴图操作,得到立体图像数据,计算视角切换相应的视点位置移动向量并向用户端设备传输立体图像数据。31.与现有技术相比,本发明具有以下优点:32.本发明为保证用户视角位置发生改变时仍能观看高质量的视频图像,将全景图像按视角处理,全景图像按中心视点处理为多个版本,并根据用户反馈的视角信息,选择相应版本传输;在内容准备侧,针对每个视角准备一个全视角的质量不均匀的码流,在视角区域采用高质量;非视角区域采用低质量编码。根据用户当前视角姿态位置,请求对应的视角文件;当头部转动视角发生变化时,请求新视角对应的视角文件;本发明技术方案整体上具有以下优点:33.(1)可将所需带宽降低60%以上;34.(2)视野范围内观看质量无损;35.(3)避免了网络延迟带来的图像滞后和网络;36.(4)避免了网络抖动导致的图像缺失。附图说明37.图1为本实施例空间三维右手坐标系图;38.图2为本实施例三维坐标变换图;39.图中,vertexdata为顶点数据,objectcoordinates为对象坐标,clipcoordinates为裁剪坐标,dividebyw为除以w,normalizeddevicecoordinates为标准化设备坐标,windowcoordinates为窗口坐标;40.图3为本发明流程图;41.图4为本实施例基于视角动态预测示意图;42.图5为本实施例四棱锥/金字塔映射图;43.图6为本实施例30视点划分图;44.图7为本实施例边缘计算存储框架图;45.图中,centralcloud为中心云,edgeofcloud为边缘云,user为用户;46.图8为本实施例fov传输方案图;47.图中,server为服务器,viewpoint为视点,network为网络,fovrenderclient为fov渲染客户端;48.图9为本实施例四棱锥/金字塔贴图示意图。具体实施方式49.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。50.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。51.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。52.实施例153.本实施例提供一种基于边缘计算存储的cloudvr数据传输方法,用于向用户端设备传输全景图的图像数据,全景图像按中心视点处理为多个版本,并根据用户反馈的视角信息,选择相应版本传输;在内容准备侧,针对每个视角准备一个全视角的质量不均匀的码流,在视角区域采用高质量;非视角区域采用低质量编码。根据用户当前视角姿态位置,请求对应的视角文件。当头部转动视角发生变化时,请求新视角对应的视角文件。54.方法具体包括以下步骤:55.s1:采用四棱锥投影方式对全景图进行映射计算,将每张全景图根据视点投影划分为多个不同视场角的视频版本进行存储;56.采用四棱锥投影方式对全景图进行映射计算包括基于地球仪经纬度的映射法,该基于地球仪经纬度的映射法包括:57.在赤道上,从0度开始,每隔30度选定一个视点,赤道上有12个视点版本;在南维30度和北维30度上,从0度开始,每隔60度选定一个视点,南维30度和北维30度上各有6个视点;在南维90度和北维90度上,从0度开始,每隔180度选定一个视点,南维90度和北维90度上各有2个视点;最后南北极各是一个视点,由此12 6 6 2 2 1 1=30个不同视点版本构成。58.s2:获取并进行动态预测用户端设备的三维运动数据并计算用户视角信息;59.步骤s2具体包括以下子步骤:60.s21:获取并进行动态预测用户端设备的视图矩阵,并进行只旋转和求逆求转置处理,视图矩阵包括旋转矩阵乘以平移矩阵,用于将物体的世界坐标系转换为摄像机坐标系;61.动态预测过程具体为:62.采用航位推测法,保留前一帧的视点三维数据,并和当前帧的视点三维数据进行线性预测,得到下一帧的视点三维数据,根据下一帧的视点三维数据计算用户视角信息。63.s22:计算用户端设备在当前播放帧中视角的三维方向向量。64.s3:根据用户视角信息,选取对应的视场角的视频版本,并对该视频版本进行金字塔贴图操作,得到立体图像数据,计算视角切换相应的视点位置移动向量并向用户端设备传输立体图像数据。65.步骤s3具体包括以下子步骤:66.s31:根据三维方向向量,获取对应的视场角的视频版本;67.s32:根据该视频版本以及当前播放指针,生成视频画面组,对该视频画面组进行金字塔贴图操作,得到立体图像数据;68.s33:判断前后帧是否发生视点版本切换,若是,则计算视角切换相应的视点位置移动向量,并且把立体图像数据中当前帧的视点进行相应方向的移动,若否则不继续处理,最后向用户端设备传输最终的立体图像数据。69.若前后帧发生视点版本切换的操作过程具体为:70.获取前一帧的视角方向和当前帧的视点中心,把当前帧视点中心移动到与前一帧视角方向重合。71.步骤s1还包括:对视频版本编号后进行存储;步骤s31具体为:根据三维方向向量,获取对应的视场角的视频版本的编号。72.获取对应的视场角的视频版本的编号的计算过程具体为:73.以南北纬15度,45度,75度为界限,经度线则在两个水平视点的中间经度线为界限,视点在南北维15度以内并且经度左右15度以内移动,则不发生视点切换操作,否则发生视点切换操作,该视点切换操作为切换到视点移动后的视频版本的编号。74.采用四棱锥投影方式对全景图进行映射计算后,得到正方形全景图,金字塔贴图操作包括:75.将正方形全景图四角点都设为p,四条边中点依次设为a,b,c,d,p对应正四棱锥的顶点,a,b,c,d分别对应正四棱锥底部正方形的四角,以此进行金字塔贴图操作。76.本实施例还提供一种基于边缘计算存储的cloudvr数据传输系统,用于向用户端设备传输全景图的图像数据,系统包括边缘计算存储服务器、客户端主机和用户端设备;77.系统将全景图像按视角处理,为保证用户视角位置发生改变时仍能观看高质量的视频图像,需要服务器端根据用户位置信息及时做出调整。服务器首先将全景图像按中心视点处理为30个版本,并根据用户反馈的视角信息,选择相应版本传输。在内容准备侧,针对每个视角准备一个全视角的质量不均匀的码流,在视角区域采用高质量。非视角区域采用低质量编码。终端根据用户当前视角姿态位置,向服务器请求对应的视角文件。当头部转动视角发生变化时,终端向服务器请求新视角对应的视角文件。78.系统的数据处理过程包括以下步骤:79.s1:边缘计算存储服务采用四棱锥投影方式对全景图进行映射计算,将每张全景图根据视点投影划分为多个不同视场角的视频版本进行存储;80.本实施例中的具体步骤为:采用四棱锥投影方式对全景图进行映射计算,每一张全景图根据视点投影划分为30个不同fov版本存储,即每个全景视频在边缘存储服务器中有30个不同fov的视频版本存在;81.具体包括以下子步骤:82.s11,对erp全景图进行四棱锥投影,生成正方形全景图;83.s12,以地球仪经纬度为例进行划分说明:在赤道上,从0度开始,每隔30度选定一个视点,赤道上有12个视点版本;在南北维30度上,从0度开始,每隔60度选定一个视点,南北维30度上各有6个视点;在南北维90度上,从0度开始,每隔180度选定一个视点,南北维90度上各有2个视点;最后南北极各是一个视点,由此12 6 6 2 2 1 1=30个不同视点版本构成。84.30版本序号排序如下:85.从北极点到南极点,从0经度完往右手系方向依次编号0,1,2......29。86.s2:客户端主机获取并进行动态预测用户端设备的三维运动数据并计算用户视角信息,最后将用户视角信息传给边缘计算存储服务器;87.本实施例中的具体步骤为:客户端主机实时获取并进行动态预测用户vr头盔的三维运动数据并计算出用户视角信息,最后把用户视角信息传给边缘计算存储服务器;88.具体包括以下子步骤:89.s21,获取vr头盔的视图矩阵,并设置“只旋转”和求逆求转置处理;90.s22,空间坐标系按照右手系建立,计算当前播放帧视角的三维方向向量;91.s23,fov方向向量传给边缘计算存储服务器。92.基于视角的动态预测示意图如图4所示,预测主要有上,下,左,右,右上,右下,左上,左下八个主要方位,动态预测方法如下:93.进行基于机器学习的动态视角预测,采用航位推测法(deadreckoning)。保留前一帧的视点三维数据,并和当前帧的视点三维数据进行线性预测下一帧的视点三维数据。94.s3:边缘计算存储服务器根据用户视角信息,选取对应的视场角的视频版本,发送至客户端主机,客户端主机对该视频版本进行金字塔贴图操作,得到立体图像数据,计算视角切换相应的视点位置移动向量并向用户端设备传输立体图像数据。95.本实施例中的具体步骤为:边缘计算服务器根据用户视角信息选择相应的版本视频gop发回客户端主机,客户端主机计算视角切换相应的视点位置移动向量并向vr头盔传递图像。96.具体包括以下子步骤:97.s31,根据fov方向向量计算相应的版本编号;98.计算版本编号过程如下:99.南北纬15度,45度,75度为界限,经度线则在两个水平视点的中间经度线为界限,视点在南北维15度以内并且经度左右15度以内移动,则不发生视点切换操作,如果视点从0经度0维度移动到16经度0维度,则此时应该切换到以30经度0维度为视点中心的版本;100.s32,根据编号以及当前播放指针,发送下一视频gop给客户端主机,并以每一gop有10帧的格式发送,客户端主机再对接收到的正方形全景图格式的视频gop进行金字塔贴图操作;101.发生金字塔贴图操作过程如图9所示,具体贴图方式如下:102.正方形四角点都设为p,四条边中点依次设为a,b,c,d。p对应正四棱锥的顶点,a,b,c,d分别对应正四棱锥底部正方形的四角。103.s33,判断前后帧是否发生视点版本切换,是的话则计算视角切换相应的视点位置移动向量,并且把当前帧的视点进行相应方向的移动,最后向vr头盔传递图像。104.本发明的边缘存储框架是服务器-客户端一对一形式,但并不局限于此,可以增加客户端数量形成一对多形式,可以在这基础上设置多个边缘计算存储器,对客户端进行通信,并由一个中心服务器掌管。105.下面对本实施例的基于边缘计算存储的cloudvr数据传输系统的具体实施过程进行描述:106.1)边缘计算存储服务器采用四棱锥投影方式对全景图进行映射计算,每一张全景图根据视点投影划分为30个不同fov版本存储,即每个全景视频在边缘存储服务器中有30个不同fov的视频版本存在;107.11)对erp全景图进行四棱锥投影,生成正方形全景图,投影效果如图5所示,即长方形全景图映射成正方形全景图;108.111)对于平面图像任意像素点g(m,n)判断当前面;109.112)根据像素属于哪个面确认相应的映射坐标,将二维坐标g(m,n)转换为立方体空间中的三维坐标p(x,y,z);110.113)根据映射公式求得该点在球坐标系中球坐标m;111.114)根据球形全景图生成的公式反向推导出球坐标系中的点在图像的位置n;112.115)判断n的坐标是否为整数;113.116)是的话则直接获取n点像素值赋值给立方体平面图像像素点;114.117)否则利用双向线性插值获取n点像素值赋值给立方体平面图像像素点。115.12)对正方形全景图进行视点版本划分,如图6所示;116.121)以地球仪经纬度为例进行划分说明:在赤道上,从0度开始,每隔30度选定一个视点,赤道上有12个视点版本;117.122)在南北维30度上,从0度开始,每隔60度选定一个视点,南北维30度上各有6个视点;118.123)在南北维90度上,从0度开始,每隔180度选定一个视点,南北维90度上各有2个视点;119.124)最后南北极各是一个视点。由此12 6 6 2 2 1 1=30个不同视点版本如此构成。120.13)对视点版本进行编号划分,如图6所示;121.131)从北极点到南极点,从0经度完往右手系方向依次编号0,1,2......29。122.14)本实施例的边缘存储框架是服务器-客户端一对一形式,但并不局限于此,可以增加客户端数量形成一对多形式,可以在这基础上设置多个边缘计算存储器,对客户端进行通信,并由一个中心服务器掌管,如图7所示。123.2)客户端主机实时获取用户vr头盔的三维运动数据并计算出用户视角信息,最后把用户视角信息传给边缘计算存储服务器;124.21)获取vr头盔的视图矩阵(m_mat4hmdpose),并进行相应的置rotate-only和相关求逆求转置处理;125.211)视图矩阵的作用是把物体的世界坐标系转换为摄像机坐标系;126.212)视图矩阵=旋转矩阵*平移矩阵;127.213)如图1所示,计算机内部渲染建立空间右手坐标系,即右边为x轴,后面为z轴,上面为y轴,右手系下的视图矩阵如下:[0128][0129]214)左手系下的视图矩阵如下:[0130][0131]215)eye(eyex,eyey,eyez)是视点,即相机在世界坐标系中的位置;[0132]216)at(atx,aty,atz)是观测点,即被观察的目标点,指向相机的方向;[0133]217)up(upx,upy,upz)是顶部朝向,即确定相机在哪个方向为正上方;[0134]218)zaxis是视点看向方向向量,即at看向eye的方向向量;[0135]219)yaxis和xaxis是世界坐标系的y和x方向轴的方向向量;[0136]220)对视图矩阵进行置rotate-only的意思为让相机只进行旋转操作而不进行平移缩放等操作;由上可知,右手系下只要对视图矩阵的地4列进行置(0,0,0,1)即可;[0137]221)右手系下视图矩阵需要进行求转置,左手系下不需要如此操作。[0138]22)空间坐标系按照右手系建立,计算当前播放帧视角的三维方向向量;[0139]222)由213)和218)可知,zaxis向量就是所需要获取的视角的三维方向向量;[0140]223)对视图矩阵进行先置负再乘上(0,0,1)的操作,把右手系下视图矩阵的第三行前三个分量取出组成新的三维fov方向向量;[0141]23)fov方向向量传给边缘计算存储服务器;[0142]24)在实时获取当前视点的视图矩阵的同时,进行基于机器学习的动态视角预测,采用了航位推测法(deadreckoning)。[0143]3)边缘计算服务器根据用户视角信息选择相应的版本视频gop发回客户端主机,客户端主机计算视角切换相应的视点位置移动向量并向vr头盔传递图像。[0144]31)根据fov方向向量计算相应的版本编号;[0145]311)南北纬15度,45度,75度为界限;[0146]312)经度线则在两个水平视点的中间经度线为界限;[0147]313)视点在南北维15度以内并且经度左右15度以内移动,则不发生视点切换操作,如果视点从0经度0维度移动到16经度0维度,则此时应该切换到以30经度0维度为视点中心的版本。[0148]32)根据编号以及当前播放指针,发送下一视频gop给客户端主机,如图8所示;[0149]321)将每个视频流分成一秒钟的gop,并实现与视图相关的自适应比特率流以进行回放。每秒(或更少),根据用户的网络条件,视口方向和下一个gop的时间来确定接下来要获取的流;[0150]322)在受控网络环境中运行多次迭代测试,记录从视口中心到观察者方向的角距离,在每个视口中花费的时间,视口分辨率和切换延迟,缓冲时间,和网络带宽。[0151]33)判断前后帧是否发生视点版本切换,是的话则计算视角切换相应的视点位置移动向量,并且把当前帧的视点进行相应方向的移动,最后向vr头盔传递图像;[0152]331)如图2所示,三维数据经过模型矩阵变换,投影矩阵变换和视图矩阵变换,最后才被渲染到vr头盔上;[0153]332)modelviewmatrix:模型矩阵;[0154]333)projectionmatrix:投影矩阵;[0155]334)viewporttransform:视图矩阵;[0156]335)mmodel=modelviewmatrix*projectionmatrix*viewporttransform:模型投影视图矩阵;[0157]336)先获取前一帧的视角方向和当前帧的视点中心,把当前帧视点中心移动到与前一帧视角方向重合;[0158]3361)更新视点:[0159]frameviewpoint.phi=(90-frameviewpointtable[viewpointindex][0])*m_pi/180;[0160]frameviewpoint.theta=frameviewpointtable[viewpointindex][1]*m_pi/180;[0161]3362)当前帧视点中心移动到与前一帧视角方向重合;[0162]floatsin_phi=sin(frameviewpoint.phi);[0163]floatcos_phi=cos(frameviewpoint.phi);[0164]floatsin_theta=sin(frameviewpoint.theta);[0165]floatcos_theta=cos(frameviewpoint.theta);[0166]#definem(row,col)mmodel[col*4 row][0167]m(0,0)=cos_theta;[0168]m(0,1)=sin_theta*sin_phi;[0169]m(0,2)=sin_theta*cos_phi;[0170]m(0,3)=0.0;[0171]m(1,0)=0.0;[0172]m(1,1)=cos_phi;[0173]m(1,2)=-sin_phi;[0174]m(1,3)=0.0;[0175]m(2,0)=-sin_theta;[0176]m(2,1)=cos_theta*sin_phi;[0177]m(2,2)=cos_theta*cos_phi;[0178]m(2,3)=0.0;[0179]m(3,0)=0.0;[0180]m(3,1)=0.0;[0181]m(3,2)=0.0;[0182]m(3,3)=1.0;[0183]#undefm[0184]以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本
技术领域
:中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献