基于头戴显示设备的图像校正方法、装置及设备转让专利

申请号 : CN202010519249.9

文献号 : CN111866493B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴涛

申请人 : 青岛小鸟看看科技有限公司

摘要 :

本发明公开了基于头戴显示设备的图像校正方法、装置及设备,该方法包括:获取通过第一相机采集的第一图像和通过第二相机采集的第二图像;根据第一图像对所述第二图像进行立体校正,获得校正后的第二图像;根据第一相机的光轴和与第一相机对应的透镜的光轴之间的旋转角度信息,对第一图像和校正后的第二图像进行转换,获得转换后的第一图像和第二图像。

权利要求 :

1.一种基于头戴显示设备的图像校正方法,其特征在于,所述方法包括:获取通过第一相机采集的第一图像和通过第二相机采集的第二图像;

根据所述第一图像对所述第二图像进行立体校正,获得校正后的第二图像;

根据所述第一相机的光轴和与所述第一相机对应的透镜的光轴之间的旋转角度信息,对所述第一图像和所述校正后的第二图像进行转换,获得转换后的第一图像和第二图像;

其中,根据所述第一图像对所述第二图像进行立体校正,获得校正后的第二图像的步骤包括:

将所述第一图像与所述第二图像进行双目立体匹配,确定所述第二图像中与所述第一图像中的每个待匹配像素点相匹配的目标像素点;

使用所述待匹配像素点的像素值代替相匹配的所述目标像素点的像素值,获得校正后的第二图像。

2.根据权利要求1所述的方法,将所述第一图像与所述第二图像进行双目立体匹配,确定所述第二图像中与所述第一图像中的每个待匹配像素点相匹配的目标像素点的步骤包括:

基于归一化互相关匹配算法,确定所述第一图像中的待匹配像素点在所述第二图像上的初始匹配块;

针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点。

3.根据权利要求2所述的方法,基于归一化互相关匹配算法,确定所述第一图像中的待匹配像素点在所述第二图像上的初始匹配块的步骤包括:在所述第一图像中构建以所述待匹配像素点为中心的第一窗口;

确定所述待匹配像素点在所述第二图像中投影的极线,并对所述极线上的每一个像素点构建与所述第一窗口大小相同的第二窗口;

对所述第一窗口和对应的多个所述第二窗口进行相关度计算,得到与所述第一窗口相关度最高的初始匹配块。

4.根据权利要求2所述的方法,针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点的步骤包括:在所述第二图像中构建以初始匹配像素点为中心的第三窗口,其中,所述初始匹配像素点为位于所述初始匹配块的中心的像素点;

以预定方式移动第三窗口,并计算移动后的所述第三窗口的中心坐标所在的像素点的灰度值与第一图像的平均灰度值的比值;

直至所述第三窗口的中心坐标所在的像素点的灰度值与第一图像的平均灰度值的比值大于预定比例阈值,将所述第三窗口的中心坐标所在的像素点确定为目标像素点。

5.根据权利要求4所述的方法,针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点的步骤还包括:基于所述第二图像对应的灰度图像,获取所述第三窗口的中心坐标所在的像素点附近的第一参考像素点、第二参考像素点、第三参考像素点、第四参考像素点的灰度值;

对所述第一参考像素点、第二参考像素点、第三参考像素点、第四参考像素点的灰度值进行加权平均计算,获得所述第三窗口的中心坐标所在的像素点的灰度值。

6.根据权利要求5所述的方法,针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点的步骤还包括:根据参考像素点与所述第三窗口的中心坐标的距离确定参考像素点的权重值。

7.根据权利要求4所述的方法,所述方法还包括:基于所述第一图像对应的灰度图像,获取参考匹配块中各个像素点的灰度值;

根据所述参考匹配块中各个像素点的灰度值,计算待匹配像素点在所述参考匹配块的水平方向和垂直方向上的灰度梯度值;

根据所述待匹配像素点在所述参考匹配块的水平方向和垂直方向上的灰度梯度值,确定第一图像的平均灰度值。

8.一种图像校正装置,其特征在于,包括处理器和存储器,所述存储器存储有计算机指令,所述计算机指令被所述处理器运行时,执行权利要求1‑7任一项所述的方法。

9.一种头戴显示设备,其特征在于,包括如权利要求8所述的图像校正装置。

说明书 :

基于头戴显示设备的图像校正方法、装置及设备

技术领域

[0001] 本公开实施例涉及图像处理技术领域,更具体地,本公开实施例涉及一种基于头戴显示设备的图像校正方法、一种图像校正装置、以及一种头戴显示设备。

背景技术

