一种图像处理的方法、装置、电子设备及存储介质与流程

文档序号:29028328发布日期:2022-02-24 10:44阅读:231来源:国知局
一种图像处理的方法、装置、电子设备及存储介质与流程

1.本发明涉及计算机图像学技术领域,特别涉及一种图像处理的方法、装置、电子设备及存储介质。


背景技术:

2.目前在使用虚拟现实(virtual reality,“vr”)终端时,常常会出现终端无法同步渲染出与终端动作相对应的画面,即虚拟现实终端显示的画面中一部分为上一次显示的图像,一部分为新渲染的图像,导致使虚拟现实终端使用者看到的连续显示的画面出现迟滞、卡顿的问题,甚至使用者会出现头晕的问题。目前采用对画面旋转、位移等异步扭曲技术解决本地vr渲染不及时导致的画面刷新显示问题,例如,异步时间扭曲(asynchronous time warp,“atw”)、异步空间扭曲(asynchronous space warp,“asw”)等。
3.异步扭曲技术在实施过程中,gpu中渲染线程和atw线程异步运行,渲染线程和atw线程在每次同步之前,atw线程根据渲染线程的最后一帧图像生成新的待显示图像。然而,当检测到渲染线程无法在刷新周期内渲染出新的待显示图像时,atw线程需要抢占渲染线程;因此需要gpu硬件支持合理的抢占粒度,例如,在90赫兹,帧之间的间隔大约是11ms(1/90hz),为了保证atw线程可以生成一帧新的图像,需要atw线程能够抢占渲染线程并且运行时间少于11ms;同时还要求操作系统和驱动程序支持使gpu抢占。可见,异步扭曲技术对虚拟现实终端的硬件需要较高;若由服务端对进行图像渲染,由于存在网络延时,也会导致的终端无法同步渲染出与终端动作相对应的画面。


技术实现要素:

