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

生成动态图像的方法、电子设备及可读存储介质与流程

2022-04-06 18:59:36 来源:中国专利 TAG:


1.本技术涉及终端技术领域,特别涉及一种生成动态图像的方法、电子设备及可读存储介质。


背景技术:

2.随着终端技术的快速发展,用户对图像的要求越来越高。静态的图像所能反应的信息已不足以满足用户的观感,为此,通常会有生成动态图像的需求,动态图像通常是指由一组静态图像以预置的规则切换显示而产生某种动态效果,能够让用户感受到更精彩的三维视觉。
3.在相关技术中,通常需要由专业的技术人员将静态图像通过遮罩、渐隐、缩放等复杂的后期处理,耗费较长时间后得到动态图像。然而,该种后期处理的方式操作较为繁琐,生成动态图像的效率较低。


技术实现要素:

4.本技术提供了一种生成动态图像的方法、电子设备及可读存储介质,可以解决相关技术中生成动态图像的效率较低的问题。所述技术方案如下:第一方面,提供了一种生成动态图像的方法,应用于电子设备中,所述电子设备包括第一摄像头和第二摄像头,所述方法包括:获取第一图像和第二图像,所述第一图像是通过所述第一摄像头采集得到,所述第二图像是通过所述第二摄像头采集得到;根据所述第一图像和所述第二图像,确定稠密深度图;基于指定相机路径的路径信息以及所述稠密深度图,生成多个图像帧,所述路径信息包括所述电子设备按照所述指定相机路径运动时在多个位置点中每个位置点处的相机姿态参数,所述多个图像帧中的每个图像帧与一个位置点处的相机姿态参数对应;基于所述多个图像帧,生成动态图像。
5.如此,通过确定稠密深度图,利用稠密深度图,自动生成动图图像,避免需要通过人工后期处理得到动态图像,提高了生成动态图像的效率。
6.作为本技术的一个示例,所述根据所述第一图像和所述第二图像,确定稠密深度图,包括:对所述第一图像和所述第二图像进行行对齐;基于行对齐后的所述第一图像和所述第二图像,分别确定所述第一图像对应的第一深度图以及所述第二图像对应的第二深度图;基于所述第一深度图和所述第二深度图,确定所述第一深度图中满足指定填充条件的目标遮挡点;填充所述目标遮挡点的深度信息;基于所述第一图像和经填充处理后的所述第一深度图,生成所述稠密深度图。
7.如此,通过将第一图像与第二图像进行行对齐,可以使得后续减小运算量,且提高图像匹配的准确度。
8.作为本技术的一个示例,所述基于所述第一深度图和所述第二深度图,确定所述第一深度图中满足指定填充条件的目标遮挡点,包括:基于所述第一深度图和所述第二深度图,确定所述第一深度图中的各个遮挡点;确定所述各个遮挡点的目标区域内包括的目标像素点的数量,所述目标区域是指由与所述遮挡点的色差小于色差阈值范围的像素点构成的区域,所述目标像素点是指所述第一深度图和所述第二深度图中匹配且深度信息一致的像素点;从所述各个遮挡点中,将目标区域内包括的目标像素点的数量大于或等于像素点数量阈值的遮挡点确定为所述目标遮挡点。
9.如此,通过统计遮挡点的目标区域内包括的可靠的像素点的数量,确定哪些遮挡点可以利用周围的深度信息进行填充,也即确定哪些遮挡点可以作为目标遮挡点,可以提升填充的有效性和准确性。
10.作为本技术的一个示例,所述基于所述第一深度图和所述第二深度图,确定所述第一深度图中的各个遮挡点,包括:对于所述第一深度图中的第一像素点,从所述第二深度图中确定与所述第一像素点匹配的第二像素点,所述第一像素点为任意一个像素点;若所述第一像素点与所述第二像素点的深度信息不一致,且所述第一像素点的极线与所述第二深度图无交叉,则确定所述第一像素点为遮挡点,所述极线是指所述第一像素点与左极点之间的连接,所述左极点是指所述第一摄像头和所述第二摄像头的光心点的连线与所述第一图像的交点。
11.如此,通过判断匹配的像素点的深度信息是否一致,以及极线是否存在交叉来确定第一像素点是否为遮挡点,可以保证判断的准确性。
12.作为本技术的一个示例,所述确定所述各个遮挡点的目标区域内包括的目标像素点的数量,包括:对于所述各个遮挡点中的第一遮挡点,统计在所述第一遮挡点的多个水平视差中每个水平视差下所述第一遮挡点的目标区域内包括的目标像素点的数量,所述第一遮挡点是任意一个遮挡点;将所述每个水平视差下所述第一遮挡点的目标区域内包括的目标像素点的数量之和确定为所述第一遮挡点的目标区域内包括的目标像素点的数量。
13.如此,通过分别确定每个水平视差下目标区域内包括的可靠的像素点的数量,统计第一遮挡点的目标区域内包括的目标像素点的数量,可以提升统计的有效性。
14.作为本技术的一个示例,所述填充所述目标遮挡点的深度信息,包括:确定在最大的目标像素点的数量对应的水平视差下,所述目标遮挡点的目标区域内所有目标像素点的深度信息的中值;将所确定的中值作为所述目标遮挡点的深度信息进行填充。
15.如此,通过确定目标区域内可靠的像素点的深度信息的中值,对目标遮挡点进行填充,由于该中值是基于可靠的像素点的深度信息确定的,所以,提高了深度信息的填充的准确性。
16.作为本技术的一个示例,所述基于所述第一图像和经填充处理后的所述第一深度图,生成所述稠密深度图,包括:将所述第一图像输入至目标网络模型中,输出所述第一图像对应的第一表面法向图和第一边缘遮挡图,所述目标网络模型能够确定任意的图像对应的表面法向图和边缘遮挡图,所述第一边缘遮挡图包括所述第一图像中的各个像素点为遮挡点的概率;根据所述经填充处理后的所述第一深度图、所述第一表面法向图、所述第一边缘遮挡图,建立所述稠密深度图的目标误差函数;基于所述目标误差函数,通过梯度下降算法进行迭代,以确定所述稠密深度图。
17.如此,通过考虑第一图像的深度信息、第一表面法向图和第一边缘遮挡图,建立目标误差函数,可以使得最终确定的稠密深度图更为准确。
18.作为本技术的一个示例,所述根据所述经填充处理后的所述第一深度图、所述第一表面法向图、所述第一边缘遮挡图,建立所述稠密深度图的目标误差函数,包括:基于所述经填充处理后的所述第一深度图,确定第一误差项,所述第一误差项包括所述经填充处理后的所述第一深度图中各个像素点的深度信息与所述各个像素点的估计深度之间的差值,所述估计深度是指在迭代过程中当前估计的深度信息;基于所述第一表面法向图,确定第二误差项,所述第二误差项用于表示所述各个像素点的估计深度与所述各个像素点的法向量的一致性程度;确定第三误差项,所述第三误差项包括所述各个像素点与相邻像素点的估计深度差值;基于所述第一边缘遮挡图,确定第四误差项,所述第四误差项包括所述各个像素点是遮挡点的概率;基于所述第一误差项、所述第二误差项、所述第三误差项、所述第四误差项,确定所述目标误差函数。
19.如此,使得估计深度在无效区域以及遮挡区域保持表面法向图一致性,有效区域的估计深度与第一深度图的深度信息尽可能保持一致,并且邻近区域的估计深度尽量保持一致。
20.作为本技术的一个示例,所述基于所述第一误差项、所述第二误差项、所述第三误差项、所述第四误差项,确定所述目标误差函数,包括:基于所述第一误差项、所述第二误差项、所述第三误差项、所述第四误差项,通过公式(1),确定所述目标误差函数,其中,所述公式(1)包括:其中,所述表示所述目标误差函数、所述表示所述第一误差项、所述表示所述第二误差项、所述表示所述第三误差项、所述表示所述第四误差项,所述、、均为预置的比例系数。
21.如此,通过建立目标误差函数,使得估计深度在无效区域以及遮挡区域保持表面法向图一致性,有效区域的估计深度与第一深度图的深度信息尽可能保持一致,并且邻近区域的估计深度尽量保持一致。
22.作为本技术的一个示例,所述基于指定相机路径的路径信息以及所述稠密深度
图,生成多个图像帧,包括:基于所述稠密深度图中每个像素点的深度信息、像素点位置信息、以及所述每个像素点的颜色信息,确定所述稠密深度图中的像素点映射至三维坐标系下的点云数据;根据所述点云数据、所述每个位置点处的相机姿态参数,生成所述每个位置点对应的图像帧,得到所述多个图像帧。
23.如此,通过确定点云数据,结合每个位置点处的相机姿态参数,生成每个位置点处的图像帧,也即,将点云分别转换为指定相机路径中不同位置点处的相机姿态参数对应的成图平面中的点,从而便于后续生成具有动态化的图像。
24.作为本技术的一个示例,所述根据所述点云数据、所述每个位置点处的相机姿态参数,生成所述每个位置点对应的图像帧,包括;基于所述每个位置点处的相机姿态参数,将所述点云数据对应的各个点的三维坐标信息通过仿射变换转换为成像平面的坐标;基于所述各个点在所述成像平面中的坐标,将所述各个点的颜色信息同步为所述成像平面的像素点,得到所述每个位置点对应的图像帧。
25.如此,利用每个位置点处的相机姿态参数,将点云数据转换为成像平面的坐标,并同步每个坐标对应的像素点的颜色信息,从而得到每个位置点的图像帧,以便于后续可以根据得到的多个图像帧,生成动态图像。
26.第二方面,提供了一种生成动态图像的装置,配置于电子设备中,所述电子设备包括第一摄像头和第二摄像头,所述装置包括:获取模块,用于获取第一图像和第二图像,所述第一图像是通过所述第一摄像头采集得到,所述第二图像是通过所述第二摄像头采集得到;确定模块,用于根据所述第一图像和所述第二图像,确定稠密深度图;第一生成模块,用于基于指定相机路径的路径信息以及所述稠密深度图,生成多个图像帧,所述路径信息包括所述电子设备按照所述指定相机路径运动时在多个位置点中每个位置点处的相机姿态参数,所述多个图像帧中的每个图像帧与一个位置点处的相机姿态参数对应;第二生成模块,用于基于所述多个图像帧,生成动态图像。
27.作为本技术的一个示例,所述确定模块用于:对所述第一图像和所述第二图像进行行对齐;基于行对齐后的所述第一图像和所述第二图像,分别确定所述第一图像对应的第一深度图以及所述第二图像对应的第二深度图;基于所述第一深度图和所述第二深度图,确定所述第一深度图中满足指定填充条件的目标遮挡点;填充所述目标遮挡点的深度信息;基于所述第一图像和经填充处理后的所述第一深度图,生成所述稠密深度图。
28.作为本技术的一个示例,所述确定模块用于:基于所述第一深度图和所述第二深度图,确定所述第一深度图中的各个遮挡点;确定所述各个遮挡点的目标区域内包括的目标像素点的数量,所述目标区域是指由与所述遮挡点的色差小于色差阈值范围的像素点构成的区域,所述目标像素点是指所述
第一深度图和所述第二深度图中匹配且深度信息一致的像素点;从所述各个遮挡点中,将目标区域内包括的目标像素点的数量大于或等于像素点数量阈值的遮挡点确定为所述目标遮挡点。
29.作为本技术的一个示例,所述确定模块用于:对于所述第一深度图中的第一像素点,从所述第二深度图中确定与所述第一像素点匹配的第二像素点,所述第一像素点为任意一个像素点;若所述第一像素点与所述第二像素点的深度信息不一致,且所述第一像素点的极线与所述第二深度图无交叉,则确定所述第一像素点为遮挡点,所述极线是指所述第一像素点与左极点之间的连接,所述左极点是指所述第一摄像头和所述第二摄像头的光心点的连线与所述第一图像的交点。
30.作为本技术的一个示例,所述确定模块用于:对于所述各个遮挡点中的第一遮挡点,统计在所述第一遮挡点的多个水平视差中每个水平视差下所述第一遮挡点的目标区域内包括的目标像素点的数量,所述第一遮挡点是任意一个遮挡点;将所述每个水平视差下所述第一遮挡点的目标区域内包括的目标像素点的数量之和确定为所述第一遮挡点的目标区域内包括的目标像素点的数量。
31.作为本技术的一个示例,所述确定模块用于:确定在最大的目标像素点的数量对应的水平视差下,所述目标遮挡点的目标区域内所有目标像素点的深度信息的中值;将所确定的中值作为所述目标遮挡点的深度信息进行填充。
32.作为本技术的一个示例,所述第一生成模块用于:将所述第一图像输入至目标网络模型中,输出所述第一图像对应的第一表面法向图和第一边缘遮挡图,所述目标网络模型能够确定任意的图像对应的表面法向图和边缘遮挡图,所述第一边缘遮挡图包括所述第一图像中的各个像素点为遮挡点的概率;根据所述经填充处理后的所述第一深度图、所述第一表面法向图、所述第一边缘遮挡图,建立所述稠密深度图的目标误差函数;基于所述目标误差函数,通过梯度下降算法进行迭代,以确定所述稠密深度图。
33.作为本技术的一个示例,所述第一生成模块用于:基于所述经填充处理后的所述第一深度图,确定第一误差项,所述第一误差项包括所述经填充处理后的所述第一深度图中各个像素点的深度信息与所述各个像素点的估计深度之间的差值,所述估计深度是指在迭代过程中当前估计的深度信息;基于所述第一表面法向图,确定第二误差项,所述第二误差项用于表示所述各个像素点的估计深度与所述各个像素点的法向量的一致性程度;确定第三误差项,所述第三误差项包括所述各个像素点与相邻像素点的估计深度差值;基于所述第一边缘遮挡图,确定第四误差项,所述第四误差项包括所述各个像素点是遮挡点的概率;基于所述第一误差项、所述第二误差项、所述第三误差项、所述第四误差项,确定所述目标误差函数。
34.作为本技术的一个示例,所述第一生成模块用于:基于所述第一误差项、所述第二误差项、所述第三误差项、所述第四误差项,通过公式(1),确定所述目标误差函数,其中,所述公式(1)包括:其中,所述表示所述目标误差函数、所述表示所述第一误差项、所述表示所述第二误差项、所述表示所述第三误差项、所述表示所述第四误差项,所述、、均为预置的比例系数。
35.作为本技术的一个示例,所述第二生成模块用于:基于所述稠密深度图中每个像素点的深度信息、像素点位置信息、以及所述每个像素点的颜色信息,确定所述稠密深度图中的像素点映射至三维坐标系下的点云数据;根据所述点云数据、所述每个位置点处的相机姿态参数,生成所述每个位置点对应的图像帧,得到所述多个图像帧。
36.作为本技术的一个示例,所述第二生成模块用于:基于所述每个位置点处的相机姿态参数,将所述点云数据对应的各个点的三维坐标信息通过仿射变换转换为成像平面的坐标;基于所述各个点在所述成像平面中的坐标,将所述各个点的颜色信息同步为所述成像平面的像素点,得到所述每个位置点对应的图像帧。
37.第三方面,提供了一种电子设备,所述电子设备的结构中包括处理器和存储器,所述存储器用于存储支持电子设备执行上述第一方面所提供的生成动态图像的方法的程序,以及存储用于实现上述第一方面所述的生成动态图像的方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述电子设备还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
38.第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的生成动态图像的方法。
39.第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的生成动态图像的方法。
40.上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
41.图1是根据一示例性实施例示出的一种电子设备的多个摄像头的分布示意图;图2是根据一示例性实施例示出的一种电子设备的结构示意图;图3是根据一示例性实施例示出的一种电子设备的软件架构示意图;图4是根据一示例性实施例示出的一种拍摄界面的示意图;图5是根据一示例性实施例示出的一种动态图像包括的多个图像帧的示意图;图6是根据另一示例性实施例示出的一种拍摄界面的示意图;图7是根据一示例性实施例示出的一种生成动态图像的方法流程示意图;图8是根据一示例性实施例示出的一种生成第一深度图的流程示意图;
图9是根据一示例性实施例示出的一种像素点的示意图;图10是根据一示例性实施例示出的一种像素点的目标区域的示意图;图11是根据一示例性实施例示出的一种生成稠密深度图的流程示意图;图12是根据一示例性实施例示出的一种指定相机路径的示意图;图13是根据一示例性实施例示出的一种生成动态图像的装置的结构示意图。
具体实施方式
42.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术的实施方式作进一步地详细描述。
43.应当理解的是,本技术提及的“多个”是指两个或两个以上。在本技术的描述中,除非另有说明,“/”表示或的意思,比如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本技术的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
44.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
45.在对本技术实施例提供的方法进行详细地解释说明之前,先对本技术实施例涉及的执行主体进行介绍。本技术实施例提供的方法可以由电子设备来执行,该电子设备包括至少两个摄像头,在一个示例中,该至少两个摄像头均为后置摄像头。示例性地,请参考图1,图1是根据一示例性实施例示出的一种电子设备的至少两个后置摄像头在背壳上的位置分布示意图,至少两个摄像头包括主摄像头00、辅摄像头01、辅摄像头02、辅摄像头03,该至少两个后置摄像头在背壳上的位置分布情况可以如图1中的(a)图所示,或者,该至少两个后置摄像头在背壳上的位置分布情况也可以如图1中的(b)图所示。另外,该电子设备支持拍照功能,譬如电子设备中包括相机应用(或称:相机应用程序),用户可以通过相机应用使得电子设备执行拍照操作。
46.请参见图2,图2是本技术实施例提供的一种电子设备的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。其中,传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸
传感器180k,环境光传感器180l,骨传导传感器180m等。
47.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
48.处理器110可以包括一个或多个处理单元,比如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
49.其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
50.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
51.在一些实施例中,处理器110可以包括一个或多个接口,如可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
52.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c接口。处理器110可以通过不同的i2c接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。比如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c接口通信,实现电子设备100的触摸功能。
53.i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s接口。处理器110可以通过i2s接口与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
54.pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
55.uart接口是一种通用串行数据总线,用于异步通信。uart接口可以为双向通信总线。uart接口可以将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。比如:处理器110通过uart接口与无线
通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
56.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备100的显示功能。
57.gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
58.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。usb接口130还可以用于连接其他终端,比如ar设备等。
59.可以理解的是,本技术实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
60.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。
61.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
62.电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
63.天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。比如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
64.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移
动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
65.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
66.无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
67.在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
68.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
69.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的整数。
70.电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处
理器等实现拍摄功能。
71.isp 用于处理摄像头193反馈的数据。比如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
72.摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头193,n为大于1的整数。
73.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。比如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
74.视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,比如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
75.npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,比如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,比如:图像识别,人脸识别,语音识别,文本理解等。
76.外部存储器接口120可以用于连接外部存储卡,比如micro sd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。比如将音乐,视频等文件保存在外部存储卡中。
77.内部存储器121可以用于存储计算机可执行程序代码,计算机可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,来执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100在使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,比如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
78.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d以及应用处理器等实现音频功能,比如音乐播放,录音等。
79.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
80.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
81.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
82.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置至少一个麦克风170c。在另一些实施例中,电子设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
83.耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动终端平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
84.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180a检测触摸操作强度。电子设备100也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。比如:当有触摸操作强度小于压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
85.陀螺仪传感器180b可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180b检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。
86.气压传感器180c用于测量气压。在一些实施例中,电子设备100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
87.磁传感器180d包括霍尔传感器。电子设备100可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180d检测翻盖的开合。电子设备100根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
88.加速度传感器180e可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。加速度传感器180e还可以用于识别电子设备100的姿态,应用于横竖屏切换,计步器等应用。
89.距离传感器180f,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,在拍摄场景中,电子设备100可以利用距离传感器180f测距以实现快速对焦。
90.接近光传感器180g可以包括发光二极管(led)和光检测器,比如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,电子设备100可以确定电子设备100附近有物体。当检测到不充分的反射光时,可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180g检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
91.环境光传感器180l用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测电子设备100是否在口袋里,以防误触。
92.指纹传感器180h用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
93.温度传感器180j用于检测温度。在一些实施例中,电子设备100利用温度传感器180j检测的温度,执行温度处理策略。比如,当温度传感器180j上报的温度超过阈值,电子设备100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
94.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器180k可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
95.骨传导传感器180m可以获取振动信号。在一些实施例中,骨传导传感器180m可以获取人体声部振动骨块的振动信号。骨传导传感器180m也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180m也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于骨传导传感器180m获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于骨传导传感器180m获取的血压跳动信号解析心率信息,实现心率检测功能。
96.按键190包括开机键,音量键等。按键190可以是机械按键,也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
97.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。比如,作用于不同应用(比如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,也可对应不同的振动反馈效果。不同的应用场景(比如:时间提醒,接收信息,闹钟,游戏等),也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
98.指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
99.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或n个sim卡接口,n为大于1的整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口195可以同时插入多张卡。多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。电子设备100通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用esim,即:嵌入式sim卡。esim卡可以嵌在电子设备100中,不能和电子设备100分离。
100.接下来对电子设备100的软件系统予以说明。
101.电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的安卓(android)系统为例,对电子设备100的软件系统进行示例性说明。
102.图3是本技术实施例提供的一种电子设备100的软件系统的框图。参见图3,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统层,以及内核层。
103.应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。
104.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问,这些数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,比如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序的显示界面,显示界面可以由一个或多个视图组成,比如,包括显示短信通知图标的视图,包括显示文字的视图,以及包括显示图片的视图。电话管理器用于提供电子设备100的通信功能,比如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如,通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或滚动条文本形式出现在系统顶部状态栏的通知,比如后台运行的应用程序的通知。通知管理器还可以是以对话窗口形式出现在屏幕上的通知,比如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
105.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
106.系统库可以包括多个功能模块,比如:表面管理器(surface manager),媒体库
(media libraries),三维图形处理库(比如:opengl es),2d图形引擎(比如:sgl)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,比如:mpeg4,h.264,mp3,aac,amr,jpg,png等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2d图形引擎是2d绘图的绘图引擎。
107.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
108.下面结合捕获拍照场景,示例性说明电子设备100软件以及硬件的工作流程。
109.当触摸传感器180k接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别原始输入事件所对应的控件。以该触摸操作是单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用程序框架层的接口,启动相机应用,再调用内核层启动摄像头驱动,通过摄像头193捕获静态图像或视频。
110.在对本技术实施例提供的方法进行详细介绍之前,先对本技术实施例涉及的应用场景进行介绍。这里以该方法应用于手机中为例进行说明。
111.手机中包括相机应用,当用户想要使用手机进行拍摄时,可以点击手机中的相机应用的应用图标,响应于用户对相机应用的应用图标的触发操作,手机打开相机,如此用户即可使用手机进行拍照、录像等操作。
112.相机应用支持多种相机模式,示例性地,多种相机模式包括但不限于大光圈模式、夜景模式、人像模式、拍照模式、录像模式、专业模式、慢动作模式。作为本技术的一个示例,在相机应用的指定模式下支持动态图像拍摄功能,也即在指定模式下,在开启动态图像拍摄功能后,相机应用能够生成具有动态效果的图像(简称:动态图像)。其中,指定模式可以根据实际需求进行设置,示例性地,指定模式可以包括但不限于大光圈模式和人像模式。
113.作为本技术的一个示例,以大光圈模式为例,请参考图4,当用户想要使用大光圈模式进行拍照时,可以触发大光圈选项,如图4中的(a)图所示。响应于用户对大光圈选项的触发操作,手机进入大光圈模式。在一个示例中,请参考图4中的(b)图,在进入大光圈模式后,手机的显示界面中提供动图选项41。当用户想要拍摄大光圈模式下的动态图像时,可以点击动图选项41,响应于用户对动图选项41的触发操作,手机开启动态图像拍摄功能。具体地,手机控制第一摄像头(譬如主摄像头)和第二摄像头(譬如辅摄像头)均处于开启状态,不难理解,由于在进入大光圈模式时,手机已经开启了一个摄像头(譬如第一摄像头),所以,在开启动态图像拍摄功能后,手机控制另一个摄像头(譬如第二摄像头)开启,以使得第一摄像头和第二摄像头均处于开启状态。如此,在用户点击拍摄选项42后,手机通过第一摄像头拍摄参考图以及通过第二摄像头匹配图,之后,基于参考图和匹配图,生成动态图像。示例性地,请参考图5,图5中的(a)图至(d)图是示例性地示出了动态图像在不同时间点的图像帧的显示效果。
114.作为本技术的另一个示例,以人像模式为例,请参考图6,当用户想要使用人像模式进行拍照时,可以触发人像选项,如图6中的(a)图所示。响应于用户对人像选项的触发操作,手机进入人像模式。请参考图6中的(b)图,在进入人像模式后,手机的显示界面中提供
动图选项61。当用户想要拍摄人像模式下的动态图像时,可以点击动图选项61,响应于用户对动图选项61的触发操作,手机开启动态图像拍摄功能。具体地,手机控制第一摄像头(譬如主摄像头)和第二摄像头(譬如辅摄像头)均处于开启状态,同理,由于在进入人像模式时手机已经开启了一个摄像头(譬如第一摄像头),所以,在开启动态图像拍摄功能后,手机控制另一个摄像头(譬如第二摄像头)开启,以使得第一摄像头和第二摄像头均处于开启状态。如此,在用户点击拍摄选项62后,手机通过第一摄像头拍摄参考图以及通过第二摄像头匹配图,之后,基于参考图和匹配图,生成动态图像。示例性地,请参考图5,图5中的(a)图至(d)图是示例性地示出了动态图像在不同时间点的图像帧的显示效果。
115.需要说明的是,上述是以进入指定模式下,手机在显示界面中显示动图选项以使得用户通过动图选项触发手机开启动态图像拍摄功能为例进行说明。在另一实施例中,手机在进入指定模式下,也可以自动开启动态图像拍摄功能,也即无需用户手动触发。
116.另外需要说明的是,上述图5中仅是示例性地示出了动态图像中四个时间点的图像帧的显示效果,也即仅是示例性地示出了动态图像中的四个图像帧,该动态图像中还可能包括更多的图像帧,本技术实施例对此不作详细列举。
117.此外,还需要说明的是,上述是以指定模式包括大光圈模式和人像模式为例进行说明。在另一实施例中,指定模式还可以包括其他模式,譬如,指定模式还可以包括但不限于相机模式、夜景模式,本技术实施例对此不作限定。
118.在介绍完本技术实施例涉及的执行主体和应用场景后,接下来对本技术实施例提供的生成动态图像的方法进行详细介绍。请参考图7,图7是根据一示例性实施例示出的一种生成动态图像的方法流程示意图。作为示例而非限定,该方法应用于上述电子设备100中,该方法可以包括如下几个实现步骤:步骤701:获取第一图像和第二图像。
119.第一图像是通过第一摄像头采集得到,第二图像是通过第二摄像头采集得到。在一个示例中,第一摄像头为主摄像头,第一图像可以称为参考图,第二摄像头为辅摄像头,第二图像可以称为匹配图。
120.需要说明的是,本技术实施例是以第一摄像头是主摄像头,第二摄像头是辅摄像头为例进行说明。在另一实施例中,第一摄像头可以是辅摄像头,第二摄像头也是辅摄像头,或者,第一摄像头是辅摄像头,第二摄像头是主摄像头等,本技术实施例对此不作限定。
121.在一个示例中,请参考图4,在大光圈模式下,电子设备在检测到用户对动图选项41的触发操作后,控制主摄像头和辅摄像头处于开启状态。当检测到用户对拍摄选项42的触发操作时,电子设备通过主摄像头采集图像,得到参考图,以及通过辅摄像头采集图像,得到匹配图。
122.步骤702:对第一图像和第二图像进行行对齐。
123.由于第一摄像头与第二摄像头的空间位置存在偏差,所以使得拍摄得到的第一图像和第二图像所处的坐标系存在偏差,为此,通常可以对第一图像和第二图像进行旋转变换,以使得它们行对齐。
124.作为本技术的一个示例,可以以第一图像为基准,形变第二图像,以使得第二图像与第一图像行对齐。在一个示例中,可以将第二图像转化为矩阵,将该矩阵乘以旋转矩阵r,然后在加上一个平移矩阵t,以对第二图像进行形变。其中,旋转矩阵r和平移矩阵t可以根
据电子设备的第一摄像头的相机外参确定。
125.值得一提的是,通过将第一图像与第二图像进行行对齐,可以使得后续减小运算量,且提高图像匹配的准确度。
126.步骤703:对于行对齐的第一图像和第二图像,分别确定第一图像对应的第一深度图以及第二图像对应的第二深度图。
127.作为本技术的一个示例,请参考图8,基于行对齐的第一图像和第二图像(下文简称第一图像、第二图像),确定第一图像对应的第一深度图的具体实现可以包括如下几个子步骤:(1)对于第一图像中的每个像素点,确定每个像素点在多个水平视差中每个水平视差下的代价量。
128.对于第一像素点,从第二图像中确定与第一像素点所在行对齐的目标行,将目标行中每个像素点作为第二像素点,其中,第一像素点为第一图像中的任意一个像素点。对于每个第二像素点,与第一像素点之间均存在水平视差。示例性地,假设第一像素点在第一图像中的坐标是(0,0),则第二图像中与第一像素点(0,0)所在行对齐的目标行为第0行。对于第0行中的第二像素点(0,0),第二像素点(0,0)与第一像素点(0,0)之间的水平视差是0;对于第0行中的第二像素点(0,1),第二像素点(0,1)与第一像素点(0,0)之间的水平视差是1;对于第0行中的第二像素点(0,2),第二像素点(0,2)与第一像素点(0,0)之间的水平视差是2;对于第0行中的第二像素点(0,3),第二像素点(0,3)与第一像素点(0,0)之间的水平视差是3。以此类推,可以确定第一像素点(0,0)与第二图像中第0行中每个第二像素点之间的水平视差。
129.电子设备确定第一像素点与目标行中每个第二像素点之间的色差和汉明距离,然后基于第一像素点与目标行中每个第二像素点之间的色差和汉明距离,确定第一像素点与目标行中每个第二像素点之间的代价量,得到第一像素点在不同水平视差下的代价量。
130.其中,汉明距离用于表示两个像素点之间的特征差异大小,或者可以理解为特征相似度。
131.其中,色差是指两个像素点之间的r(red,红色)差值、g(green,绿色)差值和b(blue,蓝色)差值中的最大差值。譬如,若第一像素点与第二像素点之间的r差值是a,g差值是b,b差值是c,且a《b《c,则第一像素点与第二像素点之间的色差为b差值,也即是c。
132.作为本技术的一个示例,基于第一像素点与每个第二像素点之间的色差和汉明距离,通过如下公式(2)可以确定第一像素点与每个第二像素点之间的代价量:其中,表示第一像素点p与第j个第二像素点之间的代价量,表示第一像素点p与第j个第二像素点之间的色差,表示第一像素点p与第j个第二像素点之间的汉明距离,、、分别是预置的参数。
133.如前文所述,由于第一像素点与每个第二像素点之间存在一个水平视差,因此,通过上述公式(2)也就确定了第一像素点在多个水平视差中每个水平视差下的代价量。按照该种方式,可以确定第一图像中的每个像素点的多个代价量,其中每个像素点的多个代价
量中每个代价量均对应有一个水平视差。
134.不难理解,代价量与两个像素点的色差和汉明距离正相关,色差和汉明距离越大,说明两个像素点匹配的代价越大,从而可以指示该两个像素点匹配的可能性越低。
135.(2)确定第一图像中每个像素点的目标区域。
136.第一像素点的目标区域是指由与第一像素点的色差小于色差阈值范围的像素点构成的区域,其中色差阈值范围可以根据实际需求进行设置。换句话说,目标区域中包括与第一像素点色差相近的像素点。
137.在一个示例中,以第一像素点为例,确定第一像素点的目标区域的具体实现可以包括:分别在第一像素点的上、下、左、右四个方向上确定与第一像素点处于同一直线上的有效像素端点,有效像素端点是指有效像素点中与第一像素点距离最远的像素点,有效像素点是指与第一像素点的色差接近的像素点。基于所确定的四个有效像素端点,确定第一像素点的目标区域。
138.示例性地,请参考图9,以确定第一像素点的右侧方向上的有效像素端点为例,假设将第一像素点记为p,将第一像素点的右侧方向上与第一像素点处于同一水平直线上的任意一个像素点记为p1,与像素点p1在水平方向上相邻的像素点记为p2。若p与p1之间的色差小于x1、p1与p2之间的色差小于x1、p与p1之间的距离小于l1且不大于l2,则说明p1与p的色差较接近且相隔不远,此时可以认为p1与p可能属于第一图像中同一物体所在区域(譬如都属于第一图像中的树叶所在区域),因此可以确定p1为有效像素点。如果p与p1之间的距离小于l1,但大于l2(l2《l1),说明p与p1之间的距离相对较远,该种情况下为了能够提高判断的准确性,可以对色差进行收紧,为此,可以判断p与p1之间的色差是否小于x2,其中x2《x1,若p与p1之间的色差小于x2,则确定p1为有效像素点。否则,电子设备确定p1是无效像素点。按照该种判断规则,继续判断p2是否为有效像素点,如果p2是有效像素点,则继续判断下一个与p2相邻的像素点p3是否为有效像素点,直到查找到无效像素点时,将最后一次确定的有效像素点确定为第一像素点右侧方向上的有效像素端点。
139.按照确定第一像素点右侧方向上的有效像素端点的方式,还可以确定第一像素点的上、下、左三个方向上的有效像素端点。然后,基于所确定的四个有效像素端点,确定第一像素点的目标区域,譬如,可以分别确定过四个有效像端点中每个有效像素端点且方向为水平方向或垂直方向的边,将所确定的四条边形成的封闭区域作为第一像素点的目标区域。示例性地,第一像素点的目标区域如图10中的101所示。
140.按照上述方法,可以确定第一图像中每个像素点的目标区域。
141.(3)基于第一图像中每个像素点的目标区域内包括的各个像素点在每个水平视差下的代价量,对第一图像中的每个像素点进行水平方向的代价聚合和垂直方向的代价聚合,以确定每个像素点在每个水平视差下的第一代价聚合结果。
142.为了便于理解,这里仍以第一像素点为例,对第一像素点进行水平方向的代价聚合和垂直方向的代价聚合的具体实现可以包括:假设第一像素点的目标区域内包括的像素点的数量为s,以及将水平视差记为d。在d取值相同的情况下,将第一像素点的目标区域内每行中各个像素点的代价量相加,以实现水平方向的代价聚合。然后将对各行的代价量之和相加,以实现垂直方向的代价聚合。之后,将垂直方向的代价聚合的结果与s相除,将得到的平均值作为第一像素点的第一代价聚合结果。
143.示例性地,请参考图10,假设第一像素点p的目标区域中包括三行五列的像素点。不难理解,在d等于0的情况下,该目标区域中的各个像素点均对应有各自的代价量,电子设备将第一行的五个像素点中各个像素点在d等于0的情况下的代价量相加,将第二行的五个像素点中各个像素点在d等于0的情况下的代价量相加,将第三行的五个像素点中各个像素点在d等于0的情况下的代价量相加。然后将上述得到的数值相加,将相加结果除以15,得到第一像素点在d等于0的情况下的第一代价聚合结果。在d等于1的情况下,该目标区域中的各个像素点均对应有各自的代价量,电子设备将第一行的五个像素点中各个像素点在d等于1的情况下的代价量相加,将第二行的五个像素点中各个像素点在d等于1的情况下的代价量相加,将第三行的五个像素点中各个像素点在d等于1的情况下的代价量相加。然后将上述得到的数值相加,将相加结果除以15,得到第一像素点在d等于1的情况下的第一代价聚合结果。以此类推,按照该种方法,可以确定在d取不同值的情况下第一像素点的第一代价聚合结果。
144.按照上述方式,可以确定第一图像中每个像素点在每个水平视差下的第一代价聚合结果。
145.(4)基于第一图像中每个像素点的目标区域内包括的各个像素点在每个水平视差下的第一代价聚合结果,通过扫描线优化对每个像素点进行多个预设方向上的代价聚合,得到每个像素点的第二代价聚合结果。
146.预设方向可以根据实际需求进行设置。示例性地,预设方向可以包括右侧水平方向和左侧水平方向,譬如对于第一像素点,多个预设方向包括第一像素点的左侧水平方向和右侧水平方向。
147.在步骤(3)的代价聚合过程中,仅仅考虑了水平视差相同的情况,也即默认目标区域的水平视差是连续的。然而,在一些场景下,目标区域的各个像素点的水平视差还可能是非连续的,譬如在存在遮挡或处于边缘区域的情况下,水平视差是不连续的,此时,若仅考虑相同水平视差下的代价聚合,则代价聚合的结果不准确。为此,可以将第一图像中每个像素点在各个水平视差下的第一代价聚合结果作为每个像素点在各个水平视差下的代价量,然后通过扫描线优化的方式,针对第一图像中的每个像素点,确定在各个水平视差下、多个预设方向中每个预设方向上的各个像素点的最优代价量,从而根据所确定的各个像素点的最优代价量,再次进行代价聚合处理,以确定每个像素点的第二代价聚合结果。如此,以便于提高每个像素点的代价量用于判断是否匹配的准确率,使得最终确定的第二代价聚合结果更具有代表性,鲁棒性较强。
148.(5)根据第一图像中每个像素点的第二代价聚合结果,确定第一图像对应的第一深度图。
149.根据前文记载可知,对于每个像素点均对应有多个第二代价聚合结果,且多个第二代价聚合结果中的每个第二代价聚合结果均对应有一个水平视差。由于代价量越大,说明匹配的可能性越小,所以,可以从每个像素点对应的多个第二代价聚合结果中选择最小第二代价聚合结果。之后,将最小第二代价聚合结果对应的水平视差确定为该像素点的水平视差。如此,可以确定第一图像中每个像素点的水平视差,从而可以确定第一图像对应的视差图。之后,电子设备即可根据视差图,生成第一图像对应的第一深度图。作为本技术的一个示例,电子设备通过相似三角形原理将视差图转换为第一深度图。
150.按照上述(1)至(5)的实现方式可以基于行对齐的第一图像和第二图像,确定第二图像对应的第二深度图,这里不再详细赘述。
151.步骤704:基于第一深度图和第二深度图,确定第一深度图中的各个遮挡点。
152.在一种可能的情况下,第一深度图中可能存在误判的遮挡点,在另一种可能的情况下,第一深度图中可能存在小面积的遮挡区域。由于遮挡点是不存在深度信息的,所以为了便于后续能够准确地生成不同摄像头角度下的图像帧,可以利用遮挡点的周围可靠的深度信息填充遮挡点的深度信息。
153.为此,电子设备先根据第一深度图和第二深度图,确定第一深度图中的遮挡点。在一个示例中,其具体实现可以包括:对于第一深度图中的第一像素点,从第二深度图中确定与第一像素点匹配的第二像素点,第一像素点为任意一个像素点。若第一像素点与第二像素点的深度信息不一致,且第一像素点的极线与第二深度图无交叉,则确定第一像素点为遮挡点,极线是指第一像素点与左极点之间的连接,左极点是指第一摄像头和第二摄像头的光心点的连线与第一图像的交点。
154.不难理解,在确定第二深度图中与第一像素点匹配的第二像素点时,可以从第一像素点对应的多个水平视差中确定最小第二代价聚合结果对应的水平视差,如此,在第二深度图中,与第一像素点之间存在所确定的水平视差的第二像素点即为与第一像素点匹配的第二像素点。
155.如果第一像素点的极线与第二深度图无交叉,说明第一像素点所在行的行对齐效果较好,如果在该种情况下,第一像素点的深度信息与第二深度图中匹配的第二像素点的深度信息不一致,说明在计算第一像素点与第二像素点之间的水平视差的过程中存在错误,或者,第一像素点被遮挡了,在该种情况下,电子设备确定第一像素点为遮挡点。否则,确定第一像素点不是遮挡点。
156.按照该种方式,可以对第一深度图中的每个像素点进行判断,从而可以确定第一深度图中的哪个或哪些像素点是遮挡点。
157.步骤705:确定各个遮挡点的目标区域内包括的目标像素点的数量,目标区域是指由与遮挡点的色差小于色差阈值范围的像素点构成的区域,目标像素点是指第一深度图和第二深度图中匹配且深度信息一致的像素点。
158.在本技术实施例中,目标像素点可理解为是可靠像素点。
159.不难理解,由于遮挡点实际也是一个像素点,所以可以确定每个遮挡点的目标区域。电子设备统计每个遮挡点的目标区域内包括的目标像素点的数量,在一个示例中,其具体实现可以包括:对于各个遮挡点中的第一遮挡点,统计在第一遮挡点的多个水平视差中每个水平视差下第一遮挡点的目标区域内包括的目标像素点的数量,譬如可以通过构建直方图进行统计,其中,第一遮挡点是任意一个遮挡点。之后,将每个水平视差下第一遮挡点的目标区域内包括的目标像素点的数量之和确定为第一遮挡点的目标区域内包括的目标像素点的数量。
160.示例性地,假设水平视差记录为d,d的取值范围为[0,4],在d等于0的情况下,经统计确定第一遮挡点的目标区域中包括2个目标像素点;在d等于1的情况下,经统计确定第一遮挡点的目标区域中包括4个目标像素点;在d等于2的情况下,经统计确定第一遮挡点的目标区域中包括1个目标像素点;在d等于3的情况下,经统计确定第一遮挡点的目标区域中包
括6个目标像素点;在d等于4的情况下,经统计确定第一遮挡点的目标区域中包括1个目标像素点。由此可以确定第一遮挡点的目标区域中包括的目标像素点个数为2 4 1 6 1,也即共计为14个。
[0161]
上述是以第一遮挡点为例,在实施中,对于每个遮挡点,均可以按照该种方式,确定每个遮挡点的目标区域中包括的目标像素点个数。
[0162]
步骤706:从各个遮挡点中,将目标区域内包括的目标像素点的数量大于或等于像素点数量阈值的遮挡点确定为目标遮挡点。
[0163]
其中,像素点数量阈值可以根据实际需求进行设置。
[0164]
对于一个遮挡点来说,如果在其附近存在大量的目标像素点,则说明可以利用附近的目标像素点的深度信息对其进行深度信息填充,所以,电子设备将其确定为待填充的目标遮挡点。反之,如果一个遮挡点的附近不存在大量的目标像素点,譬如仅存在稀少的目标像素点,此时若利用附近稀少的目标像素点的深度信息对其进行深度信息填充,则可能导致其深度信息不准确,所以,此时不将该遮挡点确定为待填充的目标遮挡点。
[0165]
需要说明的是,上述步骤704是基于第一深度图和第二深度图,确定第一深度图中满足指定填充条件的目标遮挡点的一种可选实现方式。其中,指定填充条件可以根据实际需求进行设置。
[0166]
步骤707:填充目标遮挡点的深度信息。
[0167]
作为本技术的一个示例,填充目标遮挡点的深度信息的具体实现可以包括:确定在最大的目标像素点的数量对应的水平视差下,目标遮挡点的目标区域内所有目标像素点的深度信息的中值。将所确定的中值作为目标遮挡点的深度信息进行填充。
[0168]
示例性地,假设目标遮挡点的目标区域中包括10个像素点,在d等于0的情况下,目标遮挡点的目标区域中包括2个目标像素点;在d等于1的情况下,目标遮挡点的目标区域中包括4个目标像素点;在d等于2的情况下,目标遮挡点的目标区域中包括1个目标像素点;在d等于3的情况下,目标遮挡点的目标区域中包括6个目标像素点;在d等于4的情况下,目标遮挡点的目标区域中包括1个目标像素点。由此可以确定,目标遮挡点的目标区域中最多目标像素点的数量为6,对应的水平视差是3。电子设备确定在水平视差是3的情况下目标遮挡点的目标区域中包括的6个目标像素点的深度信息的中值,将该中值作为目标遮挡点的深度信息进行填充。
[0169]
如此,通过多次迭代来填充遮挡区域的深度信息,从而可以使得经填充后的第一深度图的深度信息更为丰富。
[0170]
需要说明的是,上述是将目标遮挡点的目标区域中各个目标像素点的深度信息的中值作为目标遮挡点的深度信息为例进行说明。在另一实施例中,还可以采用其他方式确定目标遮挡点的深度信息,譬如,还可以确定在最大的目标像素点的数量对应的水平视差下,目标遮挡点的目标区域中各个目标像素点的深度信息的均值,将该均值作为目标遮挡点的深度信息进行填充等,本技术实施例对此不作限定。
[0171]
另外还需要说明的是,上述采用的深度信息的填充方式仅是示例性的,在另一实施例中,还可以通过其他方式进行填充。譬如,还可以通过神经网络模型来填充遮挡点,当然该神经网络模型是预先通过训练得到的,能够识别任意一个深度图中的遮挡点并对识别出的遮挡点进行深度信息的填充。
[0172]
步骤708:基于第一图像和经填充处理后的第一深度图,生成稠密深度图。
[0173]
不难理解,稠密深度图是指深度信息的稠密度大于预设值的深度图,也即稠密深度图具有丰富的深度信息。
[0174]
作为本技术的一个示例,请参考图11,基于第一图像和经填充处理后的第一深度图,生成稠密深度图的具体实现可以包括:将第一图像输入至目标网络模型中,输出第一图像对应的第一表面法向图和第一边缘遮挡图,目标网络模型能够确定任意的图像对应的表面法向图和边缘遮挡图,第一边缘遮挡图包括第一图像中的各个像素点为遮挡点的概率。根据经填充处理后的第一深度图、第一表面法向图、第一边缘遮挡图,建立稠密深度图的目标误差函数。基于目标误差函数,通过梯度下降算法进行迭代,以确定稠密深度图。
[0175]
第一边缘遮挡图中各个像素点对应的概率值的取值范围为[0,1]。
[0176]
在一个示例中,根据经填充处理后的第一深度图、第一表面法向图、第一边缘遮挡图,建立稠密深度图的目标误差函数的具体实现可以包括:基于经填充处理后的第一深度图,确定第一误差项,第一误差项包括经填充处理后的第一深度图中各个像素点的深度信息与各个像素点的估计深度之间的差值,估计深度是指在迭代过程中当前估计的深度信息。基于第一表面法向图,确定第二误差项,第二误差项用于表示各个像素点的估计深度与各个像素点的法向量的一致性程度。确定第三误差项,第三误差项包括各个像素点与相邻像素点的估计深度差值。基于第一边缘遮挡图,确定第四误差项,第四误差项包括各个像素点是遮挡点的概率。基于第一误差项、第二误差项、第三误差项、第四误差项,确定目标误差函数。
[0177]
作为本技术的一个示例,电子设备定义多个误差项,该多个误差项具体包括第一误差项、第二误差项、第三误差项、以及第四误差项。其中,第一误差项为数据项误差,其用于表示在每个像素点处估计深度与第一深度图中的深度信息的差异;第二误差项为法向误差,其正比于估计深度与表面法向图的一致性;第三误差项为邻近误差,其正比于相邻像素点的深度差值;第三误差项为遮挡误差,其取值范围为[0,1]。
[0178]
作为本技术的一个示例。电子设备可以通过如下方式建立多个误差项中的各个误差项,具体地:电子设备基于经填充处理后的第一深度图,通过如下公式(3)确定第一误差项:其中,表示第一误差项;表示迭代过程中每次确定的像素点的估计深度,不难理解,是变量,初始值可以设为0;x,y为像素点的坐标;表示像素点在第一深度图中的深度信息。
[0179]
另外,电子设备基于第一表面法向图,通过如下公式(4)确定第二误差项:其中,表示第二误差项,表示像素点的法向量的模量,为预置的阈值。
[0180]
另外,电子设备通过如下公式(5)确定第三误差项:其中,为坐标是(x,y)的像素点的相邻像素点的估计深度。
[0181]
此外,由于第一边缘遮挡图包括第一图像中各个像素点为遮挡点的概率,所以,电子设备基于第一边缘遮挡图,即可确定第四误差项。示例性地,第四误差项可以表示为b。
[0182]
之后,根据所确定的多个误差项,确定目标误差函数。作为本技术的一个示例,基于第一误差项、第二误差项、第三误差项、第四误差项,通过公式(1),确定目标误差函数,其中,公式(1)包括:其中,表示目标误差函数、表示第一误差项、表示第二误差项、表示第三误差项、表示第四误差项,、、均为预置的比例系数。
[0183]
值得一提的是,目标误差函数使得估计深度在无效区域以及遮挡区域保持表面法向图一致性,有效区域的估计深度与第一深度图的深度信息尽可能保持一致,并且邻近区域的估计深度尽量保持一致。
[0184]
如此,电子设备即可基于目标误差函数,通过梯度下降算法进行迭代,以确定目标误差函数的最小误差量,从而得到最小误差量对应的各个像素点的估计深度,进而得到稠密深度图。
[0185]
需要说明的是,上述步骤702至步骤708是根据第一图像和第二图像,确定稠密深度图的一种可选的实现方式。在另一实施例中,还可以根据第一图像和第二图像,通过其他方式确定稠密深度图。譬如,还可以根据第一图像和第二图像,通过深度学习模型生成稠密深度图,本技术实施例对此不作限定。
[0186]
步骤709:基于稠密深度图、指定相机路径的路径信息,生成多个图像帧,路径信息包括电子设备按照指定相机路径运动时在多个位置点中每个位置点处的相机姿态参数。
[0187]
指定相机路径可以根据实际需求进行设置,示例性地,请参考图12,图12是根据一示例性实施例示出的一种指定相机路径的示意图。
[0188]
指定相机路径中包括多个位置点,多个图像帧中的每个图像帧与多个位置点中的一个位置点对应,每个位置点对应有一组相机姿态参数。譬如如图12所示,路径信息包括在指定相机路径中的位置点l1处的相机姿态参数、位置点l2处的相机姿态参数、位置点l3处的相机姿态参数、位置点处l4的相机姿态参数,也即路径信息包括四组相机姿态参数。
[0189]
在一个示例中,每组相机姿态参数包括相机中心点位置信息(如相机中心点坐标)和相机旋转角度。
[0190]
作为本技术的一个示例,基于稠密深度图、指定相机路径的路径信息,生成多个图像帧的具体实现可以包括:基于稠密深度图中每个像素点的深度信息、像素点位置信息、以及每个像素点的颜色信息,确定每个像素点映射至三维坐标系下的点云数据。根据点云数据、每个位置点处的相机姿态参数,生成每个位置点对应的图像帧,得到多个图像帧。
[0191]
其中,像素点位置信息是指像素点在图像中的位置信息(如坐标)。
[0192]
不难理解,在已知每个像素点的深度信息和像素点位置信息的情况下,可以确定
每个像素点在世界坐标系下对应的点的位置信息,结合每个像素点的颜色信息,可以确定每个像素点在三维坐标系下的点云数据。如此,电子设备可以假设相机沿着预先设置的指定相机路径运动,当位于指定相机路径中的某个位置点时,可以结合该位置点上的相机姿态参数,将点云中大量的点的世界坐标通过仿射变换转换为成像平面坐标,同时将对应的颜色信息同步为成像平面上的像素点,从而得到在该位置点上的图像帧。
[0193]
作为本技术的一个示例,电子设备可以通过如下公式(6)确定每个位置点上的图像帧:其中,(u,v,1)表示一个图像帧中的像素点的位置信息,表示世界坐标系下的位置信息,r表示旋转矩阵,z为角度变换矩阵,z可以根据相机旋转角度确定,t表示平移矩阵,表示当前位置点处的相机中心点位置信息,表示第一摄像头在x方向的尺度因子,表示第一摄像头在y方向的尺度因子,f表示第一摄像头的焦距。
[0194]
步骤710:基于多个图像帧,生成动态图像。
[0195]
在实施中,可以将多个图像帧中的每个图像帧连续合成,从而得到动态图像,该动态图像展示的是电子设备沿着指定相机路径运动时的图片变化效果。示例性地,请参考图5,图5是根据一示例性实施例示出的一种在四个不同时间点动态图像中对应的图像帧的显示效果示意图。
[0196]
在本技术实施例中,获取第一图像和第二图像,根据第一图像和第二图像,确定稠密深度图,基于稠密深度图,结合指定相机路径的路径信息,生成多个图像帧。路径信息包括指定相机路径中多个位置点中每个位置点的相机姿态参数,也即通过设置虚拟的指定模拟相机,生成在每个位置点处的图像帧,得到多个图像帧。之后,即可基于该多个图像帧生成动态图像,如此,避免需要通过人工后期处理得到动态图像,提高了生成动态图像的效率。
[0197]
另外,本技术实施例提供的方法,通过计算第一图像的深度信息,自动的生成动态图像,相比于预测第一图像中的主体运动等方式,本技术提供的方法具有很高的稳定性,在各种场景下的动态效果良好。
[0198]
作为本技术的一个示例,本技术实施例还提供了一种生成动态图像的方法,在图7所示的实施例中,在生成第一图像对应的视差图之后,还可以通过后处理对视差图进行优化,譬如,该后处理的方法可以包括但不限于深度不连续性调整、子像素优化、根据置信度去除无效视差、中值滤波中的一种或者多种。
[0199]
在一个示例中,根据置信度去除无效视差的具体实现可以包括:确定视差图中包括的每个像素点的视差置信度。根据每个像素点的视差置信度确定每个像素点的目标水平视差,得到优化后的视差图。
[0200]
在一个示例中,确定视差图中包括的每个像素点的视差置信度的具体实现可以包括:对于第一像素点,根据第一像素点的多个水平视差中每个水平视差对应的代价量,确定多个代价量中的极值点的个数。若多个代价量中的极值点的个数为零,则确定第一像素点的视差置信度为第一数值,若多个代价量中的极值点的个数为一,则确定第一像素点的视差置信度为第二数值,若多个代价量中的极值点的个数大于一,则确定第一像素点的视差置信度为第三数值,其中,第一数值小于第三数值,第三数值小于第二数值,譬如,第一数值是0,第二数值的255,第三置信度为150。第一像素点是视差图中的任意一个像素点。
[0201]
极值点又可以称为是孤立值点,或者,可以理解为多个代价量中的谷底。在一个示例中,判断极值点的方式可以包括:对于多个水平视差中除第一个和最后一个水平视差之外的任意一个水平视差,确定分别与该水平视差相邻的两个水平视差对应的代价量之和,将该水平视差对应的代价量与所确定的代价量之和相除。若相除后得到的结果小于预设视差范围,则可以确定该水平视差对应的代价量远远小于相邻的两个水平视差中每个水平视差对应的代价量,该种情况下,可以将该水平视差对应的代价量确定为极值点。否则,若相除后得到的结果不小于预设视差范围,则确定该水平视差对应的代价量不是极值点。
[0202]
其中,预设视差范围可以根据实际需求进行设置。
[0203]
示例性地,假设以多个水平视差中的第四个水平视差为例,确定第三个水平视差对应的代价量与第五个水平视差的代价量之和,将第四个水平视差对应的代价量与所确定的代价量之和相除。若相除的结果小于预设视差范围,则确定第四个水平视差对应的代价量为极值点,否则,确定第四个水平视差对应的代价量不是极值点。
[0204]
按照该种方式,可以对第一像素点的多个水平视差中每个水平视差对应的代价量进行判断,以确定哪个或哪些代价量是极值点,从而可以确定第一像素点的多个代价量中的极值点的个数。不难理解,若多个代价量中不存在极值点,则可以确定多个代价量中的极值点的个数为零。
[0205]
若第一像素点的多个代价量中的极值点的个数为零,说明第一像素点的多个代价量之间的差异较小,由此可以确定在图7所示实施例中确定的最小第二代价聚合结果的可信度较低,从而可以确定第一像素点的视差置信度较低,因此,电子设备确定第一像素点的视差置信度为第一数值,示例性地,第一数值是0。若第一像素点的多个代价量中的极值点的个数是1,也即多个代价量中仅存在一个谷底,说明在图7所示实施例中确定的最小第二代价聚合结果的可信度较高,从而可以确定第一像素点的视差置信度较高,因此,电子设备确定第一像素点的视差置信度为第二数值,示例性的,第二数值为255。若第一像素点的多个代价量中的极值点的个数大于1,也即多个代价量中存在多个谷底,该种情况下,说明在图7所示实施例中确定的最小第二代价聚合结果的可信度不高,从而确定第一像素点的视差置信度比较不可靠,所以电子设备确定第一像素点的视差置信度为第三数值,譬如第三数值为150。
[0206]
按照上述方式,可以确定每个像素点的视差置信度。
[0207]
之后,电子设备根据每个像素点的视差置信度确定每个像素点的目标水平视差。以第一像素点为例,在一个示例中,其具体实现可以包括:若第一像素点的视差置信度小于第一置信度阈值,则确定第一像素点的目标水平视差为零。若第一像素点的视差置信度大于第二置信度阈值,则确定第一像素点的目标水平视差为最小第二代价聚合结果对应的水
平视差。若第一像素点的视差置信度大于或等于第一置信度阈值且小于或等于第二置信度阈值,则根据第一像素点的周围像素点的目标水平视差,确定第一像素点的目标水平视差。
[0208]
其中,第一置信度阈值和第二置信度阈值可以根据实际需求进行设置。示例性地,第一置信度阈值为100,第二置信度阈值为170。
[0209]
若第一像素点的视差置信度小于第一置信度阈值,譬如第一像素点的视差置信度为0,则说明最小第二代价聚合结果对应的水平视差是无效视差,因此,确定第一像素点的目标水平视差为0。若第一像素点的视差置信度大于第二置信度阈值,譬如,第一像素点的视差置信度为255,说明最小第二代价聚合结果对应的水平视差是有效视差,因此,将最小第二代价聚合结果对应的水平视差确定为第一像素点的目标水平视差。若第一像素点的视差置信度大于或等于第一置信度阈值且小于或等于第二置信度阈值,譬如,第一像素点的视差置信度为150,则说明最小第二代价聚合结果的可信度不高,从而可以确定最小第二代价聚合结果对应的水平视差的置信度不高,该种情况下,可以根据第一像素点的周围像素点的目标水平视差,确定第一像素点的目标水平视差。
[0210]
在一个示例中,根据第一像素点的周围像素点的目标水平视差,确定第一像素点的目标水平视差的具体实现可以包括:统计第一像素点的周围像素点中目标水平视差不为零的像素点个数,若统计的像素点个数大于或者等于像素点数量阈值,则确定所统计的各个像素点的目标水平视差的中值,将该中值确定为第一像素点的目标水平视差。若统计的像素点个数小于像素点数量阈值,则确定第一像素点的目标水平视差为零。
[0211]
其中,像素点数量阈值可以根据实际需求进行设置。
[0212]
第一像素点的周围像素点中各个像素点的目标水平视差的确定方式可以按照第一像素点的目标水平视差的确定方式得到。
[0213]
也即是,如果第一像素点的视差置信度不高,则可以确定统计第一像素点周围具有有效视差的像素点的数量,如果第一像素点周围有大量具有有效视差的像素点,则可以利用周围具有有效视差的像素点的目标水平视差,来更新第一像素点的目标水平视差。如果第一像素点的周围具有有效视差的像素点数量极少,则说明视差图中第一像素点所在的局部区域中均是无效视差,因此,可以确定第一像素点的目标水平视差为零。
[0214]
按照该种方式,可以确定视差图中的每个像素点的目标水平视差,从而实现对视差图的后处理优化。之后,电子设备基于优化后的视差图,生成第一图像对应的第一深度图,譬如,通过相似三角形原理将优化后的视差图转换为第一深度图。
[0215]
值得一提的是,在后处理中,通过深度不连续性调整和/或根据置信度去除无效视差,可以去除错误视差,使得优化后的视差图的水平视差具有连续性,以提高后续确定深度信息时的准确度。通过子像素优化处理可以使得后续基于优化后的视差图确定深度信息时更为准确。通过中值滤波处理可以使得优化后的视差图更为平滑。
[0216]
图13是本技术实施例提供的一种生成动态图像的装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为图2所示的电子设备。参见图13,该装置包括:获取模块1310,用于获取第一图像和第二图像,第一图像是通过第一摄像头采集得到,第二图像是通过第二摄像头采集得到;确定模块1320,用于根据第一图像和第二图像,确定稠密深度图;
第一生成模块1330,用于基于指定相机路径的路径信息以及稠密深度图,生成多个图像帧,路径信息包括电子设备按照指定相机路径运动时在多个位置点中每个位置点处的相机姿态参数,多个图像帧中的每个图像帧与一个位置点处的相机姿态参数对应;第二生成模块1340,用于基于多个图像帧,生成动态图像。
[0217]
作为本技术的一个示例,确定模块1320用于:对第一图像和第二图像进行行对齐;基于行对齐后的第一图像和第二图像,分别确定第一图像对应的第一深度图以及第二图像对应的第二深度图;基于第一深度图和第二深度图,确定第一深度图中满足指定填充条件的目标遮挡点;填充目标遮挡点的深度信息;基于第一图像和经填充处理后的第一深度图,生成稠密深度图。
[0218]
作为本技术的一个示例,确定模块1320用于:基于第一深度图和第二深度图,确定第一深度图中的各个遮挡点;确定各个遮挡点的目标区域内包括的目标像素点的数量,目标区域是指由与遮挡点的色差小于色差阈值范围的像素点构成的区域,目标像素点是指第一深度图和第二深度图中匹配且深度信息一致的像素点;从各个遮挡点中,将目标区域内包括的目标像素点的数量大于或等于像素点数量阈值的遮挡点确定为目标遮挡点。
[0219]
作为本技术的一个示例,确定模块1320用于:对于第一深度图中的第一像素点,从第二深度图中确定与第一像素点匹配的第二像素点,第一像素点为任意一个像素点;若第一像素点与第二像素点的深度信息不一致,且第一像素点的极线与第二深度图无交叉,则确定第一像素点为遮挡点,极线是指第一像素点与左极点之间的连接,左极点是指第一摄像头和第二摄像头的光心点的连线与第一图像的交点。
[0220]
作为本技术的一个示例,确定模块1320用于:对于各个遮挡点中的第一遮挡点,统计在第一遮挡点的多个水平视差中每个水平视差下第一遮挡点的目标区域内包括的目标像素点的数量,第一遮挡点是任意一个遮挡点;将每个水平视差下第一遮挡点的目标区域内包括的目标像素点的数量之和确定为第一遮挡点的目标区域内包括的目标像素点的数量。
[0221]
作为本技术的一个示例,确定模块1320用于:确定在最大的目标像素点的数量对应的水平视差下,目标遮挡点的目标区域内所有目标像素点的深度信息的中值;将所确定的中值作为目标遮挡点的深度信息进行填充。
[0222]
作为本技术的一个示例,第一生成模块1330用于:将第一图像输入至目标网络模型中,输出第一图像对应的第一表面法向图和第一边缘遮挡图,目标网络模型能够确定任意的图像对应的表面法向图和边缘遮挡图,第一边缘遮挡图包括第一图像中的各个像素点为遮挡点的概率;
根据经填充处理后的第一深度图、第一表面法向图、第一边缘遮挡图,建立稠密深度图的目标误差函数;基于目标误差函数,通过梯度下降算法进行迭代,以确定稠密深度图。
[0223]
作为本技术的一个示例,第一生成模块1330用于:基于经填充处理后的第一深度图,确定第一误差项,第一误差项包括经填充处理后的第一深度图中各个像素点的深度信息与各个像素点的估计深度之间的差值,估计深度是指在迭代过程中当前估计的深度信息;基于第一表面法向图,确定第二误差项,第二误差项用于表示各个像素点的估计深度与各个像素点的法向量的一致性程度;确定第三误差项,第三误差项包括各个像素点与相邻像素点的估计深度差值;基于第一边缘遮挡图,确定第四误差项,第四误差项包括各个像素点是遮挡点的概率;基于第一误差项、第二误差项、第三误差项、第四误差项,确定目标误差函数。
[0224]
作为本技术的一个示例,第一生成模块1330用于:基于第一误差项、第二误差项、第三误差项、第四误差项,通过公式(1),确定目标误差函数,其中,公式(1)包括:其中,表示目标误差函数、表示第一误差项、表示第二误差项、表示第三误差项、表示第四误差项,、、均为预置的比例系数。
[0225]
作为本技术的一个示例,第二生成模块1340用于:基于稠密深度图中每个像素点的深度信息、像素点位置信息、以及每个像素点的颜色信息,确定稠密深度图中的像素点映射至三维坐标系下的点云数据;根据点云数据、每个位置点处的相机姿态参数,生成每个位置点对应的图像帧,得到多个图像帧。
[0226]
作为本技术的一个示例,第二生成模块1340用于:基于每个位置点处的相机姿态参数,将点云数据对应的各个点的三维坐标信息通过仿射变换转换为成像平面的坐标;基于各个点在成像平面中的坐标,将各个点的颜色信息同步为成像平面的像素点,得到每个位置点对应的图像帧。
[0227]
在本技术实施例中,获取第一图像和第二图像,根据第一图像和第二图像,确定稠密深度图,基于稠密深度图,结合指定相机路径的路径信息,生成多个图像帧。路径信息包括指定相机路径中多个位置点中每个位置点的相机姿态参数,也即通过设置虚拟的指定模拟相机,生成在每个位置点处的图像帧,得到多个图像帧。之后,即可基于该多个图像帧生成动态图像,如此,避免需要通过人工后期处理得到动态图像,提高了生成动态图像的效率。
[0228]
需要说明的是:上述实施例提供的生成动态图像的装置在生成动态图像时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部
或者部分功能。
[0229]
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术实施例的保护范围。
[0230]
上述实施例提供的生成动态图像的装置与生成动态图像的方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
[0231]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(digital subscriber line,dsl))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(digital versatile disc,dvd))或半导体介质(比如:固态硬盘(solid state disk,ssd))等。
[0232]
以上所述为本技术提供的可选实施例,并不用以限制本技术,凡在本技术的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献