基于双三次插值的鱼眼图像校正*

2021-12-16 08:10曾庆立洪志伟
关键词:鱼眼畸变标定

曾庆立,洪志伟,丁 雷

(吉首大学信息科学与工程学院,湖南 吉首 416000)

鱼眼镜头使用方便,一次就能获取接近半球面的场景信息,但所获取的鱼眼图像会严重变形,而严重畸变图像不利于人眼观察和机器识别.如果想要利用这些严重变形图像的信息,就需要将畸变图像校正为透视投影图像.目前,国内许多鱼眼校正算法采用图像处理方法对鱼眼圆形图像的变形进行处理,而忽略了镜头标定这一环节.传统的鱼眼校正算法主要是通过图像预处理进行点提取、直线提取以及边缘检测等,进而获取畸变参数[1-3].由于图像处理方法不涉及成像模型,参数也是基础模型下理想化的参数,因此这类算法虽可以达到一定的校正效果,但结果并不理想,存在较大误差[4-6].此外,图像预处理的方法无形中也加大了算法的复杂性.许多应用领域里,畸变图像校正是必要环节,而在校正处理算法的前处理部分一般是通过摄像机标定来获得模型参数[7-9].摄像机标定是实现鱼眼畸变校正的首要环节,是鱼眼镜头在图像畸变校正中的关键点.标定的算法主要针对特定的鱼眼镜头,并且需要相应的标定模版,如平面棋盘版、网格版等.基于以上思路,笔者提出了一种精确恢复图像畸变的鱼眼镜头标定算法.该算法首先通过建立鱼眼镜头特定的成像模型,然后用标定装置得到鱼眼镜头变形校正参数的先验信息,最后利用获得的校正参数来校正图像.由于算法综合考虑了鱼眼成像的各种畸变,因而所恢复图像的精确性较高.

1 鱼眼镜头成像模型

设空间场景点W在鱼眼图像上的成像点为p(p=(u,v)).鱼眼摄像机投影成像的完整模型由以下方程描述:

其中:λ为参数,λ>0;场景点坐标W=(x,y,z,1);P为投影矩阵,P∈R3×4,P=[R|T],R为旋转矩阵,T为平移相量;f(ρ)代表鱼眼镜头的曲面多项式模型,f(ρ)中的参数为(a0,a1,a2,a3,a4),

f(ρ)=a0+a1ρ+a2ρ2+a3ρ3+a4ρ4.

ρ关于θ的多项式称为畸变多项式,其模型可以表示为

ρ=b0+b1θ+b2θ2+b3θ3+b4θ4+…+bnθn.

其中:θ为入射光线与单位球Z轴正方向的夹角;b0,b1,b2,b3,b4,…,bn称为畸变系数.

图1 成像模型Fig.1 Imaging Model

实际生活中,摄像机的安装会带来离心畸变以及图像传感器的误差,另外图像传感器一般不是正方形而是矩形,这些情况是真实存在的,实际计算过程中难以忽略其影响.基于以上考虑,笔者通过增加参数来描述更精确的模型.笔者发现,仅通过一个仿射变换即可达到精确描述的目的,即

其中:c,d,e为参数;(u′,v′)为真实坐标;(u,v)为理想坐标;(xc,yc)为图像中心坐标.

2 鱼眼镜头图像校正

2.1 鱼眼镜头成像标定

步骤1自制平面棋盘标定板如图2所示.鱼眼摄像机对棋盘标定板采集N(N≫1)幅图片,读取所有的棋盘格拍摄图像.

图2 图像标定板Fig.2 Image Calibration Board

步骤2在每张棋盘格图像上自动选取棋盘格的黑白交叉顶点.鱼眼镜头图像标定效果如图3所示.

图3 鱼眼镜头图像标定截图Fig.3 Image Calibration of Fish Eye Lens

步骤3估计外部参数和内部参数.

若拍摄i幅平面标定板图片,对每一幅图片,可以得到

考虑第i幅图像上的每一个pj点,每一个点可得到3个齐次方程,即

vj(r31Xj+r32Yj+t3)-g(ρj)(r21Xj+r22Yj+t2)=0,

(1)

g(ρj)(r11Xj+r12Yj+t1)-uj(r31Xj+r32Yj+t3)=0,

(2)

uj(r21Xj+r22Yj+t2)-vj(r11Xj+r12Yj+t1)=0.

(3)

观察到Xj,Yj,Zj和uj,vj是已知的,通过(1)~(3)式可以求出r11,r12,r21,r22,t1,t2.

