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

文档序号:31708797发布日期:2022-10-01 13:44阅读:63来源:国知局
一种标定方法、图像处理方法、装置、设备及存储介质与流程

1.本技术涉及图像处理技术领域,具体地涉及一种标定方法、图像处理方法、装置、设备及存储介质。


背景技术:

2.近年来,随着视频拍摄设备技术的快速发展,很多拍摄设备都已经开始支持高清甚至全高清的拍摄,例如,单反相机、卡片式相机、带拍照功能手机、视频监控设备、行车记录仪等,因此,视频的拍摄质量对于评价拍摄设备而言已变得越来越重要。
3.影响视频拍摄质量的因素很多,包括:分辨率、帧率、噪声、色彩饱和度、图像清晰度、视频的稳定性等。其中,视频的稳定性是很重要的影响因素。因为拍摄时一旦不稳定,会使得整体画面抖动,这样不但会造成图像不清晰,而且使得人眼很容易疲劳,主观感受很差。尤其对于目前常用的智能手机、卡片式相机来说,由于此类设备本身质量轻,又是由用户手持拍摄,很容易产生画面的抖动。针对此类抖动问题,最有效的解决方式是对拍摄得到的图像进行防抖处理,使得拍摄设备具备视频防抖功能。
4.多目拍摄设备是指利用多个图像采集模块采集图像的拍摄设备。具体地,以双目拍摄设备为例,双目拍摄设备包括第一图像采集模块和第二图像采集模块。其中,第一图像采集模块包括第一镜头和第一惯性测量单元,第二图像采集模块中包括第二镜头和第二惯性测量单元。通常情况下,在拍摄设备出厂前,需要对拍摄设备的参数进行标定。具体地,可以标定第一镜头和第一惯性测量单元之间的相对旋转量r
imu1_cam1
,第二镜头和第二惯性测量单元之间的相对旋转量r
imu2_cam2
,第一惯性测量单元和第二惯性测量单元之间的相对旋转量r
imu1_imu2

5.一般可以认为第一镜头和第一惯性测量单元之间刚性连接,第二镜头和第二惯性测量单元之间刚性连接。即拍摄设备长时间使用后,第一镜头和第一惯性测量单元之间的相对旋转量r
imu1_cam1
以及第二镜头和第二惯性测量单元之间的相对旋转量r
imu2_cam2
不会发生变化。但是,拍摄设备长时间使用后,第一惯性测量单元和第二惯性测量单元之间的相对旋转量r
imu1_imu2
会发生不可忽略的变化。因此,需要对第一惯性测量单元和第二惯性测量单元之间的相对旋转量r
imu1_imu2
进行更新。相反,若不考虑第一惯性测量单元和第二惯性测量单元之间的相对旋转量r
imu1_imu2
的变化,在对图像或者视频进行防抖处理时,会导致防抖效果较差。


技术实现要素:

6.有鉴于此,本技术提供一种标定方法、图像处理方法、装置、设备及存储介质,以利于解决现有技术中拍摄设备长时间使用后,在对图像或者视频进行防抖处理时,若不考虑两个惯性测量单元之间的相对旋转情况,将导致防抖效果较差的问题。
7.第一方面,本技术实施例提供了一种标定方法,应用于拍摄设备,所述拍摄设备包括相互连接的第一图像采集模块和第二图像采集模块,所述第一图像采集模块包括第一惯
性测量单元,所述第二图像采集模块包括第二惯性测量单元,所述方法包括:
8.采集所述第一惯性测量单元的第一三轴陀螺仪数据和所述第二惯性测量单元的第二三轴陀螺仪数据,获得第一三轴陀螺仪数据集合和第二三轴陀螺仪数据集合;
9.根据n组所述第一三轴陀螺仪数据和所述第二三轴陀螺仪数据,计算第一旋转量r
imu1_imu2
,所述第一旋转量为所述第一惯性测量单元和所述第二惯性测量单元之间的相对旋转量,n≥3;
10.其中,同一组所述第一三轴陀螺仪数据和所述第二三轴陀螺仪数据对应的采集时间相同。
11.在本技术实施例中,拍摄设备包括第一惯性测量单元和第二惯性测量单元,分别采集第一惯性测量单元的第一三轴陀螺仪数据和第二惯性测量单元的第二三轴陀螺仪数据,基于第一三轴陀螺仪数据和第二三轴陀螺仪数据可以对第一旋转量(第一惯性测量单元和第二惯性测量单元之间的相对旋转量)进行简单、快速的标定。由于对第一旋转量进行了标定,因此,后续步骤中在对图像或视频进行防抖处理时,可以考虑第一旋转量对防抖效果的影响,即结合第一旋转量进行防抖处理,进而可以提高防抖效果。避免由于拍摄设备长时间使用后,第一惯性测量单元和第二惯性测量单元之发生相对旋转,导致防抖效果较差的问题。
12.在一种可能的实现方式中,所述根据n组所述第一三轴陀螺仪数据和所述第二三轴陀螺仪数据,计算第一旋转量r
imu1_imu2
,包括:
13.根据预设的筛选规则,在所述第一三轴陀螺仪数据集合和所述第二三轴陀螺仪数据集合中,确定n组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据;
14.根据n组所述第一目标三轴陀螺仪数据和所述第二目标三轴陀螺仪数据,计算所述第一旋转量r
imu1_imu2

