基于OpenCV的视觉测量技术中摄像机标定方法

合集下载

基于OpenCV的多视角视觉测量系统标定

基于OpenCV的多视角视觉测量系统标定

技术创新《微计算机信息》(测控自动化)2009年第25卷第11-1期360元/年邮局订阅号:82-946《现场总线技术应用200例》软件天地基于OpenCV 的多视角视觉测量系统标定Calibration for Multi-Angles Vision Measuring System Based on OpenCV(天津科技大学)李旭王永强许增朴于德敏LI Xu WANG Yong-qiang XU Zeng-pu YU De-min摘要:分析了线结构光式多视角视觉测量系统的标定方法,给出了基于开源视觉库OpenCV 的多视角视觉测量系统标定算法的处理流程,实现了一个完整的多视角视觉测量系统标定模块的开发。

实验证明该方法简便,易行。

关键词:摄像机标定;多视角;视觉测量系统;OpenCV 中图分类号:TP391文献标识码:AAbstract:The principle of camera calibration method for multi -angles vision measuring system is analyzed.The processing flow of the calibration method is given based on Open Source Computer Vision library.The camera calibration software for multi-angles vi -sion measuring system is realized.The experiment proves that the method is easy and user-friendly.Key words:Camera calibration;Multi-angles;Vision measuring system;OpenCV文章编号:1008-0570(2009)11-1-0204-031引言在线结构光多视角视觉测量系统应用中,系统标定通常是既繁琐又关键的技术环节,由于算法复杂,目前还没有一种通用有效的标准方法。

基于OpenCV的视觉测量技术中摄像机标定方法

基于OpenCV的视觉测量技术中摄像机标定方法

基于OpenCV的视觉测量技术中摄像机标定方法
程建璞;项辉宇;于修洪
【期刊名称】《北京工商大学学报(自然科学版)》
【年(卷),期】2010(028)001
【摘要】以视觉测量系统中的摄像机标定为研究对象,分析了开源计算机视觉库OpenCV中的摄像机模型,并考虑了镜头的畸变及求解方法,得出基于OpenCV的摄像机标定方法.该方法利用了OpenCV的函数库,简化了标定求解过程,提高了标定速率,并具有良好的移植性,适合于其他视觉测量系统.
【总页数】5页(P38-42)
【作者】程建璞;项辉宇;于修洪
【作者单位】北京工商大学,机械工程学院,北京,100048;北京工商大学,机械工程学院,北京,100048;北京工商大学,机械工程学院,北京,100048
【正文语种】中文
【中图分类】TP242.6+2;TS976.9
【相关文献】
1.基于OpenCV的焊缝跟踪系统中摄像机标定方法 [J], 赖小波;朱世强;曹新星
2.基于OpenCV的车体覆盖件视觉测量的摄像机标定 [J], 程建璞;项辉宇
3.基于OpenCV的CCD摄像机标定方法 [J], 雷铭哲;孙少杰;陈晋良;陶磊;魏坤
4.基于OpenCV和本质矩阵的双目立体视觉摄像机标定方法 [J], 蓝福明;杨宜民
5.基于OpenCV的红外与可见光双摄像机标定方法研究 [J], 任贵文
因版权原因,仅展示原文概要,查看原文内容请购买。

基于OpenCV的CCD摄像机标定方法_雷铭哲_孙少杰_陈晋良_陶磊_魏坤

基于OpenCV的CCD摄像机标定方法_雷铭哲_孙少杰_陈晋良_陶磊_魏坤

MethodofCCDCameraCalibrationBasedOnOpenCVLEIMing-zhe1,SUNShao-jie2,CHENJin-liang1,TAOLei1,WEIKun1(1.North Automation Control Technology Institute ,Taiyuan 030006,China ;2.Navy Submarine Academy ,Qingdao 266042,China)Abstract:Computervisionhasbeenwidelyusedinindustry,agriculture,military,transportationareaandsoon.Cameracalibrationisveryimportantandalsothekeyresearchfieldofvisionsystem.ThispapermainlyresearchesonthemethodofCCDcameracalibration,thepin-holemodelhasbeenintroducedandappliedinprocessofcalibration.Specially,inordertoimprovetheaccuracy,bothradialandtangentiallensdistortionhavebeentakenintoaccountduringtheimplementofcalibrationbasedonOpenCV.Thiskindofarithmetichaspracticalvalueontheapplicationdesignofimageprocessingandcomputervision,andexperimentresultsshowgoodprecision,whichcanmeettheapplicationneedofvisualinspectionorothervisionsystemswell.Keywords:pin-holemodel,cameracalibration,lensdistortion,OpenCV摘要:计算机视觉在工业,农业,军事,交通等领域都有着广泛应用。

