手机相机标定实验报告Word文档格式.doc
《手机相机标定实验报告Word文档格式.doc》由会员分享,可在线阅读,更多相关《手机相机标定实验报告Word文档格式.doc(5页珍藏版)》请在冰豆网上搜索。
1.2实验原理
1.2.1相机标定模型与方法
定义如下的四个坐标系来建立模型:
世界坐标系(三维):
用户定义的三维世界的坐标系,描述目标物在真实世界里的位置。
单位为m。
相机坐标系(三维):
在相机上建立的坐标系,从相机的角度描述物体位置,作为沟通世界坐标系和图像/像素坐标系的中间一环。
图像坐标系(二维):
描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系,方便进一步得到像素坐标系下的坐标。
单位为m。
像素坐标系(二维):
描述物体成像后的像点在数字图像上(相片)的坐标,是我们真正从相机内读取到的信息所在的坐标系。
单位为个(像素数目)。
通过单应性变化实现像素坐标系与世界坐标系之间的映射,假定标定棋盘位于世界坐标系中的平面,两者间坐标映射关系如下:
其中,u、v表示像素坐标系中的坐标,s表示尺度因子,X.Y表示世界坐标系中的坐标。
如下矩阵为相机的内参矩阵,其中为分别在x轴和y轴上对焦距进行归一化所求得的值,dx、dy为像元尺寸。
为图像中心坐标。
张氏相机标定法利用单应性矩阵来描述世界坐标系与像素坐标系之间的映射关系,将尺度因子、内参矩阵和外参矩阵的乘积定义为单应性矩阵,如下所示:
确定角点后,可通过下述公式求得单应性矩阵H,进一步求得内参矩阵以及外参矩阵:
展开化简,化为AX=0的齐次方程组形式,多组对应点形成超定方程组,可以运用最小二乘法求解:
将单应性矩阵化为,M为内参矩阵。
通过元素对应关系以及旋转向量的约束关系求解,即可得到内参矩阵及外参矩阵。
1.2.2相机校正原理
由于光线在远离透镜中心的地方比靠近中心的地方更加弯曲以及透镜的工艺等原因,相机会产生径向畸变和切向畸变两种类型的畸变,如图1所示。
通过泰勒级数展开可以对两种畸变进行描述,径向畸变可以通过下面的方程组进行纠正:
图1相机畸变示意图
切向畸变会造成图像中的某些点看上去的位置会比我们认为的位置要近一些,它可以通过下列方程组进行校正:
1.3实验内容
1.3.1相机模型建立与参数求取
张氏相机标定法采用黑白棋盘标定板作为拍摄对象,通过关联棋盘所在平面与相机成像平面,建立相机模型。
首先,通过角点检测找到棋盘中各个角点在图像中的像素位置,如图2所示。
假定棋盘在XY平面是静止的,Z总是等于0,传入角点位置(0,0),(1,0),(2,0)...已知每个角点在实际世界坐标系中的位置,建立对象点与图像点之间联系,即可根据标定图得到单应性矩阵。
图2棋盘格角点检测
输入棋盘内角点规格8*6,通过函数cv2.findChessboardCorner()返回的角点是近似值,实际位置的精度受限于图像设备的精度,小于1个像素。
利用cv2.cornerSubPix()函数,用近似位置以及图像作为输入,计算角点的精确位置,确定亚像素角点。
部分角点的世界坐标系三维坐标以及相机坐标系二维坐标如图三所示:
图3部分角点坐标
通过已知的对象点与图像点,即可求得单应性矩阵H,通过计算可求得相机的内参矩阵以及畸变系数矩阵,最终求得的畸变系数矩阵形式为。
在求得全部的内外参矩阵参数以及畸变系数后,还需要对内外参矩阵以及畸变系数矩阵进行优化。
调用cv2.getOptimalNewCameraMatrix()函数,通过其得到的自由缩放系数进行优化。
如果缩放系数等于0,表示尽可能裁剪不想要的像素,参数1表示保留所有像素点,同时可能引入黑色像素。
最终计算的内参矩阵以及畸变系数矩阵如下所示:
内参矩阵:
array([[972.88494873,0,366.30673431]
[0,957.01281738,514.73849197]
[0,0,1]])
畸变系数矩阵:
array([[0.1376898,-1.35990126,0.01781483,-0.01621212,2.94943391]])
1.3.1矫正结果分析
通过1.2.2中的校正方程式,运用内参矩阵以及畸变系数矩阵对所拍摄的图片进行校正。
图4左边为已矫正图像,右边为原始图像。
可以看出,图像中的边界相比原图更贴合直线。
图5为利用matlab相机标定工具箱对同一图片进行矫正所得结果,对比可得,矫正效果一致。
图4校正后图像(左)原始图像(右)
图5matlab工具箱矫正结果