15.在本技术实施例中,通过预设的筛选规则,在第一三轴陀螺仪数据集合和第二三轴陀螺仪数据集合中筛选出较优的数据,进行第一旋转量的计算,可以提高计算结果的准确性。
16.在一种可能的实现方式中,所述筛选规则包括:
17.所述第一目标三轴陀螺仪数据和/或所述第二目标三轴陀螺仪数据的模长大于或等于预设的模长阈值。
18.由于模长较小的数据容易受零偏和噪声的影响,在本技术实施例中,选择模长较大的陀螺仪数据进行第一旋转量的计算,可以提高计算结果的准确性。
19.在一种可能的实现方式中,所述筛选规则还包括:
20.n个所述第一目标三轴陀螺仪数据分别与预设的n个参考方向相匹配;
21.和/或,n个所述第二目标三轴陀螺仪数据分别与预设的所述n个参考方向相匹配;
22.其中,所述n个参考方向中任意两个参考方向的差值大于或等于预设的参考方向差值阈值。
23.在本技术实施例中,采用三维空间中方向差异较大的陀螺仪数据进行第一旋转量的计算,可以提高计算结果的准确性。
24.在一种可能的实现方式中,所述根据预设的筛选规则,在所述第一三轴陀螺仪数据集合和所述第二三轴陀螺仪数据集合中,确定n组第一目标三轴陀螺仪数据和第二目标
三轴陀螺仪数据,包括:
25.根据预设的筛选规则,在所述第一三轴陀螺仪数据集合中,确定n个第一目标三轴陀螺仪数据;
26.根据每个所述第一目标三轴陀螺仪数据的采集时间,在所述第二三轴陀螺仪数据集合中,确定与每个所述第一目标三轴陀螺仪数据的采集时间相匹配的第二目标三轴陀螺仪数据,获得n组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据;
27.其中,若所述第二三轴陀螺仪数据集合中不存在与所述第一目标三轴陀螺仪数据的采集时间相匹配的第二目标三轴陀螺仪数据,则根据所述第二三轴陀螺仪数据集合中的第二三轴陀螺仪数据进行插值计算,获得与所述第一目标三轴陀螺仪数据的采集时间相匹配的第二目标三轴陀螺仪数据;
28.或者,根据预设的筛选规则,在所述第二三轴陀螺仪数据集合中,确定n个第二目标三轴陀螺仪数据;
29.根据每个所述第二目标三轴陀螺仪数据的采集时间,在所述第一三轴陀螺仪数据集合中,确定与每个所述第二目标三轴陀螺仪数据的采集时间相匹配的第一目标三轴陀螺仪数据,获得n组所述第一目标三轴陀螺仪数据和所述第二目标三轴陀螺仪数据;
30.其中,若所述第一三轴陀螺仪数据集合中,不存在与所述第二目标三轴陀螺仪数据的采集时间相匹配的第一目标三轴陀螺仪数据,则根据所述第一三轴陀螺仪数据集合中第一三轴陀螺仪数据进行插值计算,获得与所述第二目标三轴陀螺仪数据的采集时间相匹配的第一目标三轴陀螺仪数据。
31.在本技术实施例中,当不存在与第一目标三轴陀螺仪数据的采集时间相匹配的第二目标三轴陀螺仪数据,或者不存在与第二目标三轴陀螺仪数据的采集时间相匹配的第一目标三轴陀螺仪数据时,通过插值计算的方式,进行数据补充,以免由于部分数据缺失,而无法获得最终结算结果。
32.在一种可能的实现方式中,所述根据n组所述第一三轴陀螺仪数据和所述第二三轴陀螺仪数据,计算所述第一旋转量r
imu1_imu2
,包括:
33.根据n组所述第一三轴陀螺仪数据和所述第二三轴陀螺仪数据构建方程一:根据n组所述第一三轴陀螺仪数据和所述第二三轴陀螺仪数据构建方程一:其中,为ti时刻采集的第一三轴陀螺仪数据,为ti时刻采集第二三轴陀螺仪数据,0≤i≤n-1;
34.对所述方程一求解,获得所述第一旋转量r
imu1_imu2

35.在本技术实施例中,基于具有相同采集时间的第一三轴陀螺仪数据和第二三轴陀螺仪数据构建第一旋转量的求解方程,进而获得第一旋转量,计算结果准确可靠。
36.在一种可能的实现方式中,所述对所述方程一求解,获得所述第一旋转量r
imu1_imu2
,包括:
37.将所述方程一变形为方程ax=0的矩阵形式,其中,a为系数矩阵,a的维数为3n行9列,x为待求解的所述第一旋转量r
imu1_imu2
对应的列向量,x的维数为9行1列;
38.求解方程ax=0,获得列向量x,将所述列向量x变形获得3x3的矩阵m;
39.对所述矩阵m进行线性变换,获得与所述矩阵m对应的行列式为1的正交矩阵,所述与所述矩阵m对应的行列式为1的正交矩阵为所述第一旋转量r
imu1_imu2

40.在本技术实施例中,先不考虑第一旋转量的矩阵特性,直接将第一旋转量当作9个
未知数求解,获得第一旋转量对应的列向量后,再将该列向量转换成矩阵形式,计算方法简单,便于运算。
41.在一种可能的实现方式中,所述采集所述第一惯性测量单元的第一三轴陀螺仪数据和所述第二惯性测量单元的第二三轴陀螺仪数据,包括:
42.在同一时间,采集所述第一惯性测量单元的第一三轴陀螺仪数据和所述第二惯性测量单元的第二三轴陀螺仪数据。
43.由于在第一旋转量的计算过程中需要采用同一时间的第一三轴陀螺仪数据和第二三轴陀螺仪数据,因此,在同一时间分别采集第一三轴陀螺仪数据和第二三轴陀螺仪数据,更便于后续计算过程中的数据使用。
44.在一种可能的实现方式中,所述采集所述第一惯性测量单元的第一三轴陀螺仪数据和所述第二惯性测量单元的第二三轴陀螺仪数据,包括:
45.将所述拍摄设备静置一段时间,分别计算所述第一惯性测量单元的第一零偏值和所述第二惯性测量单元的第二零偏值;
46.将采集的所述第一惯性测量单元的三轴陀螺仪数据减去所述第一零偏值,获得第一三轴陀螺仪数据;
47.将采集的所述第二惯性测量单元的三轴陀螺仪数据减去所述第二零偏值,获得第二三轴陀螺仪数据。
48.在本技术实施例中,考虑零偏值对陀螺仪数据的影响,可以获得更加准确的陀螺仪数据,进而提高最终计算结果的准确性。
49.第二方面,本技术实施例提供了一种图像处理方法,应用于拍摄设备,所述拍摄设备包括相互连接的第一图像采集模块和第二图像采集模块,所述第一图像采集模块包括第一镜头和第一惯性测量单元,所述第二图像采集模块包括第二镜头和第二惯性测量单元,所述方法包括:
50.采用第一方面任一项所述的方法计算所述第一旋转量r
imu1_imu2