学习笔记:使用opencv做双目测距(相机标定+立体匹配+测距).

学习笔记:使用opencv做双目测距(相机标定+立体匹配+测距).

学习笔记:使⽤opencv做双⽬测距(相机标定+⽴体匹配+测距).最近在做双⽬测距,觉得有必要记录点东西,所以我的第⼀篇博客就这么诞⽣啦~双⽬测距属于⽴体视觉这⼀块,我觉得应该有很多⼈踩过这个坑了,但⽹上的资料依旧是云⾥雾⾥的,要么是理论讲⼀⼤堆,最后发现还不知道怎么做,要么就是直接代码⼀贴,让你懵逼。

所以今天我想做的,是尽量给⼤家⼀个明确的阐述,并且能够上⼿做出来。

⼀、标定⾸先我们要对摄像头做标定,具体的公式推导在learning opencv中有详细的解释,这⾥顺带提⼀句,这本书虽然确实⽼,但有些理论、算法类的东西⾥⾯还是讲的很不错的,必要的时候可以去看看。

Q1:为什么要做摄像头标定?A: 标定的⽬的是为了消除畸变以及得到内外参数矩阵,内参数矩阵可以理解为焦距相关,它是⼀个从平⾯到像素的转换,焦距不变它就不变,所以确定以后就可以重复使⽤,⽽外参数矩阵反映的是摄像机坐标系与世界坐标系的转换,⾄于畸变参数,⼀般也包含在内参数矩阵中。

从作⽤上来看,内参数矩阵是为了得到镜头的信息,并消除畸变,使得到的图像更为准确,外参数矩阵是为了得到相机相对于世界坐标的联系,是为了最终的测距。

ps1:关于畸变,⼤家可以看到⾃⼰摄像头的拍摄的画⾯,在看矩形物体的时候,边⾓处会有明显的畸变现象,⽽矫正的⽬的就是修复这个。

ps2:我们知道双⽬测距的时候两个相机需要平⾏放置,但事实上这个是很难做到的,所以就需要⽴体校正得到两个相机之间的旋转平移矩阵,也就是外参数矩阵。

Q2:如何做摄像头的标定?A:这⾥可以直接⽤opencv⾥⾯的sample,在opencv/sources/sample/cpp⾥⾯,有个calibration.cpp的⽂件,这是单⽬的标定,是可以直接编译使⽤的,这⾥要注意⼏点:1.棋盘棋盘也就是标定板是要预先打印好的,你打印的棋盘的样式决定了后⾯参数的填写,具体要求也不是很严谨,清晰能⽤就⾏。

之所⽤棋盘是因为他检测⾓点很⽅便,and..你没得选。

opencv的相机标定方法

opencv的相机标定方法

opencv的相机标定方法
OpenCV提供了多种相机标定方法,其中最常用的是棋盘格标
定法。

下面是使用棋盘格标定相机的步骤:
1. 准备一副棋盘格图片,棋盘格的每个方格必须是完整的黑白交替的。

2. 使用摄像机拍摄多幅图片,确保棋盘格图片处于不同的位置和角度,同时保持棋盘格在整个图像中都可见。

3. 初始化标定板格点的三维坐标数组和图像中对应点的二维坐标数组。

4. 使用OpenCV的函数`findChessboardCorners()`在每个图像中
查找棋盘格的角点,并将其保存在图像对应的二维坐标数组中。

5. 使用OpenCV的函数`drawChessboardCorners()`在每个图像
上绘制出检测到的角点。

