摄像测量

2024-05-08

摄像测量(精选四篇)

摄像测量 篇1

1 对无限远物体成像时摄像机视场的测量

无限远物体发出的光为平行光, 对无限远物体成像时摄像机的视场用视场角2ω来表示, ω为平行光与光轴的最大夹角。测量方法如图1所示, 将摄像机固定在转台上并对准平行光管, 平行光管焦点处放置的星点孔发出的光经平行光管物镜后成为平行光进入摄影机, 成像在CCD上, 并在显示器上显示出来。旋转转台, 让星点孔的像从显示器上整个图像的一边移动到另一边, 此过程中转台转过的角度即为所测的视场角2ω。测量完一个方向的视场角后, 把摄像机绕光轴旋转90°, 再测量另一个方向的视场角。

测量用的平行光管的口径要越大越好, 至少应该不小于摄像机的入瞳直径。旋转时摄像机的旋转中心要尽量接近摄像机的入瞳中心。设入瞳中心为O, 旋转中心为O′, 如果O′与O相距较远, 则在旋转过程中很可能会使整个入瞳不在平行光束的口径内, 从而没有平行光线能进入摄像机, 这就需要使用更大口径的平行光管。如果旋转中心就是入瞳中心O, 那么在平行光管的口径不小于入瞳直径时, 无论怎么旋转, 整个入瞳都不会超出平行光束的口径范围。在转动转台时, 如果发现星点孔的像尚未移动到图像的边缘时即已消失, 则说明入瞳已经旋转出了平行光束的口径范围, 需要让旋转中心更加接近入瞳中心或者加大平行光管的口径。

2 对有限远物体成像时摄像机视场的测量

2.1 线视场的测量

对有限远物体成像时摄像机的视场用线视场即物高来表示, 指所能看到的物体的最大高度。测量方法如图2所示, 将一把賵标�准刻尺放置于摄像机前L处并与光轴垂直相交, 其中L是标准刻尺到镜头前表面的距离。然后从图像上读出所能看到的标准刻尺上的最大刻度值和最小刻度值, 两者相减即得到该方向上的物高H。对于有一定景深的摄像机, 可以在不同的L处测出不同的物高H。

2.2 视场角的测量

对有限远物体成像时摄像机的视场有时也用视场角2ω来表示。视场角2ω可以定义为线视场对入瞳中心的张角, 也可以定义为线视场对摄像机镜头前表面中心的张角。由于镜头前表面中心与入瞳中心的距离一般很小 (远小于L) , 所以两种方法定义的视场角差别很小。在实际测量时, 由于入瞳的位置较难测定, 所以一般采用后一种方法定义视场角。如图2所示, 用3.1节中的方法测出线视场H后, 再测量出标准刻尺到镜头前表面中心的距离L, 则半视场角ω为

一般来说, 在不同的距离L处的视场角2ω是各不相同的, 如果需要的话, 可以测量并计算出多个L处的视场角2ω。

摘要:介绍了摄像机视场的测量方法, 当摄像机对无限远物体成像时, 提出了用平行光管和转台来测量视场角的方法;当摄像机对有限远物体成像时, 提出了用标准刻尺来测量线视场和视场角的方法。

关键词:摄像机,视场测量,视场角

参考文献

[1]张以谟.应用光学[M].北京:机械工业出版社, 1988.

摄像测量 篇2

关键词:体积测量,像素点,拟合

0 引言

测量技术的应用范围十分广泛,小到对微型工件的尺寸测量,大到对天体体积、天体之间距离的测量。而本文所要探讨的,就是一种利用摄像头测量物体体积的方法。生活中很多的东西,形状怪异普通的方法难以快速测量其体积,因此本文所探讨的测量方法在生产实践中是很有意义的。

1 方案简介

当摄像头与物体的距离固定时,拍出的图片与实际物体的大小比例也是固定的,也就是说图片上的物体所对应的像素点与物体该截面的面积成正比。利用这个结论,我们在实验中使用摄像头对被测物体进行360°拍照,得到每一个截面的图片,计算得出各个截面的面积,而后进行积分累加求出该物体的体积。

我们所设计的整个系统分为两大部分 :步进电机驱动系统和体积测量系统。

(1)步进电机驱动系统的作用是让被测物体进行匀速的旋转,方便摄像头拍照。

(2)体积测量系统是利用摄像头拍照并计算出被测物体的体积。

2 系统硬件设计

硬件部分的结构如图1所示 :