51.根据所述第一惯性测量单元、所述第一旋转量r
imu1_imu2
以及第三旋转量r
imu2_cam2
估算所述第一镜头的运动旋转量和所述第二镜头的运动旋转量;或者,根据所述第二惯性测量单元、所述第一旋转量r
imu1_imu2
以及第二旋转量r
imu1_cam1
估算所述第一镜头的运动旋转量和所述第二镜头的运动旋转量;其中,所述第二旋转量r
imu1_cam1
为所述第一镜头和所述第一惯性测量单元之间的相对旋转量,所述第三旋转量r
imu2_cam2
为所述第二镜头和所述第二惯性测量单元之间的相对旋转量;
52.分别对所述第一镜头的运动旋转量和所述第二镜头的运动旋转量进行平滑处理,获得所述第一镜头的平滑运动旋转量和所述第二镜头的平滑运动旋转量;
53.根据所述第一镜头的平滑运动旋转量,对所述第一镜头采集的第一视频帧进行旋转和渲染,根据所述第二镜头的平滑运动旋转量,对所述第二镜头采集的第二视频帧进行旋转和渲染。
54.在本技术实施例中,可以在拍摄设备使用的过程中,对第一旋转量进行标定,进而在对图像或视频进行防抖处理时,考虑第一旋转量对防抖效果的影响,结合第一旋转量进行图像或视频的防抖处理,提高防抖效果。
55.在一种可能的实现方式中,所述根据所述第一惯性测量单元、所述第一旋转量rimu1_imu2
以及所述第三旋转量r
imu2_cam2
估算所述第一镜头的运动旋转量和所述第二镜头的运动旋转量,包括:根据所述第一惯性测量单元估算所述第一镜头的运动旋转量;根据所述第一旋转量r
imu1_imu2
以及所述第三旋转量r
imu2_cam2
计算所述第二境头和所述第一惯性测量单元之间的相对旋转量r
imu1_cam2
=r
imu1_imu2
*r
imu2_cam2
;根据所述第一镜头的运动旋转量以及所述第二境头和所述第一惯性测量单元之间的相对旋转量r
imu1_cam2
估算所述第二镜头的运动旋转量;
56.所述根据所述第二惯性测量单元、所述第一旋转量r
imu1_imu2
以及所述第二旋转量r
imu1_cam1
估算所述第一镜头的运动旋转量和所述第二境头的运动旋转量,包括:根据所述第二惯性测量单元估算所述第二镜头的运动旋转量;根据所述第一旋转量r
imu1_imu2
以及所述第二旋转量r
imu1_cam1
计算所述第一境头和所述第二惯性测量单元的相对旋转量r
imu2_cam1
=r
imu1_imu2t
*r
imu2_cam2
;根据所述第二镜头的运动旋转量以及所述第一境头和所述第二惯性测量单元的相对旋转量r
imu2_cam1
估算所述第一镜头的运动旋转量。
57.本技术实施例,在对图像或视频进行防抖处理时,可以基于任一个惯性测量单元(第一惯性测量单元或第二惯性测量单元)结合第一惯性测量单元和第二惯性测量单元之间的标定结果,估算第一镜头和第二镜头的运动旋转量,提高防抖效果。
58.在一种可能的实现方式中,所述采用第一方面任一项所述的方法计算所述第一旋转量r
imu1_imu2
,包括:
59.根据所述第一三轴陀螺仪数据和所述第二三轴陀螺仪数据的采集时间,将所述第一三轴陀螺仪数据集合中的第一三轴陀螺仪数据和第二三轴陀螺仪数据集合中的第二三轴陀螺仪数据划分为m个时间段,m≥2;
60.采用第一方面任一项所述的方法计算至少一个时间段内所述第一旋转量r
imu1_imu2

61.其中,若任一时间段内,无法获得所述第一旋转量r
imu1_imu2
,则对其他时间段内所述第一旋转量r
imu1_imu2
进行插值计算,获得所述任一时间段内所述第一旋转量r
imu1_imu2