4.本发明实施例的目的在于提供一种图像处理的方法,能够避免虚拟现实终端出现因网络延时导致不能在刷新周期内显示与终端位姿对应的图像的问题,同时降低虚拟设备的硬件要求。
5.为实现上述目的,本技术实施例提供了一种图像处理的方法,包括:将终端在初始时刻的初始位姿数据发送至服务端,初始时刻为当前时刻之前的时刻;接收服务端根据初始位姿数据返回的初始图像数据,初始图像数据包括与初始位姿数据对应的二维图像数据;获取终端在当前时刻的目标位姿数据;根据初始位姿数据以及目标位姿数据,对二维图像数据进行调整,获得与目标位姿数据对应的目标图像数据。
6.为实现上述目的,本技术实施例还提供了一种图像处理的装置,包括:发送模块、接收模块、获取模块和调整模块;发送模块用于将终端在初始时刻的初始位姿数据发送至服务端,初始时刻为当前时刻之前的时刻;接收模块用于接收服务端根据初始位姿数据返回的初始图像数据,初始图像数据包括与初始位姿数据对应的二维图像数据;获取模块用于获取终端在当前时刻的目标位姿数据;调整模块用于根据初始位姿数据以及目标位姿数据,对二维图像数据进行调整,获得与目标位姿数据对应的目标图像数据。
7.为实现上述目的,本技术实施例还提供了一种电子设备,包括:至少一个处理器;
以及,
8.与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的图像处理的方法。
9.为实现上述目的,本技术实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的图像处理的方法。
10.本技术提出的图像处理的方法,由服务端根据终端的初始位姿数据返回初始图像数据,该初始图像数据中包括与初始位姿数据对应的二维图像数据,终端根据当前时刻的目标位姿数据和初始位姿数据对二维图像数据进行调整,生成与目标位姿数据对应的目标图像数据;确保了终端显示的二维图像数据始终与该终端当前的位姿对应,由于二维图像数据的维度低,对二维图像数据调整的速度快,使得即使出现了网络延迟,也可以确保调整后的二维图像数据在刷新周内及时刷新,从而避免出现因网路延迟导致图像在刷新周期内刷新不及时的问题,提高了终端显示图像的效果;另外,服务端将该初始图像数据发送至终端,使得终端无需进行复杂的渲染操作,提高了图像显示的速度,降低了终端设备的硬件要求;且终端生成目标图像的过程中无需终端的gpu硬件支持合理的抢占粒度,也无需终端的操作系统和驱动程序支持使gpu抢占,进一步降低了终端的硬件需求,更利于虚拟现实终端的推广。
附图说明
11.图1是根据本发明第一实施例中图像处理的方法的流程图;
12.图2是根据本发明第二实施例中图像处理的方法的流程图;
13.图3是根据本发明第三实施例中图像处理的方法的流程图;
14.图4是根据本发明第四实施例中图像处理的装置的结构框图;
15.图5是根据本发明第五实施例中电子设备的结构框图。
具体实施方式
16.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本技术各实施例中,为了使读者更好地理解本技术而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本技术所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本技术的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
17.云化虚拟现实技术是通过服务端对虚拟现实终端待显示的图像进行渲染,可以大大减少本地虚拟现实终端的渲染引起的设备功耗,降低虚拟现实终端的硬件要求;且随着5g技术的不断发展,提高了网络传输的速度,进一步提高了云化虚拟现实技术的应用。但是,网络传输通常存在网络延迟,vr终端无法在刷新周期内同步渲染出与终端动作相对应的画面,导致用户看到的连续图像出现卡顿、抖动等问题,严重影响用户的使用。
18.本发明的第一实施方式涉及一种图像处理的方法,该图像处理的方法应用于虚拟现实终端,该vr终端可以时头戴式vr眼镜、头盔等。其流程如图1所示:
19.步骤101:将终端在初始时刻的初始位姿数据发送至服务端,初始时刻为当前时刻之前的时刻。
20.步骤102:接收服务端根据初始位姿数据返回的初始图像数据,初始图像数据包括与初始位姿数据对应的二维图像数据。
21.步骤103:获取终端在当前时刻的目标位姿数据。
22.步骤104:根据初始位姿数据以及目标位姿数据,对二维图像数据进行调整,获得与目标位姿数据对应的目标图像数据。
23.本技术提出的图像处理的方法,由服务端根据终端的初始位姿数据返回初始图像数据,该初始图像数据中包括与初始位姿数据对应的二维图像数据,终端根据当前时刻的目标位姿数据和初始位姿数据对二维图像数据进行调整,生成与目标位姿数据对应的目标图像数据;确保了终端显示的二维图像数据始终与该终端当前的位姿对应,由于二维图像数据的维度低,对二维图像数据调整的速度快,使得即使出现了网络延迟,也可以确保调整后的二维图像数据在刷新周内及时刷新,从而避免出现因网路延迟导致图像在刷新周期内刷新不及时的问题,提高了终端显示图像的效果;另外,服务端将该初始图像数据发送至终端,使得终端无需进行复杂的渲染操作,提高了图像显示的速度,降低了终端设备的硬件要求;且终端生成目标图像的过程中无需终端的gpu硬件支持合理的抢占粒度,也无需终端的操作系统和驱动程序支持使gpu抢占,进一步降低了终端的硬件需求,更利于虚拟现实终端的推广。
24.本发明的第二实施方式涉及一种图像处理的方法,第二实施例是对第一实施例中的步骤101-103进行的具体说明,其流程具体如图2所示:
25.步骤201:将终端在初始时刻的初始位姿数据发送至服务端,初始时刻为当前时刻之前的时刻。
26.具体地,虚拟现实终端可以实时获取自身的位姿数据,位姿数据包括该终端的姿态数据以及位置数据。初始时刻为当前时刻之前的时刻,例如,当前时刻为t1;该初始时刻t0《t1;该初始时刻与当前时刻之间的间隔可以小于预设间隔,例如预设间隔可以为5s、1ms,0.1ms;预设间隔也可以与采集终端的位姿数据的时间间隔相同。
27.需要说明的是,初始时刻并不是固定的时刻,是根据当前时刻动态变化的时刻,例如,若当前时刻为第80秒的时刻,初始时刻小于第80秒的时刻即可,可以是第79秒、第78秒等。
28.初始位姿数据的形式可以有多种,本示例中不限制该初始位姿数据的类型,例如,本示例中初始位姿数据的表达形式可以是矩阵。终端将采集到的初始位姿数据发送至服务端。
29.终端通过自身的传感器可以实时获取自身的位姿数据,传感器可以是陀螺仪、激光定位装置等。
30.步骤202:接收服务端根据初始位姿数据返回的初始图像数据,初始图像数据包括与初始位姿数据对应的二维图像数据。
31.具体地,服务端可以预先存储虚拟现实终端所处空间的三维图像数据;例如,预先存储多个游戏场景的三维图像数据,游戏场景如树林、密室、邮轮等地方。服务端接收到该初始位姿数据后,服务端根据该初始位姿数据,可以将该终端在初始时刻的位姿下所观察
到的立体图像数据渲染为与该初始位姿数据对应的二维图像数据,该二维图像数据与该初始时刻对应,同时也与该初始位姿数据对应。
32.值得一提的是,渲染图像是将高维度的图像数据转换为低维度的图像数据,终端接收到二维图像数据后,使得终端可以快速的绘制该低纬度的二维图像数据,可以降低终端的资源使用,提高显示图像的速度。
33.需要说明的是,该初始图像数据包括该二维图像数据、该二维图像数据中每个像素点对应的深度数据、以及每个像素点对应的颜色信息。
34.此外,服务端还可以将二维图像数据以及对应的初始位姿数据同时返回该终端,从而可以确保终端的初始位姿数据和二维图像数据一一对应。
35.步骤203:获取终端在当前时刻的目标位姿数据。
36.具体地,在接收到初始图像数据之后,可以获取终端在当前时刻的目标位姿数据。获取的方式与步骤201的过程大致相同。目标位姿数据同理可以包括:终端在当前时刻的姿态数据和位置数据,姿态数据例如可以是终端旋转的角度,位置数据可以是终端当前时刻所处的空间坐标。
37.步骤204:获取二维图像数据的在屏幕坐标系下的初始坐标数据以及各深度数据。
38.具体地,初始图像数据中包括二维图像数据在屏幕坐标系下的坐标,将该坐标作为二维图像数据的初始坐标数据,例如,二维图像在屏幕坐标系下的初始坐标数据可以表示为(xcurrent,ycurrent)
t
。初始图像数据中还包括该二维图像数据中每个像素点对应的深度数据和颜色信息。颜色信息具体可以为rgb三原色各自的色值;深度数据可以表示为:depthbuffer(xcurrent,ycurrent)。
39.步骤205:根据初始坐标数据、各深度数据以及预设的坐标系转换关系,将初始坐标数据转换为基于世界坐标系下的第一转换坐标数据。
40.在一个例子中,根据第一转换关系以及各深度数据,将初始坐标数据转换为基于标准设备坐标系的第一标准设备坐标;从初始位姿数据中获取位姿矩阵以及投影矩阵;根据位姿矩阵、投影矩阵、第一标准设备坐标以及第二转化关系,得到第一转换坐标数据。
41.具体地,可以获取该终端屏幕的宽度、屏幕高度等信息。例如,屏幕宽度screenwidth和屏幕高度screenheight,则有0≤xcurrent≤screenwidth,0≤ycurrent≤screenheight。二维图像数据中每个像素点对应的颜色信息表示为colorbuffer,深度数据以depthbuffer表示。屏幕空间坐标系下各像素点对应深度为depthbuffer(xcurrent,ycurrent)。
42.预设的坐标转换关系包括:屏幕坐标系与标准设备坐标系之间转换的第一转换关系,以及标准设备坐标系与世界坐标系之间转换的第二转换关系。
43.本示例中,第一转换关系为:
44.x=2*xcurrent/screenwidth-1;y=2*ycurrent/screenheight-1;
45.z=depthbuffer(xcurrent,ycurrent);w=1.0
ꢀꢀꢀꢀꢀ
公式(1);
46.其中,初始坐标数据可以表示为(xcurrent,ycurrent)
t
,屏幕宽度screenwidth和屏幕高度screenheight,且0≤xcurrent≤screenwidth,0≤ycurrent≤screenheight;w为预设的值,用于表征图像数据呈现近大远小的特征;其中,z表示标准设备坐标系中的纵轴。
47.根据公式(1)可将初始坐标数据(xcurrent,ycurrent)
t
,转换为标准设备坐标系
下的第一标准设备坐标,即得到的第一标准设备坐标表示为(x,y,z,w)
t

