一种基于区域变换的图像畸变标定及校正算法的制作方法

文档序号:31791591发布日期:2022-10-14 15:37阅读:72来源:国知局
一种基于区域变换的图像畸变标定及校正算法的制作方法

1.本发明涉及视觉检测技术领域,具体为一种基于区域变换的图像畸变标定及校正算法。


背景技术:

2.在工业视觉中,为了获取更好的成像效果,相机前方一般会加透镜,由于加入的透镜的形状会对光线的传播产生影响以及透镜和相机的成像平面无法保证严格平行,因此会产生畸变,如径向畸变和切向畸变等。
3.为了消除畸变对后续检测的误差影响,目前业界一般采用多项式模型来计算畸变系数,从而进行校正。但由于透镜的加工误差或者模型的准确度,校正的精度往往不可控,对于影像测量仪设备大量使用相机来说,算法不通用不能保证每次精度都能满足客户和生产需求。


技术实现要素:

4.本发明的目的在于提供一种基于区域变换的图像畸变标定及校正算法,以解决上述背景技术中提出的问题。
5.为了解决上述技术问题,本发明提供如下技术方案:一种基于区域变换的图像畸变标定及校正算法,包括以下步骤:
6.s1、采集若干不同角度位置棋盘格图像;
7.s2、对棋盘格图像进行畸变标定计算处理;
8.s3、根据畸变标定数据进行校正处理。
9.进一步的,在步骤s2中,畸变标定计算处理过程包括以下步骤:
10.s21、计算棋盘格角度angle;
11.s22、求棋盘格角点的初始位置,根据初始位置计算角点的亚像素位置(x,y);
12.s23、计算棋盘格单元边长w0;
13.s24、计算角点实际位置和理论位置的偏差δ
x
、δy;
14.s25、计算区域顶点的总偏差权重系数,并保存至文件。
15.进一步的,在步骤s21中,以图像宽度为宽,棋盘格子的像素边长为高构造水平方向的矩形roi,检测图像范围内所有水平方向直线;各直线与图像坐标系x轴夹角的平均值作为棋盘格角度angle;
16.其中n为检测到的直线数量。
17.进一步的,在步骤s22中,在棋盘格角点附近,根据棋盘格角度angle构造roi检测相交直线l1和l2,l1和l2的交点即为角点的亚像素位置(x,y)。
18.进一步的,在步骤s23中,连接相邻4个角点形成四边形并计算面积,求所有四边形的平均面积,对平均面积开方得到棋盘格单元边长wo;
19.已知构成四边形i的角点po,p1,p2,p3,则四边形i的面积:
[0020][0021]
其中m为四边形数量。
[0022]
进一步的,在步骤s24中,以图像中心的角点为中心,结合棋盘格角度angle及棋盘格单元边长wo生成棋盘格理论角点位置,计算角点实际位置和理论位置的偏差δ
x
,δy;
[0023]
已知棋盘格角度angle,棋盘格边长w0,距离图像中心最近的角点p0,以p0为起点,沿角度为angle的直线,步长为w0进行理论点标记;再以标记的理论点为起点,沿角度为(90
°
+angle)的直线,步长为w0进行理论点标记;最终得到棋盘格理论角点位置;
[0024]
理论角点位置为(x0,y0),实际角点位置为角点的亚像素位置(x,y);
[0025]
δ
x
=x-x0;
[0026]
δy=y-y0。
[0027]
进一步的,在步骤s25中,划分图像区域(col*row),将角点的偏差映射至区域的顶点上,计算区域顶点的总偏差权重系数,并保存至文件;过程如下所示:(δ
xi
,δ
yi
)为区域内第i个角点的偏差,dx,dy为区域顶点的偏差,利用插值计算偏差如下:计算得到所有的区域角点的偏差,然后存入文件,图像区域的四个顶点坐标为(dx1,dy1)、(dx2,dy2)、(dx3,dy3)、(dx4,dy4);
[0028]
区域内第i个角点的偏差(δ
xi
,δ
yi
)与(dx1,dy1)和(dx2,dy2)的高度差为height1;区域内第i个角点的偏差(δ
xi
,δ
yi
)与(dx3,dy3)和(dx4,dy4)的高度差为height2;
[0029]
区域内第i个角点的偏差(δ
xi
,δ
yi
)与(dx1,dy1)和(dx3,dy3)的高度差为width1;区域内第i个角点的偏差(δ
xi
,δ
yi
)与(dx2,dy2)和(dx4,dy4)的高度差为width2;
[0030][0031][0032][0033][0034]
进一步的,在步骤s3中,根据标定时区域分割和区域顶点位置偏差,按双线性变换将原始图像中对应区域(p1

,p2

,p3

、p4

)变换至区域(p1,p2,p3、p4),修正畸变偏差。
[0035]
进一步的,读取标定过程计算的每个区域的顶点偏差:dx1,dx2,dx3,dx4,dy1,dy2,dy3,dy4;
[0036]
已知区域顶点的坐标为:p1(x1,y1),p2(x2,y2),p3(x3,y3),p4(x4,y4);
[0037]
则,映射到该区域的原始图像区域的顶点坐标为:
[0038]
p1