2.1 步进电机驱动系统

这个部分由单片机、步进电机以及步进电机驱动器组成。我们选用的单片机的型号为STC89C52RC ;步进电机型号为42BYGHW609 ;配套驱动器型号为DQ420MA。该步进电机的固有步角距为1.8度,在步进电机驱动器收到单片机传来的方波信号时,会将方波信号转换为角位移来带动步进电机匀速转动。

2.2 体积测量系统

这个部分由普通摄像头和计算机构成。摄像头以固定的帧频提取物体图片,送给计算机进行数据处理。为了能够更好地分辨被测物体的大小及轮廓,方便在程序中对图像进行二值化处理,我们制作一个单色背景,并使得该背景颜色和被测物体的颜色明显区别。在实验中,我们使用了白色的被测物体,而背景则选择为黑色。

3 系统软件设计

本设计中程序主要由步进电机驱动程序和体积测量程序构成。其程序流程图分别如图2、3所示。

3.1 步进电机驱动程序

该程序中我们采用循环取反来实现电平变化,使得单片机产生一个稳定的方波,进而驱动步进电机匀速转动。为了方便后期计算机进行图像数据的处理,这里先要计算方波的频率,以便计算机处理的图像正好是被测物体360°的图像,而不会出现重复拍摄的图像。

3.2 体积测量程序

先调用OPENCV库打开摄像头,用摄像头循环提取图片。然后通过一定的规律 , 统计每一张图片上被测物体的像素点,得到统计结果之后,用已经拟合的公式计算出这些点所对应的物体体积。

3.2.1像素点统计算法

将物体从上到下分割为无数个半径不同的圆片,我们从图片上看到的就是由这无数个圆片的直径叠加成的面。整个图片为一个数字组成的矩阵,极黑点为0,极白点为255。将这个矩阵记为a[x][y] ,利用二值法统计出每一行的白像素点,得到列矩阵 b[x],这个矩阵的每一列的数字与圆片的直径有着正比的关系。将第m张图片的第n个直径记为lmn , 每两张图片所得到的截面之间转过的角度为θ , A为像素与实际面积之间的转换比例。每次转过角度时,我们计算一次,物体转过一圈后,把每一次的结果叠加,公式表达如下 :

3.2.2经验公式的拟合

在这个公式中,比例系数A、角度均为已知量,我们将所有的系数用一个未知数代替,记为X。于是 :

如果确定了X的值,那么整个公式也随之确定。令,我们称之为物体的虚拟体积。

找出形状相似的一类已知体积的物体,用已经写好的程序计算出这些物体的虚拟体积V' ,通过matlab作拟合曲线,可以得到最终的公式。一般情况,形状差异太大的物体拟合的公式会不一样,所以不同类型的物体所使用的公式不一样。

4 实验测试及数据分析

我们用该方法测量了六个圆锥类物体,每个物体测量了三次,其中物体的实际体积是用排水法所测出来的,得到如下结果 :

从测试的情况可以看出结果的偏差在可接受范围内,得到的结果有一定的误差。在本体系中,用锥类物体拟合出来的公式只能运用于这类锥体,对于其他类型的物体必须进行重新拟合。

就目前而言,这个设计有两点可以优化 :

(1)给整个系统制作一个全封闭式的环境,并在内部加上固定光源。这样可以加强系统的稳定性,减轻因昼夜和天气的不同,光线差异过大而导致测量同一物体的结果有所偏差。

(2)用一种集成芯片来代替计算机,简化整个系统,运作起来也不会受到原来计算机其他程序运行时的影响,测量结果也会更加稳定。

5 结论

摄像测量 篇3

疲劳裂纹扩展试验是通过实时测量试件在设定交变载荷作用下所产生疲劳裂纹的尺寸来研究材料疲劳断裂特性的一种重要的金属材料性能测试方式, 对于产品结构设计和产品寿命预估计具有十分重要的意义。以往的裂纹尺寸在线检测方法有显微镜法、柔度法、涡流法、声发射法及交直流电位法, 但都不同程度地存在精度不高、操作繁琐、抗干扰性差和不易实现自动记录等问题[1]。