62.在本技术实施例中,根据时间实时动态优化第一旋转量,进一步提高防抖效果。尤其是,在拍摄时间较长的应用场景中,在拍摄过程中,第一旋转量可能会发生变化,因此,通过动态优化第一旋转量,可以保证在整个较长时间的拍摄过程中,具有较优的防抖效果。
63.另外,当某一时间段内无法获得第一旋转量时,通过插值计算的方式,进行数据补充,以免由于部分数据缺失,而影响防抖处理。
64.第三方面,本技术实施例提供了一种拍摄设备标定装置,应用于拍摄设备,所述拍摄设备包括相互连接的第一图像采集模块和第二图像采集模块,所述第一图像采集模块包括第一惯性测量单元,所述第二图像采集模块包括第二惯性测量单元,所述装置包括:
65.陀螺仪数据采集模块,用于采集所述第一惯性测量单元的第一三轴陀螺仪数据和所述第二惯性测量单元的第二三轴陀螺仪数据,获得第一三轴陀螺仪数据集合和第二三轴陀螺仪数据集合;
66.相对旋转量计算模块,用于根据n组所述第一三轴陀螺仪数据和所述第二三轴陀螺仪数据,计算第一旋转量r
imu1_imu2
,所述第一旋转量r
imu1_imu2
为所述第一惯性测量单元和所述第二惯性测量单元之间的相对旋转量,n≥3;
67.其中,同一组所述第一三轴陀螺仪数据和所述第二三轴陀螺仪数据对应的采集时
间相同。
68.第四方面,本技术实施例提供了一种图像处理装置,应用于拍摄设备,所述拍摄设备包括相互连接的第一图像采集模块和第二图像采集模块,所述第一图像采集模块包括第一镜头和第一惯性测量单元,所述第二图像采集模块包括第二镜头和第二惯性测量单元,所述装置包括:
69.第三方面所述的拍摄设备标定装置;
70.运动估算模块,用于根据所述第一惯性测量单元、所述第一旋转量r
imu1_imu2
以及所述第三旋转量r
imu2_cam2
估算所述第一镜头的运动旋转量和所述第二镜头的运动旋转量;或者,根据所述第二惯性测量单元、所述第一旋转量r
imu1_imu2
以及所述第一镜头和第一惯性测量单元之间的相对旋转量r
imu1_cam1
估算所述第一镜头的运动旋转量和所述第二镜头的运动旋转量;其中,所述第二旋转量r
imu1_cam1
为所述第一镜头和所述第一惯性测量单元之间的相对旋转量,所述第三旋转量r
imu2_cam2
为所述第二镜头和所述第二惯性测量单元之间的相对旋转量;
71.平滑模块,用于分别对所述第一镜头的运动旋转量和所述第二镜头的运动旋转量进行平滑处理,获得所述第一镜头的平滑运动旋转量和所述第二镜头的平滑运动旋转量;
72.渲染模块,用于根据所述第一镜头的平滑运动旋转量,对所述第一镜头采集的第一视频帧进行旋转和渲染,根据所述第二镜头的平滑运动旋转量,对所述第二镜头采集的第二视频帧进行旋转和渲染。
73.第五方面,本技术实施例提供了一种电子设备,包括:
74.第一图像采集模块,所述第一图像采集模块包括第一镜头和第一惯性测量单元;
75.第二图像采集模块,所述第二图像采集模块包括第二镜头和第二惯性测量单元,所述第图像采集模块和所述第二图像采集模块相连;
76.处理器;
77.存储器;
78.以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行第一方面和第二方面中任意一项所述的方法。
79.第六方面,本技术实施例提供了一种拍摄设备,包括:
80.第一图像采集模块,所述第一图像采集模块包括第一镜头和第一惯性测量单元;
81.第二图像采集模块,所述第二图像采集模块包括第二镜头和第二惯性测量单元,所述第图像采集模块和所述第二图像采集模块相连;
82.处理器;
83.存储器;
84.以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述拍摄设备执行时,使得所述拍摄设备执行第一方面和第二方面中任意一项所述的方法。
85.在一种可能的实现方式中,所述第一镜头为上鱼眼镜头,所述第二镜头为下鱼眼镜头。
86.第七方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储
介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行第一方面和第二方面中任意一项所述的方法。
87.在本技术实施例中,拍摄设备包括第一惯性测量单元和第二惯性测量单元,分别采集第一惯性测量单元的第一三轴陀螺仪数据和第二惯性测量单元的第二三轴陀螺仪数据,基于第一三轴陀螺仪数据和第二三轴陀螺仪数据可以对第一旋转量(第一惯性测量单元和第二惯性测量单元之间的相对旋转量)进行简单、快速的标定。由于对第一旋转量进行了标定,因此,后续步骤中在对图像或视频进行防抖处理时,可以考虑第一旋转量对防抖效果的影响,即结合第一旋转量进行防抖处理,进而可以提高防抖效果。避免由于拍摄设备长时间使用后,第一惯性测量单元和第二惯性测量单元之发生相对旋转,导致防抖效果较差的问题。
附图说明
88.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
89.图1为本技术实施例提供的一种双目拍摄设备的结构示意图;
90.图2为本技术实施例提供的一种标定方法流程示意图;
91.图3为本技术实施例提供的一种图像处理方法的流程示意图;
92.图4为本技术实施例提供的一种拍摄设备标定装置的结构框图;
93.图5为本技术实施例提供的一种图像处理装置的结构框图;
94.图6为本技术实施例提供的一种电子设备的结构框图;
95.图7为本技术实施例提供的一种拍摄设备的结构框图。
具体实施方式
96.为了更好的理解本技术的技术方案,下面结合附图对本技术实施例进行详细描述。
97.应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
98.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
99.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
100.为了便于理解,下面首先对本技术实施例涉及的概念进行说明。
101.鱼眼镜头:属于超广角镜头中的一种特殊镜头,它的视角力求达到或超出人眼所能看到的范围。鱼眼镜头最大的作用是视角范围大,视角一般可达到220
°
或230
°
,这为近距
离拍摄大范围景物创造了条件;鱼眼镜头在接近被摄物拍摄时能造成非常强烈的透视效果,强调被摄物近大远小的对比,使所摄画面具有一种震撼人心的感染力;鱼眼镜头具有相当长的景深,有利于表现照片的长景深效果。
102.惯性测量单元(inertial measurement unit,imu):用于测量载体三轴姿态角(或角速率)以及加速度的装置。通常情况下,一个imu包含了三个单轴的加速度计和三个单轴的陀螺仪,加速度计用于检测载体在载体坐标系中三轴的加速度信号,而陀螺仪用于检测载体相对于载体坐标系的角速度信号,测量载体在三维空间中的角速度和加速度,并以此解算出载体的姿态。
103.双目拍摄设备:包括两个镜头,例如水平设置的左镜头和右镜头,或者上下设置的上镜头和下镜头等。双目拍摄设备中两个镜头的光圈中心之间的距离称为基线,是双目视觉系统中的重要参数。其中,当基线较长时,双目视觉系统最大能测到的距离较远;反之,当基线越短时,双目视觉系统最大能测到的距离较近。
104.参见图1,为本技术实施例提供的一种双目拍摄设备的结构示意图。如图1所述,该双目拍摄设备包括第一图像采集模块101和第二图像采集模块102。其中,第一图像采集模块101和第二图像采集模块102通过支架103相连。第一图像采集模块101中包括第一镜头和第一imu,第二图像采集模块102中包括第二镜头和第二imu。具体实现中,该第一镜头可以为上鱼眼境头,该第二境头可以为下鱼眼境头。该上鱼眼境头和下鱼眼境头组成大基线上下鱼眼拍摄设备。当然,在一些可能的实现方式中,第一镜头和第二境头还可以为其它类型的境头,本技术实施例对此不作具体限制。
105.另外,除了双目拍摄设备以外,本技术实施例提供的技术方案还可以应用于3目拍摄设备、4目拍摄设备或者拥有更多图像采集模块的多目拍摄设备,本技术实施例对此不作限制。为了便于理解,在下文中以双目拍摄设备为例对本技术实施例提供的技术方案进行说明。
106.通常情况下,在拍摄设备出厂前,需要对拍摄设备的参数进行标定。例如,对于双目拍摄设备,可以标定第一镜头和第一imu之间的相对旋转量r
imu1_cam1
,第二镜头和第二imu之间的相对旋转量r
imu2_cam2
,第一imu和第二imu之间的相对旋转量r
imu1_imu2

