您的位置:首页 > 其它

机器视觉之相机标定

2018-02-16 23:39 309 查看

机器视觉

机器视觉(Machine vasion):机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。 Machine vasion

相机标定

摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵 P的过程,下面相关的部分主要参考UIUC的计算机视觉的课件(网址Spring 2016 CS543 / ECE549

Computer vision)。

基本的坐标系:

• 世界坐标系(world coordinate system);

• 相机坐标系(camera coordinate system);

• 图像坐标系(image coordinate system);

一般来说,标定的过程分为两个部分:

• 第一步是从世界坐标系转换为相机坐标系,这一步是三维点到三维点的转换,包括 R,t (相机外参)等参数;

• 第二部是从相机坐标系转为图像坐标系,这一步是三维点到二维点的转换,包括 K(相机内参)等参数;

摄像机模型:二维图像恢复物方三维空间信息









(1) 摄像机标定:平面靶标定(张正有)PnP, 内参,外参

(2) 光笔标志点的标定:

(3) 光笔测头中心位置的标定:

参考:张广军《机器视觉》

Hough变换

Hough变换:霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。它通过将图像坐标空间变换到参数空间,来实现直线与曲线的拟合。

Hough变换能够查找任意的曲线,只要你给定它的方程。Hough变换在检验已知形状的目标方面具有受曲线间断影响小和不受图形旋转的影响的优点,即使目标有稍许缺损或污染也能被正确识别

思路解析:

1)读取一幅带处理二值图像,最好背景为黑色;

2)获取图像空间的源像素数据;

3)通过量化霍夫参数空间为有限个值间隔等分或者累加格子,即p,theta;

4)霍夫变换算法开始,每个像素坐标点P(x, y)被转换到(r, theta)的曲线点上面,并累加到对应的格子数据点;

5)寻找最大霍夫值,设置阈值,反变换到图像空间;

在图像空间同一直线上的每一个点,对应参数空间上的一条直线,在参数空间上相交于一点(a,b)的直线,在图像空间对应的点是共线的

图像坐标空间中过点(xi,yi)和点(xj,yj)的直线上的每一点在参数空间a−b上各自对应一条直线,这些直线都相交于点(a0,b0),而a0、b0就是图像坐标空间x−y中点(xi,yi)和点(xj,yj)所确定的直线的参数。

反之,在参数空间相交于同一点的所有直线,在图像坐标空间都有共线的点与之对应。根据这个特性,给定图像坐标空间的一些边缘点,就可以通过Hough变换确定连接这些点的直线方程。

具体计算时,可以将参数空间视为离散的。建立一个二维累加数组A(a,b),第一维的范围是图像坐标空间中直线斜率的可能范围,第二维的范围是图像坐标空间中直线截矩的可能范围。开始时A(a,b)初始化为0,然后对图像坐标空间的每一个前景点(xi,yi),将参数空间中每一个a的离散值代入式子(2)中,从而计算出对应的b值。每计算出一对(a,b),都将对应的数组元素A(a,b)加1,即A(a,b)=A(a,b)+1。所有的计算结束之后,在参数计算表决结果中找到A(a,b)的最大峰值,所对应的a0、b0就是源图像中共线点数目最多(共A(a,b)个共线点)的直线方程的参数;接下来可以继续寻找次峰值和第3峰值和第4峰值等等,它们对应于原图中共线点略少一些的直线。



灭点:在透视投影中,一束平行于投影面的平行线的投影可以保持平行,而不平行于投影面的平行线的投影会聚集到一个点,这个点成为灭点(Vanishing Point)。灭点可以看作是无限远处的一点在投影面上的投影。

