蔡叶 苏中
关键词: 光场相机标定; 双曲正切模型; 亚像素角点; 角点检测; 伪角点剔除; 重投影误差
中图分类号: TN911.73?34; TP391 文献标识码: A 文章编号: 1004?373X(2019)14?0095?05
Research on sub?pixel corner point detection method for light field camera calibration
CAI Ye, SU Zhong
(Beijing Key Laboratory of High Dynamic Navigation Technology, Beijing Information Science and Technology University, Beijing 100192, China)
Abstract: In allusion to problems of slow detection speed and low detection precision of sub?pixel chessboard corner points during light field camera calibration, a sub?pixel precision chessboard corner point detection method based on the hyperbolic tangent model is proposed in this paper. The selection strategy combining the grey difference with template is adopted to select the initial corner point set. The zone grey adaptive corner point detection algorithm is used to obtain the candidate corner point set. The hyperbolic tangent model of candidate corner points is set up to fit the grey distribution of sub?pixel level candidate corner points. Fake corner points are eliminated and sub?pixel chessboard corner points are accurately localized by optimizing the model. The method has a corner point detection rate of 98% and reprojection error of less than 0.83 pixels during light field camera calibration. The experimental results show that the method proposed in this paper can not only rapidly extract more corner points, but also effectively eliminate fake corner points and improve the detection accuracy of sub?pixel corner points.
Keywords: light field camera calibration; hyperbolic tangent model; sub?pixel corner point; corner point detection; fake corner point elimination; re?projection error
0 引 言
光场相机标定是计算机视觉领域中一项重要技术,被广泛应用于三维重建、视觉检测和监控等领域[1?2]。相机标定的精度直接影响着后续计算机视觉任务的精度,而标定的精度很大程度上取决于标定板棋盘角点的检测定位精度[3]。原始光场图像由于图像数据量大、处理过程复杂,其角点检测速率和检测精度受到严重限制[4]。必须使用高精度的亚像素棋盘角点检测算法,才能实现高精度的光场相机校准任务[5]。
角点是一种常见的特征点,被认为是图像灰度变化剧烈的点或边缘曲线上曲率极大值的点[6]。目前,自动棋盘格角点检测算法可以分为两类。一种是基于诸如边缘、线特征的检测方法,如Ha通过图像边缘的检测来获取角点[7],Escalera等使用线特征来获取图像的角点,但存在较大的视觉误差,影响算法的角点检测效果[8]。这类方法严重依赖于图像边缘检测结果,如果图像边缘由于某种原因发生中断,则会对角点提取造成严重影响[9]。另一种是基于图像灰度的方法,通过角点附近像素的灰度变化来检测棋盘角点,例如Harris[10]和FAST[11]等常见的角点检测器。针对它们无法检测到棋盘上其他类型的角点并有效剔除伪角点,一些算法对其进行了改进,例如改进的Harris[12]和FAST角点检测算法[13]。改进的算法比原算法检测效果更好,但这些算法对噪声敏感,并且很难确定不同情况下的灰度阈值。
CHEN D和Liu Yu等通过将上述两种方法进行融合,提高了角点检测的精度[14?15]。他们的算法优于仅使用纹理或几何信息的算法,但仅适用于像素级精度的角点检测,不能用于高精度校准任务,例如光场相机标定中亚像素级角点的检测。Luca Lucchese等提出用双曲曲面来拟合角点附近的灰度分布,以获取亚像素级精度的角点[16]。但棋盘角点的检测结果可能会偏离实际角点坐标位置,不能准确定位角点位置。
本文分析上述模型的缺陷,提出一种基于双曲正切模型的亚像素角点检测方法。光场相机标定中角点的检测率和重投影误差验证了本文算法的优越性。
1 双曲正切模型
将一定区域内棋盘格图像灰度进行线性化处理,如图1a)所示。理想棋盘角点附近的灰度分布可以表示为:
[Ix,y=1,x-x0y-y0≥0-1,x-x0y-y0<0] (1)
式中:[x0,y0T]为角点的坐标位置;[Ix,y]为像素[x,y]处的灰度值。在实际原始光场图像中,由于采样、模糊和噪音等因素,黑色和白色方块之间的边缘不够锐利。由于透视失真,构成角点的两条边缘线不再相互垂直,如图1b)所示。
1.1 双曲函数模型分析
Luca Lucches等人将角点[x0,y0T]附近的灰度分布近似拟合为双曲曲面,如图1c)所示。[fx,y]是二次函数,即:
[fx,y=aΔx2+bΔy2+cΔxΔy] (2)
式中:[a],[b]和[c]为参数;[Δx=x-x0;Δy=y-y0。]
通过将角点附近灰度分布拟合为双曲曲面,可以准确定位角点位置,但该模型依赖于选取图像像素窗口的大小。窗口过小时,角点拟合效果差;窗口过大时,角点的灰度分布明显偏离双曲模型,严重影响角点检测精度。
1.2 优化的双曲正切模型
针对上述问题,本文提出将两个双曲正切函数的乘积作为新的双曲正切模型[14]:
[fx,y=tanhαutanhβu] (3)
式中:
[u=-x-x0sin θ+y-y0cos θ] (4)
[v=x-x0cos φ-y-y0sin φ] (5)
式中:[α]和[β]为尺度因子;[θ]和[φ]为构成角点的两条边缘线分别与x轴、y轴的夹角。角点的双曲正切模型灰度分布如图1d)所示。
当[z]很小时,[tanh z≈z];当[Δx]和[Δy]足够小时,[u]和[v]也很小,则有:
[fx,y≈αβuv] (6)
将式(4)、式(5)代入式(6)中,可得棋盘角点的双曲正切模型为:
[fx,y≈-aΔx2+bΔy2+cΔxΔy] (7)
式中:
[a=-αβsin θcos φ] (8)
[b=-αβcos θsin φ] (9)
[c=αβcos θcos φ-sin θsin φ] (10)
当且仅当[Δx]和[Δy]非常大时,[fx,y]无限接近1或-1,表示正方形区域内灰度极大值点。
通过关联数据来度量角点拟合的效果,定义相关系数[ζ]为:
[ζF,I;x0,y0,α,β,θ,φ=CovF,IVarFVarI] (11)
式中:[Cov·]为两个变量的协方差;[Var·]为变量的方差方差;[I]为以角点为中心的矩形区域[R]的实际灰度分布;[F]为双曲正切模型[f]拟合的棋盘角点[x0,y0T]的灰度分布。若F与I具有很强关联性,[ζ]的值接近1,说明角点拟合效果好;若F与I不具备关联性,[ζ]的值为0,说明角点拟合效果差。
2 角点检测算法
首先,采用灰度差分与模板相结合的筛选策略进行初始角点集的筛选[17];然后,应用一种区域灰度自适应角点检测算法获取候选角点集;最后,对候选角点进行优化,从而剔除伪角点并获取亚像素级棋盘角点。
2.1 筛选初始角点集
由于原始光场图像数据量很大,为提高角点检测算法的效率,减少不必要的计算,本文采用灰度差分与模板相结合的筛选策略。为减少模板匹配图像时的工作量,本文采用覆盖像素较少的8领域环形模板,如图2所示。
对于某一像素,首先計算像素上下两个方向上的灰度差分绝对值,若上下两个灰度差分绝对值中至少有一个灰度差分绝对值大于给定的筛选阈值t,则计算左右两个方向上的灰度差分绝对值,否则进行下一个像素的筛选;若左右两个灰度差分绝对值中至少有一个灰度差分绝对值也大于给定的筛选阈值t,则采用8领域环形模板进行再次筛选,否则进行下一个像素的筛选。计算图像中每个像素[x,y]上下左右四个方向上灰度差分绝对值的计算公式如下:
[d1=Ix,y-Ix-1,yd2=Ix,y-Ix,y-1d3=Ix,y-Ix+1,yd4=Ix,y-Ix,y+1] (12)
对于利用灰度差分绝对值筛选出的目标像素,计算模板内任一像素与目标像素的灰度差的绝对值,当其值小于等于设定的阈值[t]时,则认为该像素与目标像素是相似的,统计模板内与之相似的像素数目[nx,y],计算公式如下:
[cu,v=1 , Ix,y-Iu,v≤t0, Ix,y-Iu,v>t ] (13)
[nx,y=cu,v] (14)
式中:[u,v]和[x,y]分别为模板上像素和目标像素的坐标;[t]为灰度差阈值。
在棋盘图像中通常存在4种像素类型:平坦区域点、噪声点、边缘点和角点。因此当模板遍历目标像素时,存在以下4种情况:当模板处于平坦区域点时,模板内像素都与目标像素相似;当模板处于噪声点时,模板内无像素与目标像素相似;当模板处于边缘点时,模板内存在5个像素与目标像素相似;当模板处于角点时,模板内与目标像素相似的像素数目介于噪声点与边缘点之间,即相似像素数目处于闭区间[1,4]上。因此若目标像素的像素数目在闭区间[1,4]上,则将目标像素视为初始角点,由初始角点构成的集合称为初始角点集,否则将其视为非角点。
2.2 精细化初始角点集
由于微透镜边界产生的渐晕效应,许多微图像边缘被错误地检测为角点。此外,Raytrix系列的光场相机具有不同类型焦距的微透镜,导致微图像模糊,难以准确地提取棋盘角点。针对以上问题,本文使用一种特定的方法来检测微图像中具有亚像素精度的棋盘角点,以确保所有棋盘角点被检测为候选角点。该方法通过检测适当区域内图像灰度值最大和最小两个方向的轴线,如图3中的黑白虚线所示,得到两条轴线的交点即为角点。
假定[ρ=xcos θ+ysin θ], 其中,[ρ]是白色虚线与原点之间的距离,[θ]是白色虚线与[y]轴(规定向下为[y]轴方向)之间的夹角,如图 3b) 所示。该算法在[K×K]微图像[I]上:[1,K×1,K→0,1]。
设对[ρ],[θ]分别离散化得到等距值[P,Θ],其中[ρ∈0,1,2,…,K2,θ∈0,…,π。]
设线[L:L=Pi,Θj∈P×Θ],将线上所有像素按累积强度排序:
[VL,I=x=1KII≥th-x=1KII≤tl] (15)
式中:[I]为像素[x,y]处的灰度值;[x,Ρi,Θj]为已知的;[th,tl]分别为最大强度阈值和最小强度阈值。
定义[L:L1]为微图像[I]中最高累积强度的线,[L2]为微图像[I]中最小累积强度的线,如图3所示,[L1](黑色虚线)和[L2](白色虚线)交点构成一个有效的角点。
[VL1,IVL2,1-I-1≤Vthresh] (16)
设定[ρ∈0,1,2,…,K2,θ∈θL1+π2+β,][β∈-π5,π5,]([ρdisc,θdisc]离散化),经算法处理后得到候选角点集。
2.3 剔除伪角点
通过牛顿迭代法来获取候选角点的最优值[ζ],令[p=x0,y0,α,β,θ,φT],有:
[pk=pk-1-H-1?pζpk-1] (17)
式中:[H]是[ζ]的Hessian矩阵;[pk]为[p]的第[k]次迭代。设定初始值为[p0=x00,y00,1,1,0,0T,]其中[x00,y00T]是由初始角点检测算法所获取的候选角点坐标。 当[pk-pk-1<εε=10-6,]结束迭代(通常需要5~6次迭代才能达到最大值)。对候选角点进行最优处理后,设定实际容噪比和非线性失真误差,使用角点最大相关系数[ζ]消除伪角点,同时保留真实角点。如果候选点为真实棋盘角点,则最佳相关系数通常大于0.95。如果候选角点是伪角点,[ζ]会很小。通过优化得到角点的系数值、几何信息和精确坐标,从而剔除伪角点,同时精确定位真实角点。
3 实验结果与分析
本文使用来自德国的50 mm镜头的Raytrix R42光场相机和陶瓷标定板(13[×]10个角点),原始光场图像的像素大小为3 858×2 682。拍摄各种姿势下棋盘标定板的10张图像,用于角点检测算法实验验证和光场相机标定[18]。实验装置如图4所示。
3.1 角点检测误差
为了验证本文算法的有效性,采用本文算法、Harris算法、FAST算法分别对原始光场图像进行角点检测实验。在本文算法中设定[th=0.5,tl=0.3,Vthresh=1,ρdisc=0.25,θdisc=π50],优化后得到实验结果如表1所示。通过比较几种检测方法,本文算法检测到的角点最多,同时检测速率也优于其他算法。
表2给出了几种算法的角点检测误差。可以看出,本文所提算法角点检测的最小像素误差为0.12像素,最大误差为6.97像素,比其他算法的误差小了一个数量级,验证了本文算法的优越性。
3.2 角点的标定误差
为评价本文算法的可靠性,計算原始光场图像各角点的标定误差,结果如表3所示。通过拍摄的8幅原始光场图像得到的标定结果中,角点的标定误差小于23 mm,平均相对误差均小于3%,验证了本文算法的可行性。
3.3 标定重投影误差
将本文算法用于光场相机标定实验中,图5给出了Raytrix R42光场相机每种微透镜的平均重投影误差,平均值约为0.83像素,并与文献[18]中的标定方法进行比较,本文算法比文献[18]中所获得的1.72像素小了一个数量级。实验结果表明,本文所提算法可以实现高精度的光场相机标定。
4 结 语
针对现有算法不能精确快速定位原始光场图像中的亚像素棋盘角点和有效区分边缘点,本文通过分析原始图像像素类型及其性质,提出了用双曲正切模型拟合亚像素棋盘角点灰度分布的角点检测算法。通过使用灰度差分与模板的筛选策略,得到初始角点集;然后基于区域灰度变化的自适应角点检测算法,精化初始角点集;最后建立双曲正切模型,从而精确拟合亚像素角点的灰度分布,实现高精度亚像素棋盘角点检测并剔除伪角点。实验结果表明,本文所提算法精度高,能够为高精度的光场相机标定提供可靠依据。
参考文献
[1] 张春萍,王庆.光场相机成像模型及其参数标定方法综述[J].中国激光,2016,43(6):270?281.
ZHANG Chunping, WANG Qing. Survey on imaging model and calibration of light field camera [J]. Chinese journal of lasers, 2016, 43(6): 270?281.
[2] 冯焕飞.三维重建中的相机标定方法研究[D].重庆:重庆交通大学,2013.
FENG Huanfei. Research on camera calibration method in three?dimensional reconstruction [D]. Chongqing: Chongqing Jiaotong University, 2013.
[3] BOK Y, JEON H G, KWEON I S. Geometric calibration of micro?lens?based light?field cameras using line features [J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 39(2): 287?300.
[4] ZHANG C, JI Z, WANG Q. Decoding and calibration method on focused plenoptic camera [J]. Computational visual media, 2016, 2(1): 57?69.
[5] XU S, ZHOU Z L, DEVANEY N. Multi?view image restoration from plenoptic raw images [C]// Proceedings of Asian Conference on Computer Vision. Cham: Springer, 2015: 3?15.
[6] 孙东辉,鞠秀亮,冯登超,等.基于FAST检测器和SURF描述子的聚合图像人脸识别[J].国外电子测量技术,2016,35(1):94?98.
SUN Donghui, JU Xiuliang, FENG Dengchao, et al. Aggregated image face recognition based on FAST detector and SURF descriptor [J]. Foreign electronic measurement technology, 2016, 35(1): 94?98.
[7] HA J E. Automatic detection of chessboard and its applications [J]. Optical engineering, 2009, 48(6): 1?8.
[8] ESCALERA A D L, ARMINGOL J M. Automatic chessboard detection for intrinsic and extrinsic camera parameter calibration [J]. Sensors, 2010, 10(3): 2027?2044.
[9] 章为川,程冬,朱磊.基于各向异性高斯核的多尺度角点检测[J].电子测量与仪器学报,2012,26(1):37?42.
ZHANG Weichuan, CHENG Dong, ZHU Lei. Multi?scale corner detection based on anisotropic Gaussian kernels [J]. Journal of electronic measurement and instrument, 2012, 26(1): 37?42.
[10] HARRIS C, STEPHENS M. A combined corner and edge detector [C]// Proceedings of the 4th Alvey Vision Conference. Manchester: [s.n.], 1988: 147?152.
[11] ROSTEN E, PORTER R, DRUMMOND T. Faster and better: a machine learning approach to corner detection [J]. IEEE transactions on pattern analysis and machine intelligence, 2010, 32(1): 105?119.
[12] 王民,周兆镇,李昌华,等.基于像素点灰度差的Harris角点检测算法[J].计算机工程,2015,41(6):227?230.
WANG Min, ZHOU Zhaozhen, LI Changhua, et al. Harris corner detection algorithm based on pixel point gray difference [J]. Computer engineering, 2015, 41(6): 227?230.
[13] 刘亮,王平,孙亮.基于区域灰度变化的自适应FAST角点检测算法[J].微电子学与计算机,2017,34(3):20?24.
LIU Liang, WANG Ping, SUN Liang. Adaptive FAST corner detection algorithm based on regional grayscale change [J]. Microelectronics & computer, 2017, 34(3): 20?24.
[14] CHEN D, ZHANG G. A new sub?pixel detector for x?corners in camera calibration targets [C]// Proceedings of 13th International Conference in Central Europe on Computer Graphics, Visualization, and Computer Vision. Plzen: Science Press, 2005: 97?100.
[15] LIU Y, LIU S, CAO Y, et al. A practical algorithm for automatic chessboard corner detection [C]// Proceedings of 2014 IEEE International Conference on Image Processing. Pairs: IEEE, 2014: 3449?3453.
[16] LUCCHESE L, MITRA S K. Using saddle points for sub?pixel feature detection in camera calibration targets [C]// Proceedings of Asia?Pacific Conference on Circuits and Systems. Denpasar: IEEE, 2002: 191?195.
[17] 张立亭,黄晓浪,鹿琳琳,等.基于灰度差分与模板的Harris角点检测快速算法[J].仪器仪表学报,2018,39(2):218?224.
ZHANG Liting, HUANG Xiaolang, LU Linlin, et al. Fast Harris corner detection based on gray difference and template [J]. Chinese journal of scientific instrument, 2018, 39(2): 218?224.
[18] NOURY C A, TEULIERE C, DHOME M. Light?field camera calibration from raw images [C]// Proceedings of IEEE 2017 International Conference on Digital Image Computing: Techniques and Applications. Sydney: IEEE, 2017: 1?5.