[0002] 混合现实技术(Mixed Reality,MR)是虚拟现实技术的进一步发展,该技术通过在虚拟环境中引入现实场景信息,在虚拟世界、现实世界和用户之间搭起一个交互反馈的信
息回路,以增强用户体验的真实感。
[0003] 目前,在虚拟现实或者混合现实领域,通过头戴显示设备外置两个可见光摄像头实时捕捉外部的环境信息。具体地,通过对两个可见光摄像头采集两张图像进行立体视觉
匹配,进一步对匹配后的图像进行对渲染处理得到外部环境信息,并通过头戴显示设备将
外部环境信息呈现给用户。但是,在头戴显示设备的装配过程中存在安装误差,会造成两个
可见光摄像头的光轴不完全平行,从而导致渲染得到的图像出现扭曲变形。特别是,当用户
在左右摆头、上下抬头低头或者前后移动时,渲染得到的图像和人眼的视觉差存在明显差
异,给用户带来明显的眩晕感和图像不清晰感。
[0004] 因此,有必要提供一种新的基于头戴显示设备的图像校正的方案。

发明内容

[0005] 本公开实施例的目的在于提供一种基于头戴显示设备的图像校正的新技术方案。
[0006] 根据本公开实施例的第一方面,提供了一种基于头戴显示设备的图像校正方法,所述方法包括:
[0007] 获取通过第一相机采集的第一图像和通过第二相机采集的第二图像;
[0008] 根据所述第一图像对所述第二图像进行立体校正,获得校正后的第二图像;
[0009] 根据所述第一相机的光轴和与所述第一相机对应的透镜的光轴之间的旋转角度信息,对所述第一图像和所述校正后的第二图像进行转换,获得转换后的第一图像和第二
图像。
[0010] 可选的,根据所述第一图像对所述第二图像进行立体校正,获得校正后的第二图像的步骤包括:
[0011] 将所述第一图像与所述第二图像进行双目立体匹配,确定所述第二图像中与所述第一图像中的每个待匹配像素点相匹配的目标像素点;
[0012] 使用所述待匹配像素点的像素值代替相匹配的所述目标像素点的像素值,获得校正后的第二图像。
[0013] 可选的,将所述第一图像与所述第二图像进行双目立体匹配,确定所述第二图像中与所述第一图像中的每个待匹配像素点相匹配的目标像素点的步骤包括:
[0014] 基于归一化互相关匹配算法,确定所述第一图像中的待匹配像素点在所述第二图像上的初始匹配块;
[0015] 针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点。
[0016] 可选的,基于归一化互相关匹配算法,确定所述第一图像中的待匹配像素点在所述第二图像上的初始匹配块的步骤包括:
[0017] 在所述第一图像中构建以所述待匹配像素点为中心的第一窗口;
[0018] 确定所述待匹配像素点在所述第二图像中投影的极线,并对所述极线上的每一个像素点构建与所述第一窗口大小相同的第二窗口;
[0019] 对所述第一窗口和对应的多个所述第二窗口进行相关度计算,得到与所述第一窗口相关度最高的初始匹配块。
[0020] 可选的,针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点的步骤包括:
[0021] 在所述第二图像中构建以初始匹配像素点为中心的第三窗口,其中,所述初始匹配像素点为位于所述初始匹配块的中心的像素点;
[0022] 以预定方式移动第三窗口,并计算移动后的所述第三窗口的中心坐标所在的像素点的灰度值与第一图像的平均灰度值的比值;
[0023] 直至所述第三窗口的中心坐标所在的像素点的灰度值与第一图像的平均灰度值的比值大于预定比例阈值,将所述第三窗口的中心坐标所在的像素点确定为目标像素点。
[0024] 可选的,针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点的步骤还包括:
[0025] 基于所述第二图像,获取所述第三窗口的中心坐标所在的像素点附近的第一参考像素点、第二参考像素点、第三参考像素点、第四参考像素点的灰度值;
[0026] 对所述第一参考像素点、第二参考像素点、第三参考像素点、第四参考像素点的灰度值进行加权平均计算,获得所述第三窗口的中心坐标所在的像素点的灰度值。
[0027] 可选的,针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点的步骤还包括:
[0028] 根据参考像素点与所述第三窗口的中心坐标的距离确定参考像素点的权重值。
[0029] 可选的,所述方法还包括:
[0030] 基于所述第一图像对应的灰度图像,获取参考匹配块中各个像素点的灰度值;
[0031] 根据所述参考匹配块中各个像素点的灰度值,计算待匹配像素点在所述参考匹配块的水平方向和垂直方向上的灰度梯度值;
[0032] 根据所述待匹配像素点在所述参考匹配块的水平方向和垂直方向上的灰度梯度值,确定第一图像的平均灰度值。
[0033] 根据本公开实施例的第二方面,提供了一种图像校正装置,包括处理器和存储器,所述存储器存储有计算机指令,所述计算机指令被所述处理器运行时,执行本公开实施例
的第一方面任一项所述的方法。
[0034] 根据本公开实施例的第三方面,提供了一种头戴显示设备,包括本公开实施例的第二方面所述的图像处理装置。
[0035] 根据本公开实施例,根据第一图像对第二图像进行立体校正后,根据旋转角度信息对第一图像和校正后的第二图像进行转换,以使转换后的第一图像和第二图像所在的平
面与透镜光轴的焦平面平行。通过转换后的第一图像和第二图像渲染生成外部的场景图
像,能够防止渲染生成的外部场景图像出现扭曲变形,从而改善头戴显示设备的图像显示
效果,提高用户体验。
[0036] 通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