(x1+dx1,y1+dy1),p2

(x2+dx2,y2+dy2),p3

(x3+dx3,y3+dy3),p4

(x4+dx4,y4+dy4)。
[0039]
进一步的,p1-p1

,p2-p2

,p3-p3

,p4-p4

的映射关系:
[0040]
x1=c00
×
(x1+dx1)
×
(y1+dy1)+c01
×
(x1+dx1)+c02
×
(y1+dy1)+c03;
[0041]
y1=c10
×
(x1+dx1)
×
(y1+dy1)+c11
×
(x1+dx1)+c12
×
(y1+dy1)+c13;
[0042]
x2=c00
×
(x2+dx2)
×
(y2+dy2)+c01
×
(x2+dx2)+c02
×
(y2+dy2)+c03;
[0043]
y2=c10
×
(x2+dx2)
×
(y2+dy2)+c11
×
(x2+dx2)+c12
×
(y2+dy2)+c13;
[0044]
x3=c00
×
(x3+dx3)
×
(y3+dy3)+c01
×
(x3+dx3)+c02
×
(y3+dy3)+c03;
[0045]
y3=c10
×
(x3+dx3)
×
(y3+dy3)+c11
×
(x3+dx3)+c12
×
(y3+dy3)+c13;
[0046]
x4=c00
×
(x4+dx4)
×
(y4+dy4)+c01
×
(x4+dx4)+c02
×
(y4+dy4)+c03;
[0047]
y4=c10
×
(x4+dx4)
×
(y4+dy4)+c11
×
(x4+dx4)+c12
×
(y4+dy4)+c13;
[0048]
解上述线性方程组,可得双线性变换系数:c00,c01,c02,c03,c10,c11,c12,c13;
[0049]
根据求得的变换系数,对区域内所有像素进行变换;
[0050]
u=c00
×u″×v″
+c01
×u″
+c02
×v″
+c03;
[0051]
v=c10
×u″×v″
+c11
×u″
+c12
×v″
+c13;
[0052]
其中(u,v)为校正后像素位置,(u

,v

)为原始像素位置。
[0053]
与现有技术相比,本发明所达到的有益效果是:
[0054]
1、本发明执行效率高:分区域计算并采用simd及多线程技术进行加速,相同数量标定图片效率提升3倍以上;标定精度可视:标定后生成精度热力图,清晰显示标定精度分布;精度高,均匀性好:不需要任何畸变模型,分区域标定能够更好的匹配镜头不同区域的畸变模型,畸变精度高,均匀性好,精度可达1/4像素;兼容性强:该畸变校正方案能够兼容各种畸变模型,高可靠低进行图像校正;本发明无需任何(多项式)模型,畸变标定过程可直接采集棋盘格(纸)进行畸变表的计算,校正时直接读取畸变表对图像进行区域化校正,且校正精度高时间快鲁棒性强;
[0055]
2、本发明通过采集棋盘格图片,每次采图轻微旋转或平移棋盘格标定板,根据实际需要调整采图数量;对角点进行检测;区域分割及角点偏差,根据区域内角点偏差计算该区域顶点位置处的综合偏差,保存至标定表;校正图像:畸变校正前棋盘格角点偏差,畸变校正后棋盘格角点偏差;测量时预加载标定参数,调用校正方法实时校正测量图像;畸变标定后,测量系统精度基本能到1/4像素(对校正后的棋盘格图像按标定流程再次计算角点偏差,偏差范围在1/4像素内)。
附图说明
[0056]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0057]
图1是本发明中棋盘格的矩形roi示意图;
[0058]
图2是本发明中棋盘格的角度示意图;
[0059]
图3是本发明中亚像素位置的标记示意图;
[0060]
图4是本发明中四边形i的面积示意图;
[0061]
图5是本发明中棋盘格理论角点位置的计算示意图;
[0062]
图6是本发明中理论角点和实际角点的示意图;
[0063]
图7是本发明中图像区域中顶点和偏差的示意图;
[0064]
图8是本发明中原始图像变换区域的示意图;
[0065]
图9是本发明中原始图像与校正后图像的示意图;
[0066]
图10是本发明中畸变精度验证的示意图;
[0067]
图11是本发明中棋盘格图像采集的示意图;
[0068]
图12是本发明中角点检测结果的示意图;
[0069]
图13是本发明中区域分割及角点偏差的计算示意图;
[0070]
图14是本发明中畸变校正前棋盘格角点偏差的示意图;
[0071]
图15是本发明中畸变校正后棋盘格角点偏差的示意图;
[0072]
图16是本发明中标定和校正流程的示意图。
具体实施方式
[0073]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0074]
如图1-图16所示的一种基于区域变换的图像畸变标定及校正算法,包括以下步骤:
[0075]
s1、采集若干不同角度位置棋盘格图像;
[0076]
s2、对棋盘格图像进行畸变标定计算处理;
[0077]
畸变标定计算处理过程包括以下步骤:
[0078]
s21、计算棋盘格角度angle;以图像宽度为宽,棋盘格子的像素边长为高构造水平方向的矩形roi,检测图像范围内所有水平方向直线;各直线与图像坐标系x轴夹角的平均值作为棋盘格角度angle如图1、图2所示;
[0079]
其中n为检测到的直线数量;
[0080]
s22、求棋盘格角点的初始位置,根据初始位置计算角点的亚像素位置(x,y);在棋盘格角点附近,根据棋盘格角度angle构造roi检测相交直线l1和l2,l1和l2的交点即为角点的亚像素位置(x,y)如图3所示;
[0081]
s23、计算棋盘格单元边长w0;连接相邻4个角点形成四边形并计算面积,求所有四边形的平均面积,对平均面积开方得到棋盘格单元边长wo;
[0082]
已知构成四边形i的角点po,p1,p2,p3,则四边形i的面积如图4所示:
[0083][0084]
其中m为四边形数量;
[0085]
s24、计算角点实际位置和理论位置的偏差δ
x
、δy;以图像中心的角点为中心,结合棋盘格角度angle及棋盘格单元边长wo生成棋盘格理论角点位置,计算角点实际位置和理论位置的偏差δ
x
,δy如图5所示;
[0086]
已知棋盘格角度angle,棋盘格边长w0,距离图像中心最近的角点p0,以p0为起点,沿角度为angle的直线,步长为w0进行理论点标记;再以标记的理论点为起点,沿角度为(90
°
+angle)的直线,步长为w0进行理论点标记;最终得到棋盘格理论角点位置;
[0087]
理论角点位置为(x0,y0),实际角点位置为角点的亚像素位置(x,y)如图6所示;
[0088]
δ
x
=x-x0;
[0089]
δy=y-y0;
[0090]
s25、计算区域顶点的总偏差权重系数,并保存至文件;划分图像区域(col*row),将角点的偏差映射至区域的顶点上,计算区域顶点的总偏差权重系数,并保存至文件;过程如下所示:(δ
xi
,δ
yi
)为区域内第i个角点的偏差,dx,dy为区域顶点的偏差,利用插值计算偏差如下:计算得到所有的区域角点的偏差,然后存入文件如图7所示,图像区域的四个顶点坐标为(dx1,dy1)、(dx2,dy2)、(dx3,dy3)、(dx4,dy4);
[0091]
区域内第i个角点的偏差(δ
xi
,δ
yi
)与(dx1,dy1)和(dx2,dy2)的高度差为height1;区域内第i个角点的偏差(δ
xi
,δ
yi
)与(dx3,dy3)和(dx4,dy4)的高度差为height2;
[0092]
区域内第i个角点的偏差(δ
xi
,δ
yi
)与(dx1,dy1)和(dx3,dy3)的高度差为width1;区域内第i个角点的偏差(δ
xi
,δ
yi
)与(dx2,dy2)和(dx4,dy4)的高度差为width2;
[0093][0094][0095][0096][0097]
s3、根据畸变标定数据进行校正处理;根据标定时区域分割和区域顶点位置偏差,按双线性变换将原始图像中对应区域(p1

,p2

,p3

、p4

)变换至区域(p1,p2,p3、p4),修正畸变偏差;
[0098]
如图8所示:
[0099]
读取标定过程计算的每个区域的顶点偏差:dx1,dx2,dx3,dx4,dy1,dy2,dy3,dy4;
[0100]
已知区域顶点的坐标为:p1(x1,y1),p2(x2,y2),p3(x3,y3),p4(x4,y4);
[0101]
则,映射到该区域的原始图像区域的顶点坐标为:
[0102]
p1

