0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么要进行摄像机标定

jt_rfid5 来源:今日光电 2023-06-20 11:00 次阅读

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

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

3c50c4cc-0e89-11ee-962d-dac502259ad0.jpg

图一

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

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

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

3c583b44-0e89-11ee-962d-dac502259ad0.jpg

二、什么是摄像机标定

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

三、摄像机单目标定

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

1、摄像机内参

3c64e18c-0e89-11ee-962d-dac502259ad0.jpg

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

1)焦距

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

a) 针孔模型

3c6ccf6e-0e89-11ee-962d-dac502259ad0.jpg

b)远心模型

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

3c72356c-0e89-11ee-962d-dac502259ad0.jpg

2)镜头畸变

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

3c768f86-0e89-11ee-962d-dac502259ad0.jpg

a)径向畸变

3c7d51ea-0e89-11ee-962d-dac502259ad0.jpg

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

3c859a80-0e89-11ee-962d-dac502259ad0.jpg

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

3c8b8580-0e89-11ee-962d-dac502259ad0.jpg

b)离心畸变

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

3c917576-0e89-11ee-962d-dac502259ad0.jpg

c)薄棱镜畸变

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

3c9880e6-0e89-11ee-962d-dac502259ad0.jpg

d)畸变校正

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

3c9f76d0-0e89-11ee-962d-dac502259ad0.jpg

2. 摄像机外参

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

1)旋转矩阵R

3ca4de86-0e89-11ee-962d-dac502259ad0.jpg

如图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】

因此

3caebece-0e89-11ee-962d-dac502259ad0.jpg

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

3cb86fe6-0e89-11ee-962d-dac502259ad0.jpg

2)平移矩阵T

3cbf8812-0e89-11ee-962d-dac502259ad0.jpg

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

3cc7491c-0e89-11ee-962d-dac502259ad0.jpg

3)参数求解

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

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

a)生成标定板

i. 创建标定板

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

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

3cce55fe-0e89-11ee-962d-dac502259ad0.jpg

ii.打印标定板

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

b) 摄像机参数设置

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

3cd36f08-0e89-11ee-962d-dac502259ad0.jpg

c)拍摄标定板图像

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

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

3cdad694-0e89-11ee-962d-dac502259ad0.jpg

d)标定图像载入

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

3ce38aaa-0e89-11ee-962d-dac502259ad0.jpg

e)标定

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

3ceb4e16-0e89-11ee-962d-dac502259ad0.jpg

f)验证标定结果

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

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

3cf1d092-0e89-11ee-962d-dac502259ad0.jpg

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

3cf8b600-0e89-11ee-962d-dac502259ad0.jpg

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

3d0570a2-0e89-11ee-962d-dac502259ad0.jpg

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

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

四、应用

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

3d0d7aa4-0e89-11ee-962d-dac502259ad0.jpg

图15 图16

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

五、结语

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 摄像机
    +关注

    关注

    3

    文章

    1421

    浏览量

    58990
  • 机器视觉
    +关注

    关注

    161

    文章

    4043

    浏览量

    118360
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47687

原文标题:【光电智造】摄像机标定技术及其应用——单目摄像机