第一类即为通过霍夫变换来进行灭点的检测,对于每一个可能的直线对,这对直线交点的方向能够被计算出来,并且他们的角度能够积累到一个参量中。通过选择包含最高数量词目的参量来获得占据主导的灭点。然而,这种方法对于角度参量量化的水平十分的敏感,可能导致多重的检测。除此之外,由于灭点是各自独立检测,所以这种方法并不能够直接在灭点上强加正交性的约束。高斯球灭点检测算法的思想与该算法类似,即把图像中的直线映射到高斯球上,在高斯球上划分累加单元,求取交点数目最多的累加单元对应的球坐标,再映射到原图像中即为灭点的位置。

灭点检测算法实质即为聚类算法,直线段能够检测出,直线的交点亦能够检测出,若已知灭点的位置,则直线的分类能够计算出,若已知直线的分类,则灭点的位置亦能够计算出,这是一个先有鸡还是先有蛋的问题

基于三维散乱点云与CAD模型匹配算法的研究与实现

三维数字化检测技术:将三维数字化CAD模型与其成品工件的三维型面测量数据进行配准比较和误差分析,给出产品的制造精度,从而更好的指导零件的设计/生产/制造及装配环节

三维数字化检测:点云数据获取,点云与CAD模型配准,偏差计算与误差分析

(1) 设计坐标系和测量坐标系在不同的坐标系,要对其误差进行评估,必须将2个坐标系经过刚体变换到同一个坐标系下,从而实现配准。

光笔:基于摄影测量的自标定技术的光学测量系统

20um = 0.020mm

(2)粗配准:欧式变换,使转换后的点云尽可能多的重合,以便于缩小模型之间的初始位置和方位差异,为精确配准提供一个更好的迭代初值

(3)精确配准:采取逐渐迭代逼近的方法反复迭代计算,实现点云与CAD模型的最佳拟合状态;

基于主成分分析的配准算法,该方法利用点云的数据体积的主轴方向进行配准,

a. 计算d点云数据集合的协方差矩阵,然后根据求得的协方差矩阵计算点云数据集合的主轴向量,得到旋转矩阵和平移矩阵,速度快,但要求点云数据集合之间有充足的重叠或交叉区域

b. 最近点迭代Iterative Closest Point(ICP)算法,通过逐步迭代,寻找两个待匹配的点的集合中对应匹配点,并计算两个点集合之间的刚体变换参数,直到误差满足给定的收敛精度或达到最大的迭代次数,最终达到两个点集合之间的刚体变换参数

Aa.寻找对应点很难,点集合要对应

Ab.点云数量多,效率低

原始:point-to-point CAD模型大量均匀采样,点云数目急剧增加

Point-to-plane

提出一种基于动态调节因子的ICP配准算法,提高配准算法及精度

创新点:

(1)提出一种基于三维CAD模型的STL三角网格的对应点寻找方法

CAD:STL 三角网格, 自身携带的法向量信息计算点云到目标三角网格的最近点,将其作为目标对应点(可以求得相对准确的点)

(2)提出一种动态调节因子—动态调整刚体变换参数,使得每次变换沿着原来的趋势超程变换,,使得下次迭代时搜索到更多的有效对应点,使得迭代步幅加大,提高算法的收敛速度;

四元数:四元矢量q = [q0,q1,q2,q3]

奇异值分解法:SVD,矩阵对角化分解方法

Kd树: 一种用于多维空间关键数据存储/管理的数据结构,kd树,二叉树的扩展,每一层按照一个关键码值将对象分解为2部分,树的第一层按照第一维度划分,。。。。3维, x,y,z,划分中间点时尽量保证树的左右2侧50%的点

划分为特定的小空间,回溯

主成分分析法:princpipal component analysis,PCA 找到数据的主要分量,

PCA(Principal Components Analysis)即主成分分析,是图像处理中经常用到的降维方法

PCA将n个特征降维到k个,可以用来进行数据压缩,例如100维的向量最后可以用10维来表示,那么压缩率为90%。同样图像处理领域的KL变换使用PCA做图像压缩,人脸检测和匹配。

PCA的思想是将n维特征映射到k维上(k
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: