如何处理使用网络摄像头或智能手机拍摄的图像中可能出现的光学畸变?

电子说

1.2w人已加入

描述

诸如NFC、RFID和物联网系统传感器等无线应用均受益于印刷在塑料基板上的低成本天线。然而,当天线集成到系统中时,数据手册的指标与天线的实际行为及其与相邻结构的相互作用之间通常存在不匹配现象。在这种情况下,就需要执行更高级的分析,充分了解天线特性——这需要天线模型的精确EM模型。

从基本几何形状获得印刷天线几何模型的过程可能比较繁复,因为印刷天线通常具有多个弯曲和其他结构,以提高增益和增加带宽。比较简单的解决方案是从照片中导出模型——

但是如何确保照片拥有足够的细节?如何处理使用网络摄像头或智能手机拍摄的图像中可能出现的光学畸变? 

以下两个应用程序可以帮助您解决这些问题。Computer Vision System Toolbox™中的CameraCalibrator应用程序可以校准网络摄像头,提高测量精度。Image Processing Toolbox™中的ImageSegmenter应用程序可对图像进行分割,获取天线边界。

以RFID标签为例,本文介绍利用 Camera Calibrator (Computer Vision System Toolbox™) 和 Image Segmenter (Image Processing Toolbox™) 进行照片构建和分析天线的工作流程(图1),包括分割图像、找到几何边界、校准天线尺寸以及使用全波矩量法(MoM)技术分析天线等步骤。

图1 通过照片构建和分析天线的工作流程

RFID标签

射频识别(RFID)标签通常用于箱子和托盘上进行库存跟踪。标签由辐射结构、天线和用于在频带上操作的芯片组成。天线通常是窄频带,两个主平面之中有一个为全向图案,并且在发生谐振时具有复阻抗,以此确保与芯片输入有良好的阻抗匹配。在本例中,我们的目标是确认 RFID 标签天线的这些端口、表面和场特性。

首先在高彩色对比度背景下拍摄标签照片。我们使用物美价廉的网络摄像头和网络摄像头功能直接在 MATLAB 中获取图像(图2)。

c = webcam(); img = snapshot(c)

图2 RFID标签的照片在高对比度背景下拍摄

为确保精确测量沿天线边界的距离,我们将摄像头直接放置在天线上,使沿天线表面的所有点距摄像头的距离大致相同。

使用 Camera Calibrator 应用程序校准摄像头

摄像头校准是距离测量工作的重要组成部分,尤其是在使用镜头光学系统品质较差的摄像机时,如本例所示。

使用Computer Vision System Toolbox中的Camera Calibrator应用程序,我们可以通过从不同方位和距离拍摄的棋盘校准图案来校准网络摄像头(图3)。

图3 加载到Camera Calibrator应用程序中的棋盘校准图案的照片序列。 

从网络摄像头获取了一组校准图像后,我们就可以使用应用程序工具条中的Calibrate(校准)按钮计算摄像头参数(图4)。

图4 Camera Calibrator应用程序工具条。 

我们将这些摄像头参数作为 camera Parameters对象,从应用程序中导出。为了消除给定摄像头拍摄的图像的光学畸变影响,我们使用摄像头的 camera Parameters,它可以模拟摄像头的光学畸变以及Computer Vision System Toolbox中的undistortImage功能。初始图像和无畸变图像如图5所示。

undistortedImage = undistortImage(img,webcamParameters);

图5 上图:原始网络摄像头图像。下图:通过Camera Calibrator应用程序获得的无畸变图像。

原始图像中存在的径向畸变是由于摄像头镜头光学系统的物理缺陷造成的。在天线所在的焦点中心附近,难以看到径向透镜畸变的影响。当您移动到图像的边缘时,效果最明显。在未畸变图像中,围绕上边缘和下边缘的弯曲反映了透镜畸变的校正过程。

使用Image Segmenter应用程序分割图像

Image Segmenter应用程序包含各种算法,它们可以按不同的方式组合使用,从而选择出分割对象的最佳方式。在本例中,我们将使用图形分割和一种称为“活动轮廓与蛇形轮廓”的迭代能量最小化算法。

