相机标定

python-相机标定

淺唱寂寞╮ 提交于 2020-04-07 17:34:16
相机标定 一、相机标定的基本原理 1.1从世界坐标系到相机坐标系 1.2从相机坐标系到理想图像坐标系( 不考虑畸变 ) 1.3从理想图像坐标系到实际图像坐标系( 考虑畸变 ) 1.4从实际图像坐标系到像素坐标系 二、相机标定的基本实现步骤 三、图像集 四、实验代码及结果截图 五、总结 一、相机标定的基本原理 1.1从世界坐标系到相机坐标系 刚体从世界坐标系转换到相机坐标系的过程,可以通过旋转和平移来得到,我们将其变换矩阵由一个旋转矩阵和平移向量组合成的齐次坐标矩阵(为什么要引入齐次坐标可见后续文章)来表示: 其中,R为旋转矩阵,t为平移向量,因为假定在世界坐标系中物点所在平面过世界坐标系原点且与Zw轴垂直(也即棋盘平面与Xw-Yw平面重合,目的在于方便后续计算),所以zw=0,可直接转换成式1的形式。其中变换矩阵 即为前文提到的外参矩阵,之所称之为外参矩阵可以理解为只与相机外部参数有关,且外参矩阵随刚体位置的变化而变化。 下图表示了用R,t将上述世界坐标系转换到相机坐标系的过程。 1.2从相机坐标系到理想图像坐标系(不考虑畸变) 这一过程进行了从三维坐标到二维坐标的转换,也即投影透视过程(用中心投影法将物体投射到投影面上,从而获得的一种较为接近视觉效果的单面投影图,也就是使我们人眼看到景物近大远小的一种成像方式)。我们还是拿 但是为了在数学上更方便描述

 机器视觉系统设计的难点在哪?

╄→гoц情女王★ 提交于 2020-03-26 17:00:07
3 月,跳不动了?>>>   1、打光的稳定性:   工业视觉应用一般是可以分为四大类的:定位、测量、检测、识别,其中测量对光照的稳定性要求 高,因为光照只要发生10-20%的变化,测量结果将可能偏差出1-2个像素,这不是软件的问题,而是光照的变化,导致图像上边缘发生了一些变化,就算是再厉害的软件也是没有办法解决的,必须要从系统的设计方面着手。排除环境光的干扰,同事还要保证光源的稳定性。当然通过硬件相机分辨率的提升也是提高精度,抗环境干扰的一种办法了。比如之前的相机对应物空间尺寸是1个像素10um,而通过提升分辨率后变成 1个像素5um,精度近似可以认为提升1倍,对环境的干扰自然增强了。   2、工位的不一致性:   一般做测量的项目,不管是离线检测还是在线检测,只要是全自动化检测设备,首先做的工作就是要找到待检测的目标物。每次等到待检测的产品到拍摄地点的时候,要能够准确的知道待检测的目标物品在哪里,就算是你使用一些机械夹具,也不能特别高精度保证待测目标物每次都出现在同一位置的,这个时候就需要用到定位功能,如果定位不准确的话,可能测量工具出现的位置就不准确,测量结果有时会有较大偏差。   3、标定:   一般在高精度测量的时候是需要做以下几个标定,一光学畸变标定(如果您不是用的软件镜头,一般都必须标定),二投影畸变的标定,也就是因为您安装位置误差代表的图像畸变校正,三物像空间的标定

摄像机标定

我怕爱的太早我们不能终老 提交于 2020-03-25 07:45:52
转自: http://blog.sina.com.cn/s/blog_b5aa3e0f0101a4tx.html 1、摄像机外参:决定摄像机坐标与世界坐标系之间相对位置关系。 其中Pw为世界坐标,Pc是摄像机坐标,他们之间关系为 Pc = RPw + T 式中,T= (Tx,Ty,Tz),是平移向量,R = R(α,β,γ)是旋转矩阵,分别是绕摄像机坐标系z轴旋转角度为γ,绕y轴旋转角度为β,绕x轴旋转角度为α。6个参数组成(α,β,γ,Tx,Ty,Tz)为摄像机外参。 2、摄像机内参:确定摄像机从三维空间到二维图像的投影关系。 针孔_摄像机模型为6个参数(f,κ,Sx,Sy,Cx,Cy);远心摄像机模型为5个参数(f,Sx,Sy,Cx,Cy)。 线阵摄像机为9个参数(f,κ,Sx,Sy,Cx,Cy,width.highth)。 其中,f为焦距; κ表示径向畸变量级,如果κ为负值,畸变为桶型畸变,如果为正值,那畸变为枕型畸变。 Sx,Sy是缩放比例因子。对针孔_摄像机来讲,表示图像传感器上水平和垂直方向上相邻像素之间的距离; 对于远心摄像机模型,表示像素在世界坐标系中的尺寸。 Cx,Cy是图像的主点。对针孔_摄像机来讲,这个点是投影中心在成像平面上的垂直投影,同时也是径向 畸变的中心 。 对于远心摄像机模型,只表示畸变的中心 。 Vx,Vy,Vz