基于图像处理技术的裂纹在线检测方法可以直观、精确、实时地完成裂纹的检测和进一步的分析处理, 是新的疲劳裂纹扩展速率检测方法国家标准推荐的微小裂纹检测方法[1], 目前国外已有相关的研究与应用[2,3,4,5,6], 而国内的研究与报道相对较少。此方法的一大特点是可直观地检测与显示裂纹形状、裂纹发展的进程, 省掉了标定过程与校核的过程, 整个试验过程有据可查, 可反复观察和分析;另一特点是可高精度地检测微小裂纹。从工程应用和发展的角度来看, 测试含有微裂纹试件的力学性能非常重要, 通过测试过程可揭示疲劳裂纹发展、扩大直至试件断裂的力学规律。

基于图像处理技术的裂纹在线测量方法通过图像采集、处理、分析计算, 在线测量出裂纹长度尺寸, 其中采集到完整、清晰、分辨率高的图像是图像法测量最基本的一个环节。对于疲劳裂纹扩展试验, 随着试验的进行, 裂纹尖端不断延伸, 要采集到上述所要求的图像, 摄像头固定的测量系统必须采用复杂昂贵的光学系统才能实现[3,4,5]。本文所采用的方法是, 采用普通的光学镜头, 摄像头随着裂纹的扩展精确跟踪定位, 从而采集到完整、清晰、分辨率高的裂纹图像, 通过图像处理算法对不断采集到的图像进行处理, 从而得到扩展裂纹的长度。此方法在采用普通光学系统的情况下提高了裂纹尺寸的测量精度, 且可实时观测到裂纹尖端清晰的扩展过程。

1 基于图像处理技术的疲劳裂纹扩展试验工作原理

本文提出的图像法疲劳裂纹扩展试验系统主要包括裂纹长度在线测量系统与摄像头自动跟踪定位系统两部分, 系统硬件原理框图见图1。

系统包括待测试件、CCD摄像头、云台、ARM智能摄像头运动控制器、照明系统、图像采集卡、计算机以及图像处理软件。系统工作原理如下:将带有预制裂纹的CT紧凑试件安装在产生设定交变载荷的疲劳试验机上, 试件在交变载荷的作用下裂纹不断扩展, 照明系统将产生的光线照射到试件上, 经试件反射的光线通过镜头成像到CCD摄像头上, 裂纹图像通过CCD摄像头及图像采集卡转换为数字图像并被采集到安装有图像处理软件的计算机内, 经软件处理、分析后计算出裂纹长度并通过计算机实时显示。为提高系统的测量精度, 疲劳裂纹扩展一定长度后摄像头必须随之精确跟踪定位, 摄像头不断跟踪扩展的裂纹, 计算机将采集到的裂纹扩展图像进行处理得到分辨率高的裂纹图像从而获得高测量精度的裂纹尺寸。通过数据通信接口将裂纹扩展数据发送给摄像头运动控制器, 摄像头运动控制器控制摄像头运动来实现裂纹扩展的跟踪。

2 图像法疲劳裂纹长度在线测量

2.1 图像法裂纹长度测量实现过程

图像法裂纹长度测量实现过程如图2所示, 由图像预处理和图像分析两部分组成, 主要包括中值滤波、边缘锐化、裂纹分割、裂纹边界处理和裂纹特征提取。由于试样表面裂纹尖端非常细小, 故在进行这种细微图像特征提取与识别之前, 要进行图像预处理, 有效消除噪声, 以提高测量精度。

分析本文中的裂纹图像特征发现, 裂纹是在预制裂纹顶点开始萌发的, 基本沿着水平线扩展。获得的图像主要能量集中在低频段, 而裂纹细节和噪声主要集中在高频段, 所以去噪的关键就是能够在降低噪声的同时保留裂纹细节。本文采用垂直方向的边缘锐化方法进行水平裂纹的图像增强, 然后再采用中值滤波的方法来进行图像去噪, 这种方法既去除了系统的随机噪声又保留并增强了裂纹细节。然后对处理后的图像进行图像分析。首先需要将裂纹边界分割出来以便测量, 本文采用边缘检测和图像二值化方法将裂纹边界分离出来, 对二值化后得到的裂纹图像进行去除颗粒、边界闭合、细化、骨架提取等图像形态学方法处理, 得到连续清晰的裂纹边界, 最后由裂纹主干提取算法计算出裂纹像素尺寸并根据系统标定信息将其转换为裂纹真实尺寸。

2.2 裂纹图像处理算法