使用Image Segmenter应用程序中的Graph Cut(图割)功能,我们可以根据颜色特征对图像进行分割,利用“涂鸦”标记位于前景和背景中的区域(图6中的红线和绿线)。

图6 通过在Image Segmenter应用程序中制作“涂鸦”识别的前景和背景区域。 

在使用图割算法进行初始分割之后,我们可通过活动轮廓算法细化分割。通过图割获得的分割边界看起来很准确。但是有一些小的锯齿状缺陷,我们希望加以改进。

活动轮廓是下一步分割过程的不错选择,其主要原因有两个。首先,该算法从输入图像和分割掩码开始,并尝试通过迭代的方法改进掩码,使其趋于匹配原始图像的边界。其次,活动轮廓目标函数中的其中一项经过优化,代表了分割掩码中边界的平滑度,可以产生边界更平滑的分割效果(图7)。

图7 使用活动轮廓后期处理算法处理图割算法的初始分割结果。

获得准确的分割掩码后,我们将其从Image Segmenter应用程序中导出到MATLAB工作区(图8)。

图8 使用Image Segmenter应用程序中的导出按钮将掩码导出到工作区。 

执行全波分析

对此结构执行全波分析时,我们首先需要将边界的像素空间表示转换为笛卡尔空间表示。为此,我们提取x、y维度中的最大和最小像素指数,并根据标记的长度和宽度将它们转换为(x,y)坐标。分割可以在边界上产生大量的点:RFID图像边界上有大约11,000个点。这种高保真表示可能产生意外结果,即网格非常大。为了减少边界上的点数,我们按因子20进行下采样。通过简单的视觉检查,该下采样因子仍会准确地表示边界细节。原始边界和下采样版本如图9和10所示。

图9(左)通过缩放基于标签尺寸的点获得的边界点。 

图10(右)下采样边界。 

该模型中有两组不同的边界:天线的外边界和内边界。必须移除此内边界,以便模型准确地表示初始照片中天线的拓扑结构。我们可以通过将边界加载到Antenna Toolbox™中的多边形对象中,应用布尔逻辑减法运算来实现此目的。然后将几何体围绕坐标系原点居中,并定义天线的馈线位置和馈线宽度。得到的天线如图11所示。在以下代码段中,两个边界作为单元阵列存储在变量BpD中。

outerPoly = antenna.Polygon; outerPoly.Vertices = BpD{1}; innerPoly = antenna.Polygon; innerPoly.Vertices = BpD{2}; c = outerPoly - innerPoly; c = translate(c,[-(max(outerPoly.Vertices(:,1))-L/2),-(max(outerPoly.Vertices(:,2))-W/2),0]); figure show(c) title('RFID antenna geometry')

图11 利用Antenna Toolbox中的多边形的边界定义和布尔逻辑运算构建的RFID天线几何形状。

点(0.0mm,0.0mm)周围的馈线区域会出现一些明显的转折点,这些过渡是分割算法检测到的伪像。我们需要清理掉它们,使该区域中的网格最小化。我们通过定义一个矩形并切除馈线周围几何图形的部分来创建一个干净的间隙(图12)。

gap = antenna.Rectangle('Length', 6e-3, 'Width', 2e-3, 'Center', [-5.5e-3 -1e-3]); c = c - gap; figure show(c) title('RFID antenna geometry with gap across feed region')

图12 RFID天线的几何形状,馈线区域已通过创建间隙进行清理。 

然后,我们在该间隙上定义一个馈电带,以施加激励电压。具有明确馈线的天线模型如图13所示。 

图13 用pcbStack创建的RFID天线模型。使用矩形条限定馈线区域。 

定义天线的整体边界后,我们指定了两个层:顶部的天线几何形状和下面的介质层。在该模型下,由于介质材料非常薄,执行初始分析时假设天线处于自由空间。这使得我们可以非常快速地对标签进行首次分析,因为我们不需要为介电材料构建网格。只要材料具有低损耗和低相对介电常数(εr<2),存在电介质就会使标签的整体性能发生微小变化。最后,我们将馈线位置指定为由[x,y,layerNumber]组成的三元组。layerNumber是一个整数,表示存在馈线的层。由于这是平衡天线的内部端口,因此单个数字足以完全指定馈电点。