把所有待求项放入一个列向量H,即H=(r11,r12,r21,r22,t1,t2)T,可以把(3)式改写为M·H=0,其中

L表示标定板上有L个点.于是在‖H‖2=1的条件下,通过最小平方准则最小化‖M·H‖2可以线性估计出H;而r1,r2是标准正交,故r31,r32也可以被唯一确定.通过步骤1,对每一幅标定板图片就可以确定外部参数:r11,r12,r21,r22,r31,r32,t1,t2.

再把所有待求项放入一个列向量,那么(1)式可以改写为

其中:

K表示对平面标定板的K次拍摄.求解以上方程,得到最小二乘解,进而可以确定a0,a1,a2,a3,a4.

2.2 鱼眼镜头图像校正

笔者提取标定结果,对用于校正的参数以TXT格式进行存储.

步骤1以TXT的格式的标定结果.

曲面镜头模型多项式Γ的系数,表示为(a0,a1,a2,a3,a4),储存在数组S中,S={a0,a1,a2,a3,a4}.

步骤2空间坐标映射.

通过2.1节的步骤1和2提出的模型参数标定过程,可以得到鱼眼成像坐标与空间场景坐标的转换规律,根据这个关系可以将鱼眼图像对应于空间场景图,从而得到透视图.

通过步骤1的多项式系数a0,a1,a2,a3,a4,很容易得到曲面镜头模型多项式f(ρ),f(ρ)代表鱼眼镜头的曲面模型,这是一个关于ρ的多项式函数,但是为了校正需要得到ρ关于θ的畸变多项式.ρ关于θ的多项式系数为畸变多项式系数,表示为b0,b1,b2,b3,b4,…,bn.为了求解畸变多项式系数,笔者通过拟合多项式,设定一个循环来得到多项式的阶数,当拟合多项式误差小于0.01(ε≤0.01)时立即停止以获得最优参数.得到ρ关于θ的多项式,即

ρ=b0+b1θ+b2θ2+b3θ3+b4θ4+…+bnθn.

步骤3双三次坐标插值.

通过像素点的空间变换,可以把鱼眼圆形图像恢复为方便人眼观察的校正图像.需要注意的是上述变形图像校正后在图像平面可能会产生小数点的像素,即平面图像坐标p(x′,y′)会产生小数坐标,这不符合图像坐标要求,可采用插值技术对其进行修改.双三次插值是一个鲁棒性强的插值技术,但计算量更高.更加清晰的图像质量和更多的场景细节内容,免除了人为再次增强图像质量和细节,让此方法成为鱼眼图像校正的首选.本方法设定输出图像(640×480或640×320)大小后建立空图像空像素图像,再通过坐标映射和双三次坐标插值获得新像素坐标,将原图像坐标的像素值直接赋值给新坐标,从而得到输出图像.

步骤4滤波.

为了减少高频噪声,笔者把校正后的图像降采样到VGA(640×480或640×320)显示,在处理的最后一步加入5×5低通滤波器处理,去除噪声干扰,这样采样得到的图像才是清晰且符合人眼视觉的图像,可以在硬件上显示.图4示出鱼眼图像校正前后对比效果.

图4 校正前后图像对比Fig.4 Image Comparison Correction

3 结论

为了解决鱼眼图像存在的畸变问题,笔者建立了一个完整的鱼眼摄像机投影和畸变模型,该模型是一种通用的鱼眼模型.通过自制的平面标定板标定图像,同时建立标定模型,同时利用该通用模型实现对鱼眼摄像机所采集到的模型参数进行标定.在此基础上提出了一种通用性鱼眼摄像机标定方法——基于双三次插值的鱼眼图像校正方法.该方法利用标定后的镜头畸变参数把鱼眼圆形变形图像恢复成方便人眼观察的透视图像.模型的优势在于它能标定市场上的大多数鱼眼镜头,标定时只需利用自制的标定板就可进行精确标定,操作简单、效率高.该畸变校正方法不仅适用于圆形鱼眼图像校正,也适用于不完整的鱼眼图像校正,图像校正快速、准确,可在鱼眼图像校正实践中推广.

猜你喜欢
鱼眼畸变标定
基于能量变分法的曲线组合箱梁畸变效应分析
基于条纹分析技术的镜头畸变校正实验设计
面向鱼眼图像的人群密度估计
大型焊接容器局部热处理防畸变工装优化设计
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
建筑风光摄影中的畸变控制
使用朗仁H6 Pro标定北汽绅宝转向角传感器
CT系统参数标定及成像—2
CT系统参数标定及成像—2