Halcon相机标定

与世无争的帅哥 提交于 2020-03-14 15:31:05
摄像机标定程序: 注意:E:/calibration_image :为标定图像文件路径 'E:/calibration_description/caltab_123mm.descr:为标定描述文件路径 *作者:骑蚂蚁上高速 *程序开始 list_files ('E:/calibration_image', 'files', ImageFiles) TmpCtrl_AllMarkRows := [] TmpCtrl_AllMarkColumns := [] TmpCtrl_StartPoses := [] TmpCtrl_ReferenceIndex := 0 StartParameters := [0.008,0,5.2e-006,5.2e-006,640,512,1280,1024] for Index := 0 to |ImageFiles|-1 by 1 read_image (Image, ImageFiles[Index]) find_caltab (Image, TmpObj_PlateRegion, 'E:/calibration_description/caltab_123mm.descr', 3, 112, 5) find_marks_and_pose (Image, TmpObj_PlateRegion, 'E:/calibration_description

机器视觉

只谈情不闲聊 提交于 2020-03-01 03:13:36
相机标定---初识相机标定 标定的含义,意义 https://blog.csdn.net/KillMeHealMe/article/details/81192685 (可用ROS 中提供的相机标定包对相机进行标定) 基于目标检测的实时单目测距 https://zhuanlan.zhihu.com/p/42085600 最详细的目标检测SSD算法讲解 https://blog.csdn.net/u010712012/article/details/86555814 Pascal voc 2012 数据集简介 https://blog.csdn.net/qq_36685744/article/details/85704371 来源: CSDN 作者: 被窝里的奶油卷 链接: https://blog.csdn.net/weixin_41769570/article/details/104577477

论文阅读——《Online Photometric Calibration of Auto Exposure Video for Realtime Visual Odometry and SLAM》

孤街浪徒 提交于 2020-02-29 01:52:55
论文阅读——《Online Photometric Calibration of Auto Exposure Video for Realtime Visual Odometry and SLAM》 《Online Photometric Calibration of Auto Exposure Video for Realtime Visual Odometry and SLAM》 1. 成像过程建模 2. 光度标定原理 3. KLT光流法 4. 实验结果 《Online Photometric Calibration of Auto Exposure Video for Realtime Visual Odometry and SLAM》 前几天读了很多篇和自动曝光控制相关的paper,那些paper讲主要是如何定义曝光程度的评价标准以及如何根据评价标准实现自动曝光控制; 图像传感器与信号处理——自动曝光算法 论文阅读——《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》 对于SLAM来讲,尤其是直接法,通常需要满足光度不变性这个条件。而自动曝光虽然能够使得输入图像信息最大化,但是却破坏了光度不变形这个条件,因此,对于SLAM系统来说

RGB-D相机的标定

北慕城南 提交于 2020-02-22 05:53:11
看自刘国庆的演讲,做简单的总结。(没有ppt,全靠截图) kinect的结构 一个彩色相机(1920*1080) 一个深度相机(一个灰度相机512*414可以感知红外光+红外发射) 这里提出了几个问题: 图像畸变(来源自相机自身性质,透镜畸变)-----标定 深度图像深度值是否正确?需要深度校准------校准 图像配准?怎么区获取两个不同的分辨率的图的配准----配准 按照标定的步骤获取 两个相机的内参 还有两个相机之间的rt 来源: CSDN 作者: 小邢~ 链接: https://blog.csdn.net/weixin_43384504/article/details/104424220

相机标定——双目标定

