一种基于OpenCV的摄像机标定新方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种基于OpenCV的摄像机标定新方法

A Novel Method of Camera Calibration Based on OpenCV

李明金熊显名张绍兵

(桂林电子科技大学电子工程学院,广西桂林541004)

Li Mingjin Xiong Xianming Zhang Shaobing

(School of Electronic Engineering,Guilin University of Electronic Technology,Guilin,Guangxi541004,China)

摘要针对基于计算机视觉技术的空间方位测量系统研制过程中摄像机标定问题,分析了通用摄像机模型,深入讨论了镜头的径向畸变和切向畸变对标定精度的影响以及相应的解决办法。介绍了2D平面标定靶标制

作规范,给出了一种改进型SUSAN算子进行角点亚像素检测的方法,该方法具有速度快、定位精度高等优

点。在VC++6.0环境下调用OpenCV1.0库函数实现了摄像机的标定,在实现过程中充分利用了OpenCV

库函数,提高了标定精度和计算效率。

关键词摄像机标定;改进型SUSAN算子;OpenCV;镜头畸变;内部参数

Abstract For the camera calibration problem in research of spatial position measurement system based on computer vision technology,the general camera model is analysed,the influences and solutions of

lens radial distortion and tangential distortion are discussed.A2D planar pattern is built,and an

improved SUSAN operator for sub-pixel corner detection is proposed,which has high speed and

positioning accuracy.The camera calibration using the library functions of OpenCV1.0in VC++6.0is

achieved,which improves the calibration accuracy and calculation efficiency.

Key words camera calibration;improved SUSAN operator;OpenCV;lens distortion;intrinsic parameter

中图分类号:O436doi:10.3788/LOP20094612.0099

1引言

基于计算机视觉技术的空间方位测量系统的一个主要任务是根据摄像机获取的图像信息计算三维空间中物体的几何信息。图像上每一点的亮度反映了空间物体表面某点反射光的强度,而该点在图像上的几何位置则与空间物体表面相应点的几何位置有关。这些位置的相互关系由摄像机成像的几何模型所决定,这些几何模型的参数就是摄像机参数,实验与计算这些参数的过程称为摄像机标定[1]。

摄像机标定技术在视觉测量研究中占有非常重要的地位,是视觉测量工作中开展其他方面研究的基础。目前摄像机标定方法主要分为两大类:传统的摄像机标定方法和摄像机自标定方法。传统的摄像机标定方法,以利用最优化理论的标定算法和透视变换矩阵算法等为代表,这类算法通过建立参照物上三维坐标已知点与其图像点之间的对应关系来计算摄像机的内外参数,精确度高但计算复杂。摄像机自标定方法则不需要标定参照物,直接利用从图像序列中得到的约束关系来计算摄像机的内外参数,但自标定的精确度没有传统标定的高[2,3]。本文在传统摄像机标定的

基础上,借助于OpenCV强大的函数库给出了一种基于改进型SUSAN算子[4]进行角点检测的摄像机标定算法,该算法思路清晰,标定精度较高。

OpenCV是英特尔公司开发的开放型计算机视觉类库。它在数字图像处理和计算机视觉方面具有强大的功能,可轻松实现物体轮廓跟踪图像的几何处理、形态学处理图像特征提取、背景分离、主动轮廓算法、摄像机的校正、姿势的识别等众多操作[4]。OpenCV中的摄像机标定模块为用户提供了良好的接口,同时支持MS-Windows,Linux平台,具有良好的跨平台移植性,用户可以直接在组件的层次上实现个性化的标定应用,是实际工程当中理想的二次开发工具。

2摄像机模型及内外参数

为了更好地描述摄像机光学成像过程,根据世界坐标系、摄像机坐标系、像平面坐标系和计算机图像坐标系之间的相互关系[1],本文首先给出了摄像机的通用模型,如图1所示。其中XYZ坐标系为世界坐标系,xyz坐标系为摄像机坐标系,x′y′坐标系为像平面坐标系,uv坐标系为计算机图像坐标系。

由于透镜、成像平面与透镜光轴在空间位置上存在偏差等原因,像点、光心和物点并不能保证在同一条直线上,实际中的成像模型并不满足线性关系,而是一种非线性关系,需要引入透镜畸变,定义为

x=x d+d x(x,y),

y=y d+d y(x,y),(1)式中x d和y d分别表示实际的图像点的坐标,d x和d y 表示非线性畸变值的X,Y轴分量。

OpenCV中的非线性畸变,定义为

d x(x,y)=k1x(x2+y2)+p2(3x2+y2)+2p1xy,

d y(x,y)=k2y(x2+y2)+p1(3x2+y2)+2p2xy,(2)式中k1,k2为径向畸变,p1,p2为切向畸变。确定畸变系数是摄像机标定的重要步骤之一。

根据通用摄像机模型及其具体的成像模型,考虑摄像机可能出现的各种畸变,三维空间点w(X,Y, Z)的齐次坐标(X,Y,Z,1)在世界坐标系中投影到图像平面上像素坐标系(u,v)的过程为

z

c

u

v

1

=

a g u

0b v

001

R T

00

1

x

w

y

w

z

w

1

=A·M·X

w

=P·X

w

(3)

式中z

c

为任意比例因子a=f/d x,b=f/d y,f为摄像机的焦距,d x,d y为每一个像素在x轴与y轴方向上

的物理尺寸,g是图像坐标轴偏斜度参数,(u

,v

)为摄像机光轴平面交点在图像直角坐标系中的坐标,R为摄像机坐标系相对于世界坐标系的3×3的旋转矩阵,T为摄像机坐标系相对于世界坐标系的3×1平移矩阵,A为摄像机内参数矩阵(内参数矩阵只与摄像机内部结构有关,一旦计算出来,在焦距一定的情况下可以被重复使用),M为摄像机外参数矩阵,P为投影矩阵。

3摄像机标定方法和标定系统实现

3.1一种基于改进型SUSAN算子的棋盘格角点亚像

素检测

在基于2D平面靶标的摄像机标定中,角点位置提取对后续摄像机标定的精度产生重要影响[5],OpenCV 中用于角点检测的cvFindChessboardCorners()函数得到的只是一个大概的坐标,不能很好地满足更高精度的摄像机标定,针对这个问题采用了一种改进型SUSAN算子对棋盘格平面模板亚像素级角点进行检测并提取其坐标。首先用sobel算子检测图像边缘,然后对图像边缘处的像素进行SUSAN角点检测,最后用灰度平方重心法[6]进行亚像素角点定位,角点灰度的重心(x0,y0)为

x0=(i,j)∈M

Σiw(i,j)

(i,j)∈M

Σw(i,j)

,y0=(i,j)∈M

Σjw(i,j)

(i,j)∈M

Σw(i,j)

,(4)

式中w(i,j)为权值,M是用改进后的SUSAN算子检测到的角点邻域。该方法运算速度快,可以有效地实现角点亚像素定位,其重投影平均误差为0.215pixel。3.2标定系统实现

3.2.1标定靶标的制作及其图像拍摄规范

在OpenCV中利用这种改进型SUSAN算子进行

图1通用摄像机模型

相关文档
最新文档