[0037] 为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对
范围的限定。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这
些附图获得其他相关的附图。
[0038] 图1为可用于实现本公开实施例的头戴显示设备的硬件配置示意图;
[0039] 图2本公开实施例的基于头戴显示设备的图像校正方法的流程示意图;
[0040] 图3本公开实施例的第三窗口的示意图;
[0041] 图4为本公开实施例的图像校正装置的结构方框图;
[0042] 图5为本公开实施例的图像校正装置的结构方框图;
[0043] 图6为本公开实施例的头戴显示设备的结构示意图。

具体实施方式

[0044] 现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本
发明的范围。
[0045] 以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
[0046] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0047] 在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
[0048] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0049] <硬件配置>
[0050] 图1是可用于实现本公开实施例的基于头戴显示设备的图像处理方法的一种头戴显示设备100的硬件配置示意图。
[0051] 在一个实施例中,该头戴显示设备100可以是虚拟现实(Virtual Reality,VR)设备、增强现实(Augmented Reality,AR)设备或者混合现实(Mixed Reality)设备等智能设
备。
[0052] 在一个实施例中,如图1所示,该头戴显示设备100可以包括处理器110、存储器120、接口装置130、通信装置140、显示装置150、输入装置160、扬声器170、麦克风180、摄像
头190等。其中,处理器110例如可以包括但不限于中央处理器CPU、微处理器MCU等。处理器
110例如还可以包括图像处理器GPU(Graphics Processing Unit)等。存储器120例如可以
包括但不限于ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接
口装置130例如可以包括但不限于USB接口、串行接口、并行接口、红外接口等。通信装置140
例如能够进行有线或无线通信,具体的可以包括WiFi通信、蓝牙通信、2G/3G/4G/5G通信等。
显示装置150例如可以是液晶显示屏、LED显示屏、触摸显示屏等。输入装置160例如可以包
括但不限于触摸屏、键盘、体感输入等。扬声器170和麦克风180可以用于输出/输入语音信
息。摄像头180例如可以用于获取图像信息,摄像头190例如可以是双目摄像头。尽管在图1
中对头戴显示设备100示出了多个装置,但是,本发明可以仅涉及其中的部分装置,
[0053] 应用于本公开实施例中,头戴显示设备100的存储器120用于存储指令,所述指令用于控制所述处理器110进行操作以支持实现根据本公开第一方面提供的任意实施例的基
于头戴显示设备的图像处理方法。技术人员可以根据本公开实施例所公开方案设计指令。
指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
[0054] <方法实施例>
[0055] 参见图2所示,说明本公开实施例提供的基于头戴显示设备的图像处理方法。该方法涉及到头戴显示设备,该头戴显示设备可以是如图1所示的头戴显示设备100。该基于头
戴显示设备的图像处理方法包括以下步骤:
[0056] 步骤2100、获取通过第一相机采集的第一图像和通过第二相机采集的第二图像。
[0057] 在本实施例中,通过所述第一相机获取第一图像,通过所述第二相机获取第二图像。其中,所述第一图像和所述第二图像是在同一时刻采集的。可选地,可以采用同一时钟
触发源对第一相机和第二相机进行触发,以保证第一相机和第二相机的硬件同步。在本实
施例中,所述第一图像和所述第二图像的图像尺寸大小一致,其中,图像的尺寸大小可以有
多种设置。
[0058] 进一步的,在本实施例中,在获取通过第一相机采集的第一图像和获取通过第二相机采集的第二图像之后,需要对所述第一图像和第二图像进行预处理。
[0059] 在一个实施例中,在获取到所述第一图像和所述第二图像后,对第一图像和第二图像进行灰度处理,分别获得第一图像和第二图像对应的灰度图像。根据本公开实施例,在
获取到所述第一图像和第二图像后,对第一图像和第二图像进行灰度处理,以便于后续运
算处理。
[0060] 在一个实施例中,在获取到所述第一图像和所述第二图像后,对第一图像和第二图像中的噪声进行消除。可选的,可以通过中值滤波方法对所述第一图像和第二图像中的
噪声进行消除。
[0061] 在获取通过第一相机采集的第一图像和通过第二相机采集的第二图像之后,进入步骤2200。
[0062] 步骤2200、根据所述第一图像对所述第二图像进行立体校正,获得校正后的第二图像。
[0063] 在本实施例中,在对第一图像和第二图像进行预处理后,根据所述第一图像对所述第二图像进行立体校正,获得校正后的第二图像,以使校正后的第二图像与第一图像共
面。
[0064] 在一个实施例中,根据所述第一图像对所述第二图像进行立体校正,获得校正后的第二图像的步骤,进一步可以包括:步骤3100‑3200。
[0065] 步骤3100、将所述第一图像与所述第二图像进行双目立体匹配,确定所述第二图像中与所述第一图像中的每个待匹配像素点相匹配的目标像素点。
[0066] 在本实施例中,在对第一图像和第二图像进行预处理后,对预处理后的第一图像和第二图像进行双目立体匹配,可以在第二图像中查找出与第一图像中的每个待匹配像素
点相匹配的目标像素点。
[0067] 在一个实施例中,将所述第一图像与所述第二图像进行双目立体匹配,确定所述第二图像中与所述第一图像中的每个待匹配像素点相匹配的目标像素点,可以进一步包
括:步骤3110‑3120。
[0068] 步骤3110、基于归一化互相关匹配算法,确定所述第一图像中的待匹配像素点在所述第二图像上的初始匹配块。
[0069] 在对所述第一图像和第二图像进行预处理后,通过归一化互相关匹配算法(Normalized cross correlation,NCC)对预处理后的所述第一图像和第二图像进行匹配,
即可得到所述第一图像中的待匹配像素点在所述第二图像上的初始匹配块。根据本公开实
施例,基于归一化互相关匹配算法,确定所述第一图像中的待匹配像素点在所述第二图像
上的初始匹配块,在确定初始匹配块之后,进一步基于确定的初始匹配块查找目标像素点,
这样,能够提高匹配速度。
[0070] 在一个实施例中,基于归一化互相关匹配算法,确定所述第一图像中的待匹配像素点在所述第二图像上的初始匹配块,可以进一步包括:步骤3111‑3113。
[0071] 步骤3111、在所述第一图像中构建以所述待匹配像素点为中心的第一窗口。
[0072] 在该实施例中,针对所述第一图像中的每个待匹配像素点,首先需确定该待匹配像素点所在的位置信息。在确定该待匹配像素点的位置信息后,基于该待匹配像素点,构建
第一窗口,所述第一窗口的大小可根据实际情况而设定,可选的,在本公开实施例中,所述
第一窗口的大小设定为5(像素)×5(像素)。
[0073] 步骤3112、确定所述待匹配像素点在所述第二图像中投影的极线,并对所述极线上的每一个像素点构建与所述第一窗口大小相同的第二窗口。
[0074] 在该实施例中,极线是指第一图像中的待匹配像素点在第二图像中投影的极线。在已知第一图像的待匹配像素点的情况下,那么在第二图像中与该待匹配像素点相匹配的
像素点一定落在相对于该待匹配像素点在第二图像中投影的极线上。本实施例可以通过待
匹配像素点在第一图像中的位置信息等特征确定该待匹配像素点在第二图像中投影的极
线,以在第二图像中的所述极线上对该待匹配像素点进行匹配跟踪。
[0075] 在一个更具体的例子中,步骤3112中的确定所述待匹配像素点在所述第二图像中投影的极线的步骤可以包括:步骤4100‑4300。
[0076] 步骤4100、对第一相机和第二相机进行标定,获取第一相机的内参矩阵K1和畸变参数、第二相机的内参矩阵K2和畸变参数、以及第一相机和第二相机之间的外参矩阵。其
中,外参矩阵包括旋转矩阵MatR和平移矩阵MatT。可选的,可以采用张友正标定法对相机进
行标定。
[0077] 步骤4200、获取第一图像中的待匹配像素点的位置。
[0078] 步骤4300、根据第一图像中的待匹配像素点的位置、第一相机的内参矩阵K1和畸变参数、第二相机的内参矩阵K2和畸变参数、以及第一相机和第二相机之间的外参矩阵,确
定所述待匹配像素点在所述第二图像中投影的极线。
[0079] 步骤2213、对所述第一窗口和对应的多个所述第二窗口进行相关度计算,得到与所述第一窗口相关度最高的初始匹配块。
[0080] 在该实施例中,在确定所述待匹配像素点在所述第二图像中投影的极线后,对所述第二图像中对应极线上的每一个像素点构建与所述第一窗口相同大小的第二窗口,进而
得到多个第二窗口。例如,所述第一窗口为5(像素)×5(像素),则所述第二窗口为5(像素)
×5(像素)。
[0081] 在对所述第二图像中对应极线上的每一个像素点构建与所述第一窗口相同大小的第二窗口后,根据NCC算法,针对所述第一图像中的所述第一窗口,对该第一窗口和与该
第一窗口大小相同的多个第二窗口进行相关度计算,得到与所述第一窗口相关度最高的初
始匹配块。
[0082] 在基于归一化互相关匹配算法,确定所述第一图像中的待匹配像素点在所述第二图像上的初始匹配块之后,进入步骤3120。
[0083] 步骤3120、针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点。
[0084] 在该实施例中,根据初始匹配块可以确定与第一图像中的待匹配像素点相匹配的初始匹配像素点。该初始匹配像素点为位于初始匹配块的中心的像素点。根据NCC算法确定
初始匹配块之后,对初始匹配块进一步进行亚像素匹配,可以在初始匹配像素点附近进行
更精确的查找,以确定与待匹配像素点相匹配的目标像素点。根据本公开实施例,在确定初
始匹配块之后进一步进行亚像素匹配,能够提高匹配的准确性。
[0085] 在一个实施例中,针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点的步骤,进一步可以包括:步骤
3121‑3123。
[0086] 步骤3121、在所述第二图像中构建以初始匹配像素点为中心的第三窗口。
[0087] 在该实施例中,根据初始匹配块可以确定与第一图像中的待匹配像素点相匹配的初始匹配像素点。该初始匹配像素点为位于初始匹配块的中心坐标所在的像素点。在确定
第二图像中的初始匹配像素点的位置信息后,基于该初始匹配像素点,构建第三窗口。第三
窗口的大小可根据实际情况而设定,可选的,在本公开实施例中,初始匹配块的大小为5(像
素)×5(像素),第三窗口的大小也可以设定为5(像素)×5(像素)。
[0088] 步骤3122、以预定方式移动第三窗口,并计算移动后的所述第三窗口的中心坐标所在的像素点的灰度值与第一图像的平均灰度值的比值。
[0089] 在该实施例中,以初始匹配像素点为起始位置,以预定方式移动第三窗口,并且在每移动一次后计算第三窗口的中心坐标所在的像素点的灰度值与第一图像的平均灰度值
的比值。根据第三窗口的中心坐标所在的像素点的灰度值与第一图像的平均灰度值的比
值,可以确定第三窗口的中心坐标所在的像素点是否为与待匹配像素点相匹配的目标像素
点。
[0090] 以预定方式移动第三窗口例如可以是在预定的移动范围内以预定的的移动步长移动第三窗口。移动步长可以限定第三窗口每次移动距离。移动步长可以是预先设定的,该
预定的移动步长可以根据工程经验或者仿真试验经验进行设定,本公开实施例对此不做限
制。移动步长可以包括水平方向上的移动步长和垂直方向上的移动步长。例如,水平方向上
的移动步长为0.2个像素,垂直方向上的移动步长为0.2个像素。进一步地,可以将第三窗口
的移动限定在预定的移动范围内。移动范围可以是预先设定的,该预定的移动范围可以根
据工程经验或者仿真试验经验进行设定,本公开实施例对此不做限制。例如,初始匹配像素
点的位置为LocalPointu,v,第三窗口的移动范围为[LocalPointu,v‑0.5,LocalPointu,v+
0.5]。
[0091] 步骤3123、直至所述第三窗口的中心坐标所在的像素点的灰度值与第一图像的平均灰度值的比值大于预定比例阈值,将所述第三窗口的中心坐标所在的像素点确定为目标
像素点。
[0092] 在该实施例中,创建第三窗口后,计算第三窗口的中心坐标所在的像素点的灰度值,判断所述第三窗口的中心坐标所在的像素点的灰度值与第一图像的平均灰度值的比值
是否大于预定比例阈值,以判断该第三窗口的中心坐标所在的像素点是否为与待匹配像素
点相匹配的目标像素点。
[0093] 在一个实施例中,计算第三窗口的中心坐标所在的像素点的灰度值的步骤可以进一步包括:步骤5100‑5200。
[0094] 步骤5100、基于所述第二图像对应的灰度图像,获取所述第三窗口的中心坐标所在的像素点附近的第一参考像素点、第二参考像素点、第三参考像素点、第四参考像素点的
灰度值。
[0095] 步骤5200、对所述第一参考像素点、第二参考像素点、第三参考像素点、第四参考像素点的灰度值进行加权平均计算,获得所述第三窗口的中心坐标所在的像素点的灰度
值。
[0096] 可选的,图3示出了第三窗口的示意图。如图3所示,第三窗口的中心坐标所在的像素点为point,第一参考像素点point1、第二参考像素点point2、第三参考像素点point3、第
四参考像素点point4分别为位于第三窗口的中心坐标所在的像素点的坐上位置、右上位
置、坐下位置、右下位置的像素点。可以根据以下公式(1)计算第三窗口的中心坐标所在的
像素点的灰度值。
[0097] search_pixel=wTL*GrayPoint1+wTR*GrayPoint2+wBL*GrayPoint3+wBR*GrayPoint4     (1)
[0098] 其中,search_pixel为第三窗口的中心坐标所在的像素点的灰度值;GrayPoint1为第一参考像素点的灰度值,wTL为第一参考像素点的权重;GrayPoint2为第二参考像素点
的灰度值,wTR为第二参考像素点的权重;GrayPoint3为第三参考像素点的灰度值,wBL为第
三参考像素点的权重;GrayPoint4为第四参考像素点的灰度值,wBR为第四参考像素点的权
重。
[0099] 该实施例中,第一参考像素点、第二参考像素点、第三参考像素点、第四参考像素点的权重可以根据参考像素点与所述第三窗口的中心坐标的距离进行确定。可选的,可以
根据根据以下公式(2)‑(5)分别计算第一参考像素点、第二参考像素点、第三参考像素点、
第四参考像素点对应的权重。
[0100] wTL=(1–subpix_x)*(1–subpix_y)  (2)
[0101] wTR=subpix_x*(1–subpix_y)  (3)
[0102] wBL=(1–subpix_x)*subpix_y  (4)
[0103] wBR=subpix_x*subpix_y  (5)
[0104] 其中,subpix_x为第三窗口的中心坐标所在的像素点在水平方向的亚像素值,subpix_y为第三窗口的中心坐标所在的像素点在垂直方向的亚像素值。
[0105] 例如,移动后第三窗口的中心坐标所在的像素点的像素坐标为[6.2,8.2],则subpix_x为2,subpix_y为2。
[0106] 在一个实施例中,第一图像的平均灰度值是基于第一图像对应的灰度图像计算获得的。获取第一图像的平均灰度值的步骤可以进一步包括:步骤6100‑6300。
[0107] 步骤6100、基于所述第一图像对应的灰度图像,获取参考匹配块中各个像素点的灰度值。其中,参考匹配块是以第一图像中待匹配像素点为中心构建的与初始匹配块大小
相同的图像块。
[0108] 步骤6200、根据所述参考匹配块中各个像素点的灰度值,计算待匹配像素点在所述参考匹配块的水平方向和垂直方向上的灰度梯度值。
[0109] 步骤6300、根据所述待匹配像素点在所述参考匹配块的水平方向和垂直方向上的灰度梯度值,确定第一图像的平均灰度值。
[0110] 在一个实施例中,比例阈值可以是预先设定的,该预定的比例阈值可以根据工程经验或者仿真试验经验进行设定,本公开实施例对此不做限制。例如,比例阈值为0.95。
[0111] 下面以一个具体的例子对目标像素点的确定进行说明。
[0112] 当第三窗口的中心坐标所在的像素点为初始匹配像素点时,按照前述公式(1)计算第三窗口的中心坐标所在的像素点的灰度值,进一步计算第三窗口的中心坐标所在的像
素点的灰度值与第一图像的平均灰度值的当前比值。如果当前比值大于预定的比例阈值
0.95,则确定该初始匹配像素点为与第一图像的待匹配像素点相匹配的目标像素点。如果
当前比值不大于预定的比例阈值0.95,以预定的移动步长在预定的移动范围内移动第三窗
口。再次按照前述公式(1)计算移动后的第三窗口的中心坐标所在的像素点的灰度值,进一
步计算移动后的第三窗口的中心坐标所在的像素点的灰度值与第一图像的平均灰度值的
下一比值。如果下一比值大于预定的比例阈值0.95,则确定该第三窗口的中心坐标所在的
像素点为与第一图像的待匹配像素点相匹配的目标像素点。如果当前比值不大于预定的比
例阈值0.95,则继续移动第三窗口,直至所述第三窗口的中心坐标所在的像素点的灰度值
与第一图像的平均灰度值的比值大于预定比例阈值,将所述第三窗口的中心坐标所在的像
素点确定为目标像素点。
[0113] 在一个实施例中,针对所述第一图像中的待匹配像素点,对所述初始匹配块进行亚像素匹配,确定与所述待匹配像素点相匹配的目标像素点的步骤,进一步可以包括:如果
移动第三窗口的次数达到预定的次数阈值,则根据每次移动后第三窗口的中心坐标所在的
像素点的灰度值与第一图像的平均灰度值的比值,确定目标像素点。可选的,可以将灰度值
最接近第一图像的平均灰度值的第三窗口的中心坐标所在的像素点确定为目标像素点。其
中,次数阈值可以是预先设定的,该预定的次数阈值可以根据工程经验或者仿真试验经验
进行设定,本公开实施例对此不做限制。例如,次数阈值为4。
[0114] 在确定所述第二图像中与所述第一图像中的每个待匹配像素点相匹配的目标像素点之后,进入步骤3200。
[0115] 步骤3200、使用所述待匹配像素点的像素值代替相匹配的所述目标像素点的像素值,获得校正后的第二图像。
[0116] 在该实施例中,在确定第二图像中与第一图像中的每个待匹配像素点相匹配的目标像素点之后,可以用待匹配像素点在第一图像对应的像素值代替第二图像中相匹配的目
标像素点的像素值,以获得校正后的第二图像。校正后的第二图像所在的平面与第一图像
所在平面平行。
[0117] 在获得校正后的第二图像之后,进入步骤2300。
[0118] 步骤2300、根据所述第一相机的光轴和与所述第一相机对应的透镜的光轴之间的旋转角度信息,对所述第一图像和所述校正后的第二图像进行转换,获得转换后的第一图
像和第二图像。
[0119] 在该实施例中,头戴显示设备内置有第一透镜和第二透镜,头戴显示设备外置有第一相机和第二相机。第一相机与第一透镜对应设置,第二相机与第二透镜对应设置。为了
避免渲染后的外部场景与人眼的视觉差存在明显差异。第一相机的光轴需要和与所述第一
相机对应的第一透镜的光轴平行,即第一相机的焦平面与第一透镜的焦平面平行。第二相
机的光轴需要和与所述第二相机对应的第二透镜的光轴平行,即第二相机的焦平面与第二
透镜的焦平面平行。头戴显示设备装配时,通过第一透镜的光轴与第二透镜的光轴是平行
的。但是,由于安装误差的存在,第一相机的光轴与第一透镜的光轴不完全平行,第二相机
的光轴与第二透镜的光轴不完全平行。对此,需要将第一图像与第二图像进行立体校正,以
使校正后的第一图像和第二图像共面。进一步地,对校正后的图像进行转换,以使转换后的
第一图像和第二图像所在的平面与透镜光轴的焦平面平行。
[0120] 在一个实施例中,可以根据所述第一相机的光轴和与所述第一相机对应的透镜的光轴之间的旋转角度信息,对第一图像和校正后的第二图像进行转换。此时,旋转角度信息
可以是第一相机的光轴与对应的第一透镜光轴的旋转矩阵RotMatc1。旋转角度信息可以是
预先获取的。可选的,在头戴显示设备出厂时,使用光轴校正工装测量第一相机的光轴与对
应的第一透镜光轴的旋转矩阵RotMatc1。基于旋转角度信息对第一图像和校正后的第二图
像进行转换,可以使转换后的第一图像和转换后的第二图像所在的平面与头戴显示设备的
透镜的焦平面平行。
[0121] 在一个具体的例子中,第一图像中每个像素点的坐标为(ui,vj,1),i∈[0,WidthImage1‑1],j∈[0,HeightImage1‑1],其中,WidthImage1和HeightImage1分别表示第一图像的
行和列的分辨率。根据以下公式(1)对第一图像中每个像素点的坐标进行转换,得到转换后
的第一图像。
[0122] (ui,vj,1)=RotMatC1*(ui,vj,1)公式  (1)
[0123] 其中,RotMatc1为第一相机的光轴与对应的第一透镜光轴的旋转矩阵。
[0124] 第二图像中每个像素点的坐标为(ui,vj,1),i∈[0,WidthImage2‑1],j∈[0,HeightImage2‑1],其中,WidthImage2和HeightImage2分别表示第一图像的行和列的分辨率。根据
前述公式(1)对第二图像中每个像素点的坐标进行转换,得到转换后的第二图像。
[0125] 在该实施例中,将第一图像与第二图像进行立体校正后,根据旋转角度信息对校正后的第二图像和第一图像进行转换,以使转换后的第一图像和第二图像所在的平面与透
镜光轴的焦平面平行。使用转换后的第一图像和第二图像,可渲染生成外部的场景信息,以
将场景信息显示给用户。
[0126] 在另一个实施例中,可以根据第二图像,对第一图像进行立体校正,获得校正后的第一图像。进一步地,可以根据所述第二相机的光轴和与所述第二相机对应的透镜的光轴
之间的旋转角度信息,对第二图像和校正后的第一图像进行转换。此时,旋转角度信息也可
以是第二相机的光轴与对应的第二透镜光轴的旋转矩阵RotMatc2。旋转角度信息可以是预
先获取的。可选的,在头戴显示设备出厂时,使用光轴校正工装测量第二相机的光轴与对应
的第二透镜光轴的旋转矩阵RotMatc2。本公开实施例对此不做限制。基于旋转角度信息对第
二图像和校正后的第一图像进行转换,可以使转换后的第一图像和转换后的第二图像所在
的平面与头戴显示设备的透镜的焦平面平行。使用转换后的第一图像和第二图像,可渲染
生成外部的场景信息,以将场景信息显示给用户。
[0127] 根据本公开实施例,根据第一图像对第二图像进行立体校正后,根据旋转角度信息对第一图像和校正后的第二图像进行转换,以使转换后的第一图像和第二图像所在的平
面与透镜光轴的焦平面平行。通过转换后的第一图像和第二图像渲染生成外部的场景图
像,能够防止渲染生成的外部场景图像出现扭曲变形,从而改善头戴显示设备的图像显示
效果,提高用户体验。
[0128] <装置实施例一>
[0129] 参见图4,本公开实施例提供了图像校正装置40,该图像校正装置40包括获取模块41、校正模块42和转换模块43。
[0130] 该获取模块41可以用于获取通过第一相机采集的第一图像和通过第二相机采集的第二图像。
[0131] 该校正模块42可以用于根据所述第一图像对所述第二图像进行立体校正,获得校正后的第二图像。
[0132] 该转换模块43可以用于根据所述第一相机的光轴和与所述第一相机对应的透镜的光轴之间的旋转角度信息,对所述第一图像和所述校正后的第二图像进行转换,获得转
换后的第一图像和第二图像。
[0133] 参见图5,本公开实施例还提供了图像校正装置50,该图像校正装置50包括处理器51和存储器52。存储器52用于存储计算机程序,计算机程序被处理器51执行时实现前述任
一实施例公开的基于头戴显示设备的图像校正方法。
[0134] <装置实施例二>
[0135] 参见图6,本公开的实施例提供了一种头戴显示设备60,该头戴显示设备可以是如图1所示的头戴显示设备100。该头戴显示设备60包括前述任一项实施例的图像校正装置
61。
[0136] 在一个实施例中,该头戴显示设备100可以是虚拟现实(Virtual Reality,VR)设备、增强现实(Augmented Reality,AR)设备或者混合现实(Mixed Reality)设备等智能设
备。
[0137] 根据本公开实施例,图像校正装置可以根据第一图像对第二图像进行立体校正后,根据旋转角度信息对第一图像和校正后的第二图像进行转换,以使转换后的第一图像
和第二图像所在的平面与透镜光轴的焦平面平行。通过转换后的第一图像和第二图像渲染
生成外部的场景图像,能够防止渲染生成的外部场景图像出现扭曲变形,从而改善头戴显
示设备的图像显示效果,提高用户体验。
[0138] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分相互参见即可,每个实施例重点说明的都是与其他实施例的不同之处,但本领域技术人
员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。另外,对于装置
实施例而言,由于其是与方法实施例相对应,所以描述得比较简单,相关之处参见方法实施
例的对应部分的说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件
说明的模块可以是或者也可以不是物理上分开的。
[0139] 本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0140] 计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储
设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的
更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存
储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式
压缩盘只读存储器(CD‑ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上
存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算
机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通
过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输
的电信号。
[0141] 这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外
部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关
计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计
算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计
算机可读存储介质中。
[0142] 用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的
任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如
Smalltalk、C++等,以及常规的过程式编程语言—诸如“如“语言或类似的编程语言。计算机
可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独
立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机
或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包
括局域网(LAN)或广域网(WAN)网连接到用户计算机,或者,可以连接到外部计算机(例如利
用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令
的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可
编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方
面。
[0143] 这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/
或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0144] 这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据
处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功
能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指
令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的
计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中
规定的功能/动作的各个方面的指令。
[0145] 也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产
生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的
指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0146] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代
表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用
于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也
可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执
行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或
流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动
作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对
于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和
硬件结合的方式实现都是等价的。
[0147] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技
术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨
在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其
它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。