本文所采用的裂纹图像处理算法是中值滤波去噪和使图像边缘锐化增强的高通增强滤波算法, 高通增强滤波器为线性滤波器, 采用卷积法对水平裂纹图像进行处理, 所采用的卷积核如图3所示, 图像锐化增强后的效果如图4所示。中值滤波器是一种非线性的滤波器, 其滤波原理是, 对掩码内各个像素灰度值进行排序并取中值, 然后将该中值赋给PUI。中值滤波对边缘图像处理能收到很好的效果, 即使掩码尺寸再大, 中值滤波器也不会降低边缘的锐利程度, 因此非常适合裂纹图像的处理。

2.3 裂纹图像分析及裂纹尺寸计算

2.3.1 裂纹图像分割算法

本文采用Sobel算子边缘检测和自适应多阈值分割法将裂纹图像二值化处理后进行裂纹图像分割。边缘检测实际上只是对边缘进行了锐化处理, 要提取出裂纹并不容易, 所以需进一步进行图像二值化的操作, 将多灰度级的图像转换为只有两个灰度值的图像。两个灰度值分别对应裂纹目标区域和背景区域。

2.3.1.1 裂纹边缘检测

边缘检测常用的方法有属于空域微分算法的Roberts算子、Sobel算子、Prewitt算子, 拉普拉斯高斯 (LOG) 算法以及Canny边缘检测器, 采用多种方法对裂纹图像进行处理表明, 采用图5所示卷积核Sobel算子边缘检测算法效果最佳, 其效果图见图6a。

2.3.1.2 裂纹图像二值化处理算法

由于裂纹处于复杂的背景中, 且存在照明不均匀的情况, 故运用直方图阈值分割法、Otsu阈值分割法对整幅图像进行处理很难将目标与背景分离, 所以本文采用一种自适应的多阈值分割法来实现图像二值化。采用此方法处理后得到的裂纹二值化图像见图6b。

算法步骤如下:①把图像分成m×m个子图像;②基于第ij子图像的直方图选择该图像的阈值Tij (i, j=1, 2, …, m) ;③进行所有子图像分割区域的逻辑并, 得到图像分割后的最后结果。

其中, 被分割的子图像个数m选取的原则是:使每个子图像内的亮度分布近似于均匀, 所有不包含裂纹和背景间边界的子图像都具有小于65的方差, 所有包含边界的子图像都具有大于100的方差, 每幅方差大于100的子图像都用专门为本幅子图像计算的阈值进行分割, 阈值的计算采用一种试探性迭代方法。

2.3.2 基于图像形态学的裂纹图像边界处理算法

如图6b所示, 二值化后得到的图像中背景区域上总是散布着一些噪声小颗粒, 裂纹的边界也不怎么平滑, 这是由光源照射均匀性、试件表面平滑度、图像采集系统稳定性等原因引起的。而对这些散布的小颗粒做处理会影响到裂纹边缘的连续性。裂纹检测需要获得比较清晰的裂纹边界, 所以噪声颗粒去除后需要进行边界闭合操作, 闭合操作是先后对图像进行膨胀和腐蚀这两种基本的形态学运算, 把比结构元素小的缺口或孔补上, 从而对短间断起到联通作用。二值化后得到的裂纹图像经去除颗粒、边界闭合、骨架细化等图像形态学方法处理后得到连续清晰的裂纹边界, 处理效果如图7所示。

2.3.3 裂纹图像特征提取

根据二值图像特点, 搜索图7d所示的AB两点位置, 然后根据两点求线段长度, 就很容易得到裂纹的像素长度Lp。本文采用对二值图像所对应的灰度数组进行循环查询的方法先搜索出裂纹的所有像素位置, 然后计算位置极值来定位AB两点。根据裂纹扩展规律, 裂纹在整个过程中所在的位置比较固定, 所以采用选取固定的ROI (目标区域) 的方法进行搜索处理, 以便减小计算量。最后根据系统标定信息将其转换为裂纹真实尺寸。

3 摄像头跟踪定位

3.1 摄像头运动控制要求

为了提高图像处理的精度, 本文所采用的方法是:当图像处理系统检测到裂纹生长5mm时将此裂纹扩展数据传送给摄像头运动控制器, 控制器控制步进电机带动摄像头随之跟踪5mm, 这样使得采集的裂纹图像清晰、分辨率高且始终处于最佳状位置。摄像头运动云台是一个高精度位置运动控制系统, 主要是对驱动摄像头运动的步进电机进行控制, 控制要求就是要实时、精确、稳定地实现摄像头点到点的运动。要达到这个要求, 运行速度需要一个“加速—恒速—减速—停止”的过程, 本文方法对摄像头跟踪速度要求不高, 但要求其运动平稳, 抖动小, 能在运动中精确定位, 实现从指定点到指定点的运动, 所以速度跟踪采用了直线升降速法。

