一、相机标定的原理

原理参考:https://blog.csdn.net/honyniu/article/details/51004397

一般来说,标定的过程分为两个部分:
第一步是从世界坐标系转换为相机坐标系,这一步是三维点到三维点的转换,包括 R,t(相机外参)等参数;
第二部是从相机坐标系转为图像坐标系,这一步是三维点到二维点的转换,包括 K(相机内参)等参数;

相机坐标系转换到图像坐标系


上图所示(图片来自UIUC计算机视觉课件),是一个小孔成像的模型

相机转换到像平面

知道上面的简单知识后,如果知道相机坐标系中的一个点 X(现实三维世界中的点),在像平面坐标系对应的点是 x,要求求从相机坐标系转为像平面坐标系的转换,也就是从 X 点的(X,Y,Z)通过一定的转换变为 x 点的(x,y)。注意:(X,Y,Z)(大写)是在相机坐标系,而(x,y)(小写)是在像平面坐标系(还不是图像坐标系,原点不同。)观察第二个图,很简单的可以得到这个转换:

可以简写为 x=PX(P 就是所谓的投影矩阵,当然现在还不完整):

世界坐标系转换到图像坐标系


如上图所示(图片来自UIUC计算机视觉课件),从世界坐标系转换到相机坐标系是三维空间到三维空间的变换,一般来说需要一个平移操作和一个旋转操作就可以完成这个转换,用公式表示如下(可以理解为世界坐标系原点先平移到相机坐标系的位置然后在做一次坐标系旋转,使坐标轴对齐。):

畸变参数(distortion parameters)

在几何光学和阴极射线管(CRT)显示中,畸变(distortion) 是对直线投影(rectilinear projection)的一种偏移。简单来说直线投影是场景内的一条直线投影到图片上也保持为一条直线。那畸变简单来说就是一条直线投影到图片上不能保持为一条直线了,这是一种光学畸变(optical aberration)。可能由于摄像机镜头的原因,这里不讨论,有兴趣的可以查阅光学畸变的相关的资料。
畸变一般可以分为两大类,包括径向畸变和切向畸变。主要的一般径向畸变有时也会有轻微的切向畸变。

径向畸变(Radial distortion)

径向畸变的效应有三种,一种是桶形畸变(barrel distortion),另一种是枕形畸变(pincushion distortion),还有一种是两种的结合叫做胡子畸变(mustache distortion),从图片中可以很容易看出区别,具体见下图(图片来自wikipedia):

切向畸变(tangential distortion)

切向畸变是由于透镜与成像平面不严格的平行,其可以用如下公式修正:

所以最终得到5个畸变参数:
D=(k1,k2,p1,p2,k3)

相机标定

那么可以利用这些来进行最终的任务相机标定,简单的过程可以描述为通过标定板,如下图,可以得到n个对应的世界坐标三维点 XiXi 和对应的图像坐标二维点 xixi,这些三维点到二维点的转换都可以通过上面提到的相机内参 KK,相机外参 RR 和 tt,以及畸变参数 DD 经过一系列的矩阵变换得到。现在就用这些对应关系来求解这些相机参数。

二、实现(MATLAB)

实验参考:相机标定教程 https://blog.csdn.net/heroacool/article/details/51023921

实验结果:

实验参数:
cameraParams =

cameraParameters (具有属性):

Camera Intrinsics
IntrinsicMatrix: [3x3 double]
FocalLength: [2.8605e+03 2.9318e+03]
PrincipalPoint: [1.8364e+03 1.3761e+03]
Skew: 0

Lens Distortion
RadialDistortion: [0.0254 -0.0664]
TangentialDistortion: [0 0]

Camera Extrinsics
RotationMatrices: [3x3x18 double]
TranslationVectors: [18x3 double]

Accuracy of Estimation
MeanReprojectionError: 0.6537
ReprojectionErrors: [49x2x18 double]
ReprojectedPoints: [49x2x18 double]

Calibration Settings
NumPatterns: 18
WorldPoints: [49x2 double]
WorldUnits: ‘mm’
EstimateSkew: 0
NumRadialDistortionCoefficients: 2
EstimateTangentialDistortion: 0
实验截图:

计算机视觉学习(七)-- 相机标定相关推荐

  1. 【计算机视觉】全景相机标定(MATLAB/opencv)

    全景相机标定 1Matlab工具箱 http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/links.html http://www-sop.i ...

  2. 【计算机视觉4】相机标定

    一.原理: 1.四个坐标系: 世界坐标系.相机坐标系.像素坐标系.成像平面坐标系. 我们可以把现实生活遇到的任何事物用坐标系表示出来,也可以用坐标系表示整个世界,于是便建立起了世界坐标系.想象一下,摄 ...

  3. 直播预告:深度学习驱动下的相机标定技术发展

    个人介绍: 廖康博士,毕业于北京交通大学信息科学研究所,师从林春雨教授.将赴新加坡南洋理工大学S-Lab担任博士后研究员,合作导师为Chen Change Loy.曾于德国马克斯·普朗克研究所(马普所 ...

  4. matlab鱼眼镜头,普通镜头,单目双目相机标定校正(四)

    写这篇文章的目的,是记录相机标定过程和问题,经过试验,记录问题 1.单目相机与双目相机的标定.区别.目的 2.相机拍照时,距离标定板的距离 3.填写参数时.黑白格的大小有影响? 4.参数的设置 5.拍 ...

  5. Matlab相机标定并进行图像校正

    Matlab相机标定工具 APP->展开: 图像处理与计算机视觉栏: 相机标定过程 打印一张黑白棋盘,拍摄足够多张照片,以确保之后的合格照片的筛选. 2. 打开Matlab相机标定工具,从文件中 ...

  6. 相机标定——单目标定和双目标定

    相机标定--单目标定和双目标定 1.标定目的 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相 ...

  7. 计算机视觉 学习笔记(四)相机标定

    一.相机标定原理 1.1 基本原理 摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵的过程. [1]基本的坐标系: 世界坐标系: 相 ...

  8. 计算机视觉学习6_棋盘格_相机模型与参数标定

    文章目录 为什么要进行相机参数标定 相机内参矩阵原理 相机标定方法--Recap: 相机标定 张正友标定法 相机模型 计算单应性矩阵H 计算内参数矩阵 计算外部参数 实验(matlab实现) 为什么要 ...

  9. 二十一.激光、视觉和惯导LVIO-SLAM框架学习之相机与雷达外参标定(1)

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

最新文章

  1. 与其雇人杀虫不如购买杀虫剂
  2. C# chart控件基础使用
  3. 中国中医药产业未来投资规划与前景风险预测报告2022-2027年版
  4. c++学习笔记之异常
  5. MS-SQL CLR 扩展函数包 CLR_FunctionS!
  6. MySQL中向下查询_mysql
  7. zepto在整个屏幕中左滑动右滑动
  8. spring-cloud-sleuth 和 分布式链路跟踪系统
  9. ENVI学习总结(十)——遥感图像监督分类
  10. 采用分治算法迭代计算最长公共前缀问题(python)
  11. hadoop中使用lzo压缩算法
  12. Matlab求解AX=XB(手眼标定用)
  13. uva 1362 区间DP
  14. R数据挖掘 第四篇:OLS回归分析
  15. r语言 xueyi_R语言实用教程
  16. 湖南省隆回县2011年下学期高二调研试卷语文
  17. 【STM32】STM32之DRV8834电机驱动(IO方式)
  18. 旧时光的伤感日志:我们的转身,泪倾城
  19. 我“听”得见你爱的心跳
  20. 百度 android 市场,百度下线91和安卓市场渠道,第三方应用商店继续走向衰落

热门文章

  1. springboot-EasyExcel
  2. 合肥工业大学——java(最新版)——第一次作业
  3. 择时策略1:一个金叉死叉(python)
  4. 逆袭之旅DAY20.XIA.程序调试
  5. 【Vegas2010】1月24日-钢琴教材从零起步的进阶选取
  6. uniapp 登入功能 vuex使用 通俗易懂
  7. 2021-07-17 以太网-网络电缆被拔出解决方法
  8. echarts折现图的配置
  9. 前端三剑客:HTML
  10. 软件开发模型介绍、总结归纳