只愿长相守 提交于 2020-02-15 09:36:06
在网上找了很多资源,都是用 zed_ros_wrapper 库 但是不知道是不是秒算的原因,一直编译不成功(网上也没有相关错误,仿佛全世界就我一个人遇到了这个问题,嘤嘤嘤) 又苦苦寻找,终于!!又发现一个库!!zed_cpu_ros 通过这个包里面的launch文件,可以使得相机分别抓取图像,可以用来进行标定 因为是用到ros自带到包来标定 故不再讲方法,具体见相机标定—— ros自带功能包 后来我又发现一个问题,双目相机标定和单目是不一样的(八说了,说多了都是泪) 双目标定除了 每个相机自己的内参,还有外参(旋转矩阵、平移矩阵)和本征矩阵 我的曲折标定路(嘤嘤嘤 先是找了很多方法,但是。。。都不适用QAQ 然后选定了用MATLAB标定 发现之前用ros自带功能包标定的时候,有自动保存图片,就直接用了 (这也是令人心碎啊),从妙算用USB拷到电脑,各种文件破损,明明能看到图片 就是显示左右两个文件夹的数量不一样(简直是人类迷惑行为 机智如我,先把图片分别放入单目标定包,才发现。。右边相机文件包破损。。。 然后从新拷文件,,再标定 成功了!!一半。。。 由于ros功能包不是同时抓取的左右相机图像,而我直接使用,使得误差高达200.。。。。。显然数据不可用 之后,想尽各种办法终于得到同时抓取的图像(如图) 然后我又天真了。。。在一系列失败之后(我就不讲了,太惨了hhhh)

单目视觉标定原理

时光怂恿深爱的人放手 提交于 2020-01-26 02:44:30
在计算机视觉中,通过相机标定能够获取一定的参数,其原理是基于三大坐标系之间的转换和摄像机的畸变参数矩阵。在实验中经常用张正友标定发,进行摄像机标定,获取到内参数矩阵和外参数矩阵以及畸变参数矩阵。在应用中要区分三者作用。这也是在程序中函数输入量。 一、三大坐标系 在计算机视觉中,利用图像中目标的二维信息获取目标的三维信息,肯定需要相机模型的之间转化。 1、图像坐标系 在计算机系统中,描述图像的大小是像素,比如图像分辨率是1240*768.也就就是以为图像具矩阵rows是1024,cols是768.那图像的原点是在图像的左上角。 以图像左上角为原点建立以像素为单位的直接坐标系u-v。像素的横坐标u与纵坐标v分别是在其图像数组中所在的列数与所在行数。这是像素坐标,而不是物理坐标,为了后续的模型转换,有必要建立图像坐标系。 图像坐标系是以图像中心为原点,X轴和u轴平行,Y轴和v轴平行。 dx和dy标示图像中每个像素在X轴和Y轴的物理尺寸,其实就是换算比例。比如图像大小是1024*768,图像坐标系x-y中大小为19*17.那么dx就是19/1024 . 则图像中的每个像素在u-v坐标系中的坐标和在x-y坐标系中的坐标之间都存在如下的关系: (上述公式中我们假设物理坐标系中的单位为毫米,那么dx的的单位为:毫米/像素。那么x/dx的单位就是像素了,即和u的单位一样都是像素) 为了使用方便

相机标定原理介绍(一)

荒凉一梦 提交于 2020-01-24 20:43:27
http://blog.csdn.net/aptx704610875/article/details/48914043 标定实例 一.总体原理: 摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵的过程。 [1]基本的坐标系: 世界坐标系; 相机坐标系; 成像平面坐标系; 像素坐标系 [2 ]一般来说,标定的过程分为两个部分: 第一步是从世界坐标系转为相机坐标系,这一步是 三维点到三维点 的转换,包括R,t (相机外参, 确定了相机在某个三维空间中的位置和朝向 )等参数; 第二部是从相机坐标系转为 成像平面 坐标系( 像素坐标系 ),这一步是 三维点到二维点 的转换,包括K( 相机内参, 是对相机物理特性的近似 )等参数; 投影矩阵 : P=K [ R | t ] 是一个3×4矩阵,混合了内参和外参而成。 P = K [ R t ] 二.基本知识介绍及 1、摄像机模型 Pinhole Camera模型如下图所示: 是一个小孔成像的模型,其中: [1] O 点表示 camera centre ,即相机的中心点,也是相机坐标系的中心点; [2]z轴表示 principal axis ,即相机的主轴; [3]q点所在的平面表示 image plane ,即相机的像平面,也就是图片坐标系所在的二维平面; [4] O1 点表示