几种摄像机标定方法的比较
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
然后根据需要 ,可以任取其中有代表性的若干 个点 (一般是 n ×n 个 )最后利用这些坐标值直接参 与标定计算. 这样不仅保证了图像点坐标的精度 ,也 提高了最终标定结果的精度. 得到图像点后 ,可以 根据预先设定好的三维点的世界坐标 ,直接进行标 定计算.
2007年 10月 霍长娟 ,等 : 几种摄像机标定方法的比较
m m 11 m 12 m 13 m 14 m 21 m 22 m 23 m 24 m 31 m 32 m 33
点数
55
134. 772 5 15. 515 4
- 42. 876 1 183. 978 1 199. 124 7 - 5. 647 8 126. 914 5 - 48. 818 3
0. 018 4 - 0. 020 0
图 1 标定模板 F ig. 1 Ca libra tion tem pla te
该方法易于个人实现 ,操作简单 ,但是由于人工 的操作量比较大 ,所以标定精度还有待于提高 ,针对 这点 ,下文提出了基于 OpenCV 的标定.
·76·
图 2 角点检测图 F ig. 2 Corners detecting
3 标定实验分析
3种标定方法使用同一个模版 ,如图 1所示. 在 这个模版上都采用 64或更多个点进行标定 ,当然随 着标定点数的增多 ,误差也会越来越小. 首先 ,用人 工的方式对数据进行采集 ,然后用 matlab工具根据 上述原理进行标定 ,得出的结果见表 1.
表 1 人工标定结果 Tab. 1 The result of manua l ca libra tion
The research and im plem en t of the cam era ca libra tion
HUO Chang2juan, ZHAN G Hua, D EN G X i
( School of Computer Science and Technology, Tianjin University of Technology, Tianjin 300191, China)
2 基于 O penCV的标定
本文提出了基于 OpenCV 的标定方法. OpenCV 是 Intel µ 开源计算机视觉库. 它由一系列 C函数和 少量 C + + 类构成 ,实现了图像处理和计算机视觉 方面的很多通用算法.
在设计上 ,由于要得到标定物图像上角点的坐 标 ,如果采用手工采集图像坐标的方式 ,则精度在特 别的要求下不能达到要求 ,因此在 OpenCV 的帮助 下 ,先利用角点检测来确定图像上的需要的角点 ,如 图 2所示.
收稿日期 : 2007203218. 第一作者 : 霍长娟 ( 1982— ) ,女 ,硕士研究生.
天 津 理 工 大 学 学 报 第 23卷 第 5期
Xw i
ui
m 11 m 12 m 13 m 14
Zci vi = m 21 m 22 m 23 m 24
0
0
0 0 - un Xw n - un Yw n - un Zw n
m 23
un m 34
0
0
0
0 Xw n Yw n Zw n 1 - un Xw n - un Yw n - un Zw n
m 24 m 31
vn m 34
m 32
m 33
这里的 ( Xw i , Yw i , Zw i )通过自制的模板来求得. 如图 1所示 :在摄像机前放置这样一个 8 ×8 的标 定模板 ,大小为 24 mm2 ×24 mm2 ,这里世界坐标系 选取为模板的坐标系 ,所以可以任意取每个方格角 点的坐标值 ,例如 : ( 24 , 48 , 72 ) . 而 ( ui , vi ) 是通过 摄像机获取的存于计算机中的图像坐标 , 本文采用 计算机编程来求得. 程序中图像大小为 640 ×480, 将光标表示成十字形 ,然后在计算机屏幕上单击图 像上各个黑白方格的交点 , 则会显示出 ( ui , vi )的坐 标 ,例如 ( 133, 433 ) , ( 175, 435 ) 等. 从式 ( 3 ) 可以 看出 m 34不影响取值 , 为方便实验 指定 m 34 = 1, 得 到所有相关 数据 后 , 利用 m atlab 工 具便 可计 算出 M ,也就是摄像机的参数.
Abstract: The function of the article is the research and imp lement of the camera calibration. By dint of the calibration tem2 p late the article uses three methods to imp lement calibration. First, manual calibration; Second, calibration based on OpenCV , the method ascertains the corner points and their coornidates on the calibration temp late automaticly and have a good p recision. Third, the software of ZHANG Zhen2you. Compared to manual calibration and the software of the Zhang2 Zhengyou, the method based on OpenCV is conveniency and very simp le, so it have a good p racticability. Key words: camer calivration; OpenCV; intrinisic parameter
霍长娟 , 张 桦 , 邓 熹
(天津理工大学 计算机科学与技术学院 , 天津 300191)
摘 要 : 本文针对摄像机参数标定进行了研究. 借助于标定模板 ,用三种方法予以实现. 其一 ,人工标定 ;其二 ,借助 于 OpenCV 的标定 ,该方法自动确定参照模板上的角点及其坐标值来计算摄像机的参数 ,提高了精度 ;其三 ,基于张 正友软件的标定. 相较于人工及张正友的标定 ,基于 OpenCV 的标定方便 、快捷 ,达到了较好的实用性. 关键词 : 摄像机标定 ; OpenCV; 内部参数 中图分类号 : TP39 文献标识码 : A
M 1 = 0 852 358
(5)
001 其次使用基于 OpenCV 的方法进行标定. 先使 用 OpenCV 中的函数自动检测出角点 ,然后计算出 坐标 ,再根据函 cvCalibrateCamera 计算出摄像机的 参数 ,得出实验结果如图 3所示.
图 3 O penCV标定结果 F ig. 3 The result of ca libra tion of O penCV
0. 145 1
65
132. 517 8 4. 837 2
- 58. 629 7 198. 810 0 202. 097 3
1. 646 5 112. 010 6 - 56. 141 6 - 0. 006 5
0. 018 8 0. 188 1
80
132. 235 8 - 2. 643 1 - 52. 156 3 203. 692 6 202. 575 3
最后使用张正友 [ 4 ]的软件进行标定 ,进行了几 次实验得出结果如图 4所示.
0
0
0 0 - u1 Xw1 - u1 Yw1 - u1 Zw1
m 13 m 14
u1 m 34
0
0
0
0 Xw1 Yw1 Zw1 1 - v1 Xw1 - v1 Yw1 - v1 Zw1
m 21
v1 m 34
⁝ ⁝ ⁝ ⁝ ⁝ ⁝ ⁝ ⁝ ⁝
⁝
⁝ × m 22 = ⁝
(3)
Xw n Yw 来自百度文库 Zw n 1
1 人工摄像机标定
线性摄像机的投影模型 [ 3 ]一般表示为
Xw
u
ax 0 u0 0
R t Yw
Zc v = 0 10
ay 0
v0 1
0 0T 0
1
= Zw
1
M 1M 2 Xw =M Xw
(1)
(1)式中 Zc 为空间一点 P 的 Z 轴方向上的坐标 ,
( u, v)是以象素为单位的图像坐标系的坐标 , M 1 只 与摄像机的内部结构有关 , 称为摄像机的内参数矩 阵;M2 完全由摄像机相对于世界坐标系的方位决 定 ,称为摄像机的外参数矩阵. Xw 为点 P 在世界坐 标系下的坐标. 求 M 的过程就称为摄像机的标定. 式 ( 1)又可以写为式
0. 866 8 113. 577 7 - 54. 313 2 - 0. 012 3
0. 028 0 0. 176 4
可以看出随着点数的增多 ,误差会逐渐减小 ,当 然人工的工作量也会越来越大. 由此得出的数据可 以根据文献 [ 3 ]中提到的算法求出摄像机的内参数
如式 (5)所示 :
897 0 352
Yw i
1
m 31 m 32 m 33 m 34
Zw i
1
其中 ( Xw i , Yw i , Zw i , 1 ) 为空间第 i点的坐标 ; ( uj, vi ,
1)为计算机内第 i点的图像坐标.
(2)
为求出 M ,便于用 matlab求解 ,本文在实验中对
式 (2)进行处理得到
m 11
m 12
Xw1 Yw l Zw l 1
第 23卷 第 5期 2007年 10月
天 津 理 工 大 学 学 报 JO URNAL O F T IANJ IN UN IVERS ITY O F TECHNOLO GY
文章编号 : 16732095X (2007) 0520075203
几种摄像机标定方法的比较
Vol. 23 No. 5 Oct. 2007
这里用到部分函数 ,以下给出说明. CvPoint2D32f / /二维浮点坐标上的点 cvCalibrateCamera / /对相机单精度定标 cvFindChessboardCorners / /发 现 棋 盘 内 部 角 / / 点的大概位置 cvD rawChessboardCorners/ /在 图 像 中 绘 制 简 / / 单的和复杂的轮廓 实验中同样通过摄像机得到计算机内表示的图 像 ,不同的是 ( ui , vi )不用人工进行计算 ,而是通过程 序自动寻找角点进而得出角点坐标 ,如图 2所示 :程 序中的角点坐标是二维浮点坐标, 定义为 CvPoint2D32f,用 cvFindChessboardCorners 这个函数 来发现图像内部角点的大概位置 ,找到角点后便于 观察 , 这里使用函 cvD rawChessboardCorners在图像 中绘制简单的轮廓 ,即用不同颜色的线把这些点连 接起来. 得到所需要的数据后 ,便可通过函数 cvCali2 b ra teCam e ra对摄像机进行标定 . 为了比较前两种标定方法 ,这里还采用了张正 友 [ 4 ]的软件进行了标定. 这个软件所用的开发工具 为 matlab,考虑了摄像机的畸变等因素 ,它主要通过 多幅图片进行不同角度的旋转而进行标定.
摄像机标定是计算机视觉的研究问题之一 ,是 通过二维 图 像 获 取 三 维 空 间 信 息 的 关 键 和 必 要 步 骤. 摄像机标定可以分为 3种不同的形式 :基于标定 物的方法 ,自标定方法 [ 1 ]和基于主动视觉 [ 2 ]的标定 方法. 基于标定物的方法是指用一个结构已知 、加工 精度很高的标定块作为空间参照物 ,通过空间点和 图像点之间的对应关系来建立摄像机模型参数的约 束 ,通过优化算法来求取这些参数. 基于自标定的方 法需要控制摄像机做严格的运动 ,稳定性较差 ,而主 动视觉一般又难以实现. 相比于自标定和基于主动 视觉的标定方法 ,基于标定物方法的优点是可以使 用任意的摄像机模型 ,标定精度高 ,因此当应用场合 所要求的精度很高时 ,常选用这种方法. 本文在传统 摄像机标定的基础上 ,采用一幅角点信息已知的图 样作为标定模板 ,分别用 3种方法进行了标定 ,并对 结果进行了比较.
2007年 10月 霍长娟 ,等 : 几种摄像机标定方法的比较
m m 11 m 12 m 13 m 14 m 21 m 22 m 23 m 24 m 31 m 32 m 33
点数
55
134. 772 5 15. 515 4
- 42. 876 1 183. 978 1 199. 124 7 - 5. 647 8 126. 914 5 - 48. 818 3
0. 018 4 - 0. 020 0
图 1 标定模板 F ig. 1 Ca libra tion tem pla te
该方法易于个人实现 ,操作简单 ,但是由于人工 的操作量比较大 ,所以标定精度还有待于提高 ,针对 这点 ,下文提出了基于 OpenCV 的标定.
·76·
图 2 角点检测图 F ig. 2 Corners detecting
3 标定实验分析
3种标定方法使用同一个模版 ,如图 1所示. 在 这个模版上都采用 64或更多个点进行标定 ,当然随 着标定点数的增多 ,误差也会越来越小. 首先 ,用人 工的方式对数据进行采集 ,然后用 matlab工具根据 上述原理进行标定 ,得出的结果见表 1.
表 1 人工标定结果 Tab. 1 The result of manua l ca libra tion
The research and im plem en t of the cam era ca libra tion
HUO Chang2juan, ZHAN G Hua, D EN G X i
( School of Computer Science and Technology, Tianjin University of Technology, Tianjin 300191, China)
2 基于 O penCV的标定
本文提出了基于 OpenCV 的标定方法. OpenCV 是 Intel µ 开源计算机视觉库. 它由一系列 C函数和 少量 C + + 类构成 ,实现了图像处理和计算机视觉 方面的很多通用算法.
在设计上 ,由于要得到标定物图像上角点的坐 标 ,如果采用手工采集图像坐标的方式 ,则精度在特 别的要求下不能达到要求 ,因此在 OpenCV 的帮助 下 ,先利用角点检测来确定图像上的需要的角点 ,如 图 2所示.
收稿日期 : 2007203218. 第一作者 : 霍长娟 ( 1982— ) ,女 ,硕士研究生.
天 津 理 工 大 学 学 报 第 23卷 第 5期
Xw i
ui
m 11 m 12 m 13 m 14
Zci vi = m 21 m 22 m 23 m 24
0
0
0 0 - un Xw n - un Yw n - un Zw n
m 23
un m 34
0
0
0
0 Xw n Yw n Zw n 1 - un Xw n - un Yw n - un Zw n
m 24 m 31
vn m 34
m 32
m 33
这里的 ( Xw i , Yw i , Zw i )通过自制的模板来求得. 如图 1所示 :在摄像机前放置这样一个 8 ×8 的标 定模板 ,大小为 24 mm2 ×24 mm2 ,这里世界坐标系 选取为模板的坐标系 ,所以可以任意取每个方格角 点的坐标值 ,例如 : ( 24 , 48 , 72 ) . 而 ( ui , vi ) 是通过 摄像机获取的存于计算机中的图像坐标 , 本文采用 计算机编程来求得. 程序中图像大小为 640 ×480, 将光标表示成十字形 ,然后在计算机屏幕上单击图 像上各个黑白方格的交点 , 则会显示出 ( ui , vi )的坐 标 ,例如 ( 133, 433 ) , ( 175, 435 ) 等. 从式 ( 3 ) 可以 看出 m 34不影响取值 , 为方便实验 指定 m 34 = 1, 得 到所有相关 数据 后 , 利用 m atlab 工 具便 可计 算出 M ,也就是摄像机的参数.
Abstract: The function of the article is the research and imp lement of the camera calibration. By dint of the calibration tem2 p late the article uses three methods to imp lement calibration. First, manual calibration; Second, calibration based on OpenCV , the method ascertains the corner points and their coornidates on the calibration temp late automaticly and have a good p recision. Third, the software of ZHANG Zhen2you. Compared to manual calibration and the software of the Zhang2 Zhengyou, the method based on OpenCV is conveniency and very simp le, so it have a good p racticability. Key words: camer calivration; OpenCV; intrinisic parameter
霍长娟 , 张 桦 , 邓 熹
(天津理工大学 计算机科学与技术学院 , 天津 300191)
摘 要 : 本文针对摄像机参数标定进行了研究. 借助于标定模板 ,用三种方法予以实现. 其一 ,人工标定 ;其二 ,借助 于 OpenCV 的标定 ,该方法自动确定参照模板上的角点及其坐标值来计算摄像机的参数 ,提高了精度 ;其三 ,基于张 正友软件的标定. 相较于人工及张正友的标定 ,基于 OpenCV 的标定方便 、快捷 ,达到了较好的实用性. 关键词 : 摄像机标定 ; OpenCV; 内部参数 中图分类号 : TP39 文献标识码 : A
M 1 = 0 852 358
(5)
001 其次使用基于 OpenCV 的方法进行标定. 先使 用 OpenCV 中的函数自动检测出角点 ,然后计算出 坐标 ,再根据函 cvCalibrateCamera 计算出摄像机的 参数 ,得出实验结果如图 3所示.
图 3 O penCV标定结果 F ig. 3 The result of ca libra tion of O penCV
0. 145 1
65
132. 517 8 4. 837 2
- 58. 629 7 198. 810 0 202. 097 3
1. 646 5 112. 010 6 - 56. 141 6 - 0. 006 5
0. 018 8 0. 188 1
80
132. 235 8 - 2. 643 1 - 52. 156 3 203. 692 6 202. 575 3
最后使用张正友 [ 4 ]的软件进行标定 ,进行了几 次实验得出结果如图 4所示.
0
0
0 0 - u1 Xw1 - u1 Yw1 - u1 Zw1
m 13 m 14
u1 m 34
0
0
0
0 Xw1 Yw1 Zw1 1 - v1 Xw1 - v1 Yw1 - v1 Zw1
m 21
v1 m 34
⁝ ⁝ ⁝ ⁝ ⁝ ⁝ ⁝ ⁝ ⁝
⁝
⁝ × m 22 = ⁝
(3)
Xw n Yw 来自百度文库 Zw n 1
1 人工摄像机标定
线性摄像机的投影模型 [ 3 ]一般表示为
Xw
u
ax 0 u0 0
R t Yw
Zc v = 0 10
ay 0
v0 1
0 0T 0
1
= Zw
1
M 1M 2 Xw =M Xw
(1)
(1)式中 Zc 为空间一点 P 的 Z 轴方向上的坐标 ,
( u, v)是以象素为单位的图像坐标系的坐标 , M 1 只 与摄像机的内部结构有关 , 称为摄像机的内参数矩 阵;M2 完全由摄像机相对于世界坐标系的方位决 定 ,称为摄像机的外参数矩阵. Xw 为点 P 在世界坐 标系下的坐标. 求 M 的过程就称为摄像机的标定. 式 ( 1)又可以写为式
0. 866 8 113. 577 7 - 54. 313 2 - 0. 012 3
0. 028 0 0. 176 4
可以看出随着点数的增多 ,误差会逐渐减小 ,当 然人工的工作量也会越来越大. 由此得出的数据可 以根据文献 [ 3 ]中提到的算法求出摄像机的内参数
如式 (5)所示 :
897 0 352
Yw i
1
m 31 m 32 m 33 m 34
Zw i
1
其中 ( Xw i , Yw i , Zw i , 1 ) 为空间第 i点的坐标 ; ( uj, vi ,
1)为计算机内第 i点的图像坐标.
(2)
为求出 M ,便于用 matlab求解 ,本文在实验中对
式 (2)进行处理得到
m 11
m 12
Xw1 Yw l Zw l 1
第 23卷 第 5期 2007年 10月
天 津 理 工 大 学 学 报 JO URNAL O F T IANJ IN UN IVERS ITY O F TECHNOLO GY
文章编号 : 16732095X (2007) 0520075203
几种摄像机标定方法的比较
Vol. 23 No. 5 Oct. 2007
这里用到部分函数 ,以下给出说明. CvPoint2D32f / /二维浮点坐标上的点 cvCalibrateCamera / /对相机单精度定标 cvFindChessboardCorners / /发 现 棋 盘 内 部 角 / / 点的大概位置 cvD rawChessboardCorners/ /在 图 像 中 绘 制 简 / / 单的和复杂的轮廓 实验中同样通过摄像机得到计算机内表示的图 像 ,不同的是 ( ui , vi )不用人工进行计算 ,而是通过程 序自动寻找角点进而得出角点坐标 ,如图 2所示 :程 序中的角点坐标是二维浮点坐标, 定义为 CvPoint2D32f,用 cvFindChessboardCorners 这个函数 来发现图像内部角点的大概位置 ,找到角点后便于 观察 , 这里使用函 cvD rawChessboardCorners在图像 中绘制简单的轮廓 ,即用不同颜色的线把这些点连 接起来. 得到所需要的数据后 ,便可通过函数 cvCali2 b ra teCam e ra对摄像机进行标定 . 为了比较前两种标定方法 ,这里还采用了张正 友 [ 4 ]的软件进行了标定. 这个软件所用的开发工具 为 matlab,考虑了摄像机的畸变等因素 ,它主要通过 多幅图片进行不同角度的旋转而进行标定.
摄像机标定是计算机视觉的研究问题之一 ,是 通过二维 图 像 获 取 三 维 空 间 信 息 的 关 键 和 必 要 步 骤. 摄像机标定可以分为 3种不同的形式 :基于标定 物的方法 ,自标定方法 [ 1 ]和基于主动视觉 [ 2 ]的标定 方法. 基于标定物的方法是指用一个结构已知 、加工 精度很高的标定块作为空间参照物 ,通过空间点和 图像点之间的对应关系来建立摄像机模型参数的约 束 ,通过优化算法来求取这些参数. 基于自标定的方 法需要控制摄像机做严格的运动 ,稳定性较差 ,而主 动视觉一般又难以实现. 相比于自标定和基于主动 视觉的标定方法 ,基于标定物方法的优点是可以使 用任意的摄像机模型 ,标定精度高 ,因此当应用场合 所要求的精度很高时 ,常选用这种方法. 本文在传统 摄像机标定的基础上 ,采用一幅角点信息已知的图 样作为标定模板 ,分别用 3种方法进行了标定 ,并对 结果进行了比较.