zoukankan      html  css  js  c++  java
  • halcon相机标定及图像矫正

    https://blog.csdn.net/humanking7/article/details/44756073

    相机标定内容详解:转载自 祥的博客

    预备知识

     标定中的四个坐标系

    1.1.平面旋转

    首先看一下平面坐标系之间的转换。

    两个平面坐标系 Oxy 和 Ox'y' 之间的夹角是 a 。如下图所示:

    这里写图片描述

    顺时针旋转 (Oxy -> Ox'y') ,变换关系如下:

    这里写图片描述

    公式(1) 和 公式(2) 等价。注意坐标顺序,下面论证会用到。

    1.2.三维旋转

    1.2.1.基元旋转

    1. 绕 Ox 轴顺时针旋转(右手定则),但是坐标排列次序相反使用上述 公式(2) 。

    这里写图片描述

    2. 绕 Oy 轴顺时针旋转(右手定则),坐标排列次序使用上述 公式(1) 。

    这里写图片描述

    3. 绕 Oz 轴顺时针旋转(右手定则),但是坐标排列次序相反使用上述 公式(2) 。

    这里写图片描述

    1.2.2.点在不同三维坐标系下的转换(坐标系之间没有平移)

    假如两个坐标轴之间的变换关系为,坐标系1 先绕 Oz 轴旋转, 再绕 Oy 轴旋转, 最后绕 Ox 轴旋转,最终得到了坐标系2,则 旋转矩阵R 为这三个 基元旋转矩阵 依次 左乘 。

    这里写图片描述

    这里写图片描述

    1.2.3.点在不同三维坐标系下的转换(坐标系可能存在平移)

    2.四个坐标系

    在视觉测量中,需要进行的一个重要预备工作是定义四个坐标系的意义,即 摄像机坐标系 、 图像物理坐标系 、 像素坐标系 和 世界坐标系(参考坐标系) 。

    2.1.图像物理坐标系(x,y) 到 像素坐标系(u,v)

    1. 最简单的情况 (两坐标轴都为直角坐标系)

    这里写图片描述

    图像上的每点坐标 (u,v) 分别表示每一帧采集的图像在系统中的存储的数组的列数与行数,坐标 (u,v) 所对应的值就是该点的灰度信息,因此坐标系 uOv 又称为 像素坐标系。

    同时,为了建立图像中各点的像素与实际的物理尺寸的联系,我们还要建立 图像物理坐标系 xO1y 。设点 O1 在图像像素坐标系中记为 (u0,v0) ,每个像素沿 x 轴的实际物理尺寸大小是 dx,沿 y 轴的实际物理尺寸大小是dy ,单位值毫米,则能得到两个坐标系间的关系式 。

    2. 一般情况 (两坐标轴有一个轴平行,一个轴不平行)

    这里写图片描述

    为了方便以后公式的推导,将公式写为:

    这里写图片描述

    2.2. 摄像机坐标系(Xc,Yc,Zc)到图像物理坐标系(x,y) 

    三角形相似 问题可以解决。

    这里写图片描述

    2.3. 世界坐标系(Xw,Yw,Yw)到摄像机坐标系(Xc,Yc,Zc)


    这里写图片描述

    2.4.合并公式 + 总结

    将公式合并后,如下所示:

    这里写图片描述

    综上所述,大家可以看出四个坐标系之间存在着下述关系 ( 矩阵依次左乘 )

    这里写图片描述

    张正友标定推导详解

    为了和 张正友教授 的论文相统一,现在把公式符号统一一下。

    这里写图片描述

    数学基础

    第一点 : 旋转向量 R 为正交矩阵,所以又以下的性质:

    这里写图片描述

    第二点 : 就是 S 。它是尺度因子,它的出现只是为了方便运算,而且对于齐次坐标,尺度因子不会改变坐标值 。

    2. 正戏

    Step.1 标定平面到图像平面的单应性(Homography)

    因为张氏标定是一种基于平面棋盘格的标定,所以想要搞懂张氏标定,首先应该从两个平面的单应性(Homography)映射开始着手。

    单应性(Homography) : 在计算机视觉中被定义为一个平面到另一个平面的投影映射。首先看一下,图像平面与标定物棋盘格平面的单应性。

    因为标定物是平面,所以我们可以把世界坐标系构造在 Z = 0 的平面上。然后进行单应性计算。令 Z = 0 可以将上式转换为如下形式 ( 直接截取论文中的推导 ) :

    这里写图片描述

    H 是一个3x3的矩阵,并且有一个元素作为齐次坐标。因此,H有8个未知量待解 ( 可以分析一下, A 有5个未知量,后面的 [r1,r2,t] 有三个未知量,一共8个) 。

    (X,Y) 作为标定物的坐标,可以由设计者人为控制,是已知量 。 (u,v) 是像素坐标,我们可以直接通过摄像机获得。一组对应的 (X,Y) => (u,v) 我们可以获得两组方程。

    现在有 8个未知量 待求,所以至少要8个方程。所以至少需要4组对应的点。所以有 4组 (X,Y) => (u,v)就可以算出,图像平面到世界平面的 单应性矩阵H ,这也是张正友标定采用四个角点的棋盘作为标定物的一个原因

    Step.2 利用约束条件求解内参矩阵A

    从Step1可知,应用4个点我们可以获得单应性矩阵H。但是H是内参阵和外参阵的合体。我们想要最终分别获得内参和外参。所以需要想个办法,先把内参求出来。然后外参也就随之解出了。

    这里写图片描述

    上式中的 h1,h2 是通过求解单应性矩阵 H 求出来的,所以未知量只剩下 内参矩阵A 。 A中含有5个参数,如果需要完全解出来这5个未知量,则需要 3个不同的单应性矩阵H ( 因为 3个不同的单应性矩阵H在2个约束条件下可以产生6个方程 ) , 那么如何得到 3个不同的单应性矩阵H 呢? 那就是 3张不同的标定平面的照片, 我们大多是通过改变摄像机与标定板间的相对位置来获得不同的标定照片。( 如果用2张照片进行标定,就要舍去一个内参 r=0 )

    当然这只是张正友标定法不断变换标定板方位的 第一个原因 。第二个原因 是张正友提到的 最大似然估计 ( Maximum-Likelihood Estimation )

    首先令

    这里写图片描述

    可以看出 矩阵B 是一个对称矩阵,有效的元素只有 6个 ,所以令一个 6维的向量b ,然后简化公式 ( 就是那两个约束条件 )

    这里写图片描述

    将运算的结果带入到两个约束条件中,可得到方程组:

    这里写图片描述

    英文部分也提出了3张图片的作用 ( 不懂的可以再看看前面的分析 )

    应用上述公式解出b后,就得到了B,在进行 cholesky分解 就可以得到 摄像机内参矩阵A 。

     Step.3 利用内参矩阵A求解外参矩阵

    已经有了内参矩阵A,通过下面的公式,就可以解出来,外参矩阵了。

    这里写图片描述

    以上就是张正友标定法的数学原理和推导,但是张正友自己也说这没有啥实际的物理意义,只是为后面的极大似然参数估计提供初值。而张正友标定中用于提高标定精度的极大似然算法,我也在研究当中,希望以后可以发一篇博客。

     halcon相机标定

    https://item.taobao.com/item.htm?spm=a230r.1.14.1.706323b3nsUNif&id=558920811564&ns=1&abbucket=13#detail

  • 相关阅读:
    投影机的选择
    IOS 检测摇动
    MARK 我的第一个app完成
    2013年会抽奖程序
    给phpcms v9增加类似于phpcms 2008中的关键词表
    codeigniter 用.htcaccess做动态二级域名解析
    获取优酷、土豆、搜狐视频 HTML5视频m3u8格式源
    发现一个好的文学素材类网站
    mac MAMP下安装mongdb & RockMongo
    给artDialog 5.02 增加ajax get功能
  • 原文地址:https://www.cnblogs.com/jiahenhe2/p/10114008.html
Copyright © 2011-2022 走看看