107.一般可以认为第一镜头和第一imu之间刚性连接,第二镜头和第二imu之间刚性连接。即拍摄设备长时间使用后,第一镜头和第一imu之间的相对旋转量r
imu1_cam1
以及第二镜头和第二imu之间的相对旋转量r
imu2_cam2
不会发生变化。但是,拍摄设备长时间使用后,第一imu和第二imu之间的相对旋转量r
imu1_imu2
会发生不可忽略的变化。因此,需要对第一imu和第二imu之间的相对旋转量r
imu1_imu2
进行更新。相反,若不考虑第一imu和第二imu之间的相对旋转量r
imu1_imu2
的变化,在视频防抖方案中,将导致防抖效果较差。
108.针对上述问题,本技术实施例提供了一种拍摄设备的标定方法,在拍摄设备长时间使用后,可以对第一imu和第二imu之间的相对旋转量r
imu1_imu2
进行更新。
109.为了便于表述,在下文中,将第一imu和第二imu之间的相对旋转量r
imu1_imu2
称为“第一旋转量r
imu1_imu2”;将第一镜头和第一imu之间的相对旋转量r
imu1_cam1
称为“第二旋转量r
imu1_cam1”;将第二镜头和第二imu之间的相对旋转量r
imu2_cam2
称为“第三旋转量r
imu2_cam2”。
110.参见图2,为本技术实施例提供的一种标定方法流程示意图。该方法可应用于图1所示的拍摄设备,如图2所示,其主要包括以下方法。
111.步骤s201:采集第一imu的第一三轴陀螺仪数据和第二imu的第二三轴陀螺仪数据,获得第一三轴陀螺仪数据集合和第二三轴陀螺仪数据集合。
112.在本技术实施例中,通过第一三轴陀螺仪数据和第二三轴陀螺仪数据计算第一旋转量r
imu1_imu2
,如方程一所示。
113.方程一:
[0114][0115]
其中,为ti时刻的第一三轴陀螺仪数据,为ti时刻的第二三轴陀螺仪数据。也就是说,方程一成立的条件为:需要采用同一时刻的第一三轴陀螺仪数据和第二三轴陀螺仪数据。因此,可以在同一时间,同时采集第一imu的第一三轴陀螺仪数据和第二imu的第二三轴陀螺仪数据,进而获得具有相同采集时间的第一三轴陀螺仪数据和第二三轴陀螺仪数据。换句话讲,由于在第一旋转量的计算过程中需要采用同一时间的第一三轴陀螺仪数据和第二三轴陀螺仪数据,因此,在同一时间分别采集第一三轴陀螺仪数据和第二三轴陀螺仪数据,更便于后续计算过程中的数据使用。
[0116]
当然,在一些可能的实现方式中,也可以不在同一时间采集第一imu的第一三轴陀螺仪数据和第二imu的第二三轴陀螺仪数据,而是在后续步骤中通过插值计算的方式获得具有相同采集时间的第一三轴陀螺仪数据和第二三轴陀螺仪数据。也就是说,本技术实施例涉及的采集时间可以为三轴陀螺仪数据的实际采集时间,也可以为通过插值计算的方式获得的三轴陀螺仪数据的采集时间。
[0117]
具体实现中,第一imu和第二imu通常会存在零偏值(为了便于说明,在下文中将第一imu的零偏值称为第一零偏值,将第二imu的零偏值称为第二零偏值),该零偏值将会影响第一三轴陀螺仪数据和第二三轴陀螺仪数据的准确性。
[0118]
在一种可能的实现方式中,采集第一imu的第一三轴陀螺仪数据和第二imu的第二三轴陀螺仪数据,具体包括:将所述拍摄设备静置一段时间,分别计算所述第一imu的第一零偏值和所述第二imu的第二零偏值;将采集的所述第一imu的三轴陀螺仪数据减去所述第一零偏值,获得第一三轴陀螺仪数据;将采集的所述第二imu的三轴陀螺仪数据减去所述第二零偏值,获得第二三轴陀螺仪数据。可理解,由于该实现方式中考虑到零偏值的存在,使得采集的第一三轴陀螺仪数据和第二三轴陀螺仪数据更加准确,以便在后续步骤中获得更加准确的第一旋转量r
imu1_imu2
。也就是说,在本技术实施例中,考虑零偏值对陀螺仪数据的影响,可以获得更加准确的陀螺仪数据,进而提高最终计算结果的准确性。
[0119]
步骤s202:根据n组第一三轴陀螺仪数据和第二三轴陀螺仪数据,计算第一旋转量r
imu1_imu2
,n≥3。
[0120]
在本技术实施例中,同一组第一三轴陀螺仪数据和第二三轴陀螺仪数据对应的采集时间相同。需要指出的是,该采集时间可以为三轴陀螺仪数据的实际采集时间,也可以为通过插值计算的方式获得的三轴陀螺仪数据的采集时间。
[0121]
由于旋转矩阵为3x3的矩阵,因此根据方程一最终求解获得的r
imu1_imu2
为3x3的矩阵。在方程一的求解过程中,可以先不考虑r
imu1_imu2
的矩阵特性,直接将r
imu1_imu2
当作9个未知数求解(3x3的矩阵中存在9个未知数),因此,至少需要9个方程一才可以对r
imu1_imu2
进行求解。
[0122]
另外,由于第一三轴陀螺仪数据和第二三轴陀螺仪数据均为三维数据,因此,每组
第一三轴陀螺仪数据和第二三轴陀螺仪数据可以构建3个方程一。基于该原理,当存在n组第一三轴陀螺仪数据和第二三轴陀螺仪数据时,可以构建3*n个方程一。可理解,当n=3时,3*n=9。也就是说,为了对r
imu1_imu2
进行求解,则至少需要3组第一三轴陀螺仪数据和第二三轴陀螺仪数据。
[0123]
为了便于运算,可以将3*n个方程一变形为ax=0的矩阵形式。其中,a为系数矩阵,x为待求解的第一旋转量r
imu1_imu2
对应的列向量。如上所述,旋转矩阵为3x3的矩阵,直接将r
imu1_imu2
当作9个未知数求解,则x的维数为9行1列。相应的系数矩阵a的列数为9列,行数为构建的方程一的数量3*n。然后,求解方程ax=0,获得列向量x。
[0124]
在一种可能的实现方式中,为了简化运算,可以在方式ax=0上左乘一个a
t
,即构建方程a
t
ax=0。然后对a
t
a做奇异值分解,其中,最小奇异值的右奇异向量所对应的列向量即列向量x的解。
[0125]
另外,将列向量x变形获得3x3的矩阵m。示例性的,x=(a
1 a
2 a
3 a
4 a
5 a
6 a
7 a
8 a9)
t
,则将列向量x变形获得3x3的矩阵m时,
[0126][0127]
由于旋转矩阵是一个行列式为1的正交矩阵,而矩阵m并不满足旋转矩阵的特性,因此还需要对矩阵m进行线性变换,获得与矩阵m对应的行列式为1的正交矩阵,该与所述矩阵m对应的行列式为1的正交矩阵即第一旋转量r
imu1_imu2

[0128]
在本技术实施例中,先不考虑第一旋转量的矩阵特性,直接将第一旋转量当作9个未知数求解,获得第一旋转量对应的列向量后,再将该列向量转换成矩阵形式,计算方法简单,便于运算。
[0129]
在一种可能的实现方式中,对矩阵m进行线性变换,具体可以为:对m进行奇异值分解得m=uσv
t
,其中,uv
t
和-uv
t
均为方程的解且是正交矩阵。另外,由于第一旋转量r
imu1_imu2
对应的行列式为1,因此,可以获得公式一。
[0130]
公式一:
[0131][0132]
由公式一可知,当det(uv
t
)》0,即uv
t
的行列式大于0(uv
t
的行列式为1)时,r
imu1_imu2
=uv
t
;当det(uv
t
)《0,即uv
t
的行列式小于0(uv
t
的行列式为-1)时,r
imu1_imu2
=-uv
t

[0133]
另外,为了提高计算结果(第一旋转量r
imu1_imu2
)的准确性,在进行r
imu1_imu2
的计算之前,还可以在第一三轴陀螺仪数据集合和第二三轴陀螺仪数据集合筛选出较优的第一三轴陀螺仪数据和第二三轴陀螺仪数据进行r
imu1_imu2
的计算。为了便于说明,将在第一三轴陀螺仪数据集合中筛选出的第一三轴陀螺仪数据称为第一目标三轴陀螺仪数据;将在第二三轴陀螺仪数据集合中筛选出的第二三轴陀螺仪数据称为第二目标三轴陀螺仪数据。具体地,上述步骤s202包括:根据预设的筛选规则,在第一三轴陀螺仪数据集合和第二三轴陀螺仪数据集合中,确定n组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据;根据n组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据,计算第一旋转量r
imu1_imu2