3.2 摄像头运动控制策略

摄像头云台X轴及Y轴是控制摄像头跟踪和聚焦的, 轴向运动由高度细分的步进电机驱动高精度的滚珠导轨机构来实现。为消除步进电机失步等影响定位精度的因素, 摄像头的定位和运动速度控制均采用模糊PID闭环控制方式, 由光电编码器提供位移和速度反馈。控制原理框图见图8。针对摄像头云台运动的时变性以及运行过程的不确定性, 将PID控制与模糊控制相结合, 不但能实现精确控制, 而且还具有较强的自适应性, 可以更加有效地实现人的控制策略。摄像头运动控制模糊PID控制器的设计思想是, 先找出PID的比例ΔKP、积分ΔKI、微分ΔKD三个参数与偏差e和偏差变化率ec之间的模糊关系, 在运行过程中不断地检测偏差和偏差变化率, 再根据特定的模糊规则, 对PID的比例ΔKP、积分ΔKI、微分ΔKD三个参数进行整定, PID在获取新的参数后, 对控制对象输出控制量, 以更好地兼容系统的动态性能和稳态性能。

3.3 摄像头运动控制仿真

在完成摄像头运动PID控制器、模糊控制器和模糊PID控制器的设计之后, 为了比较它们的控制性能, 本文采用MATLAB对控制对象进行了仿真研究。XY轴电机采用的是42BYG250FC型号的步进电机, 其传递函数为

G (s) =1141.412s2+0.882s+1141.412

对系统输入阶跃信号进行Simulink仿真, 结果如图9所示。从仿真结果可以看出, 模糊PID控制器较传统的PID控制器和模糊控制器具有更快的响应速度, 并且系统超调量明显减小, 控制系统的动态特性和静态特性均得到改善, 能更好地满足系统的应用要求。

3.4 摄像头运动控制软硬件平台

ARM嵌入式摄像头运动控制硬件平台主要由ARM控制器、摄像头运动操作模块、RS232通信接口模块、步进电动机驱动模块、编码器测量模块和限位信号处理模块组成, 其总体结构框图见图10。嵌入式系统软件的设计主要包括两个方面:一是嵌入式操作系统的选择和移植;二是应用程序的设计和调试。根据系统功能, 选用μC/OS-Ⅱ作为系统平台, 完成μC/OS-Ⅱ在LPC2148上的移植, 系统软件分为基本驱动模块、数据通信模块、运动控制模块、人机交互模块以及事务处理模块。由操作系统μC/OS-Ⅱ来完成五大模块的管理调度。

4 试验结果及分析

为了验证本文提出的方法, 进行了摄像头定位和摄像头自动跟踪测量裂纹扩展两项试验。

4.1 摄像头运动定位试验

试验过程为:首先输入移动距离命令, 分远距离移动和近距离移动, 远距离定位用以检测整个行程上的重复定位精度和单向定位精度, 近距离移动用以检测裂纹跟踪时的定位精度, 同一速度下每种定位重复5次, 表1所示为运动速度1mm/s时摄像头运动定位试验数据。采用不同的运动速度2mm/s、4mm/s、6mm/s、10mm/s重复此试验过程, 具体试验数据略。

根据国家标准GB10931—89得:运动速度1mm/s时定位精度为A= (X¯j+3Sj) max- (X¯j-3Sj) min=37.533μm, 同理计算出运动速度2mm/s、4mm/s、6mm/s、10mm/s时摄像头运动定位精度, 最大值为40.125μm, 摄像头的定位精度满足裂纹长度尺寸在线测量要求。

4.2 摄像头固定及自动跟踪疲劳裂纹在线测量试验