48.具体地,标准设备坐标系与世界坐标系之间转换的第二转换关系可以表示为:
49.(x_world,y_world,z_world,w_world)
t
=rcurrent-1
*p-1
*(x,y,z,w)
t
ꢀꢀꢀꢀ
公式(2);
50.其中,(x_world,y_world,z_world,w_world)
t
表示世界坐标系下的坐标,在本示例中表示为第一转换坐标数据,(x,y,z,w)
t
表示第一标准设备坐标,p表示该三维图像数据转为二维图像数据的投影矩阵;rcurrent表示初始时刻终端的初始位姿数据,该初始位姿数据可以以矩阵的形式表示。
51.根据公式(2)所表示的第二转换关系,可以将第一标准化设备坐标(x,y,z,w)t转换为在世界坐标系下的第一转换坐标数据(x_world,y_world,z_world,w_world)
t

52.步骤206:将第一转换坐标数据作为基于世界坐标系下目标位姿数据对应的第二转换坐标数据。
53.在一个例子中,将该第一转换坐标作为世界坐标系下目标位姿数据对应的第二转换坐标数据,即:
54.(x_world_n,y_world_n,z_world_n,w_world_n)
t
=(x_world,y_world,z_world,w_world)
t
55.其中,(x_world_n,y_world_n,z_world_n,w_world_n)
t
表示为在世界坐标系下目标位姿数据对应的坐标;(x_world,y_world,z_world,w_world)
t
表示第一转换坐标数据。
56.步骤207:根据第二转换坐标数据以及坐标转换关系,生成目标图像数据。
57.在一个例子中,根据第二转换坐标数据、目标位姿数据、投影矩阵以及第二转换关系,获得标准设备坐标系下与目标位姿数据对应的第二标准设备坐标数据;根据第一转换关系,将第二标准设备坐标数据转化为基于屏幕坐标系下的目标坐标数据;将二维图像数据中每个像素点的颜色信息映射至目标坐标数据中对应的像素点,形成目标图像数据。
58.具体地,根据第二转换关系,即公式(2)可知;
59.(x_world_n,y_world_n,z_world_n,w_world_n)
t
=rnext-1
*p-1
*(x’,y’,z’,w’)
t
60.公式(3);
61.其中,(x’,y’,z’,w’)
t
表示当前时刻对应的第二标准设备坐标数据。对公式(3)进行简单的变形,即可得到:
62.(x’,y’,z’,w’)
t
=p*rnext*(x_world_n,y_world_n,z_world_n,w_world_n)
t
63.由于
64.(x_world_n,y_world_n,z_world_n,w_world_n)
t
=(x_world,y_world,z_world,w_world)
t
65.则,(x’,y’,z’,w’)
t
=p*rnext*(x_world,y_world,z_world,w_world)
t
公式(4);
66.其中,rnext表示目标位姿数据,本示例中以矩阵形式表示;p为投影矩阵。(x’,y’,z’,w’)
t
表示目标位姿数据对应的第二标准设备坐标数据。
67.根据第一转换关系,可以将第二标准设备坐标数据转换为在当前时刻屏幕坐标系下的坐标;
68.xnext=screenwidth*(x’+1)/2;ynext=screenheight*(y’+1)/2;
ꢀꢀꢀ
公式(5);
69.当前时刻的屏幕坐标表示为(xnext,ynext)
t