[0134]
可理解,通过预设的筛选规则,在第一三轴陀螺仪数据集合和第二三轴陀螺仪数
据集合中筛选出较优的数据,进行第一旋转量的计算,可以提高计算结果的准确性。
[0135]
在一种可能的实现方式中,上述筛选规则为:第一目标三轴陀螺仪数据和/或第二目标三轴陀螺仪数据的模长大于或等于预设的模长阈值。由于模长较小的数据容易受零偏和噪声的影响,因此,选择模长较大的数据可以提高计算结果的准确性。
[0136]
具体地,可以先在第一三轴陀螺仪数据集合中,确定n个模长大于或等于模长阈值,且第二三轴陀螺仪数据集合中存在对应时刻数据的第一目标三轴陀螺仪数据。例如,在第一三轴陀螺仪数据集合中存在5个第一三轴陀螺仪数据,其采集时间分别为t1、t2、t3、t4和t5。其中,t1、t2、t3、t4时刻采集的第一三轴陀螺仪数据的模长大于或等于模长阈值,第二三轴陀螺仪数据集合中不存在t2时刻采集的第二三轴陀螺仪数据,则将t1、t3、t4时刻采集的第一三轴陀螺仪数据作为第一目标三轴陀螺仪数据。在确定n个第一目标三轴陀螺仪数据后,可以根据n个第一目标三轴陀螺仪数据的采集时间,在第二三轴陀螺仪数据集合中确定与每个所述第一目标三轴陀螺仪数据的采集时间相匹配的第二目标三轴陀螺仪数据,获得n组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据。例如,确定3个第一目标三轴陀螺仪数据的采集时间分别为t1、t3和t4,则将第二三轴陀螺仪数据集合中t1、t3和t4时刻采集的第二三轴陀螺仪数据作为第二目标三轴陀螺仪数据。该方式可以保证第一目标三轴陀螺仪数据的模长均大于或等于模长阈值。
[0137]
基于同样的原理,还可以先在第二三轴陀螺仪数据集合中,确定n个模长大于或等于模长阈值,且第一三轴陀螺仪数据集合中存在对应时刻数据的第二目标三轴陀螺仪数据。然后,根据n个第二目标三轴陀螺仪数据的采集时间,在第一三轴陀螺仪数据集合中确定与每个所述第二目标三轴陀螺仪数据的采集时间相匹配的第一目标三轴陀螺仪数据,获得n组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据。该方式可以保证第二目标三轴陀螺仪数据的模长均大于或等于模长阈值。
[0138]
在一种可能的实现方式中,还可以分别在第一三轴陀螺仪数据集合中筛选模长大于或等于模长阈值的第一三轴陀螺仪数据,在第二三轴陀螺仪数据集合中筛选模长大于或等于模长阈值的第二三轴陀螺仪数据;然后,将模长大于或等于模长阈值,且具有相同采集时间的第一三轴陀螺仪数据和第二三轴陀螺仪数据作为一组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据,进而筛选出所有符合要求的第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据。例如,在第一三轴陀螺仪数据集合中模长大于或等于模长阈值的第一三轴陀螺仪数据的采集时间分别为t1、t3、t4和t5,在第二三轴陀螺仪数据集合中模长大于或等于模长阈值的第二三轴陀螺仪数据的采集时间分别为t2、t3、t4、t5和t6。则可以将t3时刻的第一三轴陀螺仪数据和第二三轴陀螺仪数据作为一组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据;将t4时刻的第一三轴陀螺仪数据和第二三轴陀螺仪数据作为一组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据;将t5时刻的第一三轴陀螺仪数据和第二三轴陀螺仪数据作为一组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据。进而,可以确定3组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据。该方式可以保证第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据的模长均大于或等于模长阈值。
[0139]
由于模长较小的数据容易受零偏和噪声的影响,在本技术实施例中,选择模长较大的陀螺仪数据进行第一旋转量的计算,可以提高计算结果的准确性。
[0140]
在一种可能的实现方式中,上述筛选规则还可以包括:n个第一目标三轴陀螺仪数
据分别与预设的多个参考方向相匹配;和/或,n个第二目标三轴陀螺仪数据分别与预设的多个参考方向相匹配。其中,该n个参考方向中任意两个参考方向的差值大于或等于预设的参考方向差值阈值。基于该筛选规则,可以在第一三轴陀螺仪数据集合和/或第二三轴陀螺仪数据集合中筛选出n个三维空间中方向差异较大的陀螺仪数据。示例性的,参考方向可以为(1,0,0),(0,1,0),(0,0,1),等,本技术实施例对此不作具体限制。
[0141]
在本技术实施例中,采用三维空间中方向差异较大的第一三轴陀螺仪数据和第二三轴陀螺仪数据进行r
imu1_imu2
的计算,可以提高计算结果的准确性。
[0142]
具体地,可以先在第一三轴陀螺仪数据集合中,确定n个与预设的多个参考方向相匹配的第一目标三轴陀螺仪数据。其中,与预设的参考方向相匹配可以为与参考方向夹角最小的数据。例如,参考方向为(1,0,0)、(0,1,0)和(0,0,1),t1、t3和t5时刻采集的第一三轴陀螺仪数据分别与参考方向(1,0,0)、(0,1,0)和(0,0,1)的夹角最小,则将t1、t3和t5时刻采集的第一三轴陀螺仪数据作为第一目标三轴陀螺仪数据。进一步地,根据第一目标三轴陀螺仪数据的采集时间,可以在第二三轴陀螺仪数据集合中确定与每个所述第一目标三轴陀螺仪数据的采集时间相匹配的第二目标三轴陀螺仪数据,获得n组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据。
[0143]
基于同样的原理,还可以先在第二三轴陀螺仪数据集合中,确定n个与预设的多个参考方向相匹配的第二目标三轴陀螺仪数据。然后,根据第二目标三轴陀螺仪数据的采集时间,可以在第一三轴陀螺仪数据集合中确定与每个所述第二目标三轴陀螺仪数据的采集时间相匹配的第一目标三轴陀螺仪数据,获得n组第一目标三轴陀螺仪数据和第二目标三轴陀螺仪数据。
[0144]
需要指出的是,本技术实施例提供的筛选规则中可以同时包括基于“模长”的筛选规则和基于“参考方向”的筛选规则。即可以基于“模长”完成第一轮数据筛选后,然后在第一轮数据的基础上,基于“模长”进行第二轮数据的筛选。当然,筛选规则中也可以仅包括基于“模长”的筛选规则或基于“参考方向”的筛选规则,即仅基于“模长”进行数据的筛选,或仅基于“参考方向”进行数据的筛选,本技术实施例对此不作具体限制。
[0145]
在一种可能的实现方式中,在“根据第一目标三轴陀螺仪数据的采集时间,在第二三轴陀螺仪数据集合中,确定与第一目标三轴陀螺仪数据的采集时间相匹配的第二目标三轴陀螺仪数据”的过程中,若第二三轴陀螺仪数据集合中不存在与第一目标三轴陀螺仪数据的采集时间相匹配的第二目标三轴陀螺仪数据,则根据第二三轴陀螺仪数据集合中的第二三轴陀螺仪数据进行插值计算,获得与第一目标三轴陀螺仪数据的采集时间相匹配的第二目标三轴陀螺仪数据。例如,第一目标三轴陀螺仪数据的采集时间为t1,在第二三轴陀螺仪数据集合中,不存在采集时间为t1的第二三轴陀螺仪数据,则可以根据第二三轴陀螺仪数据集合中的其它第二三轴陀螺仪数据进行插值计算,获得采集时间t1对应的第二三轴陀螺仪数据。
[0146]
基于同样的原理,在“根据第二目标三轴陀螺仪数据的采集时间,在第一三轴陀螺仪数据集合中,确定与第二目标三轴陀螺仪数据的采集时间相匹配的第一目标三轴陀螺仪数据”的过程中,若第一三轴陀螺仪数据集合中,不存在与第二目标三轴陀螺仪数据的采集时间相匹配的第一目标三轴陀螺仪数据,则根据第一三轴陀螺仪数据集合中第一三轴陀螺
仪数据进行插值计算,获得与第二目标三轴陀螺仪数据的采集时间相匹配的第一目标三轴陀螺仪数据。
[0147]
也就是说,当不存在与第一目标三轴陀螺仪数据的采集时间相匹配的第二目标三轴陀螺仪数据,或者不存在与第二目标三轴陀螺仪数据的采集时间相匹配的第一目标三轴陀螺仪数据时,通过插值计算的方式,进行数据补充,以免由于部分数据缺失,而无法获得最终结算结果。
[0148]
在本技术实施例中,拍摄设备包括第一惯性测量单元和第二惯性测量单元,分别采集第一惯性测量单元的第一三轴陀螺仪数据和第二惯性测量单元的第二三轴陀螺仪数据,基于第一三轴陀螺仪数据和第二三轴陀螺仪数据可以对第一旋转量(第一惯性测量单元和第二惯性测量单元之间的相对旋转量)进行简单、快速的标定。由于对第一旋转量进行了标定,因此,后续步骤中在对图像或视频进行防抖处理时,可以考虑第一旋转量对防抖效果的影响,即结合第一旋转量进行防抖处理,进而可以提高防抖效果。避免由于拍摄设备长时间使用后,第一惯性测量单元和第二惯性测量单元之发生相对旋转,导致防抖效果较差的问题。
[0149]
基于上述标定方法,本技术实施例还提供了一种图像处理方法,用于对拍摄图像的防抖处理。
[0150]
参见图3,为本技术实施例提供的一种图像处理方法的流程示意图。如图3所示,其主要包括以下步骤。
[0151]
步骤s301:计算第一旋转量r
imu1_imu2