在图1所示的硬件平台上进行了疲劳裂纹扩展试验并采用本文所提出的方法进行了裂纹尺寸在线测量。试验采用红山PLG-100高频疲劳试验机, 图像采集卡为美国NI公司生产的PCI-1014图像采集卡, 摄像头云台运动控制器为基于ARM技术的控制器, 镜头为25mm定焦镜头, CCD为XC-XT50CE高析像度、高帧速率顺序扫描的黑白CCD摄像头, 软件开发平台为IMAQ - VISION, 试块为CT紧凑标准试块, 材料为45钢, 试验机所提供的正弦交变载荷参数为:振动频率124.6Hz, 最小载荷为4.52kN, 最大载荷为11.66kN。通过试验测定了疲劳裂纹尺寸随时间变化的曲线, 表2所示为所选取的试验过程中的几个测量点的数据, 该数据为采用本文方法测得的裂纹长度尺寸和摄像头固定不动所测得的裂纹长度尺寸及高精度测量显微镜所测得的裂纹长度尺寸, 其中显微镜测量精度为0.001mm。图11为摄像头不跟踪裂纹扩展区域的图像和摄像头跟踪裂纹扩展区域的图像。

由试验结果可知:采用本文提出的基于摄像头自动跟踪的疲劳裂纹动态测量方法对提高裂纹在线测量精度有显著效果, 因为裂纹长度测量为动态在线测量, 由于光线、识别算法因素的影响, 裂纹测量的精度不是固定数值, 经多次试验, 基于摄像头自动跟踪方法的最大裂纹长度测量误差为0.076mm, 而基于摄像头固定方法的最大裂纹长度测量误差为0.148mm。基于摄像头固定的疲劳裂纹长度在线测量方法的测量误差主要是由所采集的图像分辨率低及裂纹图像处理算法所引起的, 而基于摄像头自动跟踪的疲劳裂纹动态测量方法所采集的图像分辨率高, 采用同样的裂纹图像处理算法则裂纹测量精度高, 如要进一步提高其测量精度则可从两方面入手:一是采用更加精确的裂纹图像识别算法, 二是提高摄像头跟踪定位精度。

5 结语

为了提高图像法疲劳裂纹扩展试验裂纹尺寸的测量精度, 本文提出了一种基于摄像头自动跟踪定位的疲劳裂纹在线测量方法, 采用该方法进行了裂纹在线测量, 由于摄像头能自动跟踪疲劳裂纹扩展尖端区域, 故系统可采集到完整、清晰、分辨率高的图像。本文提出的图像法裂纹尺寸测量方法, 裂纹尺寸动态测量精度高, 稳定性强, 可直观地检测与显示裂纹形状、裂纹发展的进程, 试验完成后对整个试验过程有据可查, 可反复观察和分析。试验结果表明:基于摄像头自动跟踪方法的最大裂纹长度测量误差为0.076mm, 基于摄像头固定方法的最大裂纹长度测量误差为0.148mm, 证明本文方法是有效的高精度的裂纹在线测量方法。

摘要:提出了一种基于摄像头自动跟踪定位的疲劳裂纹在线测量方法, 该方法主要包括图像法裂纹在线测量算法和摄像头跟踪定位运动控制技术。基于摄像头自动跟踪方法的最大裂纹长度测量误差为0.076mm, 基于摄像头固定方法的最大裂纹长度测量误差为0.148mm。试验结果表明, 该方法对提高裂纹测量精度具有显著效果。

关键词:疲劳裂纹,在线测量,图像处理,摄像头定位跟踪

参考文献

[1]GB/T 6398-2000金属材料疲劳裂纹扩展速率试验方法[S].北京:国家质量技术监督局, 2001.

[2]Diaza F V, Armasa A F, Kaufmanna G H, et al.Nondestructive Evaluation of the Fatigue DamageAccumulation Process around a Notch Using a Dig-ital Image Measurement System[J].Optics and La-sers in Engineering, 2004, 41 (3) :477-487.

[3]Banaszak D, Dale G A, Jordan J D, et al.An OpticalTechnique for Detecting Fatigue Cracks in Aero-space Structures[C]//18th International Congresson Instrumentation in Aerospace Simulation Facili-ties.Toulouse, France:IEEE, 1999:27/1-27/7.

[4]Ryu D H, Choi T W, Kim Y I, et al.Measurementof the Fatigue-crack Using Image ProcessingTechniques[C]//Fourth International Conference onKnowledge-based Intelligent Engineering Systemsand Allied Technologies/Proceedings KES’2000.Brighton, UK, 2000:121-124.

[5]Vanlanduit S, Vanherzeele J, Longo R, et al.ADigital Image Correlation Method for Fatigue TestExperiments[J].Optics and Lasers in Engineering, 2009, 47 (3/4) :371-378.

摄像测量 篇4

Matlab提供了很多应用工具箱, 其中就有标定工具箱toolbox_calib供我们使用, 其图形交互式的处理方式直观简单、结果快速精确, 是标定这一重要步骤非常合适的工具。

