公开/公告号CN106249413A
专利类型发明专利
公开/公告日2016-12-21
原文格式PDF
申请/专利权人 杭州映墨科技有限公司;
申请/专利号CN201610671842.9
申请日2016-08-16
分类号G02B27/01(20060101);
代理机构33200 杭州求是专利事务所有限公司;
代理人林超
地址 310000 浙江省杭州市余杭区仓前镇良睦路1399号互联网小镇8号楼3楼
入库时间 2023-06-19 01:10:07
法律状态公告日
法律状态信息
法律状态
2022-07-29
未缴年费专利权终止 IPC(主分类):G02B27/01 专利号:ZL2016106718429 申请日:20160816 授权公告日:20190423
专利权的终止
2019-04-23
授权
授权
2017-02-22
著录事项变更 IPC(主分类):G02B27/01 变更前: 变更后: 申请日:20160816
著录事项变更
2017-02-01
实质审查的生效 IPC(主分类):G02B27/01 申请日:20160816
实质审查的生效
2016-12-21
公开
公开
技术领域
本发明涉及图形图像处理方法,尤其涉及的是一种模拟人眼对焦的虚拟动态景深变化处理方法,适用于在显示屏或虚拟现实设备中。
背景技术
随着硬件技术和软件技术的发展,虚拟现实头显(head-mounted displays,HMDs)技术已经开始向消费者普及,并成为模拟沉浸式体验的首选设备。在沉浸式的体验中,最大程度上模拟还原人眼在现实生活中观察事物的方式是提高虚拟现实头显用户体验的关键。
现实生活中,人眼观察事物时具有景深效果,即只有在对焦点前后一定范围内的物体能够在人眼中形成清晰的图像,距离人眼的对焦点过远或过近的物体在人眼看来是模糊的。景深是模拟人眼视觉效果的重要手段,能够有效提高虚拟现实头显的沉浸式体验效果。然而现有的虚拟现实头显并没有提供动态景深感知的功能,其呈现给人眼的图像无论远近都是清晰的,这极大地降低了用户体验。
发明内容
为了解决背景技术中存在的问题,本发明提供了一种模拟人眼对焦的虚拟动态景深变化处理方法,用于在显示屏或虚拟现实设备上模拟人眼的自动对焦时,画面景深变化的过程。
本发明采用的技术方案是如图1所示,包括以下步骤:
1)在人观看虚拟现实场景的画面过程中,获得双眼眼球在虚拟现实场景中的凝视位置;
2)根据双眼眼球的凝视位置,实时对虚拟现实场景中每一帧的图像进行处理获得当前帧下虚拟凝视对象与虚拟镜头之间的期望对焦距离Depthdesired(focal>
3)再根据期望对焦距离Depthdesired和虚拟镜头的内参参数计算获得弥散圆(CoC)半径,然后根据弥散圆半径构建模糊效果,将模糊效果叠加到原虚拟现实场景的当前帧中进行显示,完成景深变化处理。
所述步骤1)具体为:在人使用虚拟现实设备中,在虚拟现实设备的显示屏显示虚拟场景画面,预先设定虚拟镜头光圈大小和镜头焦距等虚拟镜头的内参参数,并在人眼的正前方设置眼球跟踪设备,眼球跟踪设备可位于显示屏的上方附近,通过眼球跟踪设备实时获得双眼眼球的凝视位置信息。
所述步骤1)具体为:所述双眼眼球的凝视位置为显示屏幕的屏幕中心点。
所述步骤2)对于每一帧的虚拟现实场景图像具体如图2所示,是:
2.1)将双眼眼球的凝视位置信息转换到当前帧显示画面的二维坐标,再将二维坐标转换成当前帧虚拟现实场景的空间三维落点坐标Pos;
2.2)在当前帧虚拟现实场景中找到空间三维落点坐标Pos所对应的虚拟凝视对象,得到当前帧下虚拟凝视对象与虚拟镜头之间的深度距离Depthcurrent;
2.3)通过深度距离Depthcurrent和上一帧虚拟凝视对象与虚拟镜头之间的期望对焦距离Depth′desired进行计算,求得第一重对焦时间Time1refocus(单位为毫秒);
2.4)若Time1refocus小于毫秒,则将当前帧下虚拟凝视对象与虚拟镜头之间的期望对焦距离Depthdesired和上一帧虚拟凝视对象与虚拟镜头之间的期望对焦距离Depth′desired的值设为与深度距离Depthcurrent相同,设置当前帧标志位flag的值为false,不对当前帧进行景深变化处理,并结束对当前帧的处理;
若Time1refocus大于等于毫秒,则继续下一步骤;
2.5)通过上一帧虚拟现实场景图像的显示是否是通过模糊效果叠加后进行显示进行判断处理:
A)若上一帧虚拟现实场景图像的显示是通过模糊效果叠加后显示的,即当前帧标志位flag的值为false,则将当前帧标志位设置flag的值为true,根据第一重对焦时间Time1refocus计算虚拟现实场景中的参数,不对当前帧进行景深变化处理,并结束对当前帧的处理;
B)若上一帧虚拟现实场景图像的显示不是通过模糊效果叠加后显示的,即标志位flag的值为true,则计算求得第二重对焦时间Time2refocus,然后对第二重对焦时间Time2refocus进行判断:
若第二重对焦时间Time2refocus小于毫秒,则将当前帧标志位设置flag的值为true,根据第二重对焦时间Time2refocus计算虚拟现实场景中的参数,不对当前帧进行景深变化处理,并结束对当前帧的处理;
若第二重对焦时间Time2refocus大于等于毫秒,则将虚拟凝视对象的结束深度距离Depthend的值设置为与深度距离Depthcurrent相同,并利用以下公式计算求得Depthdesired;
Depthdesired=(Timenow-Timestart)×Δd+Depthstart
其中,Timenow表示当前帧所在的时刻,Timestart表示对焦开始时间,Depthstart表示虚拟凝视对象的开始深度距离。
所述步骤2.3)第一重对焦时间Time1refocus的计算采用以下公式:
其中,Δt表示人眼生理结构能达到的最小对焦时间,Δt为常量,具体实施可为40毫秒。
所述步骤B)第二重对焦时间Time2refocus的计算采用以下公式:
其中,Δt表示人眼生理结构能达到的最小对焦时间,Δt为常量,具体实施可为40毫秒。
所述的虚拟现实场景中的参数包括对焦开始时间Timestart、虚拟凝视对象的开始深度距离Depthstart、虚拟凝视对象的结束深度距离Depthend和单位深度距离Δd的参数。
所述的对焦开始时间Timestart、虚拟凝视对象的开始深度距离Depthstart、虚拟凝视对象的结束深度距离Depthend和单位深度距离Δd具体是采用以下公式计算获得:
Timestart=Timenow
Depthstart=Depth′desired
Depthend=Depthcurrent
其中,Timenow表示当前帧所在的时刻,Timerefocus为重对焦时间,具体为第一重对焦时间Time1refocus或第二重对焦时间Time2refocus。
所述的虚拟凝视对象为虚拟现实场景的三维虚拟模型。
本发明的有益效果是:
本发明提出的方法能够动态监测虚拟现实头显用户眼睛的对焦距离,进而可实时计算弥散圆半径,通过对原有图像添加模糊特效,能够有效地模拟人眼在现实生活中观察事物的景深效果,大大提升用户的沉浸式体验。
附图说明
图1为本发明方法的流程图。
图2为本发明方法步骤(2)求期望对焦距离的流程图。
图3为一次对焦过程中对焦前的景深变化图。
图4为一次对焦过程中对焦后的景深变化图。
图5为一次对焦过程中的动态景深变化过程之一的状态图。
图6为一次对焦过程中的动态景深变化过程之二的状态图。
图7为一次对焦过程中的动态景深变化过程之三的状态图。
图8为一次对焦过程中的动态景深变化过程之四的状态图。
具体实施方式
下面结合附图和实施技术对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
本发明的实施例及其实施工作过程如下:
1)在人使用虚拟现实设备中,采用Unity3D引擎作为三维场景的显示软件,在虚拟现实设备的显示屏显示虚拟场景画面,预先设定虚拟镜头的内参参数(光圈大小为0.3,镜头焦距35mm),显示刷新率为60Hz。并在人眼的正前方设置眼球跟踪设备,眼球跟踪设备可位于显示屏的上方附近,通过眼球跟踪设备实时获得双眼眼球的凝视位置信息。
2)根据双眼眼球的凝视位置,实时对虚拟现实场景中每一帧的图像进行处理:
2.1)将双眼眼球的凝视位置信息转换到当前帧显示画面的二维坐标,再将二维坐标转换成当前帧虚拟现实场景的空间三维落点坐标Pos。
2.2)在当前帧虚拟现实场景中找到空间三维落点坐标Pos所对应的虚拟现实场景的三维虚拟模型作为虚拟凝视对象,假如图4为当前帧,而人眼凝视对象在这一帧从第二排最左边处的篮球变成图7中第一排最近的篮球,那么可算出当前帧下虚拟凝视对象(第一排最近的篮球)与虚拟镜头之间的深度距离Depthcurrent(1米)。
2.3)通过深度距离Depthcurrent和上一帧虚拟凝视对象与虚拟镜头之间的期望对焦距离Depth′desired(10米)进行计算,一般来说,人眼的单位对焦时间Δt为40毫秒,但本实施例为了方便观察,将Δt的取值设置得略微大一些,即计算中Δt取值为200毫秒。求得第一重对焦时间Time1refocus为180(单位为毫秒).
2.4)若Time1refocus小于17毫秒(1/60Hz=17毫秒),则将当前帧下虚拟凝视对象与虚拟镜头之间的期望对焦距离Depthdesired和上一帧虚拟凝视对象与虚拟镜头之间的期望对焦距离Depth′desired的值设为与深度距离Depthcurrent相同,设置当前帧标志位flag的值为false,不对当前帧进行景深变化处理,并结束对当前帧的处理;
若Time1refocus大于等于17毫秒,则继续下一步骤。由于在本实施例中Time1refocus=32,所以继续下一步骤。
2.5)通过上一帧虚拟现实场景图像的显示是否是通过模糊效果叠加后进行显示进行判断处理:
A)若上一帧虚拟现实场景图像的显示是通过模糊效果叠加后显示的,即当前帧标志位flag的值为false,则将当前帧标志位设置flag的值为true,以第一重对焦时间Time1refocus作为重对焦时间Timerefocus计算虚拟现实场景中的对焦开始时间Timestart、虚拟凝视对象的开始深度距离Depthstart、虚拟凝视对象的结束深度距离Depthend和单位深度距离Δd等参数并覆盖,不对当前帧进行景深变化处理,并结束对当前帧的处理;由于在本实施例中flag=false,所以结束对当前帧的处理,直接转到步骤(3)。
B)若上一帧虚拟现实场景图像的显示不是通过模糊效果叠加后显示的,即标志位flag的值为true,则计算求得第二重对焦时间Time2refocus,计算中Δt为40毫秒,然后对第二重对焦时间Time2refocus进行判断:
若第二重对焦时间Time2refocus小于17毫秒,则将当前帧标志位设置flag的值为true,并以第二重对焦时间Time2refocus作为重对焦时间Timerefocus计算虚拟现实场景中的对焦开始时间Timestart、虚拟凝视对象的开始深度距离Depthstart、虚拟凝视对象的结束深度距离Depthend和单位深度距离Δd等参数并覆盖,不对当前帧进行景深变化处理,并结束对当前帧的处理。
若第二重对焦时间Time2refocus大于等于17毫秒,则将虚拟凝视对象的结束深度距离Depthend的值设置为与深度距离Depthcurrent相同,并计算求得Depthdesired。
3)利用L.McIntosh等人的算法(McIntosh,L.,Bernhard E.Riecke,and Steve DiPaola."Efficiently Simulating the Bokeh of Polygonal Apertures in a Post‐Process Depth of Field Shader."Computer Graphics Forum.Vol.31.No.6.Blackwell Publishing Ltd,2012.),再根据期望对焦距离Depthdesired和虚拟镜头的内参参数计算获得弥散圆(CoC)半径,然后根据弥散圆半径构建模糊效果,将模糊效果叠加到原虚拟现实场景的当前帧中进行显示,完成景深变化处理。
在本实施例中,第1帧到第11帧的动态景深变化效果如图5~图8所示,由图5到图8按时间顺序变化,图5~图8分别是第1、4、7、11帧的动态景深变化效果。
采用本发明中的方法,实施例当人眼观察如图3这样的三维篮球场景时,若将焦点由远处移至最近的篮球处,则会获得图4这样对焦后的景深状态图。
图中可见,当眼球的凝视位置从后方的篮球转移到前方的篮球时,动态景深技术会随着时间和距离逐渐将焦点从后方的篮球转移到前方的篮球,从而模拟出人眼的对焦效果。
以上是实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
机译: 使用显示屏模拟视域变化的虚拟窗口的方位角差异和方式,相对于各个观察者记录介质(模拟视域变化的虚拟方位角和虚拟窗口)
机译: 使用移动终端进行虚拟高尔夫球模拟的方法,通过移动终端进行虚拟高尔夫球模拟的方法,用于虚拟高尔夫球模拟的设计方法,用于虚拟高尔夫球模拟的程序处理方法以及移动终端模拟同样有能力提高用户的高尔夫能力
机译: 具有模拟的视差和视野变化的虚拟窗口的方法和系统,以及记录介质记录的计算机程序(具有模拟的视差和视野变化的虚拟窗口的方法)