版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021-01-30相机标定的原理与意义及OpenCV、Matlab实现差异小结分类:OpenCV 点滴 2021-01-30 20:35 2292 人阅读 评论3收藏 举报本文是一篇关于相机标定意义和原理的个人总结,包含了OpenCV和Matlab中常用的相机标定函数的注解。相机标定是机器视觉的根底,标定结果的好坏直接决定了机器视觉的系统精度,作用可见一斑。在这一年半的时间里,我个人也是随着实验和程序的进一步理解,对标定的原理和意义有了更多的想法。同样,由于博文的关系,仍有一些朋友会常常询问标定的程序问题。本人的2021-05-17OpenCV标定程序的问题也屡次被朋友询问,由于当时对标定的
2、认识还 不够系统,因此现在认为该文对标定的意义和原理有很多误解,并在此推荐一些较好的博文拱大家学习:双目测距与三维重建的OpenCV实现问题集锦一图像获取与单目标定;双目测距与三维重建的OpenCV实现问题集锦二双目标定与双目校正;双摄像头测距的OpenCV实现;分享一些OpenCV实现立体视觉的经验 ;下面结合本人的毕业论文及一年半来对机器视觉的学习,对相机标定的意义和原理进行 表达。1.单目相机模型单目相机模型中的三种坐标系关系如图1所示,相机坐标系即是以光轴中心O为原点的坐标系,其z轴满足右手法那么,成像原点 所代表平面即为像平面坐标系实际应用中, 均以图像左上角为坐标系原点,实际物体坐
3、标系即为世界坐标系。i ,图1单目相机模型的三坐标系统关系其中,P在世界坐标系的值为,匕是P在像平面坐标系的投影点,其相机坐标系的值为 区匕。日是相机坐标系Z轴与像平面夹角,一般情况下Z轴与像平面垂直,8值为附。且相机坐标系 必与像平面甲为平行,为相机的焦距。对于从相机坐标系到像平面坐标系的变换,像平面坐标系是用像素单位来表示的,而相机坐标系那么是以毫米为单位来表示, 因此,要完成改变换过程就需要先得到像平面的像素单位与毫米单位之间的线性关系。在图1中,相机光轴中心z轴方向上与像平面的交点0称为投影中心,坐标为,是像素单位,而每个像素在 小和丫1的物理尺寸为 多和,单位是像素/毫米,那么像平面
4、的像素与毫米间的线性关系如式1根据小孔模型下投影变换原理,像平面的物理坐标用产对应的相机坐标系满足式2:-/YN. cos5丫4 ES (2)其对应的矩阵形式为式3,即为相机的6个内参数,其组成的矩阵即为内参数矩阵。对于从相机坐标系到世界坐标系的变换,是通过旋转矩阵R和平移矩阵T完成的,如图2所示。_ 一3 =3 !, h 一 F1 1图2相机坐标系与世界坐标系的变换关系其中,平移矩阵T是三维列向量,旋转矩阵R是坐标轴依次绕 入,和轴旋转角度 妁夕和f所形成的三个矩阵用凡的总乘积。它们的定义如式5:,J O01R炉=3 押snip-打材cos;CQ5中0-融口何0 1 0 sin/ 0 cos
5、9?;cos r smr口、-sinr cosr 0口 口 5联立式1和式3,得到式4即为相机坐标系与像平面坐标系变换的矩阵。其中,那么矩阵R的计算公式如式6旋转矩阵,匕为平移矩阵,该变换矩阵称为外参数矩阵。最后,联立式4和式7求得像平面坐标系与世界坐标系之间的变换关系,如式8:其中,即为透视投影矩阵,表示空间中三维点坐标与图像平面二维坐标之间的线性TT关系,3V 1表示P.的像平面齐次坐标值,:Y. . 1表示F的世界坐标系齐次坐标值。基于以上几何原理和相机模型得到的图像信息和三维信息之间的关系,存在不可逆性,即可以通过世界坐标系的坐标值求得二维坐标值,如果要进行二维坐标到三维坐标的反求还需
6、要其他的数学模型辅助求解。2.Matlab标定工具箱应用1制作标定板,标定板尺寸为324mmX252mm,即7行9列63个36mm的正方形方因此,从相机坐标系到世界坐标系的变换如式7,其中,正表示小口 口,R为(8)格组成,如图3所示。图3标定方格板2将水平平行的左右相机同时采集标定板的不同位姿图像,共计12组位姿对于采集的图像,位姿越多,标定结果也会越精确,建议在10组到20组之间如图4,5所示。图4左相机的标定图像图5右相机的标定图像3在工具箱中通过Extract grid corners提取每幅标定图像的特征点即黑方格与白方格的 交点。4进行单目标定,得到左右相机的内外参数以及畸变系数,
7、并将参数保存到Calib_Results_left和Calib_Results_right两个mat格式的文件中。3.Matlab标定结果与OpenCV标定结果的比拟与分析Matlab标定结果:结果。图6左相机的内参数和畸变系数* * h h fabfab I I:m m,府m m iuEhiuEhIKWLmtiLmti力也utiutiMI*emitemitI I kdUwkdUwiiii图7右相机的内参数和畸变系数对于左右相机由于透镜畸变造成的误差使用工具箱中的visualize_distortions功能进行分析,可以得到左相机的畸变图,如8、9、10所示,相应的右相机畸变图,如11、12
8、、13所示。图8左相机镜头畸变图通过上节的步骤(1)-(4),可以得到如图6和7所示的左右相机的内参数、畸变系数W W r r I I 8:48:4 kikiI IJ| | a a 4 4 -a-aH i i I I* * 44 lklk * * JBUJBU vCHAvCHA , , MWMW叶胪 X 物 M M-d.龈 0|0|4H4H将加鼻,1,1 时, e跳 WUWUnMM-*S9-*S9r rn npMapMa . . 4Mlf4Mlf干n n8Rnft8RnftJ J ?agag1mH1mH-I2-I2 凶.由 EllEll1 1户 W W;Y Y图10左相机切向畸变图对于图8到1
9、0,图中的0点即为左相机光学中心, 图中的箭头显示相机图像的畸变方向。图8左相机整体畸变模型中,该相机的左侧畸变不明显,假设物体的图像在此那么不易受畸变因素影响造成线条的弯曲;图9左相机径向畸变模型中,该相机的畸变系数由中心向外增大,即物体的图像越靠近图像边缘,其线条的弯曲程度就越大;图10左相机切向畸变模型中,箭头方向显示该相机切向畸变的增大方向,在相机的左侧其切向畸变与径向畸变的方向相反,使得整体畸变模型中,相机左侧的畸变较小。riE.JMMlriE.JMMl* *性H.TWH.TW1 1l!l!Ei,ftft,IfIf第 I I十驯毒叱 B 乂口.AIEIKHiHi*/*/*&X
10、 号 1 1 |n|n 0 0孑用 早WTMJWTMJ:图9左相机径向畸变图GwFihJWtGwFihJWt flifli lMlM EMEM 时。格:卡Tkfig4MMTkfig4MM Co*tt|KMWVCo*tt|KMWV CfCf *#*# 口|此旧杭*I IHAHA NfNf MtMt 皿图13右相机切向畸变图图11右相机镜头畸变图, 卜rM * 3噌!,小1f图12右相机径向畸变图*- 1*$rwhrwh i iwnwn- - L11LWH.JMMIL11LWH.JMMI. . 9-iMMa,9-iMMa, 4141噌U41,0U41,0 一|*,广,:MHMH 扣,叩 7 7Ut
11、miMjUtmiMj (e(e y y MIWMIW G G1 1 WJWJ H3 10该式9 - 10与式1相对应。而Matlab中的cc对应于式1中的相机光轴中 心在图像平面的投影坐标,fc即为式1中的4和%。至此,讲解完了OpenCV与Matlab所对应的相机标定内参数矩阵的含义。OpenCV与Matlab标定中的差异:OpenCV的标定参数中,对于镜头畸变采用的方法是Brown博士在71年发表的文章中提到的;而Matlab中的镜头畸变参数采用基于Heikkil博士提出的方法,将非线性干扰因素 引入到内外参数的求解过程。Heikkil米用5x1的矩阵占kAP2助 来表示以上的两种畸变系数
12、。 根据Brown的非线性模型, 用,图3图4图5也和总表示镜头的径向畸变系数,通常只使用 左,左两项,总只是针对 即便较大的镜头例如鱼眼镜头,其余情况下该系数值为0,而P1和P】表示切向畸变系数,由式11和式12求解该矩阵,本文的畸变系数求解伴随在相机标定过程中。总产。+居十城+媾11其中,二/是像平面上的任一点坐标值,鼻血加,加hl是进行径向畸变矫正后的坐标24 6值,r J,,是r作为光学中心畸变为o的点进行泰勒级数展开后得到的。 2Plz+引1 + 2彳, 川,+2月+4J2其中,冗,是像平面上的任一点坐标值,%那么过/岫群血!是进行切向畸变矫正后的j + e坐标值,/J如式11的定义
13、相同。4.外参数的作用及其在相机标定中的意义外参数定义了如图2所示的图像平面到世界坐标系的变换关系。而标定就是通过相机寻 找图像平面中如图3所示的标定板的特征点位置,所以得到的外参数是图像平面与标定板 所处平面的线性变换关系。在我的2021-06-14基于Matlab的双目视觉定位问题研究 中,通过Matlab标定工具箱产生的图4与图5就可以表达上述含义。因此,对于不同的棋盘格标定板空间位置,必然对应于不同的外参数矩阵。同样的,在视觉伺服中, 雅可比矩阵也有同样的数学意义。对于视觉伺服, 个人认为可以看些徐德的论文入门。5.OpenCV标定程序说明用于寻找图像中的棋盘格标定板的特征点:CvSi
14、ze board_sz = cvSize( board_w, board_h );IplImage*imgLeft=cvCreateImage(cvSize(imgL-width,imgL-height),imgL-depth,imgL-nChanne ls);IplImage*imgRight=cvCreateImage(cvSize(imgR-width,imgR-height),imgR-depth,imgR-nCha nnels);CvPoint2D32f* cornersLeft = new CvPoint2D32f board_n ;CvPoint2D32f* cornersRig
15、ht = new CvPoint2D32f board_n ;int corner_countLeft, corner_countRight;cvResize(imgL,imgLeft,CV_INTER_LINEAR);cvResize(imgR,imgRight,CV_INTER_LINEAR);if(frame+ % board_dt = 0) /Find chessboard corners:int foundLeft = cvFindChessboardCorners(imgLeft, board_sz, cornersLeft, &corner_countLeft,CV_CA
16、LIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS);int foundRight = cvFindChessboardCorners(imgRight, board_sz, cornersRight, &corner_countRight,CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS);/Get Subpixel accuracy on those cornerscvCvtColor(imgLeft, grayLeft, CV_BGR2GRAY);/if input is
17、colorful then use thiscvCvtColor(imgRight, grayRight, CV_BGR2GRAY);cvFindCornerSubPix(grayLeft, cornersLeft, corner_countLeft,cvSize(11,11),cvSize(-1,-1),cvTermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 30, 0.1 );/寻找棋盘格标定 板的特征点cvFindCornerSubPix(grayRight, cornersRight, corner_countRight,cvSize(11,1
18、1),cvSize(-1,-1),cvTermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 30, 0.1 ); /寻找棋盘格标 定板的特征点/画出找到的特征点cvDrawChessboardCorners(imgLeft, board_sz, cornersLeft, corner_countLeft, foundLeft);cvDrawChessboardCorners(imgRight, board_sz, cornersRight, corner_countRight, foundRight);if (corner_countLeft=board_n & foundLeft & corner_countRight=board_n & foundRight)/保存特征点在图像坐标中的坐标值,用于Calibrate2和StereoCalibration的调用step = success*board_n;for( int i=step, j=0; jCV_MAT_ELEM(*image_pointsLeft, float,i,0) = corner
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职酒店管理(前厅运营管理)试题及答案
- 2025年中职导游服务(应急处理)试题及答案
- 2025年高职抗菌药物合理应用(用药指导规范)试题及答案
- 2025年高职(护理)护理操作试题及答案
- 2026年物流配送(时效保障)试题及答案
- 2025年中职体育保健与康复(运动损伤防护)试题及答案
- 上海市宝山区2026届初三一模物理试题(含答案)
- 2025轻定制趋势白皮书
- 上海市金山区2026届初三一模英语试题(含答案)
- 2026河南新乡市长垣市怀德小学教师招聘备考题库含答案详解
- 汽车充电站安全知识培训课件
- 世说新语课件
- 全体教师大会上副校长讲话:点醒了全校200多名教师!毁掉教学质量的不是学生是这7个环节
- 民航招飞pat测试题目及答案
- T-CDLDSA 09-2025 健身龙舞彩带龙 龙舞华夏推广套路技术规范
- DB35-T 2278-2025 医疗保障监测统计指标规范
- GB/T 46561-2025能源管理体系能源管理体系审核及认证机构要求
- GB/T 19566-2025旱地糖料甘蔗高产栽培技术规程
- 2025年浙江辅警协警招聘考试真题含答案详解(新)
- 节能技术咨询合同范本
- 去极端化条例解读课件
评论
0/150
提交评论