1 单个摄像机分别标定

本文采用的是平面棋盘格, 棋盘规格为27.5mm。用双目摄像头获得不同位置下的棋盘图片, 理论上采集越多的图像, 所求出的结果越精确。根据实验所需, 一般采集20组左右, 并记录标定板的位置信息。

在双目立体视觉系统中, 由于其它标定方法的不稳定性和局限性, 我们最终决定用Bouguet算法的Matlab标定工具箱分别对左右两个摄像头进行标定, Matlab标定工具箱对单个摄像机标定步骤如下:

首先在F:Program Files中安装MATLAB R2012a主程序。下载Matlab标定工具箱, 把Matlab工具箱的文件夹toolbox_calib复制到安装目录F:Program FilesMATLAB R2012atoolbox下, 再把我们前面已经拍摄的标定棋盘图复制到F:P r o g r a m FilesMATLAB R2012atoolboxtoolbox_calib下。启动Matlab程序, 在Command Window内输入:

>>addpath ('F:Program FilesMATLAB R2012atoolboxtoolbox_calib')

>>cd ('F:Program FilesMATLAB R2012atoolboxtoolbox_calib')

基金支持:本文受江苏省大学生实践创新项目基金支持。

上述语句的意思是将Matlab工作空间设置在安装文件夹F:Program FilesMATLAB R2012atoolboxtoolbox_calib下。为了验证工作空间已经设置成功并且标定的棋盘图能正确识别, 继续在Command Window内输入:

>>which right1.jpg

如果窗口内显示:

F:Program FilesMATLAB R2012atoolboxtoolbox_calibright1.jpg

则证明能在工作目录下找到标定所用图像right1.jpg。

准备工作完毕, 运行c a l i l b_g u i进行摄像机标定。选择Standard, 出现如图1-1所示窗口。

先标定右摄像机, 点击Image names, 在Matlab命令行窗口会提示你输入图片的basename (基础名称) , 实验的图片文件名是right1, right2, …, right12, basename就是right。我们输入rignt, 按回车, 接下来是让你输入图片的格式, 实验中保存的是jpg格式, 就输入jpg, 按回车。Matlab工具箱自动读入实验中棋盘格图片, Matlab完成12幅右摄像头的棋盘图的读入。

回到calilb_gui, 选择Extract grid corners, 进行这12张棋盘图角点的提取。实验中是找最外面一圈的角点, 回到Matl ab的Command Window, 命令行会出现如下提示:Extraction of the grid corners on the images

Number (s) of image (s) to process ([]=all images) =

Window size for corner finder (wintx and winty) :

它的意思是输入棋盘角点搜索窗口wintx、winty的长和宽, 我们选77大小即可。

角点提取界面会在选择完毕后自动弹出, 我们按一定顺序分别提取棋盘的最边上的角点, 工具箱会自动找到所有内部对应的角点, 如图1-2, 点击4个最外边的角点即可。

然后回到Matlab的Command Window, 输入棋盘格方格大小。这步定义了空间的尺度, 在后面的物体测距、物体大小描述等信息方面起着重要作用。

开始下一幅图的角点提取。完成后回车即可自动读入下一幅图, 同理完成12幅图的提取。回到calilb_gui界面, 点击Calibration, 开始摄像头标定。等待30秒左右, Matlab计算得到了摄像头的本征参数和畸变参数, 如下所示:

Focal Length:fc=[984.22621 988.55599]?[14.1888814.22740]

Principal point:cc=[356.08748 201.80653]?[12.1283810.94669]

Skew:alpha_c=[0.00000]?[0.00000]=>angle of pixel axes=90.00000?0.00000 degrees

Distortion:kc=[0.04377 0.06571-0.01079 0.001960.00000]?[0.05325 0.45593 0.00469 0.00398 0.00000]

Pixel error:err=[0.11090 0.10129]

回到calilb_gui面板点击Show Extrinsic查看标定3D效果, 如图1-3所示。通过已经记录的实际标定板与摄像机的相对位置, 验证标定结果是否符合要求。

验证标定结果无误之后, 点击面板上的Save按钮, 程序会把标定结果放在F:Program FilesMATLAB R2012a%drive_F%文件夹下一个叫Calib_Results.mat的文件中, 为了后面立体标定识别的方便性, 把这个文件名改为Calib_Results_right.mat, 复制到Matlab工作目录下方便后续使用, 不复制的话程序会找不到相应文件。

