第28卷第1期38
2010年1月
北京工商大学学报(自然科学版)
JournalofBeijingTechnologyandBusinessUniversity(NaturalScienceEdition)
Vol128No11Jan.2010
文章编号:167121513(2010)0120038205
基于OpenCV的视觉测量技术中摄像机标定方法
程建璞 项辉宇 于修洪
(北京工商大学机械工程学院,北京 100048)
摘 要:以视觉测量系统中的摄像机标定为研究对象,分析了开源计算机视觉库OpenCV中的摄像机模型,并考虑了镜头的畸变及求解方法,得出基于OpenCV的摄像机标定方法.该方法利用了OpenCV的函数库,简化了标定求解过程,提高了标定速率,并具有良好的移植性,适合于其他视觉测量系统.
关键词:视觉测量;OpenCV;摄像机标定
中图分类号:TP242162;TS97619 文献标志码:A 视觉测量技术
[1]
+
是一种图像检测技术,其基本和三维重建等算法.OpenCV中摄像机标定模块为用户提供了良好的接口,同时支持Windows、Linux平台,极大地提高了开发效率,执行速度快,具有良
好的移植性,可以很好地应用于工程实际中.
任务之一是从摄像机获取的图像信息出发计算三维空间中物体的几何信息,并由此重建和识别物体,而空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数.在大多数条件下,这些参数必须通过实验与计算才能得到,这个过程被称为摄像机标定
[3]
[2]
1 系统整体介绍
本系统可分为3个模块,即测量旋转工作台、图像采集模块和分析处理模块.图1为以车体覆盖件视觉测量系统为例的结构框图.视觉测量的成功与否很大程度上取决于摄像机标定是否成功.
或称为定标.摄像机
标定问题大致分为两类:标定物标定和摄像机自标定.本文提出的标定方法只需要摄像机从不同方向拍摄一个平面模板(作为标定物)的多幅图像,对于每个视点获得图像,提取图像上的网格角点;平面模板与图像间的网格角点对应关系,确定了单应性矩阵;那么对每幅图像,就可确定一个单应性矩阵,这样就能够进行摄像机标定;同时该方法也考虑了镜头畸变的影响.
OpenCV(opensourcecomputervisionlibrary)是Intel公司开发的开源计算机视觉库,由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法,具备强大的图像和矩阵运算能力,其中计算机视觉函数库包含图像处理、结构分析、运动分析、对象跟踪、模式识别、摄像机定标
收稿日期:2009-10-19
[4]
图1 视觉测量系统示意
Fig.1 Figureofvisionmeasurementsystem
基金项目:北京市自然科学基金资助项目(3083018);北京市属市管高校中青年骨干教师计划和北京市优秀人才培养资助项目
(20061D0500300138).
作者简介:程建璞(1984)),男,山西太原人,硕士研究生,研究方向为先进制造技术及计算机视觉技术;
项辉宇(1966)),男,山东青岛人,教授,主要从事先进制造技术方面的研究.通讯作者.
第28卷第1期 程建璞等:基于OpenCV的视觉测量技术中摄像机标定方法39
2 标定原理
211 世界坐标系、摄像机坐标系与图像坐标系
在视觉测量中常用到3个坐标系:世界坐标系(Xw,Y摄像机坐标系(Xc,Yw,Zw)、c,Zc)及图像像素坐标系(u,v)和图像物理坐标系(x,y),如图2.
1Zc0
0
fk-fcotHu0
kflsinH0
v01
0Xc
Yc
1=APc.
0ZcZc01
(2)
矩阵A包含了摄像机全部的6个内参(k,l,u0,
v0,f,H),所以A称为摄像机的内参数矩阵,在不考虑摄像机坐标系偏斜度的情况,H可认为是90b.
摄像机坐标系和世界坐标系的关系为:
XcYcZc
=R3@30
T
Xw
t3@31
YwZw
.
(3)
11
其中,R3@3=(rx ry rz)为旋转矩阵,t3@1=(tx,ty,tz)为平移向量,(R t)称为摄像机的外参数矩阵.综合式(2)和(3)可以得出世界坐标系到图像坐标系的一个线性变换:
图2 坐标转换示意
Fig.2 Diagramofconvertedcoordinate
T
Xw
R1
km=AT
Zc0
tYw1
其中,(R t)为摄像机的外参数矩阵,为图像点的齐次坐标,M=(X Y Z 1)为三维空间点
的齐次坐标.这样就得到一个图像点和空间点之间的映射关系.
令H=KA(R t),其中K为比例系数,H称为透视投影矩阵,则有(h1 h21 h3)=KA(r1 r2 t).
213 求取摄像机参数
透视投影矩阵H中包含了所有的摄像机参数(内参、外参),可从中分解出各个摄像机参数.
R为正交单位矩阵,可知r1和r2之间的关系,于是可得到最基本的内参约束关系:
h1AAh2=0,h1AAh1=h2AAh2.
klcosH
2fl2f
2
2
22
2
T
-T
-1
T
-T
-1
T
-T
-1
T
212 坐标系转换
图像坐标系的两种形式间的关系:
uv=11k00
01l0
u0v01
xy.1(1)
1Zw
=A(R t)M.(4)
其中,像素点的大小为k@l.
这样,就可以在真实的物理尺寸和图像像素值之间进行坐标转换.
摄像机坐标系与图像像素坐标系转换关系:u1k00
01l0
u0v01
-fcotH00Xc
Yc
f000=sinHZcf0
0
10k
2f
2
1v=
Zc
11
-klv0cosH-u0k
f
2
2
2
B11
B=B21
B31
B12B22B32
B13B23=B33
klcosH2f-klv0cosH-u0k
2f
-lv0-u0klcosH
2f
2
2
.(5)
-lv0-u0klcosHv0l+u0k-2u0v0klcosH
+122ff
40北京工商大学学报(自然科学版) 2010年1月
从式(5)可以看到,B是一个对称矩阵,于是可以定义一个6维向量来表示它:b=(B11 B12 B22 B13 B23 B33),然后可以得到:hiBhj=vijb,其中,hi=(hi1 hi2 hi3)为透视投影矩阵H的第i列,于是根据内参数的约束关系可以改写为:
v12
(v11-v22)
T
TT
T
T
T
其中k1、k2为径向畸变系数,(x,y)为校正前的
图像坐标,(x^,y^)为校正后的图像坐标.由于透镜的中心对称性,所以可以认为x和y方向上的径向畸变率是相同的,于是有:
22222
u^=u+(u-u0)[k1(x+y)+k2(x+y)],
b=0.(6)
(8)22222v^=v+(v-v0)[k1(x+y)+k2(x+y)].其中(u,v)为校正前的像素坐标,(u^,v^)为校正
这样,如果取得3幅以上两两摄像机光轴不平行的图像,就可以解得b的值,接着可以得到矩阵A的值,从而分解出所有的摄像机内参数.
在获取内参数矩阵中的所有参数后,就可以根
据矩阵A来确定每幅图像的各个外参数,及旋转矩阵R和平移向量t.214 畸变校正
由于透镜的结构特点,使透镜在成像过程中或多或少会产生一些畸变,而其中又以径向畸变最为明显,因而对畸变的校正就主要针对径向畸变.
径向畸变的畸变方程:
22222
x^=x+x[k1(x+y)+k2(x+y)],
y^=y+y[k1(x+y)+k2(x+y)].
2
2
2
2
2
后的像素坐标.通过给定n幅图像的m个点,用最小二乘法,可解得方程组的解,求得k1、k2.
3 OpenCV标定方法
在OpenCV函数库里已经提供了可以直接调用的利用黑白格标定板进行标定的一系列函数,因而
本文采用OpenCV函数库进行摄像机标定研究,进而提出以下摄像机标定算法:
1)读取一组标定用图像数据,为了达到较为精确的效果,选用7幅光轴不平行的图像(如图3).
2)用cvCreaMtat()函数,分别为摄像机的内外参数、角点在世界坐标系的坐标值以及在图像坐标
(7)
系的坐标值分配矩阵存储空间.
图3 平面标定板
Fig.3 Planecameracalibrationplates
3)用cvFindChessboardCorners()函数,提取黑
白棋盘格角点位置,将每一幅图像数据分别代入该函数,如果该幅图像上提取的角点数目和设定的相同,则返回非零值,角点提取成功,角点像素坐标用链表形式存储;否则返回0,角点提取失败(如图4).
4)将cvFindChessboardCorners()函数提取出的图像像素坐标系中坐标值代入cvFindCornerSubPix()函数,进一步精确得到角点亚像素级的坐标值.
5)用cvDrawChessboardCorners()函数,将提取出的角点用红色圆圈标记,如果棋盘为完整的,则用直线连接所有的角点(如图5).
6)将角点在世界坐标系的坐标值以及在图像
图4 标定板角点提取
Fig.4 Cornersextractionofcalibrationplates
坐标系的坐标值代入cvCalibrateCamera2()函数,求出摄像机的内外参数.
7)根据计算得到的摄像机各内外参数,计算已
知角点三维坐标在图像上的投影坐标,将其与通过角点提取得到的投影坐标比较,得到一个误差值.
第28卷第1期 程建璞等:基于OpenCV的视觉测量技术中摄像机标定方法41
图5 软件界面Fig.5
interfaceofsoftware
出三维坐标,利用OpenCV提供的摄像机标定函数
4 实验设计与计算结果
实验采用DH2HV1303UM2TCCD相机,最高分
辨率1280@1024,像素尺寸为512Lm@512Lm,清晰度为750线,帧率为15帧/秒.使用VisualC++开发了摄像机标定的操作界面,可以快速调用OpenCV函数库,提高了系统的响应速度和适应性.
通过提取的黑白格标定板角点像素坐标可以得
可得摄像机的内外参数矩阵,部分数据见表1.
摄2531433
00
像
机
内
参
数
矩
阵:
025914660
127192712511021
-1195258
畸变系数:(011205 -010028296 01008346)
表1 多幅图像实验数据
Tab.1 Experimentaldataofmultiplepictures
第一幅{11798,21318,-01215}{-01241,01968,
01068}
旋转矩阵
{01939,01249,-01235}{-01244,01007,
-01969}
平移向量
第二幅{21000,11976,
01255}{01029,01938,
01344}{01995,01005,-01097}{-01093,01345,
-01933}
第三幅{01215,-21716,
-01054}
第四幅{-01032,310,
-01199}
第五幅{-01070,-21410,
-11123}{-01885,01241,
-01398}{-01149,01662,
01734}{01440,01709,-01549}{241527,-281424,
1491372}
第六幅{-01639,21425,
01699}{-01746,-01562,
01354}{-01287,01753,
01590}{-01599,01339,
-01724}{341625,-1619,
1621685}
第七幅{119,-21012,
01182}{-01116,-01943,
-01309}{-01872,01246,
-01421}{01474,01221,-01852}{141103,1313,
1091928}
旋转向量
{-01902,-01143,{-01998,-01018,
-01406}{-01159,01987,
01006}{01400,01070,-01913}
01046}{-01024,01991,
-01128}{-01044,-01128,
-01990}
{-71350,-32163,{-91015,-32193,{371330,-221877,{321319,-3410,
1211299}
1061043}
901870}
1791636}
参考文献:
5 结束语
在汽车覆盖件的视觉检测系统中,利用OpenCV开发的摄像机标定程序具有标定原理清
晰、标定过程简便、标定结果准确、应用方便、执行速度快、可移植性强等优点,能够达到汽车覆盖件应力应变分析需要的检测精度.同时可以在机器人操作系统和计算机视觉检测等领域广泛推广.
[1] 马颂德,张正友.计算机视觉)))计算理论与算法基
础[M].北京:科学出版社,1998:52-59.
[2] TsaiRY.Aversatilecameracalibrationtechniquefor
high)ac)curacy3Dmachinevisionmetrologyusingof2the2shelfTVcamerasandlenses[J].
IEEEJournalof
RoboticsandAutomation,1987,3(4):323-344.[3] 赵小松.摄像机标定技术的研究[J].机械工程学报,
2002,38(3):149-151.
42北京工商大学学报(自然科学版) 2010年1月
[4] ZhangZ.Aflexiblenewtechniqueforcameracalibration
[J].
IEEETransactionsonPatternAnalysisandMachineIntelligence,2000,22(11):1330-1334.[5] GibsonS,CookJ,Howard,eta.lAccuratecameracali2
brationforof2line,video)basedaugmentedreality[C].ProceedingsoftheIEEEandACMInternationalSymposi2umonMixedandAugmentedReality,2002:37-46.
[6] TianYuan2yuan,TanQing2chang.StudyofCCDlaser
rangefinderbasedonstaticimage[J].Micro)ComputerInformation(微计算机信息),2007,11(31):96-98.[7] 邱茂林,马颂德,李毅.计算机视觉中摄像机定标综
述[J].自动化学报,2000,26(1):43-55.
[8] DavidAForsyth,JeanPonce.计算机视觉)))一种现
代方法[M].北京:电子工业出版社,2004.
MEASUREOFOPENCVBASEDCAMERACALIBRATION
FORVISIONMEASUREMENTTECHNOLOGY
CHENGJian2pu, XIANGHui2yu, YUXiu2hong
(CollegeofMechanicalEngineering,BeijingTechnologyandBusinessUniversity,Beijing100048,China)Abstract:Fortheresearchoftechnologyofcameracalibration,thecameramodelinOpenCVisdis2
cussed,andconsideredontheinfluencesandmethodsoflensdistortion.Anarithmeticofcameracalibra2tionbasedonOpenCVisgiven.Thismethodmakesuseofthefunctionsofthelibraryeffectively,andim2provesthedeficiencyofcomputation,andhasagoodpropertyfortheapplicationtomulti2platform.ItCanmeettheneedsofothervisionmeasurementsystems.
Keywords:visionmeasuremen;tOpenCV;cameracalibration
(责任编辑:檀彩莲)
(上接第17页)
DEVELOPMENTOFNONDESTRUCTIVEDETECTION
TECHNIQUESOFPORKFRESHNESS
XUGuan2nan, GUOPei2yuan, YUANFang
(CollegeofInformationEngineering,BeijingTechnologyandBusinessUniversity,Beijing100048,China)Abstract:Inthispaper,porkfreshnessnondestructivedetectionissummarized,involvingNIRdetectiontechnique,AOSandATSdetectiontechniques,computervisiondetectiontechniqueandultrasonicdetec2tiontechnique.Accoringtotheprimaryissues,amulti2informationfusiontechnologywasputforwardinthispaper.Itwillbethemainresearchdirectionofporkfreshnessnondestructivedetectioninthefuture.Keywords:pork;freshness;nondestructivedetectiontechnique;
detectiontechnique
(责任编辑:邓清燕)
informationfusion;computervision