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

一种获取径向畸变参数值的方法、装置以及移动终端与流程

2022-03-16 12:19:28 来源:中国专利 TAG:


1.本技术涉及镜头畸变校正领域,具体而言本技术实施例涉及一种获取径向畸变参数值的方法、装置以及移动终端。


背景技术:

2.镜头式光学传感器时常出现图像畸变(image distortion)的问题。例如,对于体积小、焦距短、结构简单的屏下光学模组来说,径向畸变(radial distortion)的问题尤其突出。
3.目前通常使用“张正友标定法”(“张氏标定法”、“zhang's method”)对镜头式光学模组进行畸变标定和校正。这种方法通过从不同角度和距离对同一棋盘格标定板采集多张图像,通过多张图像计算镜头模组的径向畸变参数值。然而这种算法对采集场景的要求比较复杂,对图像质量和棋盘格标定板的定位精度也有较高要求,因而限制了屏下镜头式模组在模组质检、mmi(整机测试)等生产环节的应用。
4.因此如何降低获取径向畸变参数值的复杂性成了亟待解决的技术问题。


技术实现要素:

5.本技术实施例的目的在于提供一种获取径向畸变参数值的方法、装置以及移动终端,本技术的一些实施例只需要在菲林膜(film)、橡胶头或显示屏幕等的辅助下,采集一张棋盘格标定图像(即一张原始棋盘格图像)就可完成镜头模组的径向畸变标定获取径向畸变参数值,同时由于本技术的一些实施例可以选择部分角点来得到径向畸变参数值因此具有较高的鲁棒性(robustness),即使标定图像(受装置污损等问题影响)局部残缺不清晰,仍然能够获得较准确的畸变参数值。
6.第一方面,本技术实施例提供一种获取径向畸变参数值的方法,所述方法包括:获取一张原始棋盘格图像,其中,所述原始棋盘格图像是通过镜头对棋盘格图案进行拍摄得到的;提取所述原始棋盘格图像上的角点,并获取以光心作为坐标原点时至少部分角点的目标棋盘格坐标值;通过所述目标棋盘格坐标值得到所述镜头的径向畸变参数值。
7.本技术的一些实施例通过确定一张原始棋盘格图像上各角点的校正后坐标值(即与光心对准后各角点的目标棋盘格坐标值)来得到镜头的径向畸变参数值,这与相关技术必须从多角度多位置拍摄多幅棋盘格图像以及对拍摄场景要求非常复杂的技术方案相比,明显降低镜头模组的径向畸变标定过程的复杂性,可以理解的是正是由于本技术示例的技术方案实现复杂度明显降低,因此提升了方案的应用场景(例如可以应用在对屏下镜头模组性能评估过程)。
8.在一些实施例中,所述提取所述原始棋盘格图像上的角点,包括:根据角点提取核从所述原始棋盘格图像上提取多个极大值角点和多个极小值角点,其中,所述角点提取核用于表征所述棋盘格图案上角点邻域内像素点的亮度分布规律;所述获取以光心作为坐标原点时至少部分角点的目标棋盘格坐标值,包括:获取以光心作为坐标原点时,至少部分极
大值角点和至少部分极小值角点的目标棋盘格坐标值。
9.本技术的一些实施例通过角点的分布规律构造的角点提取核来从原始棋盘格图像上提取极大值角点和极小值角点这两类角点,提升了角点提取的准确度和速度并保证本技术实施例后续算法的顺利进行。
10.在一些实施例中,所述获取以光心作为坐标原点时至少部分极大值角点和至少部分极小值角点的目标棋盘格坐标值,包括:根据相邻的任一极大值角点和任一极小值角点获得一条候选线段,并将所有不同候选线段划分成多组线段序列,其中,一组线段序列包括的所有不同候选线段之间经过首尾相连可形成一条长线段;针对至少部分线段序列,根据各线段序列中候选线段的方向确定极大值角点和极小值角点的初始棋盘格坐标值,得到目标极大值角点的初始棋盘格坐标值和目标极小值角点的初始棋盘格坐标值,其中,所述初始棋盘格坐标值是在初始棋盘格坐标系下的坐标值;将初始棋盘格坐标系的坐标原点与所述光心对准后,根据所述目标极大值角点的初始棋盘格坐标值得到所述目标极大值角点的目标棋盘格坐标,并根据所述目标极小值角点的初始棋盘格坐标值得到所述目标极小值角点的目标棋盘格坐标值。
11.本技术的一些实施例通过从原始棋盘格图像上提取棋盘格的各边(即候选线段)并连接各边得到各行和各列(即各行或各列分别对应各组线段序列)的方式,得到各角点的目标棋盘格坐标值,一方面,由于在这个过程应用了棋盘格分布规律(即相邻的极大值角点和极小值角点构成棋盘格上一个格子的一条边即组成候选线段)和径向畸变的特征(确定各行各列时需要结合这个特征)因此获取的候选线段和各组线段序列与被拍摄的棋盘格的图案分布规律更接近,最终提升得到的目标棋盘格坐标值的准确性。另一方面,由于本技术的一些实施例是根据得到部分线段序列(即棋盘格的部分行或列)来计算目标棋盘格坐标,因此技术方案的通用性更强(例如,可以应用于被拍摄的棋盘格有部分损坏的场景中)。
12.在一些实施例中,所述通过拟合的多项式和所述目标棋盘格坐标值得到所述镜头的径向畸变参数值,包括:根据所述目标棋盘格坐标值确定所述目标极大值角点或者所述目标极小值角点的像高,并根据所述像高进行多项式拟合得到所述径向畸变参数值。
13.本技术的一些实施例通过多项式拟合的方式得到径向畸变校正公式的畸变参数值,算法更简单,计算速度更快,提升了本技术实施例的应用场景。
14.在本技术的一些实施例中,所述根据角点提取核从所述原始棋盘格图像上提取多个极大值角点和多个极小值角点,包括:将所述角点提取核与所述原始棋盘格图像对应的矩阵进行卷积操作,得到多个局部极大值和局部极小值;在所述原始棋盘格图像上,根据各所述局部极大值所在的像素位置得到多个极大值像素位置,并根据所述局部极小值所在的像素位置得到多个极小值像素位置;将所述原始棋盘格图像上与所述多个极大值像素位置分别对应的像素点确认为所述多个极大值角点,并将所述原始棋盘格图像与所述多个极小值像素位置分别对应的像素点确认为所述多个极小值角点。
15.本技术的一些实施例通过角点提取核与原始棋盘格图像对应的数据进行卷积操作,可以提取出与角点提取核亮度分布规律相同的极大值角点并提取到与角点提取核亮度分布规律相反的极小值角点,提升角点提取的速度和准确度。
16.在本技术的一些实施例中,所述角点提取核对应的公式如下:
[0017][0018]
其中,x0=x cosθ-y sinθ,y0=
x sinθ y cosθ,a表征留空宽度值,n表征所述原始棋盘格图像上的一个方格边长所占据的像素个数,(x0,y0)是坐标(x,y)顺时针旋转θ后得到的坐标。
[0019]
本技术的一些实施例通过构建的包括由留空宽度值限定的过渡区域且左上和右下为黑色而左下和右上为白色像素值的角点提取核,或者通过构建的包括过渡区域且左上和右下为白色而左下和右上为黑色像素值的角点提取核,从原始棋盘格图像上提取各极大值角点和各极小值角点,黑白之间的过渡区域使得从原始棋盘格图像对应的矩阵上提取各极大值角点和各极小值角点的时候有一个偏差,这样可以提升提取的角点的准确性。
[0020]
在本技术的一些实施例中,在所述根据相邻的任一极大值角点和任一极小值角点得到一条候选线段之前,所述方法还包括:从所述原始棋盘格图像获取所述多个极大值角点和所述多个极小值角点的像素坐标值;根据所述像素坐标值确定各极大值角点和各极小值角点之间的像素距离;根据所述像素距离为每个极大值角点选择一个或多个候选的相邻极小值角点作为所述每个极大值角点的候选邻居,并根据所述像素距离为每个极小值角点选择一个或多个候选的相邻极大值角点作为所述每个极小值角点的候选邻居;将确认为互为候选邻居的所述任一极大值角点和所述任一极小值角点记录为所述候选线段。
[0021]
本技术的一些实施例首先通过像素距离来确定与各极大值角点相邻的极小值角点,并为各极小值角点确认与其相邻的极大值角点,再将确认为互为相邻的两个角点作为组成候选线段的两个角点,这样的处理方法节省了计算量有效提升了获取相邻角点的处理速度。
[0022]
在本技术的一些实施例中,所述将所有不同候选线段划分成多组线段序列,包括:根据损失函数确认将多条不同候选线段划分在一组线段序列中,其中,所述损失函数用于确认各组线段序列包括的所有候选线段属于棋盘格里的同一行或同一列。
[0023]
本技术的一些实施例通过构造的损失函数来确认可以将原始棋盘格图像上多条候选线段首尾连接成一条更长线段,而由于原始棋盘格图像可能属于存在径向畸变的图像,因此通过引入损失函数可以在各角点畸变移位时也可以顺利找出被拍摄棋盘格上的各行各列。
[0024]
在本技术的一些实施例中,所述候选线段包括第一候选线段,其中,所述将所有不同候选线段划分成多组线段序列,包括:在与所述第一候选线段相邻的候选线段中,选择与所述第一候选线段的方向夹角最小的第二候选线段,组成待扩充的线段序列s=(第一候选线段,第二候选线段);重复执行如下过程m次,直至第m 1次扩充后的得到的各损失函数的值均都大于序列损失阈值,则结束扩充并将第m次扩充得到的多条候选线路作为一组线段序列:遍历与所述待扩充的线段序列一端相邻的所有l条候选线段,并计算将所述l条候选线段中每条候选线段添加进所述待扩充的线段序列s后得到的l个候选扩展序列s'的损失函数值,得到l组损失函数的值,其中,一组损失函数的值与一个候选扩展序列对应,每组所
述损失函数的值包括多个损失值;若确认目标组的损失函数值的最大损失值小于设定的损失阈值时,则将与所述目标组的损失函数值对应的候选扩展序列作为下一次循环的待扩展的线段序列;其中,m为大于1的整数,l为大于或等于1的整数。
[0025]
本技术的一些实施例通过遍历各条候选线段并确认待扩展的线段序列的损失函数值的方式来最终确定各组线段序列包括的各条候选线段,可以保证得到的各组线段尽可能属于棋盘格图案上的一行或一列。
[0026]
在本技术的一些实施例中,在所述将第m次扩充得到的多条候选线路作为一组线段序列之前,所述方法还包括:确认所述一组线段序列的长度大于设定阈值。
[0027]
本技术的一些实施例通过确认各组线段序列的长度大于设定阈值,可以保证得到各组线段序列与原始棋盘格图像上各行或各列的长度尽可能相等或者使得长度扩展后的多条候选线段组成的线段序列尽可能的长便于后续得到畸变参数值,即剔除线段序列太短而保留较长的线段序列,以提升得到畸变参数值的准确性。
[0028]
在本技术的一些实施例中,所述损失函数通过确认候选扩展序列中相连的候选线段之间的曲率变化的一致性特征来得到各组线段序列。
[0029]
本技术的一些实施例通过确定加入本次扩展的候选线段后是否破坏了待扩展的线段序列的曲率一致性,可以保证提取的各组线段序列是满足径向畸变规律的各行或各列。
[0030]
在本技术的一些实施例中,在所述将所有不同候选线段划分成多组线段序列之后,所述方法包括:选择相互连通且包含的极大值角点数目和极小值角点数目最多的区域中的线段序列作为所述至少部分线段序列。
[0031]
本技术的一些实施例对于被拍摄的棋盘格图像存在破损或者拍摄得到的原始棋盘格图像上存在破损区域时,依然可以获取径向畸变的畸变系数,提升了技术方案的应用场景。
[0032]
在本技术的一些实施例中,所述根据所述目标极大值角点的初始棋盘格坐标值得到所述目标极大值角点的目标棋盘格坐标并根据所述目标极小值角点的初始棋盘格坐标值得到所述目标极小值角点的目标棋盘格坐标值,包括:根据修正量对任一目标极大值角点或者任一目标极小值角点的初始棋盘格坐标进行平移修正,得到所述目标棋盘格坐标。
[0033]
本技术的一些实施例提供了一种根据修正量校正相关极大值角点和极小值角点的初始棋盘格坐标的方法。
[0034]
在本技术的一些实施例中,在所述根据修正量对任一目标极大值角点或者任一目标极小值角点的初始棋盘格坐标进行平移修正之前,所述方法包括:根据原始棋盘格图像计算所有目标极大值角点与光心的距离,并计算所有目标极小值角点与所述光心的距离,得到一个距离序列;将所述距离序列按照大小排序得到一个有序距离序列(z0、z1、z2、
……
zi,z
i 1
……
);将所述有序距离序列中任一两个相邻的距离对应的每3个角点信息联立计算得到两组候选修正量,其中,一组候选修正量表征为(u'i,v'i),另一组候选修正量表征为(u”i
,v”i
),所述角点信息包括所述目标极大值角点的信息和所述目标极小值角点的信息;根据多组候选修正量得到所述修正量(uc,vc)。
[0035]
本技术的一些实施例通过联立三个角点信息、按照大小排序的距离序列来计算修正量,提升了修正量计算的准确性。
[0036]
在本技术的一些实施例中,在所述根据修正量对任一目标极大值角点或者任一目标极小值角点的初始棋盘格坐标进行平移修正之前,所述方法还包括:根据原始棋盘格图像计算所有目标极大值角点与光心的距离,并计算所有目标极小值角点与所述光心的距离,得到一个距离序列;将所述距离序列按照大小排序得到一个有序距离序列(z0、z1、z2、
……
zi,z
i 1
……
);依次获取所述有序距离序列中与各个距离分别对应的各像素点的初始棋盘格纵坐标得到纵坐标序列(v0、v1、v2、
……
),并依次获取所述有序距离序列中与各距离分别对应的各像素点的初始棋盘格横坐标得到横坐标序列(u0、u1、u2、
……
);根据所述有序距离序列中任一相邻两个距离值的比值、所述纵坐标序列和所述横坐标序列中的坐标值计算所述修正量。
[0037]
本技术的一些实施例通过有序距离序列和初始棋盘格坐标确定修正量,使得原始棋盘格图像上尽可能多的角点被修正,以提升获取的畸变参数值的准确性。
[0038]
在本技术的一些实施例中,所述根据所述有序距离序列中任一相邻两个距离值的比值、所述纵坐标序列和所述横坐标序列中的坐标值计算所述修正量,包括:计算所述有序距离序列中第i距离zi和与所述第i距离zi相邻的第i 1距离z
i 1
的比值的平方,得到第一比值,并计算所述第i 1距离z
i 1
和与所述第i 1距离z
i 1
相邻的第i 2距离z
i 2
的比值的平方,得到第二比值;根据所述第一比值、与所述第i距离和所述第i 1距离对应的初始棋盘格坐标构造第一圆方程,并根据所述第二比值、与所述第i 1距离和所述第i 2距离对应的初始棋盘格坐标构造第二圆方程;通过联立所述第一圆方程和所述第二圆方程,得到两个交点,其中,所述两个交点对应两组候选修正量,且一组候选修正量表征为(u'i,v'i),另一组候选修正量表征为(u”i
,v”i
);重复上述过程,得到多组候选修正量,并根据所述多组候选修正量得到所述修正量。
[0039]
本技术的一些实施例通过构造两个圆的方程来联立三个角点的信息计算最终的修正量,提升了最终得到的校正参数的准确性。
[0040]
在一些本技术的一些实施例中,所述根据所述多组候选修正量得到所述修正量,包括:从所有候选修正量中选择中位数作为所述修正量。
[0041]
本技术的一些实施例通过从多组候选修正量中选择中位数作为最终修正量,提升了畸变参数值的准确性。
[0042]
在一些实施例中,所述根据所述有序距离序列中任一相邻两个距离值的比值、所述纵坐标序列和所述横坐标序列中的坐标值计算所述修正量,包括:根据所述有序序列中任一相邻两个距离值的比值、所述纵坐标序列和所述横坐标序列中的坐标值获取多组计算结果,其中,一组计算结果与任一相邻的两个距离的比值对应;遍历每一组计算结果并通过各组计算结果计算得到多组候选修正量,其中,一组候选修正量表征为(u'i,v'i),另一组候选修正量表征为(u”i
,v”i
);确认将所有组候选修正量u'i和u”i
的中位数和所有候选修正量v'i和v”i
的中位数作为所述修正量,其中,所述修正量为目标棋盘格的坐标原点。
[0043]
在一些实施例中,所述根据所述像高进行多项式拟合得到所述径向畸变参数值,包括:
[0044]
根据如下拟合多项式得到所述径向畸变参数值:
[0045]
p(i2)=k
′0 k
′1i2 k
′2(i2)2 k
′3(i2)3[0046]
其中,p(i2)表征与任一目标极大值角点或任一目标极小值角点对应的像素点与
光心的真实距离和畸变距离的比值,所述真实距离为所述任一目标极大值角点或任一目标极小值角点对应的像素点在目标棋盘格坐标系下的像高,所述畸变距离为所述任一目标极大值角点或任一目标极小值角点对应的像素点在像素坐标系下的像素坐标值的像高,k
′0、k
′1、k
′2和k
′3通过拟合方式直接得到,所述径向畸变参数值是通过k
′0、k
′1、k
′2和k
′3的值确定的。
[0047]
本技术的一些实施例通过多项式拟合的方式确定畸变系数的值。本技术的一些实施例通过像高来得到拟合的多项式的左边的多个函数值,使得计算量更小计算速度更快。
[0048]
在本技术的一些实施例中,所述镜头为待检测镜头,所述方法还包括:根据所述径向畸变参数值评估所述待检测镜头的性能。
[0049]
本技术的一些实施例可以根据得到的畸变参数值评估拍摄棋盘格的镜头的性能,提升了对镜头进行质检和测量的准确性和便捷性。
[0050]
在本技术的一些实施例中,所述镜头为待校正镜头,所述方法还包括:存储所述径向畸变参数值;获取由所述镜头拍摄一张原始图像;根据所述径向畸变参数值对所述原始图像进行校正,获得校正后图像;提供所述校正后图像。
[0051]
本技术的一些实施例可以根据得到畸变参数值对由同一镜头再次拍摄的待显示图像进行校正,并将校正后的图像进行显示,提升了图像显示的效果。
[0052]
在本技术的一些实施例中,所述镜头为屏下模组镜头。
[0053]
通过本技术的实施例至少可以降低对屏下模组镜头的性能测试的速度和便捷性。
[0054]
第二方面,本技术的一些实施例提供一种获取径向畸变参数值的装置,所述装置包括:原始棋盘格图像获取模块,被配置为获取一张原始棋盘格图像,其中,所述原始棋盘格图像是通过镜头对棋盘格图案进行拍摄得到的;目标棋盘格坐标值获取模块,被配置为提取所述原始棋盘格图像上的角点,并获取以光心作为坐标原点时至少部分所述角点的目标棋盘格坐标值;径向畸变参数值获取模板,被配置为通过所述目标棋盘格坐标值得到所述镜头的径向畸变参数值。
[0055]
第三方面,本技术的一些实施例提供一种移动终端,所述移动终端包括:图像拍摄单元,被配置为采集一张原始棋盘格图像;存储器,被配置为存储计算机程序;处理器,被配置为根据从所述图像拍摄单元读取所述原始棋盘格图像并运行所述计算机程序得到径向畸变的畸变参数值,其中,所述处理器执行所述程序时可实现第一方面所述的方法。
[0056]
第四方面,本技术的一些实施例提供一种计算机存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任意实施例所述的方法。
[0057]
第五方面,本技术的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任一实施例所述的方法。
[0058]
第六方面,本技术的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的方法。
附图说明
[0059]
为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使
用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0060]
图1为本技术实施例提供的获取径向畸变参数值的系统的组成示意图;
[0061]
图2为本技术实施例提供的被拍摄的棋盘格图案示意图;
[0062]
图3为本技术实施例提供的第一种拍摄原始棋盘格图像的过程示意图;
[0063]
图4为本技术实施例提供的第二种拍摄原始棋盘格图像的过程示意图;
[0064]
图5为本技术实施例提供的第三种拍摄原始棋盘格图像的过程示意图;
[0065]
图6为本技术实施例提供的获取径向畸变参数值的方法的流程图之一;
[0066]
图7为本技术实施例提供的获取径向畸变参数值的方法的流程图之二;
[0067]
图8为本技术实施例提供的为提取到各极大值角点和各极小值角点选择组成候选线段的角点的示意图;
[0068]
图9为本技术实施例提供的一种角点提取核对应的图像;
[0069]
图10为本技术实施例提供的用于表征为提取到的各极大值角点和各极小值角点标注像素坐标值的图像;
[0070]
图11为本技术实施例提供的将相邻极大值角点和相邻极小值角点连接成候选线段的示意图;
[0071]
图12为本技术实施例提供的扩展各候选线段得到的各组线段序列的连线结果示意图;
[0072]
图13为本技术实施例提供的标注了各极大值角点和各极小值角点的初始棋盘格坐标值的示意图;
[0073]
图14为本技术实施例提供的标注了各极大值角点和各极小值角点的目标棋盘格坐标值的示意图;
[0074]
图15为本技术实施例提供的获取径向畸变参数值的装置的组成框图之一;
[0075]
图16为本技术实施例提供的获取径向畸变参数值的装置的组成框图之二;
[0076]
图17为本技术实施例提供的移动终端的组成框图;
[0077]
图18为本技术实施例提供的电子设备的组成示意图。
具体实施方式
[0078]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
[0079]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0080]
与相关技术必须要预先确定棋盘网格的形状,如果因为残缺污损实际拍到的网格形状跟事先预计的不同,就无法进行角点定位和镜头畸变校正的技术方案相比,本技术的一些实施例不假设棋盘格的形状,而是通过定义的角点提取核分别提取各角点,并获取各角点在光心为坐标原点时的棋盘格坐标,最后根据这些坐标通过拟合多项式的方式得到径向畸变参数值。在本技术的一些实施例中,原始棋盘格图像的画面中心部分和周边部分都有数据点,即使数据点比较少采用本技术一些实施例获取的径向畸变参数值的结果准确性
也较高。例如,在本技术的一些实施例中获取径向畸变参数值的方法包括:图像采集、角点提取、建立棋盘格坐标以及多项式拟合。可以理解的是,如果提取角点后得到的棋盘分布越均匀则提示角点提取的结果就越准确。需要说明的是,棋盘格由一个个方格构成,本技术实施例的角点(包括极大值角点和极小值角点)是指每个方格的四个角。
[0081]
请参看图1,图1为本技术一些实施例提供的获取径向畸变参数值的系统,该系统中包括镜头10以及服务器20。
[0082]
在本技术的一些实施例中,镜头10对棋盘格进行拍摄得到如图1所述的原始棋盘格图像110,之后可以将拍摄得到的原始棋盘格图像110向服务器20发送。相应的服务器20基于接收的原始棋盘格图像110得到镜头10的径向畸变的畸变参数值,之后再把畸变参数值反馈给镜头10或者存储在服务器20中。可以理解的是,在本技术的一些实施例中该镜头10可以集成在终端设备中。例如,镜头10为手机上的屏下镜头模组。
[0083]
镜头10拍摄的棋盘格图案如图2所示,在拍摄时,镜头10正对着如图2所示的宽高相等且密度适中的棋盘格图案(chessboard image)采集,得到原始棋盘格图像110。需要说明的是,被拍摄的棋盘格图案中各方格的宽和高相等,且棋盘格包括的格子的密度也要适中,如果密度太低(例如,整张图像只有三五个格子)则拍到的原始棋盘格图像的角点数量和分布范围不够将导致无法得到畸变参数值,而如果格子密度太高有可能超出模组的成像解析能力,不能拍摄出棋盘格图案上的各个方格,导致角点提取出现错误进而无法得到径向畸变的畸变参数值。对于本领域技术人员而言,设计方格密度分布合格的棋盘格图案并不需要付出创造性劳动。
[0084]
下面结合图3-图5示例性阐述采用镜头10拍摄到原始棋盘格图像的过程。
[0085]
如图3所示,在本技术的一些实施例中,可以将镜头10正对印刷了棋盘格图像的菲林膜(chart film)(即图1的印刷棋盘格图案的菲林膜11)进行拍摄,该印刷棋盘格图案的菲林膜11被置于镜头10和光源12之间。
[0086]
如图4所示,在本技术的一些实施例中,可以将镜头10正对显示面板13,且该显示面板的另一面放置印刷棋盘格图案的橡胶测试头14。也就是说,在图4中镜头10对显示面板13照亮的印刷棋盘格图案的橡胶测试头14进行拍摄,得到如图1所示的原始棋盘格图像110。可以理解的是,图4将印刷了棋盘格图像的橡胶测试头放置于电子设备屏幕上针对屏下光学模组的位置,使用屏幕发光作为照明光源。
[0087]
如图5所示,在本技术的一些实施例中,可以将镜头10正对显示棋盘格图案的显示面板15进行拍照,得到如图1所示的原始棋盘格图像110。也就是说,在图5中用镜头10对直接在屏幕上显示棋盘格图像进行拍照得到如图1所示的原始棋盘格图像110。
[0088]
不难理解的是,采用图3-图5的方式拍摄得到如图1所示的原始棋盘格图像110是带有径向畸变的棋盘格图像。径向畸变属于光学失真,而这一类光学失真是由镜头10的光学设计缺陷引起的(或被称为镜头畸变),主要体现在场景物理上的直线发生变形。例如,径向畸变的类型包括枕形畸变或者桶形畸变等。可以理解的是,径向畸变的校正过程就是给理想像素点位置赋予畸变后的坐标处的像素值的过程。为了实现图像校正需要预先获取相应拍摄镜头的径向畸变的畸变参数值。
[0089]
需要说明的是,在图1中是通过服务器20根据拍摄的原始棋盘格图像获取径向畸变的畸变参数值,在本技术的另一些实施例中,镜头10中嵌入了微处理器,可以直接采用微
处理器根据原始棋盘格图像得到径向畸变的畸变参数值(或简称畸变参数值)。在本技术的另一些实施例中,镜头10安装在移动终端内部,且该移动终端设置有处理器,通过移动终端设置的微处理器也可以根据原始棋盘格图像得到径向畸变的畸变参数值。
[0090]
下面结合图6示例性阐述由图1的服务器20、镜头10或者由移动终端执行的获取径向畸变参数值的方法。
[0091]
如图6所示,本技术的一些实施例提供一种获取径向畸变参数值的方法,所述方法包括:s101,获取一张原始棋盘格图像,其中,所述原始棋盘格图像是通过镜头对棋盘格图案进行拍摄得到的。s102,提取所述原始棋盘格图像上的角点,并获取以光心作为坐标原点时至少部分角点的目标棋盘格坐标值。以及s103,通过所述目标棋盘格坐标值得到所述镜头的径向畸变参数值。
[0092]
下面示例性阐述s101的过程。
[0093]
在本技术的一些实施例中,由服务器20执行图6的方法,相应的s101获取原始棋盘格图像即获取由镜头10拍摄的原始棋盘格图像。例如,镜头10通过有线网络或者无线网络将其拍摄的原始棋盘格图像发送至服务器20,之后再由服务器20根据获取的原始棋盘格图像执行图6的过程,得到径向畸变的畸变参数值。
[0094]
在本技术的一些实施例中,镜头10中集成了微处理器,相应的s101获取原始棋盘格图像即由镜头中的处理器直接读取原始棋盘格图像,并对该原始棋盘格图像执行如图6所示的各步骤得到径向畸变的畸变参数值。
[0095]
在本技术的一些实施例中,由移动终端执行图6的各步骤,相应的s101可以是由移动终端的处理器通过总线从镜头10读取的原始棋盘格图像,并对该原始棋盘格图像执行如图6所示的各步骤得到径向畸变的畸变参数值。
[0096]
对于镜头10获取原始棋盘格图像的过程可以参考图3-图5的描述,为避免重复在此不做过多赘述。
[0097]
下面示例性阐述s102对应的过程。
[0098]
一般而言,图像所包含的信息量是非常巨大的,尤其是现在随着相机像分辨率越来越高,对一整幅图进行处理是越来越效率低下的。因此,通过对一副完整图像中具有某些特征信息的点或区域进行针对性的处理,就是实现图像特征的提取。图像特征一般可以分为图像边缘、轮廓、纹理、角点等。对于相机或镜头标定而言,角点意义最重大。
[0099]
为了更加快速和准确的提取角点,在本技术的一些实施例根据棋盘格上各角点邻域内像素点的灰度值(或称为亮度)分布规律构建的角点提取核从原始棋盘格图像上提取角点。也就是说,本技术一些实施例的s102涉及的提取所述原始棋盘格图像上的角点的过程示例性包括:根据构建的角点提取核从原始棋盘格图像上提取极大值角点和极小值角点。
[0100]
如图7所示,在本技术的一些实施例中,s102涉及的提取所述原始棋盘格图像上的角点的示例性实现过程包括图7的s202,图7的s202包括根据角点提取核从所述原始棋盘格图像上提取多个极大值角点和多个极小值角点,其中,所述角点提取核用于表征所述棋盘格图案上角点邻域内像素点的亮度分布规律。相应的s103包括获取以光心作为坐标原点时至少部分极大值角点和至少部分极小值角点的目标棋盘格坐标值。
[0101]
可以理解的是,二维或三维图片在拍摄单元内部(例如,镜头等)是以矩阵形式进
行存放的,即采用矩阵形式存放图像上各像素点的像素值。在本技术的一些实施例中可以通过设计的矩阵形式的角点提取核与原始棋盘格图像对应的矩阵进行卷积操作,从而得到与角点提取核分布规律相同的极大值角点和与角点提取核分布规律相反的极小值角点。
[0102]
也就是说,为了根据构建的角点提取核从原始棋盘格图像上提取各极大值角点和各极小值角点,在本技术的一些实施例中,s202涉及的根据角点提取核从所述原始棋盘格图像上提取多个极大值角点和多个极小值角点过程示例性包括:将角点提取核与原始棋盘格图像对应的矩阵进行卷积操作,得到多个局部极大值和局部极小值;在所述原始棋盘格图像上,根据各所述局部极大值所在的像素位置得到多个极大值像素位置,并根据所述局部极小值所在的像素位置得到多个极小值像素位置;将所述原始棋盘格图像上与所述多个极大值像素位置分别对应的像素点确认为所述多个极大值角点,并将所述原始棋盘格图像与所述多个极小值像素位置分别对应的像素点确认为所述多个极小值角点。
[0103]
作为本技术的一些示例,原始棋盘格图像是一副以矩阵形式存放的数字图像,数字图像是一个二维的离散信号,对该数字图像做卷积操作其实就是利用卷积核(即角点提取核)在原始棋盘格图像上滑动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对应的图像上像素的灰度值,并最终滑动完所有图像的过程。
[0104]
需要说明的是,本技术一些实施例的角点提取核与棋盘格图案上角点邻域处黑白像素点的分布规律相似,即本技术的一些实施例的角点提取核是根据被拍摄的棋盘格图案上角点邻域内黑白像素的分布规律构建的核矩阵。
[0105]
下面示例性说明由本技术一些实施例提供的包含过渡区域的角点提取核公式,在角点提取核中设置过渡区域可以提升提取的角点的准确性。
[0106]
在本技术的一些实施例中,s102涉及的角点提取核对应的公式如下:
[0107][0108]
其中,x0=x cosθ-y sinθ,y0=x sinθ y cosθ,a表征留空宽度值,n表征所述原始棋盘格图像上的一个方格边长所占据的像素个数,(x0,y0)是坐标(x,y)顺时针旋转θ后得到的坐标。可以理解的是,采用该角点提取核会将左上和右下为黑色像素区域,而左下和右上为白色像素区域的像素点提取出来作为极大值角点,相应的,将左上和右下为白色像素区域同时左下和右上为黑色像素区域的角点提取出来作为极小值角点。需要说明的是,棋盘格黑白交接处像素值变化很剧烈,所以检测核需要避开这个区域以提高稳定性,参数a(即留空宽度值)控制了核对应黑白交接处留空(取0值就是留空)的宽度,例如a的取值为1,a的单位为像素。
[0109]
上述的公式(1)设置有过渡区域即k
x,y
的值为零的区域,本技术的一些实施例通过构建的包括过渡区域(即值为0的区域),且左上和右下为黑色而左下和右上为白色像素值的角点提取核,或者通过构建的包括过渡区域(即值为0的区域),且左上和右下为白色而左下和右上为黑色像素值的角点提取核,从原始棋盘格图像上提取各极大值角点和各极小值角点,黑白之间的过渡区域使得提取各极大值角点和各极小值角点的时候有一个偏差进一
步提升提取的角点的准确性。
[0110]
需要说明的是,上述公式(1)中的k
x,y
是一个卷积核,该卷积核对应一个矩阵,且k
x,y
是矩阵中的各个元素。例如,k
0,0
表示的是矩阵最中心的元素。(x0,y0)是坐标(x,y)顺时针旋转θ后得到的坐标,可以理解的是参数a的取值越大效果越差。n就是原始棋盘格图像对应的画面里拍到的方格宽度,θ是画面里的棋盘格如果没有摆正的则需要提供一个修正的角度,n和θ这两个值可以是取的近似值。之所以说取近似值是因为在实际画面里每个方格的宽度和角度都会有差别,例如,在图像上比较宽的方格宽度占20个像素,比较窄的方格宽度占10个像素,那么n取10、取20、取15、取13、取16
……
等等都可以。上述角点提取核公式之所以除以n,是由于x0与y0的范围位于-n到 n之间,所以除以n再减1可以确保边缘处取值为0,而存在一个过渡区域,提升提取的角点的准确度。可以理解的是,角点提取核中各元素的坐标x和y被n限制住了,所以核的变长是2n 1。n是根据原始棋盘格图像拍到的棋盘格的宽度确定的,所以核的宽度大约相当于两个并列的棋盘格,图像的尺寸远大于角点提取核。
[0111]
可以理解的是,本领域技术人员可以根据上述构思设计其它相似的角点提取核的公式。
[0112]
如图7所示,s102涉及的获取以光心作为坐标原点时至少部分角点的目标棋盘格坐标值的过程示例性包括:s203,将相邻的任一极大值角点和任一极小值角点记录为一条候选线段,并将所有不同候选线段划分成多组线段序列,其中,一组线段序列包括的所有不同候选线段之间经过首尾相连可形成一条长线段;s204,针对至少部分线段序列,根据各线段序列中候选线段的方向确定极大值角点和极小值角点的初始棋盘格坐标值,得到目标极大值角点的初始棋盘格坐标值和目标极小值角点的初始棋盘格坐标值,其中,所述初始棋盘格坐标值是在初始棋盘格坐标系下的坐标值;s205,将初始棋盘格坐标系的坐标原点与所述光心对准后,根据所述目标极大值角点的初始棋盘格坐标值得到所述目标极大值角点的目标棋盘格坐标,并根据所述目标极小值角点的初始棋盘格坐标值得到所述目标极小值角点的目标棋盘格坐标值。
[0113]
下面示例性阐述图7的s203-s205的实现过程。
[0114]
为了快速找到相邻的极大值角点和极小值角点,以提取出尽可能多的棋盘格图案上的黑方格和白方格的边,在本技术的一些实施例中,图7的s203示例性包括:首先根据各极大值角点和各极小值角点之间的像素距离获取各角点的候选相邻角点,之后再确认两个角点都属于对方的候选的相邻角点,最后再将确认为互为相邻的一个极大值角点和一个极小值角点记录为一条候选线段。该过程示例性包括:从s201获取的原始棋盘格图像得到所述多个极大值角点和所述多个极小值角点的像素坐标值;根据所述像素坐标值确定各极大值角点和各极小值角点之间的像素距离;根据所述像素距离为每个极大值角点选择一个或多个候选的相邻极小值角点作为所述每个极大值角点的候选邻居,并根据所述像素距离为每个极小值角点选择一个或多个候选的相邻极大值角点作为所述每个极小值角点的候选邻居;将确认为互为候选邻居的一个极大值角点和一个极小值角点记录为一条所述候选线段。需要说明的是,像素坐标值即以原始棋盘格图像上左上角的像素点为坐标原点得到的各像素点的坐标,且像素坐标值的单位为像素。在本技术的一些实施例中,像素距离即计算两个角点的像素坐标值的平方和再开放得到的距离。
[0115]
下面结合图8示例阐述挑选各候选线段的过程。
[0116]
图8示意性展示了从原始棋盘格图像上的子区域700内提取到的多个极大值角点和极小值角点,这些极大值角点包括:第一极大值角点a1、第二极大值角点b1、第三极大值角点c1、第四极大值角点d1、第五极大值角点e以及第六极大值角点f1,这些极小值角点包括:第一极小值角点z1、第二极小值角点x1、第三极小值角点v1、第四极小值角点y1和第五极小值角点w1。显然图8中与第一极大值角点a1在原始棋盘格图像上相邻的极小值角点只有第一极小值角点z1,第一极大值角点a1与第二极小值角点x1在棋盘格上一定不相邻,第二极小值角点x1显然与第三极大值角点c1、第四极大值角点d1、第五极大值角点e1以及第六极大值角点f1四个相邻。对于计算机和程序来说,如果从原始棋盘格图像上提取到n个极大值角点和m个极小值角点时,就有n乘以m种可能的相邻关系,本技术的一些实施例为了让程序和算法快速区分这么多种可能性设计如下这个步骤的算法:首先为每个极小值角点找到最多4个最近的极大值角点作为候选邻居(即候选的相邻极大值角点),例如与第四极大值角点d1最接近的4个极小值角点是第五极小值角点w1、第二极小值角点x1、第四极小值角点y1以及第一极小值角点z1。再为每个极大值角点找到最多4个最近的极小值角点作为候选邻居,例如与第二极小值角点x1最接近的4个极大值角点是第三极大值角点c1、第四极大值角点d1、第五极大值角点e1和第六极大值角点f1,与第一极小值角点z1最接近的4个极小值角点是第一极大值角点a1、第二极大值角点b1、第三极大值角点c1以及第四极大值角点d1。最后筛选出互为候选邻居的角点,并将这些互为相邻的角点作为候选线段两端的角点。例如,第一极大值角点a1的候选邻居里有第一极小值角点z1,且第一极小值角点z1的候选邻居里也有第一极大值角点a1,那么第一极大值角点a1和第一极小值角点z1就是确认为互为相邻的角点,可以在后续步骤里用来组成序列和网格中的候选线段。再例如,虽然第一极大值角点a1的候选邻居里有第二极小值角点x1,但是第二极小值角点x1的候选邻居里没有第一极大值角点a1,则确认第二极小值x1和第一极大值角点a1在棋盘格上不属于相邻的关系,不能连接成一条候选线段。又例如,v1不是a1的候选邻居,a1也不是v1的候选邻居,所以这两个点也不存在棋盘格上的相邻关系,不能连接为一条候选线段。
[0117]
可以理解的是,在棋盘格图案上一个极大值角点与四个极小值角点相邻,本技术的一些实施例涉及的为各极大值角点选择相邻极小值角点的过程可以包括:选择与极大值角点最近的四个极小值角点作为这个极大值角点的候选邻居,同理为每个极小值角点选择与其像素坐标距离最近的四个极大值角点作为这个极小值角点的候选邻居。
[0118]
本技术的一些实施例s203根据各极大值角点和各极小值角点的像素坐标和两点之间的距离公式计算各极大值角点和极小值角点之间的像素距离(即像素坐标之间的距离)。
[0119]
需要说明的是,在本技术的实施例中除非特别说明之外,像素坐标对应的像素坐标系的原点是原始棋盘格图像的左上角(即左上角的第一个像素点的坐标为(0,0)),且像素坐标值的单位为像素。候选线段代表原图像上对应的位置很可能存在一个棋盘格方格的一条边。
[0120]
为了尽可能多的从原始棋盘格图像上提取出尽可能多的棋盘格图案的行或列,在本技术的一些实施例中,s203涉及的将所有不同候选线段划分成多组线段序列的过程示例性包括:根据损失函数确认将多条不同候选线段划分在一组线段序列中,其中,所述损失函数用于确认各组线段序列包括的所有候选线段属于棋盘格里的同一行或同一列。
[0121]
也就是说,本技术一些实施例引入损失函数用于衡量或者判断候选扩展序列里的线段是不是属于棋盘格里的同一行或列的边。例如,在本技术一些实施例中,该损失函数通过确认候选序列中相连的候选线段之间的曲率变化恒定来得到各组线段序列,损失函数值越小,表示候选序列线段越可能属于同一行或列;值越大,表示候选序列线段越不可能是同一行或列。损失函数就是针对一个候选扩展序列计算一个值,在具体计算这个值时需要依赖候选扩展序列包括的所有角点,而无论是本次长度扩展新加进去的角点(包括极大值角点或极小值角点)还是原有的角点。
[0122]
也就是说,本技术的一些实施例通过构造的损失函数来确认可以将多条候选线段首尾连接成一条更长线段,该更长线段对应原始棋盘格图像上的一行或一列或者说该长线段对应原始棋盘格图像上的一条边。
[0123]
下面以第一候选线段描述获取一组线段序列的过程。
[0124]
在本技术的一些实施例中,所述候选线段包括第一候选线段,其中,s203涉及的将所有不同候选线段划分成多组线段序列的过程示例性包括:在与所述第一候选线段相邻的候选线段中,选择与所述第一候选线段的方向夹角最小的第二候选线段,组成待扩充的线段序列s=(第一候选线段,第二候选线段);重复执行如下过程m次,直至第m 1次扩充后的得到的各损失函数值均都大于序列损失阈值,则结束扩充并将第m次扩充得到的多条候选线路作为一组线段序列:遍历与所述待扩充的线段序列一端相邻的所有l条候选线段,并计算将所述l条候选线段中每条候选线段添加进所述待扩充的线段序列s后得到的l个候选扩展序列s'的损失函数值,得到l组损失函数值,其中,一个组损失函数值与一个候选扩展序列对应,每组所述损失函数的值包括多个损失值;若确认目标组的损失函数值的最大损失值小于设定的损失阈值时,则将与所述目标组的损失函数值对应的候选扩展序列作为下一次循环的待扩展的线段序列,m为大于1的整数,l为大于或等于1的整数。
[0125]
本技术的一些实施例通过遍历各条候选线段并确认待扩展的线段序列的损失函数值的方式来最终确定各组线段序列包括的各条候选线段,可以保证将各候选线段扩充至尽可能的长且尽可能保证一组线段序列包括的各候选线段在棋盘格的一行或系列上。
[0126]
为了去除从原始棋盘格图像上提取的过短的行或列,在本技术的一些实施例中,在所述将第m次扩充得到的多条候选线路作为一组线段序列之前,所述方法还包括:确认所述一组线段序列的长度大于设定阈值。本技术的一些实施例通过确认各组线段序列的长度大于设定阈值,可以保证得到各组线段序列与原始棋盘格图像上各行或各列的长度尽可能相等或者时各组线段序列尽可能的长,而不是仅覆盖原始棋盘格图像上一行或者一列长度的一半或者更短长度。
[0127]
在本技术的一些实施例中,所述损失函数通过确认候选扩展序列中相连的候选线段之间的曲率变化的一致性特征来得到各组线段序列。
[0128]
例如,在本技术的一些实施例中,所述损失函数通过如下公式表征:
[0129][0130]
其中,pi为任一候选扩展序列依次经过的至少部分极大值角点或极小值角点坐标向量,||表示求向量的长度。
[0131]
下面结合一个具体示例阐述根据公式(2)确认各候选扩展序列是否是一条有效扩
展序列,有效扩展序列及可以作为下一次循环继续被扩展的线段序列。
[0132]
假设候选扩展序列里有4个候选线段,可以理解的是,该4条候选线段包括5个两两相邻的角点p0、
……
、p4,假设它们的像素坐标值(即在原始棋盘格图像上以左上角的像素点为原点的坐标)分别是:p0=(0,0)、p1=(0,10)、p2=(1,19)、p3=(3,28)、p4=(6,37)。
[0133]
根据公式:
[0134][0135]
显然i可以有0和1两种取值(i取2的话,p
i 3
也就是p5是不存在的,换句话说,候选扩展序列里有n个角点的话,i就能从0到n-4范围内的值)。
[0136]
当i取0时:
[0137][0138]
类似地,当i取1时:
[0139][0140]
在i的所有取值中找到最大值约为0.1104就是这个候选扩展序列的损失函数值,如果这个损失函数值很小,说明候选扩展序列包括的各条候选线段的曲率很一致,该候选扩展序列属于有效的序列,可以作为一组线段序列的一部分或者全部,如果只是一组线段序列的部分时则该有效的序列还需要进行下一次扩展过程直至找到该组线段序列包括的所有候选线段。
[0141]
而对于候选扩展序列包括的候选线段的曲率不一致的情况,例如,下面这个先向左弯后向右弯的序列:
[0142]
p0=(0,0)、p1=(1,10)、p2=(4,17)、p3=(2,25)、p4=(-1,32)
[0143]
当i取0时:
[0144][0145]
类似地,当i取1时:
[0146][0147]
最终按最大值求的的损失函数值约为1.0586,明显大于损失函数阈值0.4(假设损失阈值为0.4时),因此可以判断这不是一条有效的线段序列。
[0148]
需要说明的是,只要一个函数能用来表征候选扩展序列的曲率是否恒定,就可以
作为本技术的损失函数,所以损失函数存在多种可变形的形式。本技术的一些实施例还提供了如下损失函数的表达式。
[0149]
示例一、把上述公式(2)中求最大值改为求解均方根误差,具体公式为:
[0150][0151]
其中,n表示候选扩展序列经过的极大值角点和极小值角点的数量,p0、p1、
……
、p
n-1
表示每个角点的坐标向量。
[0152]
示例二、原公式(2)中,每3条线段(也就是4个角点pi、p
i 1
、p
i 2
、p
i 3
)为一组计算,计算出来的值会除以3条线段中的中间一条的长度(也就是从p
i 1
到p
i 2
的长度)来统一尺度。如果把统一尺度的分母改为3条线段的长度的和,也是可以的,具体公式如下:
[0153][0154]
示例三、原公式(2)中分子部分|p
i-3p
i 1
3p
i 2-p
i 3
|是4个角点坐标的三阶差分,对于畸变程度较轻的应用场景,也可用3个角点的二阶差分来替代,具体公式如下:
[0155][0156]
不难理解的是,示例三也可以与示例二结合,对应的损失函数的分母用不同的写法表征为:
[0157][0158][0159][0160]
示例三也可以与示例一结合,将最大值改为均方根误差,用公式表示为:
[0161][0162][0163][0164][0165]
本技术的实施例并不限定损失函数的具体形式,只要是基于本技术实施例设计损失函数的构思得到的损失函数表达式都应属于本技术实施例可以覆盖的范围。
[0166]
下面示例性阐述s204的过程。
[0167]
s204是针对至少部分线段序列进行的操作。也就是说,在本技术的一些实施例中s204获取s203得到的所有线段序列包括的所有极大值角点的初始棋盘格坐标值,并得到各极小值角点的初始棋盘格坐标值。在本技术的另一些实施例中,s204仅针对s203得到的部分线段序列中的各极大值角点获取这些角点的初始棋盘格坐标,并得到该部分线段序列中各极小值角点的初始棋盘格坐标。为了更加清楚的描述本技术各实施例的技术方案,本技术的一些实施例将s204步骤的操作限定为针对目标极大值角点和目标极小值角点的操作,可以理解的是,如果s204是对全部线段序列进行的操作,则目标极大值角点和目标极小值角点为s203提取到的所有极大值角点和极小值角点,而如果s204是对部分线段序列进行的操作,则目标极大值角点和目标极小值角点为s203提取到的部分极大值角点和极小值角点。
[0168]
需要说明的是,为了确定各目标极大值角点或者各目标极小值角点的初始棋盘格坐标需要规定初始棋盘格坐标系,该初始棋盘格坐标系的坐标原点为任意选取的一个目标极大值角点或者一个目标极小值角点。
[0169]
为了解决被拍摄的棋盘格图像存在缺失或者原始棋盘格图像上存在缺失数据时的畸变参数值如果获取的问题,在本技术的一些实施例中,在执行s203之后且在执行s204之前,所述方法还包括:选择相互连通且包含的极大值角点数目和极小值角点数目最多的区域中的线段序列作为s204所述的至少部分线段序列。之后的s204、s205以及s206等步骤均是以该至少部分线段序列包括的极大值角点(被称为目标极大值角点)和极小值角点(被称为目标极小值角点)来获取径向畸变的畸变参数值。
[0170]
本技术的一些实施例对于被拍摄的棋盘格图像存在破损或者拍摄得到的原始棋盘格图像上存在破损区域时,依然可以获取径向畸变的畸变系数,提升了技术方案的应用场景。
[0171]
下面示例性阐述s205的过程。
[0172]
为了得到各角点的目标棋盘格坐标(即得到光心为坐标原点的棋盘格坐标),在本技术的一些实施例中,s205包括:根据修正量对任一目标极大值角点或者任一目标极小值角点的初始棋盘格坐标进行平移修正,得到所述目标棋盘格坐标。
[0173]
为了获取修正量,在本技术的一些实施例中,在所述根据修正量对任一目标极大值角点或者任一目标极小值角点的初始棋盘格坐标进行平移修正之前,所述方法包括:根据原始棋盘格图像计算所有目标极大值角点与光心的距离,并计算所有目标极小值角点与所述光心的距离,得到一个距离序列;将所述距离序列按照大小排序得到一个有序距离序列(z0、z1、z2、
……
zi,z
i 1
……
);将所述有序距离序列中任一两个相邻的距离对应的每3个角点信息联立计算得到两组候选修正量,其中,一组候选修正量表征为(u'i,v'i),另一组候选修正量表征为(u”i
,v”i
),所述角点信息包括所述目标极大值角点的信息和所述目标极小值角点的信息;根据多组候选修正量得到所述修正量(uc、vc)。需要说明的是,确定目标极大值或者目标极小值角点与光心的距离,即确定目标极大值角点和目标极小值角点的像素坐标值(即在像素坐标系下的坐标,像素坐标系即以图像的左上角的像素点为(0,0),单位为像素)与光心之间的距离,其中,光心的位置可以将原始棋盘格图像的图像中心,也可以是根据相关技术确定的光心在原始棋盘格图像上更为准确的位置。
[0174]
下面以获取的初始棋盘格坐标和举例序列示例性阐述获取修正量的过程。
[0175]
在本技术的一些实施例中,在所述根据修正量对任一目标极大值角点或者任一目标极小值角点的初始棋盘格坐标进行平移修正之前,所述方法还包括:根据原始棋盘格图像计算所有目标极大值角点与光心的距离,并计算所有目标极小值角点与所述光心的距离,得到一个距离序列(例如,光心像素坐标为(100,100),一个目标极大值角点的像素坐标为(101,100),则该极大值角点与光心的像素距离为1。);将所述距离序列按照大小排序得到一个有序距离序列(z0、z1、z2、
……
zi,z
i 1
……
);依次获取所述有序距离序列中与各个距离分别对应的各像素点的初始棋盘格纵坐标得到纵坐标序列(v0、v1、v2、
……
),并依次获取所述有序距离序列中与各距离分别对应的各像素点的初始棋盘格横坐标得到横坐标序列(u0、u1、u2、
……
);根据所述有序距离序列中任一相邻两个距离值的比值、所述纵坐标序列和所述横坐标序列中的坐标值计算所述修正量。例如,在本技术的一些实施例中,所述根据所述有序距离序列中任一相邻两个距离值的比值、所述纵坐标序列和所述横坐标序列中的坐标值计算所述修正量,包括:计算所述有序距离序列中第i距离zi和与所述第i距离zi相邻的第i 1距离z
i 1
的比值的平方,得到第一比值,并计算所述第i 1距离z
i 1
和与所述第i 1距离z
i 1
相邻的第i 2距离z
i 2
的比值的平方,得到第二比值;根据所述第一比值、与所述第i距离和所述第i 1距离对应的初始棋盘格坐标构造第一圆方程,并根据所述第二比值、与所述第i 1距离和所述第i 2距离对应的初始棋盘格坐标构造第二圆方程;通过联立所述第一圆方程和所述第二圆方程,得到两个交点,其中,所述两个交点对应两组候选修正量,且一组候选修正量表征为(u'i,v'i),另一组候选修正量表征为(u”i
,v”i
);重复上述过程,得到多组候选修正量,并根据所述多组候选修正量得到所述修正量。
[0176]
为了从多组候选修正量中尽可能的选取接近光心的修正量,在一些本技术的一些实施例中,所述根据所述多组候选修正量得到所述修正量,包括:从所有候选修正量中选择中位数作为所述修正量。
[0177]
本技术的一些实施例通过从多组候选修正量中选择中位数作为最终修正量,提升了畸变参数值的准确性。
[0178]
在本技术的一些实施例中s103示例性包括如图7所示的s206,根据图7可知s206包括:根据所述目标棋盘格坐标值确定所述目标极大值角点或者所述目标极小值角点的像高,并根据所述像高进行多项式拟合得到所述径向畸变参数值(即径向畸变校正公式中径向畸变参数的值)。
[0179]
可以理解的是,当执行s206得到畸变参数值之后,如果获取原始棋盘格图像的镜头为待检测镜头,则本技术一些实施例的获取径向畸变参数值的方法还包括:根据所述径向畸变参数值评估所述待检测镜头的性能。如果获取原始棋盘格图像的镜头为待校正镜头,则本技术一些实施例的获取径向畸变参数值的方法还包括:存储所述径向畸变参数值;获取由所述镜头拍摄一张原始图像;根据所述径向畸变参数值对所述原始图像进行校正,获得校正后图像;提供所述校正后图像。例如,所述镜头为屏下模组镜头。
[0180]
下面以图9-图14结合一副原始棋盘格图像和一个具体的角点提取核函数为例示例阐述图6和图7的过程。
[0181]
第一步,提取极大值角点和极小值角点。
[0182]
设采集到的原始棋盘格图像中的棋盘格的方格边长约为n个像素,角度为θ,可以
用如下公式预先生成角点提取核:
[0183][0184]
其中:x0=x cosθ-y sinθ,y0=x sinθ y cosθ,-n≤x≤ n,-n≤y≤ n,即(x0,y0)是坐标(x,y)顺时针旋转θ后得到的坐标。
[0185]
不难理解的是,角点提取核对应一个矩阵,里面的数就是数,不代表特定的颜色。图9提供的核的图像仅仅是为了便于直观理解。另外图像处理一般都习惯用较大的数表示白色,较小的数表示黑色。采用该角度提取核生成的核图像如图9所示,在图9中左下和右上为黑色像素区域(像素值越接近1则像素点亮度越黑),左上和右下为白色像素区域(像素值越接近-1则像素点亮度越白),且靠近核边缘的区域为像素值为0的灰色像素区域(即设置过渡区域)。使用这个核对采集到的原始棋盘格图像做卷积,与核的亮度分布近似的角点会产生一个局部极大值,与核的亮度分布相反的角点会产生一个局部极小值。也就是说,对于左下和右上为黑色像素区域且左上和右下为白色像素区域的点卷积的值为局部极大值,对应的像素点在原始棋盘格图像上为极大值角点,相应的对于左上和右下为黑色像素区域且左下和右上为白色像素区域的点卷积的值为局部极小值,对应的像素点在原始棋盘格图像上为极小值角点。
[0186]
从原始棋盘格图像上将局部极大值所在的像素点和局部极小值所在的像素点的像素坐标分别提取出来,就得到了采用角点提取核提取到的角点坐标,如图10所示。
[0187]
需要说明的是,图10只是为了便于直观理解,实际获取径向畸变的畸变参数值的过程中并不需要在原始棋盘格图像上标注各角点的像素坐标。不能理解的是,要让局部极大值与局部极小值交换,只要反转上述角点提取核的正负号(核里的每个元素都改成相反数)就能实现。
[0188]
第二步,建立棋盘格坐标,即获取目标棋盘格坐标值。
[0189]
首先,求出每个极大值角点与每个极小值角点在图像上的坐标距离,即根据各极大值角点在像素坐标系下的坐标和各极小值角点在像素坐标系下的坐标计算两个角点之间的距离。选择与极大值角点最近的四个极小值角点作为这个极大值角点的候选相邻角点(即候选邻居),同理为每个极小值角点选择与其像素坐标距离最近的四个极大值角点作为这个极小值角点的候选相邻角点(即候选邻居),且互为相邻点的每一对极大值角点和极小值角点之间,连接一条候选线段,如图11所示。需要说明的是,在实际获取径向畸变的畸变参数值的时候候选线段只要进行记录即可而不用在原始棋盘格图像上进行如图11所述的连续操作,图11采用连线画图只是为了便于直观理解,且由于光线的问题导致图11中仅显示连接好的部分候选线段,根据这些显示候选线段可以直观理解候选线段。
[0190]
其次,接下来将候选线段连接成长序列(即提取被拍摄的棋盘格图案上的行或列),具体流程为:
[0191]
依次遍历每条候选线段,对于每个遍历到的候选线段a:
[0192]
第1步,在与候选线段a相邻的候选线段中,选择与候选线段a的方向夹角最小的候选线段b,组成待扩充的线段序列s=(a,b)。
[0193]
需要说明的是,线段之间的夹角,指的是线段所在直线的夹角,利用平面上两直线夹角公式即可确定候选线段b。如果存在多个夹角相等的情况,则从中任一选择一个候选线段作为候选线段b。可以理解的是,为候选线段a选择候选线段b的过程,就是列出来所有与候选线段a相邻的线段(根据前面的算法,最多会有4个),计算他们每个与候选线段a的夹角,然后选择最小的作为候选线段b。
[0194]
第2步,遍历与序列s两端相邻的候选线段,计算每个候选线段添加进序列s后得到的候选扩充序列s'的损失函数值。其中,损失函数表示候选扩充序列里的线段是不是属于棋盘格里的同一行或列(例如,损失函数值越小,表示越像是同一行或列;值越大,表示越不可能是同一行或列)。作为一个示例,损失函数的一种定义方式为(即上述公式(2)):其中pi为候选扩充序列s'依次经过的角点坐标向量(即角点在像素坐标系下的坐标向量,就是把坐标看成向量),|p|表示向量的长度(例如,具体计算公式就是横纵坐标平方和再开根号,即像素坐标系下的各角点的像素坐标的平方和再开根号)。
[0195]
第3步,设前面所有候选扩充线段序列中,损失函数的值最小的为l'。如果它的损失函数值低于设定的序列损失阈值(例如,序列损失阈值设为0.4),则用它取代当前待扩充的线段序列s后回到第2步继续扩充。
[0196]
需要说明的是,若所有扩充后(所有即一个候选扩充序列有两端,每一端最多有4个可选的相邻候选线段)的损失函数值都大于序列损失阈值,则结束扩充并检查当前待扩充的线段序列的长度。如果序列长度超过序列长度阈值(通常设为6或更高,这是因为序列越短越有可能找错了,所以要把太短的筛选掉),则记录下这条新的序列,并将序列中的线段从候选线段中删除(这是由于每个候选线段一定属于一行或者一列,所以已经确定属于一条有效序列(即一组线段序列)的候选线段就不用再参与构建其他线段序列了)。之所以设置序列长度阈值6是由于假设棋盘格拍出来,每行正常能检测超过12个角点,那么小于6的序列只覆盖了所在的行的一半,它的意义就不大了,而且很可能是找错的,这个阈值可以又本领域技术人员根据实际情况来指定。上述损失函数涉及的max计算过程属于该损失函数计算公式的一部分,扩充序列时是从多个候选扩展序列中选择的最小值损失函数所对应的序列。
[0197]
由上述方法得到的长序列如图12所示,该图上存在多条相交的行或列的长线条(一个行或一个列对应一组线段序列),即得到原始棋盘格图像上的多行或者多列。
[0198]
再次,找到相互连通且包含角点最多的目标线段序列集合作为后续步骤的分析对象,这是由于被拍摄的棋盘格图像可能存在磨损等原因均可能导致原始棋盘格图像上将上述候选线段连接成长序列(即各组线段序列)后并没有形成一个相互连通的网络,而是形成多个网络)。任取目标线段序列集合中一个角点(极大值角点或者极小值角点均可以)作为棋盘格原点,将它的棋盘格坐标设为(0,0)。然后从该原点出发,根据各组线段序列中的候选线段方向依次给序列集合中每个角点(极大值角点或者极小值角点均)设置初始棋盘格坐标。使同每一条序列上的棋盘格坐标总满足下面四个条件的其中一个:横坐标都相同,纵坐标单调递增,相邻角点的纵坐标相差1;横坐标都相同,纵坐标单调递减,相邻角点的纵坐标相差1;纵坐标都相同,横坐标单调递增,相邻角点的横坐标相差1;纵坐标都相同,横坐标单调递减,相邻角点的横坐标相差1。设置好的初始棋盘格坐标值如图13所示。
[0199]
需要说明的是,初始棋盘格坐标是一个没有单位的度量值,每走棋盘格上的一个格子坐标值就变化一个长度单位(例如,上述四个条件中的一个长度单位为1),可以理解的是一个长度单位也可以为2或3等,只要保证每经过一个格子变化长度值相等即可。图13仅用于帮助理解方案,在本技术的一些实施例中可以不必将各初始棋盘格坐标值标注在原始棋盘格图像上,而只需要记录这些坐标值与各角点的对应关系即可。在本技术无特别说明的情况下各角点包括各极大值角点和各极小值角点。
[0200]
最后,需要调整各角点的初始棋盘格坐标,使棋盘格原点与镜头模组光心重合,得到各角点的目标棋盘格坐标。这是由于要测量径向畸变的畸变参数值,就需要找到每个角点原本距离光心多远(即畸变距离,该畸变距离是在原始棋盘格图像上各角点与光心的距离)与每个角点校正(即校正距离,该校正距离将初始棋盘格的坐标原点与光心对准)后应该距离光心多远,这两个值(即畸变距离和校正距离)的关系。其中,畸变距离直接根据各角点的像素坐标与光心的距离公式直接计算即可,而校正距离可以通过各角点目标棋盘格坐标来计算,但计算的前提是目标棋盘格坐标的原点与光心重合。理想情况下光心在图像中心,在本技术的一些实施例中可以这样近似,在本技术的另一些实施例中会用通用的方法计算光心的实际位置。
[0201]
在本技术的一些实施例中,获取各角点的目标棋盘格坐标的具体计算过程如下:
[0202]
1.将前面得到的棋盘格中所有角点,按与光心(例如,可以为原始棋盘格图像的图像中心或者采用通用方法确定的光心)的距离排序。
[0203]
也就是说,利用原始棋盘格图像上各角点的像素坐标计算各角点到光心的距离。像素坐标即以原始棋盘格图像上左上的第一个像素为坐标原点,单位为像素。理想情况下光心在图像中心,在本技术的一些实施例中可以这样近似,在本技术的另一些实施例中会用通用的方法计算光心的实际位置。
[0204]
2.设排序后得到有序距离序列,该有序距离序列中每个角点与光心的距离依次为:z0、z1、z2、......
[0205]
3.设有序距离序列中各角点的棋盘格横坐标依次为:u0、u1、u2、......,他们的棋盘格纵坐标为:v0、v1、v2、......,其中,该处的横坐标序列和纵坐标序列的值为各角点的初始棋盘格坐标。
[0206]
4.计算:
[0207][0208]ai
=1-ki[0209]bi
=2kiu
i 1-2ui[0210]ci
=2kiv
i 1-2vi[0211]di
=u
i2
v
i2-ki(u
i 12
v
i 12
)
[0212]
5.计算:
[0213][0214]ei
=b
i-h
ibi 1
[0215]fi
=c
i-h
ici 1
[0216]gi
=d
i-h
idi 1
[0217]
6.计算:
[0218][0219][0220][0221]
可以理解的是,至此得到多组计算结果,其中每一组计算结果与三个角点对应即与一个距离比值对应。也就是说,根据所述有序距离序列中任一相邻两个距离值的比值、所述纵坐标序列和所述横坐标序列中的坐标值获取多组计算结果,其中,一组计算结果与任一相邻的两个距离的比值对应。与上述第i比值对应的组的计算结果包括如下多个参量:ai、bi、ci、di、hi、ei、fi、gi、li、mi、ni,通过上述可以计算出这些参量的值。
[0222]
7.对于计算出的每一组ei、fi、gi、li、mi、ni:
[0223]
若满足m
i2
≥4lini且|ei|≥|fi|,则计算:
[0224][0225][0226][0227][0228]
若满足m
i2
≥4lini且|ei|<|fi|,则计算:
[0229][0230][0231][0232][0233]
可以理解的是,对于i的不同取值能得到多组候选修正量。
[0234]
8.设所有计算出来的u'i和u”i
的中位数为uc,所有计算出来的v'i和v”i
的中位数为vc。
[0235]
可以理解的是,为了确定遍历完所有的参量,可以设置一个循环标识符来记录各
次遍历过程,当确认不满足上述第7步骤的公式则直接遍历下一组数据。也就是说,遍历每一组计算结果并通过各组计算结果计算得到多组候选修正量,其中,一组候选修正量表征为(u'i,v'i),另一组候选修正量表征为(u”i
,v”i
),确认将所有组候选修正量u'i和u”i
的中位数和所有候选修正量v'i和v”i
的中位数作为所述修正量,其中,所述修正量为目标棋盘格的坐标原点。
[0236]
9.将所有角点的初始棋盘格横坐标值减去uc,初始棋盘格纵坐标值减去vc,就得到了与光心对准后各角点的目标棋盘格坐标。对准后各角点目标棋盘格坐标如图14所示。
[0237]
需要说明的是,图9-图14仅用于结合标注相关信息的图像直观说明本技术的技术方案,因此这些图像上标注的字迹即使不清楚也不影响本领域技术人员对技术方案的理解。
[0238]
第三步,多项式拟合
[0239]
对于前面计算出的每个角点,设其对准后的目标棋盘格坐标为(u,v),则它在没有畸变的棋盘格坐标下的像高为设它与光心的原始坐标距离为d,模组的内参焦距为f,则这一点对应的畸变系数为将每个角点的棋盘格像高的平方i2作为自变量,畸变系数k作为应变量,进行二次或三次多项式拟合(二次拟合时,相当于求得的k'3=0,不影响后续计算),得到多项式:
[0240]
p(i2)=k
′0 k
′1i2 k
′2(i2)2 k
′3(i2)3[0241]
再计算出最终的径向畸变参数:
[0242][0243][0244][0245]
其对应的径向畸变校正公式为:
[0246]
x

=x(1 k1r2 k2r4 k3r6)
[0247]y′
=y(1 k1r2 k2r4 k3r6)
[0248]
其中,(x

,y

)为带有畸变的相对于光心的原始坐标(即原始棋盘格图像上各像素点在像素坐标系下的坐标,单位为像素),(x,y)为畸变校正后相对于光心的坐标(例如,用上述畸变参数值对原始棋盘格图像上的各像素点进行修正后的像素坐标值),r为(x,y)的像高即:
[0249]
需要说明的是,上述过程仅用于示例性展示整个技术方案的实现过程,而不能理解为对本技术技术方案的限制性解释。例如,在上述结合图9-图14的方案描述中提供的角点提取核是一个具体的角点提取核,而结合本技术其他实施例的相关描述可知该角点提取核也可以采用其他公式,对于损失函数的公式也是一个具体计算示例,结合前文的相关描述可知损失函数计算公式可能存在多种函数形式。
[0250]
可以理解的是,在本技术的一些实施例中s101涉及的镜头为待检测镜头,则获取径向畸变参数值的方法还包括:根据所述径向畸变参数值评估所述待检测镜头的性能。在
本技术的另一些实施例中,s101涉及的镜头为待校正镜头,则获取径向畸变参数值的方法还包括:存储所述径向畸变参数值;获取由所述镜头拍摄一张原始图像;根据所述径向畸变参数值对所述原始图像进行校正,获得校正后图像;提供所述校正后图像。
[0251]
请参考图15,图15示出了本技术实施例提供的获取径向畸变参数值的装置,应理解,该装置与上述图6方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该获取径向畸变参数值的装置包括:原始棋盘格图像获取模块101、目标棋盘格坐标值获取模块102以及径向畸变版数值获取模板103。
[0252]
原始棋盘格图像获取模块101被配置为采集一张原始棋盘格图像,其中,所述原始棋盘格图像是通过镜头正棋盘格图案进行拍摄得到的。
[0253]
目标棋盘格坐标值获取模块102被配置为:提取所述原始棋盘格图像上的角点,并获取以光心作为坐标原点时至少部分所述角点的目标棋盘格坐标值;
[0254]
径向畸变版数值获取模板103被配置为通过所述目标棋盘格坐标值得到所述镜头的径向畸变参数值。
[0255]
如图7所示,在本技术的一些实施例中,目标棋盘格坐标值获取模块102进一步包括:极大值角点和极小值角点获取模块220以及目标棋盘格坐标值获取模块200。其中,极大值角点和极小值角点获取模块220被配置为根据角点提取核从所述原始棋盘格图像上提取多个极大值角点和多个极小值角点,其中,所述角点提取核用于近似表征所述原始棋盘格图像的角点邻域内的像素点亮度分布规律。目标棋盘格坐标值获取模块200被配置为获取以光心作为坐标原点时至少部分极大值角点和至少部分极小值角点的目标棋盘格坐标值。
[0256]
如图16所示,在本技术的一些实施例中,目标棋盘格坐标值获取模板200进一步包括:线段序列获取模块230、初始棋盘格坐标值获取模块240以及棋盘格坐标值校正模块250。
[0257]
线段序列获取模块230被配置为将确认为互为相邻的一个极大值角点和一个极小值角点记录为一条候选线段,并将所有不同候选线段划分成多组线段序列,其中,一组线段序列包括的所有不同候选线段经过首尾相连形成一条长线段
[0258]
初始棋盘格坐标值获取模块240被配置为针对至少部分线段序列,根据各线段序列中候选线段的方向确定极大值角点和极小值角点的初始棋盘格坐标值,得到目标极大值角点的初始棋盘格坐标值和目标极小值角点的初始棋盘格坐标值,其中,所述初始棋盘格坐标值是在初始棋盘格坐标系下的坐标值,该初始棋盘格坐标值具体包括初始棋盘格横坐标值和初始棋盘格纵坐标值。
[0259]
棋盘格坐标值校正模块250被配置为将初始棋盘格坐标系的坐标原点与光心对准后,根据所述目标极大值角点的初始棋盘格坐标值得到所述目标极大值角点的目标棋盘格坐标,并根据所述目标极小值角点的初始棋盘格坐标值得到所述目标极小值角点的目标棋盘格坐标值。
[0260]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0261]
如图17所示,本技术的一些实施例提供一种移动终端300,该移动终端300包括:图
像拍摄单元310、存储器320以及处理器330。
[0262]
图像拍摄单元310,被配置为采集一张原始棋盘格图像;存储器320,被配置为存储计算机程序;处理器330,被配置为根据从所述图像拍摄单元读取的所述原始棋盘格图像,运行所述计算机程序,其中,所述处理器执行所述程序时可实现第一方面所述的方法。
[0263]
在本技术的一些实施例中,图像拍摄单元310被配置为:对被测试光源照亮的棋盘格进行拍摄,得到一张原始棋盘格图像;对第一显示屏幕点亮的橡胶测试头进行拍摄得到一张原始棋盘格图像,其中,所述橡胶测试头中靠近所述第一显示屏幕的一面上具有棋盘格;或者,对由第二显示屏幕显示的棋盘格进行拍摄,得到一张原始棋盘格图像
[0264]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述计算机程序的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0265]
本技术的一些实施例提供一种计算机存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任意实施例所述的方法。
[0266]
如图18所示,本技术的一些实施例提供一种电子设备400,该电子设备400包括存储器320、处理器330以及存储在所述存储器320上并可在所述处理器330上运行的计算机程序,其中,处理器330从存储器320读取程序并执行所述程序时可实现上述获取径向畸变参数值的方法包括的任意实施例。
[0267]
处理器330可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器330可以是微处理器。
[0268]
存储器320可以用于存储由处理器330执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本技术实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器330可以用于执行存储器320中的指令以实现图6中所示的方法。存储器320包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
[0269]
本技术的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如图6任一实施例所述的方法。
[0270]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0271]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0272]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以
存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0273]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0274]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
[0275]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

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

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

相关文献