精华内容
下载资源
问答
  • 用C# 实现Halcon标定助手界面, 功能和官方一致, 可以参考借鉴
  • 本文是勇哥很早的时候写的一篇,如果想知道更多的信息,请参阅勇哥另一篇更详细的文章:"安装"面板中:描述文件要选择你手里的halcon标定板的对应的描述文件. 例如笔者手中是30*30mm的标定板, 就使用图中所示的描述...

    本文是勇哥很早的时候写的一篇,如果想知道更多的信息,请参阅勇哥另一篇更详细的文章:

    "安装"面板中:

    描述文件要选择你手里的halcon标定板的对应的描述文件. 例如笔者手中是30*30mm的标定板, 就使用图中所示的描述文件.

    我手里这片标定板厚度为3.050mm

    测试相机是广角镜头, 非远心

    相机单个像元的宽与高,焦距应该询问相机厂商, 这里我就先默认.

    摄像机模型, 这里我选中"面扫描"

    "标定"选项卡中:

    采集按钮, 采集一定数量的不同角度与位置的标定板图片.

    这里如果显示出"检测出品质问题", 则表示图片亮度, 聚焦等环境出现问题.

    但是只要是标定板内轮廓被找到, 并且所有圆心都被找到, 也可以不理会这个"品质"的问题继续标定.

    其实, 经笔者多方尝试, 似乎没有见过不会报"检测出品质问题"的完美采集.

    接下来选择一副图片, 点击"设为参考位姿".

    再点击标定按钮.

    标定成功后, 可以看到下面的系数.

    其中要注意"平均误差", 这个值越小越好.

    生成代码后, 出现了我们想要的东西.

    一是相机标定参数, 另一个是相机位姿. ( 应该是位置吧, 估计是halcon里的错别字)

    这两个参数被用于像素坐标转换为世界坐标系等相关算子.

    #转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。

    展开全文
  • halcon小细节(1)之标定板厚度到底什么意思到目前为止,今天遇到一位同行大牛,大家一起讨论了很多,其中一个问题是:halcon标定助手里面第一页标定板模块下"厚度"栏参数怎么填写,代表了什么意思。如下图1-1:图 1-1...

    halcon小细节(1)之标定板厚度到底什么意思

    到目前为止,今天遇到一位同行大牛,大家一起讨论了很多,其中一个问题是:halcon标定助手里面第一页标定板模块下"厚度"栏参数怎么填写,代表了什么意思。如下图1-1:

    fb3043e86df004363c2a50b2f23df756.png

    图 1-1

    字面意思很好理解就是标定板厚度,那么它有什么用呢?

    所谓标定,其实就是确立相对位姿关系:像素坐标系与世界坐标系之间的转换关系或称为转换矩阵。所以我们要通过标定来确立一个世界坐标系以及相机在该坐标系里面的位姿(位置+姿态)。有用过标定助手或者看过我之前关于相机标定的教程的朋友,应该知道,当你在选择好设为参考位姿的图像后(如下图1-2),世界坐标系的原点和方向就确定了。

    9d99275db5030e39dbee83a970afb8a6.png

    图 1- 2

    其XY正方向很容易确定:就是标定板小尖角的两条直角边的方向。Z轴正方向由标定板指向相机。如下图1 – 3。坐标原点位置:xy为图中所示位置,即标定板中心点,但z坐标不是,而是图中位置沿上面确定好的世界坐标系Z轴方向减去第一页填写的标定板的厚度。

    c3bd793a51044bf15cb8484d83079daa.png

    图 1- 3

    假如你填的标定板厚度为1mm,而你的标定板真实厚度的确为1mm。那么该坐标系的原点就在标定板底部中心位置,其XY平面即为你的测量平台平面(放置标定板的平面)。

    可做一简单实验,先把标定板厚度设为1mm,标定完后,修改厚度为10mm,原先同样的图片不换,重新标定,验证相机坐标z轴是否抬高了约10mm。

    不知这一细节对大家是否有用,欢迎大家踊跃讨论。

    展开全文
  • halcon标定助手的使用

    2020-10-16 09:40:37
    标定助手1、打开标定助手2、设置标定板和摄像机参数2.1添加标定板描述文件与标定板厚度2.2填写摄像机参数3、切换到标定选项框(如:使用图像文件加载图像源)3.1点击加载,加载标定图像源3.2删除标定点提取失败图片...

    1、打开标定助手

    在这里插入图片描述

    2、设置标定板和摄像机参数

    2.1添加标定板描述文件与标定板厚度

    2.2填写摄像机参数

    在这里插入图片描述

    3、切换到标定选项框(如:使用图像文件加载图像源)

    3.1点击加载,加载标定图像源

    在这里插入图片描述

    在这里插入图片描述

    3.2删除标定点提取失败图片

    在这里插入图片描述

    设置第一幅图像为 设定参考位姿

    在这里插入图片描述

    点击标定

    在这里插入图片描述

    4、查看结果

    在这里插入图片描述

    5、代码生成==》插入代码

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 一、为什么要进行摄像机标定 随着机器视觉的迅猛发展,我们已经不满足于使用摄像机进行监控、抓拍这种较为简单的功能。更多的用户青睐于它在非接触三维尺寸测量上的应用。我们所谓的三维测量是广义的三维测量,它...

    一、为什么要进行摄像机标定

      随着机器视觉的迅猛发展,我们已经不满足于使用摄像机进行监控、抓拍这种较为简单的功能。更多的用户青睐于它在非接触三维尺寸测量上的应用。我们所谓的三维测量是广义的三维测量,它不仅包括三维物体的重构与测量,还包括在三维空间中识别任意二维平面上的尺寸以及位置。这种技术目前已被应用在高精度的工业模具以及装配测量中,其中任意二维平面上的尺寸检测技术应用得更为广泛。

    c82f87a7410b845af897b9ceaa9d8be9.png
    图一

      如图1当被测平面和像平面平行且成像模型为理想的小孔成像模型,我们设焦距为f、工作距离为d,则被测物OP和它的像O’P’关系可简单的表示为:

    |OP|=|O’P’|×d/f  【1】

      但是在实际应用中并非如此,我们无法严格控制像平面和被测平面的位置,所用的镜头也不是严格的小孔模型。如果直接使用【1】式计算将会产生极大的误差。因此,为了获取更高的测量精度,我们需要通过标定来实现坐标平面的转换以及图像的校正。

    e077b343ba5a611d75a8db5d36040e50.png

    二、什么是摄像机标定

      在实际应用中,被测平面的不确定性以及镜头的畸变使我们已经无法简单的使用【1】式计算出实际距离,但是我们可以将目前能够获得的数据进行转换,使这些数据符合【1】式的使用条件。也就是将任意坐标平面通过旋转和平移映射到理想坐标平面上,对有畸变的图像进行校正,让它成为符合小孔成像模型的像平面。有了这种方法,我们只要确定转换算法、校正算法以及【1】式中的参数就可以实现三维空间中任意平面上尺寸与位置的测量。我们将这种确定参数的过程称之为标定。

    三、摄像机单目标定

      摄像机标定的方法根据摄像机的数目可分为单目标定、双目标定以及多目标定。其中单目摄像机标定是双目标定的基础,而多目摄像机的标定则是双目摄像机的扩展。因此,我们今天首先来为大家介绍单目标定。在平面测量中影响我们拍摄图像形变的因素有两个:镜头和摄像机的姿态。根据这两个因素我们将摄像机的参数分为两组,摄像机内参和摄像机外参。

     1、摄像机内参

    0daa340f7acda8740ac9f0c7ef007a5d.png

      内参一般包括镜头的焦距f、镜头畸变参数k、光轴中心坐标(Cx,Cy)以及像元尺寸Sx,Sy,当摄像机和镜头确定时,这些参数唯一确定。下面我们来详细介绍一下各参数的数学模型。

    1)焦距

      根据镜头类型不同焦距的计算可分为针孔模型和远心模型。如图3我们假设世界坐标系有任一点P(x,y),在摄像机靶面所成的像为P’(u,v),根据不同的光路模型它们之间有如下的对应关系

     a) 针孔模型

    0803b42fc28915d907207ec64bac5194.png

     b)远心模型

    由于远心镜头特殊的光路设计使得像的大小与拍摄距离无关,因此表达式比针孔模型更为简单。

    0b08135ba4f55620e67588b69672a1a9.png

    2)镜头畸变

      受到镜头的制作和安装精度的影响,我们所获得图像会产生非线性失真。我们称这种失真为镜头畸变。镜头畸变产生的误差使得理想针孔模型已不再适用。因此我们需要先将所得图像进行校正,再应用理想的针孔模型。假设我们所获取的原始图像坐标(u,v)、校正后的结果(u’,v’),其畸变模型坐标关系为:

    2e828dc5ac1345d851ecca45bc57bf4c.png

     a)径向畸变

    cd64bbc5f892da14baf0f45dee8f5ed6.png

      径向畸变主要由透镜制作过程中表面曲率引起,它会使图像发生桶形畸变和枕形畸变(如图4)。其数学模型如下:

    45651160f0ceaf297c5d65e7ebc4a468.png

      其中,如果对精度要求不是很高我们可以令将上式简化为如下表达式:

    b5394dfa373efd84cb31a6327bc94d66.png

     b)离心畸变

      离心变量又称偏心变量,它的误差来源于透镜的安装精度,这主要是因为所有镜片的光学中心并不能严格的保证在同一条直线上。这种误差除了在引入径向畸变同时还会引入切向畸变。由于之前我们已经进行了径向畸变的校正,因此我们在此基础上只需加入切向畸变校正即可。其数学模型如下:

    34353bd8f2f9d5f3fe9929c12366a19c.png

     c)薄棱镜畸变

    影响薄棱镜畸变的主要因素的是透镜以及摄像机靶面的平行度,镜片与摄像机靶面夹角越大畸变就越严重。其数学表达式如下:

    90a560fcf517e6ac2ba309295dd61d10.png

     d)畸变校正

      在实际的应用中,大多数工业摄像机的厂商可以通过摄像机接口螺纹的机械精度来保证镜头透镜与靶面的平行性,而且这种畸变产生的误差较小,因此在一般的图像标定中不作考虑。至此,我们已经基本掌握了大多数情况下畸变产生的原因以及数学模型。结合【5】、【7】两式我们可以推导出镜头畸变校正模型:

    40deeba39cd06c2e26925b1d9fd08cfa.png

    2. 摄像机外参

      摄像机的外参是指摄像机坐标系与世界坐标系的转换参数它主要由旋转矩阵R和平移矩阵T组成。对于任意三维坐标系,我们都可以通过这两个矩阵将其转换到摄像机坐标系中。其数学模型为 【10】

    1)旋转矩阵R

    d6949bf2ee6e93e7370e0cc0597d29e0.png

      如图5所示,我们通过沿坐标轴x、y、z分别旋转α、β、γ来实现坐标系的转换。因此,旋转矩阵R可分解为Rx(α)、Ry(β)、Rz(γ)三个矩阵相乘的形式。我们以z轴为例,假设(x0,y0)与x轴夹角为θ,且到原点距离为r,通过旋转矩阵

      Rz(γ)坐标系沿z轴旋转γ后得到点(x1,y1),我们可得方程组:

    x1=r·cos(θ+γ)      【11】

    y1=r·sin(θ+γ)       【12】

      由三角函数展开得:

    x1= r·cos(θ) cos(γ)- r·sin(θ) sin(γ)    【13】

    y1= r·sin(θ) cos(γ)+ r·cos(θ) sin(γ)   【14】

      由(x0,y0)与x轴夹角为θ得:

    x0=r·cos(θ)          【15】

    y0=r·sin(θ)          【16】

      将【15】式带入【13】式、【16】式带入【14】式得:

    x1=x0·cos(γ)-y0·sin(γ)     【17】

    y1=y0·cos(γ)+x0·sin(γ)    【18】

      因此

    3c84e4984eac65eb7934c7b6697482b2.png

      以此类推求得Rx(α)和Ry(β)将它们与Rz(γ)相乘得:

    ee5401fe49abbe9161e659f4e581d2a3.png

    2)平移矩阵T

    7a5f3971e9ac7abf7840881d7b30b4e2.png

      通过旋转矩阵运算后,世界坐标系的三个坐标轴会与摄像机坐标系对应的坐标轴相平行。此时我们已经离我们的目标又近了一步。如图7所示我们现在只要沿各坐标轴做平移运算即可,由此得:

    49891b3283c3cefc485c4cce15fbd8ac.png

    3)参数求解

      根据【2】、【9】、【20】、【21】这几个数学模型,我们可以得知,若想确定一个摄像机与被测平面的相对位置,则需要确定包括内参、外参在内的14个参数 ,其中是已知的。因此,我们至少需要9个坐标点,构成9个方程才可以解出剩余的9个未知数。在通常情况下,点的分布以覆盖大部分视场为准,获得的数据点越多,统计的参数就越准确。我们一般采用最小二乘法或者线性规划等统计算法来求解相应参数。下面我们以HALCON为例演示一个标定的全过程。

      HALCON是德国MVTEC Software GmbH公司开发的一套完善的机器视觉算法软件包。它除了拥有亚像素精度的算法以及高效的处理性能外,在三维重构方面它也有卓越的表现。它的开发环境中自带摄像机标定工具,可以轻松的完成摄像机的标定工作。同时,您还可以使用HALCON生成可打印的标定板文件。下面我们就来介绍一下摄像机标定的整个流程。

     a)生成标定板

      i. 创建标定板

      使用HALCON开发环境HDevelop创建标定板

      在选择尺寸选择时推荐大家使用边长为视野1/3左右的标定板                

    1de0fda3e04ca7202310cb072becb2de.png

      ii.打印标定板

      通过GSView等高精度打印软件打印标定板。

     b) 摄像机参数设置

      输入所使用的摄像机以及镜头的相关参数

    c512e7be9f01dfbb5d519ba1aa8040c8.png 

     c)拍摄标定板图像

      我们采用平移和倾斜的方式使得拍摄图像中的标定板尽量覆盖整个视场。

      一般情况我们需要保存15幅不同位置的图像,具体位置如下:d7313fc105920daf34b52a2e53608916.png

     d)标定图像载入

      通过HALCON我们可以实时拍摄图像也可以读取我们事先拍摄好的图像进行标定。如果标定板识别成功,图像上将绘制出标定板坐标系。

    cfe8d100049447a3ec439d0353b520af.png

     e)标定

      标定后我们会获得摄像机内参和外参。我们还可以将它们保存起来用于坐标转换或图像校正。 

    7fba2827951bcabaf730ef0e24f8c8de.png 

     f)验证标定结果

      在HALCON中不仅有摄像机标定工具还有测量工具,下面我们使用HDevelop自带的一维测量助手来验证一下我们的标定结果。

    首先我们要加载我们刚才标定的数据。

    bbe25d8b99a834513eba56ba29af2871.png

      成功加载标定数据后我们就可以使用我们随机拍摄的一张图像进行测量。

    10679f022b95c41564df940168493499.png

      通过以上几步操作,现在我们就已经得到了像素点的实际距离。

    2310d9dbf6822beab7a8e5db35d23f2f.png

      复杂的标定工作在HALCON的帮助下就轻松的完成了。不仅如此,以上的所有步骤都可以导出为代码,我们可以将这些代码集成到我们自己的程序中。

      备注:若采用高精度的标定板将会得到更高精度的标定结果。

    四、应用

      单目摄像机标定技术适用于被测表面曲率较小且需要获取实际数据的应用场合,比如食品、机械制造以及半导体等。理论上,在检测过程中所有的被测物尺寸的判断都可以使用像素尺寸来完成。虽然像素尺寸和实际尺寸对于计算机来说几乎是一样的,一般只用于比较大小,但是对于我们来说实际尺寸更加直观。

    464c2cf8cab54600d5f1a6a55ce2b503.png

    图15                        图16

      图15为速冻鱼柳检测系统的图像处理示例。由于实际应用中不同批次的鱼柳宽度不同,因此,最好的办法是使用标定后获取的实际数据来进行计算。这种判定方法使得系统参数更加直观,设置更加方便。图16为工件尺寸检测系统,通过标定,我们不仅可以获取实际数据,而且可以将它们直接和CAD中数据进行比较,提高检测效率。

    五、结语

      在机器视觉产业的蓬勃发展的今天,摄像机标定已经逐步应用到医疗、食品、磨具生产、半导体生产等诸多检测系统中。随着像HALCON这样的算法库用户群的不断扩大,摄像机标定在作为我们研究课题的同时,也会不断的走进工业应用中。它将为我们提供更完善,更精准的二维以及三维空间的解决方案,成为提高工业生产效率和产品质量的推动力。

    70779b3100068da926e3f9411a95a207.gif End 70779b3100068da926e3f9411a95a207.gif

    声明:部分内容来源于网络,仅供读者学术交流之目的。文章版权归原作者所有。如有不妥,请联系删除。

    展开全文
  • 像差导致畸变halcon畸变模型在halcon中,这个畸变可以通过division model和polynominal model来建模division model这种模型使用一个参数k来建模这种畸变关系转换公式其中公式畸变polynominal model也称多项式,使用...
  • halcon里面的标定助手,用C#语言写了一遍,代码是原版代码。如果用C#开发的软件需要相机标定功能的话,可以下载下来研究研究!
  • 点击上方“新机器视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达一、为什么要进行摄像机标定 随着机器视觉的迅猛发展,我们已经不满足于使用摄像机进行监控、抓拍这种较为简单的功能。更多的用户青睐于它在...
  • http://blog.csdn.net/hust1900/article/details/86877841打开halcon标定助手2.标定任务一栏,选择位姿和所有参数(此为默认情况);标定板一栏,则点击文件浏览,\clib\ 选择halcon自带的一个标定板文件(也可以自作一...
  • Halcon学习标定助手

    2015-06-25 23:13:00
    本文采用halcon标定助手进行标定。 第一步:打开标定助手。 第二步:对描述文件进行修改 具体:打开算子窗口,输入gen_caltab,进行描述文件修改。 参数XNum和YNum为7行*7列的圆,Markdist为圆的直径,单位...
  • halcon标定流程

    2018-07-18 17:08:19
    halcon标定流程,怎么将标定助手中的标定流程在c#中编程。
  • 对于相机采集的图片,会由于相机本身和透镜的影响产生形变,通常需要对相机进行标定,获取相机的内参或内外参,然后矫正其畸变。相机畸变主要分为径向畸变和切向畸变,其中径向畸变是由透镜造成的,切向畸变是由成像...
  • 相机标定1相机标定基本原理1.1相机成像模型目前大多数相机模型都是基于针孔成像原理建立的,因为针孔成像原理简单,并且能满足建模的要求。除此之外还有基于应用歪斜光线追踪法和近轴光线追踪法的成像模型[1]。针孔...
  • 图像处理与机器视觉第一章 图像增强的研究和发展现状 图像在采集过程中不可避免的会受到传感器灵敏度、噪声干扰以及模数转换时量化问题等各种因素的影响,而导致图像无法达到令人满意的视觉效果,为了实现人眼观察...
  • Halcon图像标定

    2018-01-03 10:13:31
    利用halcon 标定助手,得到相机的参数,实现简单的图像矫正,参数是通过halcon助手标定得到的
  • 一、单项机标定原因降低畸变(相差)测量二、相机标定求出什么该方程是求取世界坐标系与像素坐标系之间...三、标定助手设置标定参数;尽量选择9到16张图片,且图片覆盖整个视野,Mark点出现在视野各个区域,同时标定...
  • Halcon 标定

    2017-05-20 11:14:38
    第一步:打开标定助手。 第二步:对描述文件进行修改 具体:打开算子窗口,输入gen_caltab,进行描述文件修改。 参数XNum和YNum为7行*7列的圆,Markdist为圆的直径,单位为米。DiameterRatio为圆的直径与两个...
  • 原标题:HALCON高级篇:3D相机标定(1/3)创建标定数据模型你可以用算子create_calib_data创建一个标定数据模型,指定相机和标定物体的数量。当用一个相机的时候,你也用一个单独的标定物体。然后,你要做的是: 指定...
  • 机器人是如何标定的呢?与人一样,机器人的标定方式离不开手眼系统的助力——通俗的说,就是当眼睛看到一个东西需要让手去抓取或者做其他动作,这个时候大脑必须知道手与眼睛的坐标关系。如果把大脑比作B,把眼睛...
  • 四轴平面机器人的手眼标定 介绍在实际的机器人应用中,通常会给机器人配备视觉传感器,视觉传感器用于感知周围环境。但是,通过视觉传感器获取的场景坐标是基于视觉坐标系下的,机器人并不能直接使用,要获取机器人...
  • 上次说到如何对桥梁震动进行双目视觉测量方案,这次还想再稍微细致一点,说说如何快速具体实现工业级产品的思路。双目立体视觉其实发展很...但真的要在工业级别去做产品,还是要请出业界良心:来自德国的Halcon工业...
  • 用单个相机在指定平面上的尺寸测量在HALCON中很容易从图像中获得在世界坐标中的非变形测量。一般情况下,如果相同的物体在同一时刻,在不同的空间位置下,用相机拍摄两个或更多的图像,才能完成这样的测量任务。这...
  • halcon标定代码注解

    千次阅读 2016-12-12 20:39:17
    halcon标定助手生成的代码注释,部分变量做了全局处理 相机参数初始化 /// /// 相机参数初始化 /// /// 焦距,单位:mm /// 像素宽度,单位:um</pa
  • 输入指令“1”: “Generate camera calibration board and enter feature measurements”,打印提示位置找到的相机标定板,使打印好的标定板平面白色表面比投影面积大,在获得标定的相机标定板表面后,在命令行输入“1...
  • 面扫相机图1: 针孔相机的透视映射图1展示了一个针孔相机产生的透视映射。...值得注意的是,在图像标定以后,焦距还有焦点是不能被改变的。尽管实际上图像面位于镜头光中学的后面,其很容易假设它位...
  • 谢谢关注~关于固定向下相机手眼标定的一些思考?相机固定向下安装是手眼搭配中最简单的应用模式,也是大家最常用,最容易理解的一种方式。就让我们从这种简单的应用场景一起思考其中的一些奥妙吧。—Edited By Hugo/...
  • 3D成像关键技术,主要...校准(标定)技术用于在摄像机之间对齐像素信息并提取有关深度的信息,类似于我们的大脑如何以视觉方式测量距离。将认知过程转换为系统需要大量的计算工作。体视觉成像这种系统使用标准的工业...
  • Halcon学习(二十三)标定助手

    千次阅读 2013-07-20 09:02:14
    本文采用halcon标定助手进行标定。 作者:骑蚂蚁上高速 第一步:打开标定助手。 第二步:对描述文件进行修改 具体:打开算子窗口,输入gen_caltab,进行描述文件修改。 参数XNum和YNum为7行*7列的圆,...

空空如也

空空如也

1 2 3 4
收藏数 65
精华内容 26
关键字:

halcon标定助手