6. 使用OpenCV的函数`calibrateCamera()`计算相机的畸变系数和相机矩阵。

7. 使用OpenCV的函数`undistort()`去除图像的畸变。

8. 使用OpenCV的函数`imshow()`显示校正前后的图像进行对比。

9. 使用OpenCV的函数`getOptimalNewCameraMatrix()`获取校正后图像的新相机矩阵。

10. 使用OpenCV的函数`initUndistortRectifyMap()`获取校正后图像的映射矩阵。

11. 使用OpenCV的函数`remap()`将原始图像映射到校正后图像。

通过以上方法,可以完成相机的标定和校正,得到更准确的图像处理结果。

基于OpenCV的双目立体视觉测距_摄像机标定

基于OpenCV的双目立体视觉测距_摄像机标定

基于OpenCV的双目立体视觉测距_摄像机标定论文导读::双目立体视觉模型。

摄像机标定。

立体匹配采用OpenCV库中的块匹配立体算法。

目前的测距方法主要有主动测距和被动测距两种方法。

论文关键词:双目立体视觉,摄像机标定,立体匹配,测距(一)引言基于计算机视觉理论的视觉测距技术是今后发展的一个重要方向,它在机器人壁障系统、汽车导航防撞系统等领域有着广泛的应用前景。

目前的测距方法主要有主动测距和被动测距两种方法。

论文采用的是被动测距法。

被动测距法是在自然光照条件下,根据被测物体本身发出的信号(如光信号)来测量距离,主要包括立体视觉测距法、单目测距法、测角被动测距法等[1]。

立体视觉测距法是仿照人类利用双目感知距离信息的一种测距方法,直接模拟人的双眼处理景物,简便可靠,但该方法的难点是选择合理的匹配特征和匹配准则[2]。

双目立体视觉系统采用两台摄像机同时从两个不同视点获取同一景物的多幅图像,即立体图像对,通过测量景物在立体图像对中的视差,再利用双目视觉成像原理就可以计算出目标到摄像机的距离。

立体匹配采用OpenCV库中的块匹配立体算法,在得到摄像机参数和匹配点后再利用最小二乘法即可算出三维信息。

(二)双目立体视觉模型首先介绍双目视觉所涉及到三个坐标系:世界坐标系、摄像机坐标系和图像坐标系。

世界坐标系中的点坐标记为,摄像机坐标系用表示。

图像坐标为摄像机所拍摄到的图像的二维坐标,一般有两种表示方法:是以像素为单位的图像坐标,是以毫米为单位的图像坐标。

建立以毫米为单位的图像坐标是因为坐标只表示了像素在数字图像中的行数和列数,并没有表示出该像素在数字图像中的物理位置[3]论文范文。

图1为平行双目视觉模型,即参数相同的两个摄像机平行放置,两光轴互相平行且都平行于z 轴,x 轴共线摄像机标定,两摄像机光心的距离为B(即基线距)。

图中O1、O2为左右两摄像机的焦点,I1 、I2为左右摄像机的像平面,P1 、P2 分别是空间点P(X,Y,Z)在左右像平面上的成像点,f是摄像机的焦距。

基于OpenCV的摄像机标定方法的实现

基于OpenCV的摄像机标定方法的实现
Ke r s: c mp trv so y wo d o u e iin;Ope CV;c me a mo e ;c me a c l r to n a r d l a r ai ain b
空间物 体表 面某 点 的三 维几何位 置 与其在 图
标定 法而 言 , 摄像 机标 定法 标定 结果稳 定 , 传统 精 度 较高 . 摄 像机 方 位 、 在 焦距 固定 不 变 的情况 下 , 往往 采用传 统摄像 机标 定法 . 开放 源代码 的计 算 机 视觉 类 库 ( pnSuc O e ore
M e h d o m e a Ca i r to s d o t o n Ca r lb a i n Ba e n Ope CV n
W ANG is e Ba— h ng,GAO u— a Yo nin,S HEN e —h n W nz o g
(colfEetc o e a dA t ai n i e n , h n hi n e i Sho o l r P w r n uo tnE gn r g S ag a i rt o ci m o ei U v sy f
第2 6卷 第 4期
上 海 电 力 学 院 学

Vo . 6, No 4 12 . Au . 2 1 g 0 0
21 0 0年 8月
J u n l o S a g a Un v r i o E e ti Po r o r a f hn hi i e st y f l crc we
位于俄 罗斯 的研究 实 验室 开 发 , 一 套 可免 费获 是 得 的 由一些 C函数和 c+ 类 所组 成 的库 , 来实 + 用 现 一些 常用 的图 像处 理 及 计 算 机 视 觉算 法 , 实 可

摄像机标定之OpenCV

摄像机标定之OpenCV

初学OpenCV之摄像机标定最近方向定下来是双目立体视觉,主要是做重建这块的研究。

大致过程是图像获取->摄像机标定->特征提取->匹配->三维重建,当然开始可以进行图像预处理,矫正,后期可以进行点云的进一步处理,如渲染表面使其更接近于现实物体。

图像获取相对来说比较简单,用相机拍摄目标物(大型场景或特定小型的室内物体)。

但有两点需要注意:1、双目重建所需的图像一般为两张,角度相差不应过大,否则公共部分太少以至于重建效果不佳;整个过程简便,成本也不高,但缺陷是只有两张图像的点云所表示的物体信息不会很全面;2、标定所需的图像又是另外拍摄的,用张正友标定法的话,把印有黑白棋盘格的图像粘至硬纸板上,然后左右摄像机各自进行拍摄,理论上获得角度(图像)越多,最终标定结果越精确;标定板见下图:这里主要结合OpenCV对左右摄像机标定做一个简单的介绍,望朋友们指正,一起交流、进步。

摄像机的标定问题是机器视觉领域的入门问题,可以分为传统的摄像机定标方法和摄像机自定标方法。

定标的方法有很多中常见的有:Tsai(传统)和张正友(介于传统和自定标)等,摄像机成像模型和四个坐标系(通用原理)。

摄像机模型采用经典的小孔模型,如图中Oc(光心),像面π表示的是视野平面,其到光心的距离为f(镜头焦距)。

四个坐标系分别为:世界坐标系(Ow),摄像机坐标系(Oc),图像物理坐标系(O1,单位mm),图像像素坐标系(O,位于视野平面的左上角,单位pix)。

空间某点P到其像点p的坐标转换过程主要是通过这四套坐标系的三次转换实现的,首先将世界坐标系进行平移和转换得到摄像机坐标系,然后根据三角几何变换得到图像物理坐标系,最后根据像素和公制单位的比率得到图像像素坐标系。

(实际的应用过程是这个的逆过程,即由像素长度获知实际的长度)。

ps:通过摄像头的标定,可以得到视野平面上的mm/pix分辨率,对于视野平面以外的物体还是需要通过坐标转换得到视野平面上。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Fig . 2 D iagram of converted coordinate
Xw km =
1
Zc
A
R
t
Yw Zw
212 坐标系转换
0
T
1
= A ( R t) M .
( 4)
图像坐标系的两种形式间的关系 :
1
u v = k
0 1
l
u0 v0
x y . ( 1)
1 其中 , ( R t) 为摄像机的外参数矩阵 , 为图像 T 点的齐次坐标 , M = ( X Y Z 1 ) 为三维空间点 的齐次坐标 . 这样就得到一个图像点和空间点之间
1
1
矩阵 A 包含了摄像机全部的 6 个内参 ( k, l, u0 , ) , 所以 A 称为摄像机的内参数矩阵 , 在不考 v0 , f,θ 虑摄像机坐标系偏斜度的情况 ,θ 可认为是 90 ° . 摄像机坐标系和世界坐标系的关系为 :
Xc Yc Zc Xw R3 ×3 t3 ×3 Yw Zw
=
0
f
2
θ - l v0 - u0 k lcos
f
2 2 2
.
( 5)
θ v0 l + u0 k - 2 u0 v0 k lcos θ - l v0 - u0 k lcos
f
2
f
2
+1
40
北京工商大学学报 (自然科学版 ) 2010 年 1 月
从式 ( 5 ) 可以看到 , B 是一个对称矩阵 , 于是可 以定义一个 6 维向量来表示它 : b = ( B 11 B 12 B 22 B 13 B 23 B 33 ) , 然后可以得到 : hi B hj = vij b, 其 中 , hi = ( hi1 hi2 hi3 ) 为透视投影矩阵 H 的第 i 列 , 于是根据内参数的约束关系可以改写为 :
3 O penCV 标定方法
在 OpenCV 函数库里已经提供了可以直接调用 的利用黑白格标定板进行标定的一系列函数 , 因而 本文采用 OpenCV 函数库进行摄像机标定研究 , 进 而提出以下摄像机标定算法 : 1 ) 读取一组标定用图像数据 , 为了达到较为精 确的效果 , 选用 7 幅光轴不平行的图像 (如图 3 ) .
1 系统整体介绍
本系统可分为 3 个模块 , 即测量旋转工作台 、 图 像采集模块和分析处理模块 . 图 1 为以车体覆盖件 视觉测量系统为例的结构框图 . 视觉测量的成功与 否很大程度上取决于摄像机标定是否成功 .
收稿日期 : 2009 - 10 - 19 基金项目 : 北京市自然科学基金 资助项目 ( 3083018 ) ; 北 京市属 市管高 校中青年骨干 教师计 划和北 京市优 秀人才培养资 助 项目
( 20061D0500300138) .
作者简介 : 程建璞 ( 1984 —) ,男 ,山西太原人 ,硕士研究生 ,研究方向为先进制造技术及计算机视觉技术 ; 项辉宇 ( 1966 —) ,男 ,山东青岛人 ,教授 ,主要从事先进制造技术方面的研究 . 通讯作者 .
第 28 卷 第 1 期 程建璞等 : 基于 OpenCV 的视觉测量技术中摄像机标定方法
T
1
.
( 3)
1
T
1
其中 , R3 ×3 = ( rx ry rz ) 为旋转矩阵 , t3 ×1 =
( tx , ty , tz ) 为平移向量 , ( R t) 称为摄像机的外参
数矩阵 . 综合式 ( 2 ) 和 ( 3 ) 可以得出世界坐标系到 图像坐标系的一个线性变换 :
图 2 坐标转换示意
基于 O penCV的视觉测量技术中摄像机标定方法
程建璞 项辉宇 于修洪
(北京工商大学 机械工程学院 , 北京 100048 )
摘 要 : 以视觉测量系统中的摄像机标定为研究对象 , 分析了开源计算机视觉库 OpenCV 中的摄 像机模型 ,并考虑了镜头的畸变及求解方法 ,得出基于 OpenCV 的摄像机标定方法 . 该方法利用了 OpenCV 的函数库 ,简化了标定求解过程 ,提高了标定速率 ,并具有良好的移植性 , 适合于其他视觉 测量系统 . 关键词 : 视觉测量 ; OpenCV; 摄像机标定 + 中图分类号 : TP24216 2; TS97619 文献标志码 : A 视觉测量技术 是一种图像检测技术 , 其基本 任务之一是从摄像机获取的图像信息出发计算三维 空间中物体的几何信息 , 并由此重建和识别物体 , 而 空间物体表面某点的三维几何位置与其在图像中对 应点之间的相互关系是由摄像机成像的几何模型决 定的 , 这些几何模型参数就是摄像机参数 . 在大多 数条件下 , 这些参数必须通过实验与计算才能得到 , [2 ] 这个过程被称为摄像机标定 或称为定标 . 摄像机 标定问题大致分为两类 : 标定物标定和摄像机自标 定 . 本文提出的标定方法 只需要摄像机从不同 方向拍摄一个平面模板 (作为标定物 ) 的多幅图像 , 对于每个视点获得图像 , 提取图像上的网格角点 ; 平 面模板与图像间的网格角点对应关系 , 确定了单应 性矩阵 ; 那么对每幅图像 , 就可确定一个单应性矩 阵 , 这样就能够进行摄像机标定 ; 同时该方法也考虑 了镜头畸变的影响 . OpenCV ( open source computer vision library) 是 Intel公司开发的开源计算机视觉库 , 由一系列 C 函 数和少量 C + +类构成 , 实现了图像处理和计算机 视觉方面的很多通用算法 , 具备强大的图像和矩阵 运算能力 , 其中计算机视觉函数库包含图像处理 、 结 构分析 、 运动分析 、 对象跟踪 、 模式识别 、 摄像机定标
其中 k1 、 k2 为径向畸变系数 , ( x, y ) 为校正前的 图像坐标 , ( x, ^ y ^) 为校正后的图像坐标 . 由于透镜的 中心对称性 , 所以可以认为 x 和 y 方向上的径向畸 变率是相同的 , 于是有 : 2 2 2 2 2 u ^ = u + ( u - u0 ) [ k1 ( x + y ) + k2 ( x + y ) ], ( 8) 2 2 2 2 2 v ^ = v + ( v - v0 ) [ k1 ( x + y ) + k2 ( x + y ) ]. 其中 ( u, v) 为校正前的像素坐标 , ( u, ^ v ^) 为校正 后的像素坐标 . 通过给定 n 幅图像的 m 个点 , 用最 小二乘法 , 可解得方程组的解 , 求得 k1 、 k2 .
39
2 标定原理
211 世界坐标系 、 摄像机坐标系与图像坐标系
1
Zc
f k
-
f θ u0 cot k f
0 0 0
Xc Yc Zc
0 0
θ l sin
0
v0
=
1
Zc
A Pc.
( 2)
在视觉测量中常用到 3 个坐标系 : 世界坐标系 ( Xw , Yw , Zw ) 、 摄像机坐标系 ( X c , Yc , Z c ) 及图像像素 坐标系 ( u, v) 和图像物理坐标系 ( x, y ) , 如图 2.
h1 A
T
1
- T
A
- 1
h1 = h2 A
T
- T
A
- 1
h2 .
B 11 B = B 21 B 31
B 12 B 22 B 32
B 13 B 23 B 33
θ k lcos 2 f
l 2 f
2 2 2 2 2
θ - u0 k - k lv0 cos
f
2 2
2
=
θ k lcos 2 f θ - u0 k - k lv0 cos
5 ) 用 cvD rawChessboardCorners ( ) 函数 , 将提取
出的角点用红色圆圈标记 , 如果棋盘为完整的 , 则用 直线连接所有的角点 (如图 5 ) . 6 ) 将角点在世界坐标系的坐标值以及在图像
第 28 卷 第 1 期 程建璞等 : 基于 OpenCV 的视觉测量技术中摄像机标定方法
v12 ( v11 - v22 )
T T T T T T
b = 0.
( 6)
这样 , 如果取得 3 幅以上两两摄像机光轴不平 行的图像 , 就可以解得 b 的值 , 接着可以得到矩阵 A 的值 , 从而分解出所有的摄像机内参数 . 在获取内参数矩阵中的所有参数后 , 就可以根 据矩阵 A 来确定每幅图像的各个外参数 , 及旋转矩 阵 R 和平移向量 t . 214 畸变校正 由于透镜的结构特点 , 使透镜在成像过程中或 多或少会产生一些畸变 , 而其中又以径向畸变最为 明显 , 因而对畸变的校正就主要针对径向畸变 . 径向畸变的畸变方程 : 2 2 2 2 2 x ^ = x + x [ k1 ( x + y ) + k2 ( x + y ) ], ( 7) 2 2 2 2 2 y ^ = y + y [ k1 ( x + y ) + k2 ( x + y ) ].
t) .
213 求取摄像机参数
1
Zc
k
1
0 0
1
l
v0
0 0
f
0
1
θ sin 0
0 1
0 0
k 2 f
2
Yc Zc
=
透视投影矩阵 H 中包含了所有的摄像机参数 (内参 、 外参 ) , 可从中分解出各个摄像机参数 . R 为正交单位矩阵 , 可知 r1 和 r2 之间的关系 , 于是可得到最基本的内参约束关系 : T - T - 1 h1 A A h2 = 0,
2 ) 用 cvC reat M at ( ) 函数 , 分别为摄像机的内外
相关文档
最新文档