文章出处:【微信号:今日光电,微信公众号:今日光电】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于Dragonboard 410c平台的机器3D视觉—摄像机标定原理

    Dragoboard410c开发板为平台进行简单的3D视觉实验,这里我们将涉及到3D视觉中的摄像机标定、姿势估计、对极集合和3D图像中的深度地图等内容。 这篇blog主要向大家介绍摄像机
    发表于 09-28 10:32

    基于机器视觉的摄像机标定理论与各种方法分析

    进行图像处理,并利用一系列数学变换公式计算及优化,来求取摄像机模型内部参数和外部参数。然而,该方法在场景未知和摄像机任意运动的一般情况下,其标定很难实现。20世纪90年代初,Fauge
    发表于 06-04 08:00

    网络摄像机与模拟摄像机的区别是什么

      第一、概念弄清:  模拟摄像机(Camera)前端采用隔行扫描CMOS/CCD感光器将光信号转换成模拟电信号,然后输出到DSP,由DSP进行A/D转换与色彩调整等处理再做D/A转换调制成PAL
    发表于 12-11 14:22

    摄像机标定理论是什么?其方法有哪些?

    摄像机标定是什么?如何对摄像机标定进行分类?传统摄像机标定
    发表于 04-13 06:10

    简易摄像机标定方法

    以简化以往的摄像机标定技术为研究目的,分析了标定算法对于前期图像处理的要求,给出了基于MATLAB 的简易 摄像机 标定方法。该方法借助于常
    发表于 06-13 15:52 39次下载
    简易<b class='flag-5'>摄像机</b><b class='flag-5'>标定</b>方法

    基于摄像机标定的车辆速度检测方法

    提出了基于平面单应性矩阵的摄像机标定算法,通过摄像机标定对检测区域进行网格划分,从而进行车辆速度
    发表于 11-10 14:35 51次下载

    一种基于Tsai法的摄像机改进标定

    提出了一种改进标定法.该方法采用分步标定的思想,以创建的平面模板为标定物,利用共面点便可线性求解出摄像机的内外参数.建立的摄像机模型考虑了径
    发表于 04-26 15:29 28次下载
    一种基于Tsai法的<b class='flag-5'>摄像机</b>改进<b class='flag-5'>标定</b>法

    基于OpenCV的单目摄像机标定

    本文CameraCalibrator类源代码来自于OpenCV2 计算机视觉编程手册(Robert Laganiere 著 张静 译) 强烈建议阅读机器视觉学习笔记(4)——单目摄像机标定参数
    发表于 02-08 03:36 561次阅读

    基于OpenCV的双目摄像机标定

    (4)——单目摄像机标定参数说明  机器视觉学习笔记(5)——基于OpenCV的单目摄像机标定  机器视觉学习笔记(6)——双目摄像机
    发表于 02-08 03:41 612次阅读

    机器视觉中的摄像机标定和自标定分析

    的,这些几何模型参数就是摄像机参数。在大多数条件下,这些参数必须通 过实验与计算才能得到,这个过程被称为摄像机定标(或称为标定)。标定过程就是确定
    发表于 11-17 17:53 1.5w次阅读
    机器视觉中的<b class='flag-5'>摄像机</b><b class='flag-5'>标定</b>和自<b class='flag-5'>标定</b>分析

    opencv单目相机标定例程

    可选参数进行摄像机标定的程序。calibration_artificial.cpp 是程序模拟模拟摄像机标定的过程,即程序创建棋盘然后自主
    发表于 12-04 17:23 3456次阅读
    opencv单目相机<b class='flag-5'>标定</b>例程

    单幅二维图像的摄像机标定方法

    为提高场景摄像机标定精度和标定效率,本文利用摄像机透镜成像原理,基于针孔成像模型,提出了一种基于单幅二维图像的摄像机
    发表于 12-15 11:04 5次下载

    为什么要进行摄像机标定

    但是在实际应用中并非如此,我们无法严格控制像平面和被测平面的位置,所用的镜头也不是严格的小孔模型。如果直接使用【1】式计算将会产生极大的误差。因此,为了获取更高的测量精度,我们需要通过标定来实现坐标平面的转换以及图像的校正。
    的头像 发表于 11-03 09:42 1.5w次阅读
    为什么要<b class='flag-5'>进行</b><b class='flag-5'>摄像机</b><b class='flag-5'>标定</b>

    摄像机标定技术及应用

    一、为什么要进行摄像机标定 随着机器视觉的迅猛发展,我们已经不满足于使用摄像机进行监控、抓拍这种较为简单的功能。更多的用户青睐于它在非接触三
    的头像 发表于 06-19 10:57 1096次阅读
    <b class='flag-5'>摄像机</b><b class='flag-5'>标定</b>技术及应用

    机器视觉的摄像机标定技术你知道多少?

    利用本质矩阵和基本矩阵的摄像机标定方法;利用主动系统控制摄像机作特定运动的自标定方法(主动视觉标定方法)。
    发表于 10-16 11:42 340次阅读
    机器视觉的<b class='flag-5'>摄像机</b><b class='flag-5'>标定</b>技术你知道多少?