(x1+dx1,y1+dy1),p2

(x2+dx2,y2+dy2),p3

(x3+dx3,y3+dy3),p4

(x4+dx4,y4+dy4);
[0103]
p1-p1

,p2-p2

,p3-p3

,p4-p4

的映射关系:
[0104]
x1=c00
×
(x1+dx1)
×
(y1+dy1)+c01
×
(x1+dx1)+c02
×
(y1+dy1)+c03;
[0105]
y1=c10
×
(x1+dx1)
×
(y1+dy1)+c11
×
(x1+dx1)+c12
×
(y1+dy1)+c13;
[0106]
x2=c00
×
(x2+dx2)
×
(y2+dy2)+c01
×
(x2+dx2)+c02
×
(y2+dy2)+c03;
[0107]
y2=c10
×
(x2+dx2)
×
(y2+dy2)+c11
×
(x2+dx2)+c12
×
(y2+dy2)+c13;
[0108]
x3=c00
×
(x3+dx3)
×
(y3+dy3)+c01
×
(x3+dx3)+c02
×
(y3+dy3)+c03;
[0109]
y3=c10
×
(x3+dx3)
×
(y3+dy3)+c11
×
(x3+dx3)+c12
×
(y3+dy3)+c13;
[0110]
x4=c00
×
(x4+dx4)
×
(y4+dy4)+c01
×
(x4+dx4)+c02
×
(y4+dy4)+c03;
[0111]
y4=c10
×
(x4+dx4)
×
(y4+dy4)+c11
×
(x4+dx4)+c12
×
(y4+dy4)+c13;
[0112]
解上述线性方程组,可得双线性变换系数:c00,c01,c02,c03,c10,c11,c12,c13;
[0113]
根据求得的变换系数,对区域内所有像素进行变换;
[0114]
u=c00
×u″×v″
+c01
×u″
+c02
×v″
+c03;
[0115]
v=c10
×u″×v″
+c11
×u″
+c12
×v″
+c13;
[0116]
其中(u,v)为校正后像素位置,(u

,v

)为原始像素位置,如图9所示;
[0117]
附加:也可生成畸变精度分布,理论上将棋盘格图片校正完再做一次畸变,所得到的畸变系数很小,因此算法可进行畸变精度验证,如图10所示。
[0118]
1、采集棋盘格图片,每次采图轻微旋转或平移棋盘格标定板,根据实际需要调整采图数量如图11所示;
[0119]
2、角点检测结果(局部)如图12所示;
[0120]
3、区域分割及角点偏差如图13所示,根据区域内角点偏差计算该区域顶点位置处的综合偏差,保存至标定表;
[0121]
4、校正图像:畸变校正前棋盘格角点偏差如图14所示,畸变校正后棋盘格角点偏差如图15所示;
[0122]
5、测量时预加载标定参数,调用校正方法实时校正测量图像;畸变标定后,测量系统精度基本能到1/4像素(对校正后的棋盘格图像按标定流程再次计算角点偏差,偏差范围在1/4像素内)。
[0123]
本发明的有益效果是:
[0124]
本发明执行效率高:分区域计算并采用simd及多线程技术进行加速,相同数量标定图片效率提升3倍以上;标定精度可视:标定后生成精度热力图,清晰显示标定精度分布;精度高,均匀性好:不需要任何畸变模型,分区域标定能够更好的匹配镜头不同区域的畸变模型,畸变精度高,均匀性好,精度可达1/4像素;兼容性强:该畸变校正方案能够兼容各种畸变模型,高可靠低进行图像校正;本发明无需任何(多项式)模型,畸变标定过程可直接采集棋盘格(纸)进行畸变表的计算,校正时直接读取畸变表对图像进行区域化校正,且校正精度高时间快鲁棒性强。
[0125]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1