作者简介:王凤艳(1970-),女,教授,博士.研究方向:工程测量.E-mail:wangfy@jlu.edu.cn
以计算机视觉中顾及径向和切向畸变的针孔模型为基础,引入测量平差理论,建立了基于计算机视觉和测量平差理论的相机标定数学模型,并以液晶显示屏棋盘格网作为相机标定参照物,以Microsoft Visual Studio为开发平台,利用MFC结合OpenCV编制了相机标定软件Camera Calibration 1.0。通过对数码相机Canon 5D Marx II的标定试验及与近景摄影测量商业软件Lensphoto的对比试验,得出标定参数的精度在±1 pixel内,验证了所建相机标定模型的正确性和相机标定软件Camera Calibration 1.0的可靠性,且利用所建相机标定模型实现了对标定参数的精度评定,从而克服了传统计算机视觉中只计算像点坐标重投影误差的单一精度评定方法的局限。最后,将研究成果用于长春市杨家沟采石场边坡结构面信息的勘察实践,获取了采石场边坡大量随机结构面的迹线和产状信息,为基于随机动力学的边坡稳定性评价提供了详实的基础数据。研究成果还可用于以非量测相机作为传感器的其他生产及科研工作。
On the basis of the pinhole model with radial and tangential distortions in computer vision, mathematical models of camera calibration based on computer vision and surveying adjustment fundamentals were established. Taking chess grid of Liquid Crystal Display (LCD) as reference object for camera calibration, Microsoft Visual Studio as the development platform, camera calibration software, Camera Calibration 1.0, was programmed based on MFC and OpenCV. Through calibration experiments for Canon 5D Marx II digital camera, and comparison with commercial software Lensphoto of close rang photogrammetry system, it was shown that the errors of calibration parameters were within ±1 pixel, and the correctness of the established camera calibration models was verified. The reliability of the Camera Calibration 1.0 software was validated. The precision evaluation of calibration parameters was achieved using the established calibration models, which overcomes the limit in conventional computer vision that only single precision for projecting errors of image point coordinates was evaluated. Furthermore, the method developed in this study was applied to the discontinuity investigation of the slope of Yangjiagou quarry in Changchun. The information of a large number of random discontinuities of rock mass slop was obtained to provide the full and accurate data for stability evaluation of the slop.
普通数码相机(非量测相机)的普及及其标定技术的日益成熟, 使其在很多领域发挥量测作用[1, 2, 3, 4]。与量测相机相比, 非量测相机内参数未知且镜头畸变较大, 用于量测作业时需进行标定, 获取内参数和畸变系数, 并根据其对所摄影像进行校正, 校正后的影像才能用于建模量测。非量测相机的标定是数字摄影测量关键技术之一, 它是获取相机像主点坐标(x0, y0)、主距(fx, fy)、畸变差系数(包括径向畸变、切向畸变等)、像元不正交性(dβ )和比例尺不一致性(ds)等的一个过程[5]。相机标定的典型方法有计算机视觉方法和摄影测量方法[6]。计算机视觉中, 有Zhang的平面格网法[7]和Tsai的两步法[8, 9]; 摄影测量方法有基于二维直接线性变换(2D-DLT)[10]、基于三维直接线性变换(3D-DLT)和共线方程的光束法平差[11, 12, 13]。从相机标定采用的人造参照物上, 分为室外控制场、室内控制场、简易三维刚体、平面格网、一维物体等[14, 15, 16, 17]。从现有标定方法看, 基于高精度的室外、室内控制场的标定精度高, 但推广难; 基于特制格网板、格网体的标定精度较高, 但很难制造出高精度格网; 基于建筑物垂直线的灭点法较为灵活, 但精度有限。尽管计算机视觉理论及摄影测量理论已经相当成熟, 但如何突破现有一些相机标定方法的局限, 研究方便快捷、灵活适用和较高精度的相机标定方法和软件, 仍值得进一步探讨。
为此, 本文从相机标定可靠性出发, 在借鉴摄影测量方法的基础上, 以计算机视觉中顾及畸变的针孔模型为基础, 结合测量平差理论[18], 建立了基于计算机视觉和测量平差理论的相机标定数学模型, 实现了标定参数的解算及其精度评定, 克服了传统计算机视觉中只进行像点坐标重投影误差的单一精度评定方法的局限。从相机标定便捷及灵活性出发, 研究了以液晶显示屏棋盘格网作为参照物的相机标定。从标定软件易编制性和易操作性出发, 以Microsoft Visual Studio为开发平台, 利用MFC结合OpenCV编制了标定软件Camera Calibration 1.0[19], 并与近景摄影测量商业软件Lensphoto相机标定结果进行对比。结果表明:基于计算机视觉和测量平差理论建立的相机标定数学模型, 可以实现相机的快速、高精度标定, 标定误差在± 1 pixel内。
计算机视觉中使用针孔摄像机模型, 即一幅视图是通过将三维空间中的点透视变换投影到图像平面上得到。OpenCV标定算法以针孔模型为基础, 引入透镜径向和切向畸变, 使成像模型更加真实地反映透镜的实际畸变情况。建立三维空间点P与其投影到图像平面上的像点p之间关系的过程可分解为4个步骤, 涉及4种坐标系(见图1), 即:物方坐标系OW-XWYWZW、相机坐标系O-xyz、像平面坐标系O'-x'y'和像平面像素坐标系O1-uv。
这4个步骤分别为:
(1)物方坐标系下P(XW, YW, ZW)变换到相机坐标系下P(x, y, z), 其过程可表示为:
式中:R为一个3× 3旋转矩阵; t为一个3× 1平移向量; rij(i, j=1, 2, 3)为旋转矩阵参数, 是关于相机姿态参数中旋转角(φ , ω , κ )的函数; ti为反映相机姿态的平移参数。
(2)相机坐标系下P(x, y, z)基于针孔模型规范化投影得到归一化坐标p'(x', y'), 其过程可表示为:
(3)归一化坐标p'(x', y')引入畸变校正后的结果为p″(x″, y″), 其过程可表示为:
式中:k1、k2均为径向畸变系数; p1、p2均为切向畸变系数; r2=x'2+y'2。
(4)畸变改正后的p″(x″, y″)变换到像平面像素坐标系下p(u, v), 其过程可表示为:
式中:fx、fy分别为相机在x、y方向的主距; (cx, cy)为像主点O'(摄影光轴与像平面交点)的坐标, 即O'在像平面像素坐标系O1-uv下的坐标; dx、dy分别为单位像素在x、y方向的物理尺寸(mm/pixel), 可根据传感器尺寸和分辨率计算, 视为已知。
综合步骤(1)(2)(4), 得到如下等价表达式:
式中:s为比例因子; p0=(u, v, 1)T为图像像素点的齐次坐标; P0=(X, Y, Z, 1)为空间点的齐次坐标; A为相机内参数矩阵; (R|t)为外参数矩阵。
式(5)表达了图像点p和空间点P间的映射关系, 进一步展开得到式(6):
式(6)表达了图像点p和空间点P之间的映射关系, 在顾及镜头畸变引起的像点坐标改正(式(3))后, 认为把物方坐标与像平面的像素坐标联系起来的参数共有3类:①相机的内参数(cx, cy, fx, fy); ②相机的外参数(t1, t2, t3, φ , ω , κ ); ③相机镜头畸变系数(k1, k2, p1, p2)。相机的外参数是指摄影时相机的姿态参数, 外参数随摄影时相机位置及姿态的变化而变化; 内参数是指像主点坐标和相机的主距, 它们与畸变系数一样, 相对稳定。因此, 相机标定参数是指相机的内参数(cx, cy, fx, fy)和畸变系数(k1, k2, p1, p2)。非量测相机的标定就是确定这些标定参数的过程。
根据引入透镜径向和切向畸变的针孔模型, 通过相机标定参数(cx, cy, fx, fy, k1, k2, p1, p2)和摄影时相机姿态参数(t1, t2, t3, φ , ω , κ ), 建立空间点P与其投影到像平面上像点p之间的联系, 如式(7)所示:
式中:x'、y'由式(8)计算; r2=x'2+y'2。
基于式(7)(8), 引入测量间接平差理论, 建立像点坐标观测值的误差方程式为:
式中:uij、vij为第j张像片的第i个像点坐标的观测值;
式(9)写成简化矩阵形式为:
最小二乘解为:
单位权中误差为:
式中:n为误差方程数量; t为待求未知数的数量。标定参数的中误差为:
式(9)~(13)即是把测量平差理论与计算机视觉相结合建立的相机标定参数解算及精度评定的数学模型。
以式(9)~(13)建立的相机标定数学模型为基础, 结合相机标定的方便快捷、灵活性要求及标定软件的易编制性和易操作性要求, 以液晶显示屏棋盘格网作为标定参照物, 以Microsoft Visual Studio为开发平台, 利用MFC结合OpenCV编制了相机标定软件Camera Calibration 1.0。
软件总体功能如下:①新建工程及生成不同规格的计算机屏幕棋盘格网; ②采用5摄站法从不同角度拍摄棋盘格网像片并导入工程; ③提取各像片上格网点的亚像素级坐标; ④计算相机的内参数、外参数及畸变系数; ⑤误差分析及重投影误差散点图的绘制; ⑥评定精度及生成相机标定报告; ⑦校正影像。图2为系统实现流程。
以Microsoft Visual Studio为平台, 采用MFC, 结合OpenCV, 基于计算机视觉和测量平差理论的相机标定数学模型, 编制相机标定与影像校正软件。编程中用到了OpenCV的cvCalibrateCmera2()、cvProjectPoints2()、cvUndistort2()等函数, 其余计算皆采用VC++自主开发完成。
(1)根据式(12)(13)进行单位权中误差及标定参数中误差的计算, 获取标定参数精度。
(2)像点的重投影误差计算及图形绘制。根据相机标定的内、外参数, 结合格网点的已知物方三维坐标(X, Y, Z), 运用cvProjectPoints获取格网点投影到像平面的坐标(x', y'), 再与像片格网点的提取坐标(x, y)比较得到误差, 并绘制重投影误差散点图来直观分析误差分布状况。在散点图上可追踪误差超限点, 重新提取其坐标并重新计算标定参数。
(3)格网点物方三维坐标的反演误差分析。根据相机标定的内、外参数, 结合像片格网点的提取坐标(x, y), 运用测量间接平差理论, 解算格网点的物方三维坐标(X', Y', Z'), 与其已知坐标(X, Y, Z)比较, 得到格网点X、Y、Z方向及点位中误差, 评定格网点三维坐标反演精度。
(1)试验环境
试验装置包括:计算机、待标定的Canon EOS 5D Marx II数码相机、28 mm定焦镜头。
采用5摄站旋转法定焦拍摄25张棋盘格网影像(见图3), 采集影像的分辨率为5616× 3744。
(2)试验结果及精度
将标定影像导入系统中, 经过格网点坐标提取、标定计算、误差反分析及精度评定等环节, 得到相机标定参数及其精度如表1所示。
根据表1, 结合Canon 5D Marx II像素大小(像素宽度为0.0064 mm, 像素高度为0.0064 mm), 可知标定参数精度在± 1 pixel内。把表1中求出的标定参数与格网点的物方坐标相结合, 进行像点坐标的重投影并绘制误差散点图(见图4), 图4表明像点坐标的重投影误差也在± 1 pixel内。同理, 把求出的标定参数与格网点的像点坐标相结合, 反演格网点的物方坐标并与格网点的已知坐标进行对比, 计算得到格网点物方坐标反演的实际精度为m=± 0.2 pixel。
(1)试验环境
试验装置包括:计算机; 武汉朗视软件公司基于张祖勋院士提出的多基线摄影测量原理而研发的数字近景摄影测量系统Lensphoto; 本文设计的标定软件Camera Calibration 1.0; 待标定的数码相机Canon EOS 5D Marx II; 28 mm定焦镜头。采集影像的分辨率为5616× 3744。
(2)试验结果分析
使用同一相机在相同的5个测站及拍摄角度, 分别对同一固定位置的标定参照物(本系统使用LCD棋盘格网, Lensphoto使用LCD规则散点)进行拍摄, 经各自标定软件处理得出的标定结果如表2所示。
从表2可以看出, 两个系统标定结果中, 焦距和主点只是在微米级出现差异, 畸变系数的数量级及符号均一致, 进一步验证了本文基于计算机视觉和测量平差理论的相机标定模型的正确性以及研发的相机标定软件Camera Calibration 1.0的可靠性。
以长春市净月潭杨家沟采石场边坡(见图5)的工程地质条件调查为例, 应用数字近景摄影测量技术, 以非量测相机为传感器摄取边坡影像, 结合边坡控制测量成果, 建立边坡三维模型, 解译边坡岩体大量随机结构面迹线、产状信息, 为边坡稳定性评价提供详实、准确、可靠的基础数据[20, 21]。
采用Canon 50D普通数码相机(像素宽度为0.00469 mm, 像素高度为0.00470 mm)对杨家沟采石场边坡进行了影像的获取, 共拍摄了7个像对。采用Camera Calibration 1.0进行相机标定, 标定结果及精度如表3所示。
把校正后的边坡影像与野外控制测量成果相结合, 采用数字摄影测量工作站VirtuoZo进行边坡三维建模。经检查, 模型点位测量精度在± 3 cm内, 确立边坡三维模型, 在模型上对结构面进行判识、量测及参数解算, 共提取1561条结构面的迹长和产状信息, 如表4所示, 其中α 为倾角, β 为倾向。
(1)建立了基于计算机视觉和测量平差理论的数码相机标定模型, 该模型准确、可靠, 不仅能计算像点坐标的重投影误差, 而且能计算物方空间的三维坐标反演误差, 尤其能评定出标定参数的精度, 克服了传统计算机视觉中只计算像点坐标重投影误差的单一精度评定方法的局限。
(2)开发了相机标定和影像校正系统Camera Calibration 1.0。以计算机屏幕棋盘格网为标定参照物, 以Microsoft Visual Studio为开发平台, 利用MFC结合OpenCV进行相机标定软件的编制。该软件具有操作便捷、适用性强、占用内存少、运行效率高的特点。对于棋盘格网点提取, 可以自动化批处理, 也可以人工添加、编辑, 适应性更强, 克服了以往相机标定软件中因角点提取失败不能求解而对标定像片拍摄的高要求。不仅实现了相机的快速、高精度标定, 而且能进行影像的畸变校正, 可以满足岩土工程勘察中岩质边坡结构面信息获取的需要。
(3)该系统的相机标定参数精度在± 1 pixel内, 能够达到国内外同类软件的技术水平。
(4)随着工程领域非接触测量需求的增加和相机标定技术的成熟, 非量测相机将发挥越来越重要的作用。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|
[20] |
|
[21] |
|