feed = antenna.Rectangle('Length', 0.25e-3, 'Width', 3.0e-3, 'Center', [-5.5e-3, -1e-3]); cf = c + feed;d = dielectric('Air'); p = pcbStack; p.Name = 'RFID-tag'; p.BoardShape = antenna.Rectangle('Length',22e-3,'Width',80e-3); p.Layers = {cf,d}; p.FeedLocations = [-5.5e-3, -1e-3, 1]; p.FeedDiameter = 0.5*0.25e-3; figure show(p) view(0,90)

现在可以开始——

分析天线

我们首先进行阻抗分析,确定粗略采样频率范围内天线的端口特性。为此,请使用具有一对输入(即天线和频率)的阻抗函数。预计RFID标签将在800至900 MHz之间的UHF频段内运行。分析频率范围将略微超过900 MHz。任何分析都将以该范围内的最高频率作为网格划分频率,然后自动对几何形状进行网格划分。然后将该网格传递到求解器中,由求解器识别馈线位置和相应的馈线边缘,施加1V激励。计算RWG基函数(三角形对)之间的互动矩阵,并求解表面上电流形式的未知数。

f_coarse = linspace(0.8e9,0.95e9,21); figure impedance(p, f_coarse)

该射频标签是呈电感性的,并且具有大约857MHz的有效电阻分量(图14)。电抗显示围绕该频率的经典并联谐振曲线。

网络摄像头

图14 RFID天线的阻抗。从电抗曲线(红色)可以看出标签的电感性质。 

图15显示了为此分析生成的网格。

figure mesh(p)

图15 为分析生成的网格;选择频率范围中的最高频率来生成网格。

通常,为了匹配标签,芯片的输入阻抗应为复阻抗。我们使用天线上的Load(负载)属性来消除电感分量。由于电抗约为200Ω,我们将创建电抗为-200Ω的负载分量,并将其添加到天线模型中。当负载位于馈线处时,电抗的感应部分应在857 MHz处被抵消。我们通过分析更精细频率范围内的阻抗来证实这一点。857 MHz的电抗约为0Ω(图16)。 

X = -1i*200; zl = lumpedElement; zl.Impedance = X; p.Load = zl; f_fine = linspace(0.8e9,0.95e9,51); figure impedance(p, f_fine)

网络摄像头

图16 在馈线处包含电容电抗后标签的阻抗。电抗消除过程中,观察到电抗曲线中的零交叉点。

电流分布在857 MHz处显示出强烈的响应,在天线表面上产生了大量电流(图17)。我们使用色条以交互方式调整电流密度范围。

figure current(p,857e6) view(0,90)

图17 电容性加载的RFID标签在857MHz的共振频率下的电流分布。 

RFID标签通常在一个平面中具有全向远场图案。为了证实这一点,我们将标签的远场辐射方向图进行可视化。该标签在857 MHz时的增益约为2 dBi。如图18所示,最大方向性出现在方位角为0度的仰角,沿着标签的最大尺寸的轴消失。天线的这种响应与在xy平面上与标签相同方向的简单半波长偶极子天线的响应类似。

figure pattern(p,857e6)

图18 电容性加载的RFID标签在857MHz的共振频率下的方向图。 

◆ ◆ ◆  ◆

该示例描述了通过照片识别天线边界并将其转换为用于全波分析的天线几何模型的过程。在使用 Computer Vision System Toolbox 和 Image Processing Toolbox 中的应用程序去除图像中的光学畸变后,我们构建了一个天线模型,并使用基于矩量法的全波求解器在Antenna Toolbox中对其进行了分析。

该分析证实了RFID标签的并联共振行为及其电感特性。远场辐射方向图遵循半波长偶极子的辐射方向图,并且在仰角面中是全向的。分析结果可以有多种应用。例如,频率相关的阻抗数据可以用在RF系统模拟中,辐射方向图可以用在阵列级模拟中。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分