[0152]
具体地,第一旋转量r
imu1_imu2
的计算方法可以参见上述实施例的描述,为了表述简洁,在此不再赘述。
[0153]
在一种可能的实现方式中,若第一imu和第二imu的相对运动较大,为了提高防抖效果,还可以根据时间实时动态优化第一旋转量r
imu1_imu2
。具体地,根据第一三轴陀螺仪数据和第二三轴陀螺仪数据的采集时间,将第一三轴陀螺仪数据集合中的第一三轴陀螺仪数据和第二三轴陀螺仪数据集合中的第二三轴陀螺仪数据划分为m个时间段,m≥2;采用上述方法分别计算至少一个时间段内第一旋转量r
imu1_imu2
。优选地,可以计算每一个时间段内第一旋转量r
imu1_imu2
。例如,1~5秒为第一时间段,6~10秒为第二时间段,11~15为第三时间段,以此类推。对于每个时间段分别采用上述方法计算r
imu1_imu2
,获得每个时间段内的r
imu1_imu2
。也就是说,在本技术实施例中,根据时间实时动态优化第一旋转量,进一步提高防抖效果。尤其是,在拍摄时间较长的应用场景中,在拍摄过程中,第一旋转量可能会发生变化,因此,通过动态优化第一旋转量,可以保证在整个较长时间的拍摄过程中,具有较优的防抖效果。
[0154]
另外,在一些应用场景中,可能会存在某一个或某几个时间段内的r
imu1_imu2
解算失败。例如,若某一时间段内采集的三轴陀螺仪数据量较少,则无法解算获得r
imu1_imu2
;或者,若某一时间段内采集的三轴陀螺仪数据的模长较小,则无需进行r
imu1_imu2
的优化等。针对该情况,若某一时间段无法根据上述方法计算获得r
imu1_imu2
,即解算失败,则可以根据该时间段相邻的r
imu1_imu2
进行插值计算,获得该时间段内的r
imu1_imu2
。需要指出的是,相邻时间段使用的r
imu1_imu2
需要保证是平滑的,否则会影响防抖效果。也就是说,当某一时间段内无法获得第一旋转量时,通过插值计算的方式,进行数据补充,以免由于部分数据缺失,而影响防
抖处理。
[0155]
步骤s302:根据第一imu、第一旋转量r
imu1_imu2
以及第三旋转量r
imu2_cam2
估算第一镜头的运动旋转量和第二镜头的运动旋转量;或者,根据第二imu、第一旋转量r
imu1_imu2
以及第二旋转量r
imu1_cam1
估算所述第一镜头的运动旋转量和所述第二镜头的运动旋转量。
[0156]
具体实现中,可以基于第一imu或第二imu进行运动估计,运动估计采用的具体算法可以包括互补滤波、扩展卡尔曼滤波器以及madgwick算法等,本技术实施例对此不作具体限制。
[0157]
其中,若基于第一imu进行运动估计,则步骤s302具体包括:根据第一imu估算第一镜头的运动旋转量;根据第一旋转量r
imu1_imu2
以及第三旋转量r
imu2_cam2
计算第二境头和第一imu之间的相对旋转量r
imu1_cam2
=r
imu1_imu2
*r
imu2_cam2
;根据第一镜头的运动旋转量以及第二境头和第一imu之间的相对旋转量r
imu1_cam2
估算第二镜头的运动旋转量。
[0158]
若基于第二imu进行运动估计,则步骤s302具体包括:根据第二imu估算第二镜头的运动旋转量;根据第一旋转量r
imu1_imu2
以及第二旋转量r
imu1_cam1
计算第一境头和第二imu的相对旋转量r
imu2_cam1
=r
imu1_imu2t
*r
imu2_cam2
;根据第二镜头的运动旋转量以及第一境头和第二imu的相对旋转量r
imu2_cam1
估算第一镜头的运动旋转量。
[0159]
本技术实施例,在对图像或视频进行防抖处理时,可以基于任一个惯性测量单元(第一惯性测量单元或第二惯性测量单元)结合第一惯性测量单元和第二惯性测量单元之间的标定结果,估算第一镜头和第二镜头的运动旋转量,提高防抖效果。
[0160]
具体地,若划分为多个时间段,则在任一时间段内,根据第一imu、第一旋转量r
imu1_imu2
以及第三旋转量r
imu2_cam2
估算第一镜头的运动旋转量和第二镜头的运动旋转量;或者,根据第二imu、第一旋转量r
imu1_imu2
以及第二旋转量r
imu1_cam1
估算所述第一镜头的运动旋转量和所述第二镜头的运动旋转量。
[0161]
步骤s303:分别对第一镜头的运动旋转量和第二镜头的运动旋转量进行平滑处理,获得第一镜头的平滑运动旋转量和第二镜头的平滑运动旋转量。
[0162]
具体地,在获得第一镜头的运动旋转量和第二镜头的运动旋转量之后,为了提高防抖效果,分别对第一镜头的运动旋转量和第二镜头的运动旋转量进行平滑处理。
[0163]
步骤s304:根据第一镜头的平滑运动旋转量,对第一镜头采集的第一视频帧进行旋转和渲染,根据第二镜头的平滑运动旋转量,对第二镜头采集的第二视频帧进行旋转和渲染。
[0164]
具体实现中,还可能包括对第一视频帧和第二视频帧进行鱼眼畸变校正、果冻消除等处理,本技术实施例对此不作具体限制。
[0165]
在本技术实施例中,可以在拍摄设备使用的过程中,对第一旋转量进行标定,进而在对图像或视频进行防抖处理时,考虑第一旋转量对防抖效果的影响,结合第一旋转量进行图像或视频的防抖处理,提高防抖效果。
[0166]
与上述实施例相对应,本技术实施例还提供了一种拍摄设备标定装置。
[0167]
参见图4,为本技术实施例提供的一种拍摄设备标定装置的结构框图。该拍摄设备标定装置可应用于图1的拍摄设备,如图4所示,其主要包括以下模块。
[0168]
陀螺仪数据采集模块401,用于采集第一imu的第一三轴陀螺仪数据和第二imu的第二三轴陀螺仪数据,获得第一三轴陀螺仪数据集合和第二三轴陀螺仪数据集合;
[0169]
相对旋转量计算模块402,用于根据n组第一三轴陀螺仪数据和第二三轴陀螺仪数据,计算第一旋转量r
imu1_imu2
,n≥3,其中,同一组第一三轴陀螺仪数据和第二三轴陀螺仪数据对应的采集时间相同。
[0170]
该实施例的具体内容可以参见上述方法实施例的描述,为了表述简洁,在此不再赘述。
[0171]
与上述实施例相对应,本技术实施例还提供了一种图像处理装置。
[0172]
参见图5,为本技术实施例提供的一种图像处理装置的结构框图。该图像处理装置可应用于图1的拍摄设备,如图5所示,其主要包括以下模块。
[0173]
图4所示的拍摄设备标定装置501;
[0174]
运动估算模块502,用于根据第一imu、第一旋转量r
imu1_imu2
以及第三旋转量r
imu2_cam2
估算第一镜头的运动旋转量和第二镜头的运动旋转量;或者,根据第二imu、第一旋转量r
imu1_imu2
以及第二旋转量r
imu1_cam1
估算第一镜头的运动旋转量和第二镜头的运动旋转量;
[0175]
平滑模块503,用于分别对第一镜头的运动旋转量和第二镜头的运动旋转量进行平滑处理,获得第一镜头的平滑运动旋转量和第二镜头的平滑运动旋转量;
[0176]
渲染模块504,用于根据第一镜头的平滑运动旋转量,对第一镜头采集的第一视频帧进行旋转和渲染,根据第二镜头的平滑运动旋转量,对第二镜头采集的第二视频帧进行旋转和渲染。
[0177]
该实施例的具体内容可以参见上述方法实施例的描述,为了表述简洁,在此不再赘述。
[0178]
与上述实施例相对应,本技术实施例还提供了一种电子设备。
[0179]
参见图6,为本技术实施例提供的一种电子设备的结构框图。如图6所示,该电子设备600包括第一图像采集模块604,该第一图像采集模块604包括第一镜头和第一惯性测量单元;第二图像采集模块605,该第二图像采集模块605包括第二镜头和第二惯性测量单元,其中,第图像采集模块604和第二图像采集模块605的位置关系可以参见图1所示实施例的描述,本技术实施例在此不再赘述。
[0180]
另外,电子设备600还包括处理器601、存储器602及通信单元603。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明实施例的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0181]
其中,所述通信单元603,用于建立通信信道,从而使所述存储设备可以与其它设备进行通信。接收其他设备发是的用户数据或者向其他设备发送用户数据。
[0182]
所述处理器601,为存储设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器601可以仅包括中央处理器(central processing unit,cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
[0183]
所述存储器602,用于存储处理器601的执行指令,存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0184]
当存储器602中的执行指令由处理器601执行时,使得电子设备600能够执行上述方法实施例中的部分或全部步骤。
[0185]
与上述实施例相对应,本技术实施例还提供了一种拍摄设备。
[0186]
参见图7,为本技术实施例提供的一种拍摄设备的结构框图。如图7所示,该拍摄设备700包括第一图像采集模块704,该第一图像采集模块704包括第一镜头和第一惯性测量单元;第二图像采集模块705,该第二图像采集模块705包括第二镜头和第二惯性测量单元。在一种可能的实现方式中,该第一镜头为上鱼眼镜头,第二镜头为下鱼眼镜头。即该拍摄设备700为上下鱼眼拍摄设备。其中,第图像采集模块704和第二图像采集模块705的位置关系可以参见图1所示实施例的描述,本技术实施例在此不再赘述。
[0187]
另外,拍摄设备700还包括处理器701、存储器702及通信单元703。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明实施例的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0188]
其中,所述通信单元703,用于建立通信信道,从而使所述存储设备可以与其它设备进行通信。接收其他设备发是的用户数据或者向其他设备发送用户数据。
[0189]
所述处理器701,为存储设备的控制中心,利用各种接口和线路连接整个拍摄设备的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行拍摄设备的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器701可以仅包括中央处理器(central processing unit,cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
[0190]
所述存储器702,用于存储处理器701的执行指令,存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0191]
当存储器702中的执行指令由处理器701执行时,使得拍摄设备700能够执行上述方法实施例中的部分或全部步骤。
[0192]
具体实现中,本技术还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本技术提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
[0193]
具体实现中,本技术实施例还提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行上述方法实施例中的部分或全部步骤。
[0194]
本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示单独存在a、同时存在a和b、单独存在b的情况。其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
[0195]
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0196]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0197]
在本发明所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0198]
以上所述,仅为本发明的具体实施方式,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1