70.在得到当前时刻图像数据基于屏幕坐标系下的目标坐标数据后,将二维图像数据中每个像素点的颜色信息映射至目标坐标数据中对应的像素点,形成目标图像数据。
71.例如,二维图像数据中的坐标(0,0)点对应的color1,该坐标(0,0),变换后为(3,0)位置,则将该(3,0)的位置像素点填充为color1。
72.需要说明的是,步骤204至步骤207是对步骤103的具体说明。
73.本发明的第三实施方式涉及一种图像处理的方法。本实施方式是对第二实施方式的进一步改进,主要改进之处在于:本实施方式中终端根据时间标识信息查找与该二维图像数据对应的初始位姿数据,该图像处理的方法其的流程如图3所示。
74.步骤301:将终端在初始时刻的初始位姿数据发送至服务端。
75.该步骤301与步骤201大致相同,此处将不再赘述。
76.步骤302:将用于表征初始时刻的时间标识信息发送至服务端。
77.具体地,该时间标识信息可以根据实际应用进行设置,例如,该时间标识信息可以是初始时刻的时间戳。将初始时刻的时间戳发送值服务端,该时间戳可以与初始位姿数据同时发送值服务端。也可以在初始位姿数据发送后,将该时间戳上传服务端。
78.步骤303:将时间标识信息作为索引,在位姿缓冲队列中存储对应的初始位姿数据。
79.具体地,可以将时间标识信息作为索引在终端中缓存初始位姿数据,以便后续终端可以根据时间戳快速查找初始位姿数据。例如,可以在终端中设置位姿矩阵缓冲队列,将初始位姿数据存储在该位姿矩阵缓冲队列中,并以时间戳作为初始位姿数据的索引。
80.步骤304:接收服务端根据初始位姿数据返回的初始图像数据。
81.具体地,该初始图像数据还包括:时间标识信息。服务端可以将初始图像数据以及该时间标识信息一同下发至终端。终端中可以设置接收线程和解码线程,该接收线程和解码线程可以异步运行,以提高终端的显示图像的速度。该接收线程用于接收二维图像数据和对应时间标识信息。解码线程用于对二维图像数据进行解码。
82.步骤305:将二维图像数据存储于第一缓冲队列中以及将时间标识信息存储于第二缓冲队列中。
83.具体地,终端可以设置第一缓冲队列以及第二缓冲队列,第一缓冲队列用于缓存接收到的二维图像数据,第二缓冲队列用于存储与初始时刻对应的时间标识信息。该解码线程用于从第一缓冲队列中获取二维图像数据进行解码。
84.步骤306:若检测到二维图像数据被解码后,则从第二缓冲队列中读取时间标识信息。
85.具体地,由于接收线程与解码线程异步运行,若检测到二维图像数据被解码后,则从第二缓冲队列中读取时间标识信息,从而可以确保获取到与二维图像数据对应的初始位姿数据。例如,若每解码一帧二维图像数据,则从第二缓冲队列中读取与该二维图像数据对应的时间标识信息。
86.步骤307:根据时间标识信息,从位姿缓冲队列中读取初始位姿数据。
87.具体地,由于初始位姿数据是以时间标识信息进行存储的,故可以通过时间标识信息,读取出与该时间标识信息对应的初始位姿数据。例如,初始时刻为t1时刻,对应的初始位姿数据为rcurret,根据该t1,即可从位姿矩阵缓冲队列中读取该rcurrent。
88.步骤308:获取终端在当前时刻的目标位姿数据。
89.与第二实施方式中的步骤203大致相同,此处将不再进行赘述。
90.步骤309:根据初始位姿数据以及目标位姿数据,对二维图像数据进行调整,获得与当前时刻对应的目标图像数据。
91.与第二实施方式中步骤204至步骤207大致相同,此处将不再进行赘述。
92.本实施方式中提供的图像处理的方法,初始图像数据中包括与初始时刻对应的时间标识信息,使得服务端无需返回初始位姿数据,终端根据该时间标识信息,即可读取该初始位姿数据,提高了获取初始位姿数据的速度,同时设置第一缓冲队列和第二缓冲队列,使得解码可以异步进行,进一步提高显示图像数据的速度。
93.本发明第四实施方式涉及一种图像处理的装置,其结构框图如图4所示,包括:发送模块401、接收模块402、获取模块403和调整模块404。
94.发送模块401用于将终端在初始时刻的初始位姿数据发送至服务端,初始时刻为当前时刻之前的时刻;接收模块402用于接收服务端根据初始位姿数据返回的初始图像数据,初始图像数据包括与初始位姿数据对应的二维图像数据;获取模块403用于获取终端在当前时刻的目标位姿数据;调整模块404用于根据初始位姿数据以及目标位姿数据,对二维图像数据进行调整,获得与目标位姿数据对应的目标图像数据。
95.不难发现,本实施方式为与第一实施方式相对应的装置实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
96.值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
97.本发明第五实施方式涉及一种电子设备,其结构框图如图5所示,该电子设备包括:至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行上述的图像处理的方法。
98.其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
99.处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
100.本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的图像处理的方法。
101.本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
102.本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1