同理对左摄像头进行标定, 又生成了新的Calib_Results.mat, 将其文件名改为Calib_Results_left.mat并复制到Matlab工作目录下。

2 立体标定

用相同的方法对左右摄像头都进行标定之后, 开始立体标定。退出calib_gui面板, 回到Matlab的Command Window, 在该行有>>的情况下输入stereo_gui按回车键, 出现图2-1所示界面, 开始立体标定。

点击Load left and right calibration files并在命令行中按两次回车键选择默认的文件名 (C al i b_R e s u l t s_l e f t.m a t和Calib_Results_right.mat) , 回到stereo_gui面板点击Run stereo calibration开始立体标定, 等待10s左右, 左右摄像头的参数都计算出来了, 也求出了两个摄像头之间的旋转和平移关系向量 (om和T) 。

Intrinsic parameters of left camera:

Focal Length:fc_left=[981.10666 982.53816]?[9.194369.02776]

Princi palpoint:cc_left=[276.37936 281.21468]?[14.55475 8.38110]

Skew:alpha_c_left=[0.00000]?[0.00000]=>angle of pixel axes=90.00000?0.00000 degrees

Distortion:kc_left=[-0.14594 1.22238 0.00740-0.01087 0.00000]?[0.07311 1.03011 0.00193 0.00421 0.00000]

Intrinsic parameters of right camera:

Focal Length:fc_right=[979.65348 984.02580]?[9.04324 9.18283]

Principal point:cc_right=[361.22778 212.64918]?[11.95349 9.48257]

Skew:alpha_c_right=[0.00000]?[0.00000]=>angle of pixel axes=90.00000?0.00000 degrees

Distortion:kc_right=[0.03619 0.08136-0.00818 0.00289 0.00000]?[0.05344 0.48159 0.00376 0.00391 0.00000]

Extrinsic parameters (position of right camera wrt left camera) :

Rotation vector:om=[-0.06188-0.04645-0.00279]?[0.01033 0.01794 0.00067]

Translation vector:T=[-112.45166 0.84707-2.84633]?[0.17761 0.19990 2.27834]

回到stereo_gui界面点击Show Extrinsics of stereo rig, 弹出双目摄像机标定三维环境状态图, 结果如图2-2所示, 两个摄像头基本是前向平行并在一条直线上, 摄像头之间的距离为112mm, 计算得十分准确, 标定板和摄像头的相对距离也非常精准, 标定板自身放置姿态也基本符合。

3 保存标定结果

由立体标定得到了立体标定参数之后, 就可以把参数放入xml文件, xml文件为以后的程序调用作准备。

平移矩阵T得到的结果是基于右摄像头为向量起点的, 在后面的cv Stereo Rectify () 函数得到视差图, 再用cv Reproject Image To3D () 函数得到深度图, 其中都是以左摄像头为基准的, 所以T向量都要反转才能再使用。

要注意的是Matlab标定结果中的om向量, 它代表的意义是右摄像头相对左摄像头的旋转角度。这个向量是旋转矩阵通过Rodrigues变换之后得出的结果, 如果要在cv Stereo Rectify中使用的话, 需要将这个向量用cv Rodrigues转换成旋转矩阵。

4 结语

借助棋盘格标定板, 应用Matlab工具箱及VC++6.0, 准确的实现了单目摄像机及双目摄像机的标定工作。并对实验过程环境状态进行3D显示, 可以清楚看出计算结果与实际位置十分吻合, 本方法简单易行, 可以应用与视觉测量系统中单、双摄像机的标定。

参考文献

[1]马颂德, 张正友.计算机视觉-计算理论与算法基础[M].北京:科学出版社, 1998:52-59.

[2]Tsa i R Y.A versatile camera calibration technique for high accuracy 3D machine vision metro logy using of the-shelf TV cam eras and lenses[J].IEEE Journa l of Robotics and Automation, 1987, 3 (4) :323-344.

[3]赵小松.摄像机标定技术的研究[J].机械工程学报, 2002, 38 (3) :149-151.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【摄像测量】相关文章:

摄像合同04-19

摄像05-11

摄像系统04-30

婚礼摄像合同范文05-27

摄像合同书05-19

摄像拍摄基础流程05-21

摄像机控制05-19

摄像记者工作总结05-24

电视摄像实习报告04-15

摄影摄像合作合同04-24

上一篇:安装与维修下一篇:教学场