当前位置: 首页 > 其他范文 > 其他范文

FPGA辅助的高精度、高速3D形状测量

作者:T。I. | 发布时间:2022-12-13 09:30:09 收藏本文 下载本文

FPGA辅助的高精度、高速3D形状测量

摘要

为了实现三维(3D)形状测量,提高测量精度,提出了一种用于相位测量轮廓术(PMP)算法的高速高精度FPGA架构。该系统使用12个正弦条纹来实现3D形状测量,并校正投影仪的反相以提高测量精度。此外,采用坐标旋转数字计算机(CORDIC)算法实现反正切函数计算,不仅提高了计算速度,而且提高了相位计算精度。该系统利用了FPGA的并行性和流水线处理的优越性能。它还重新设计了模块,以大大提高三维重建的速度,如数据缓冲区、相位包裹、相位展开和点云。实验结果表明,我们提出的方法比传统方法更快。

Introduction

随着工业智能的发展,工业检测、质量控制、机器视觉、娱乐、医学成像等领域对高精度、实时3D测量的需求正在增加[1–4]。然而,由于相位测量轮廓术(PMP)算法具有大量的计算数据和大量的存储器消耗,因此在普通PC上实现高速PMP算法非常困难。

为了解决这个问题,许多研究人员在相位提取、数据处理和重建方法方面取得了巨大进展。例如,在相位提取方面,通过减少投影条纹的数量来提高测量速度,并使用改进的2+1相移算法来实现实时3D形状测量[5]。在数据处理方面,一种方法是使用CPU和GPU的混合架构,在640×480像素的分辨率下,它可以实现每秒45帧的速度,以获得三维重建图像[6]。另一种方法基于嵌入式系统,例如使用FPGA+ARM架构来实现3D重建算法[7],或者实现整个相位测量轮廓-FPGA上的算法[8]。在3D重建方法方面,使用了Kinect和FPGA相结合的深度采集方法[9]。

或者使用背景调制方法并结合几何约束,实现运动物体的三维地形测量[10]。

为了解决PMP高速数据处理问题,本文提出了一种用于相位测量轮廓算法的高速FPGA架构。该体系结构基于全流水线并行原理,包括相位包裹、调制计算、相位解缠、逆相位误差补偿和相位高度映射等模块均在FPGA中实现。我们构建了一个完整的测量系统,并设计了移位操作和数据缓冲区,以优化资源消耗、准确性和信道延迟。该系统只需要12个正弦条纹图案即可实现场景的三维重建,并以800*600像素的分辨率每秒重建32个场景。我们还补偿了投影仪的逆相位误差,以实现对物体的高精度测量。

相移法的基本原理和误差补偿原理

相移法通过投影条纹、被测物体的表面和相机图像平面的对应点之间的三角形关系来测量物体的三维形状[11]。图1是条纹投影轮廓测量系统的结构图,该系统由条纹投影、图像采集和数据处理系统组成。

首先,用投影仪投影条纹图案。然后用相机捕捉调制条纹图案。然后执行包装和展开。最后,根据相位高度映射关系获得被测物体的表面高度。

相机捕获的调制正弦条纹可以表示为:I (x, y) = A (x, y) + B (x, y) cos (ϕ (x, y))

。。。。。。。。。

FPGA实现PMP算法

本节描述了在FPGA中实现PMP算法的情况。图2描述了整个系统架构。

FPGA主要由两部分组成,存储单元(如FIFO、RAM和块RAM)和计算单元。存储器单元主要在SDRAM中缓冲捕获的图像和其他数据。存储器控制器负责管理DDR2 SDRAM,并将数据从SDRAM传输到FIFO。计算单元主要包括相位包裹、相位展开、逆相位误差补偿、有效像素提取和多项式拟合。

该系统结合了FPGA并行和全流水线处理数据的优点。在循环执行方面,与计算机指令相比,FPGA具有非常优越的性能。首先,我们使用高速相机捕捉投射在物体上的正弦条纹图案,并将其传输到FPGA。FPGA用于并行或流水线执行每个计算单元。

并行处理也用于相位展开和多项式拟合以获得三维坐标。下面将详细描述每个模块。

1相位包裹模块

为了减少投影条纹的数量并提高重建速度,Zhang等人使用2+1算法[16]来实现3D重建测量。虽然这种方法可以减少投影条纹的数量,但它比三步相移算法引入了更多的噪声,这影响了整个系统的测量精度。本文使用三步相移法获得包裹相[17]。

。。。。。。

2逆相位误差校正模块和相位解缠模块

考虑到硬件编程和速度的特点,本文采用了逆误差补偿方法,并在FPGA上实现了该算法。算法结构如图6所示。在本文中,三个初始相位为/3,步长为2/3和64的频率用于补偿逆相位误差。通过图6所示的算法计算相位包裹模块获得的包裹相位包裹64和补偿包裹相位包裹T,并将其输出到展开模块。在展开之后,获得补偿的展开相位展开64。

。。。。。。

3有效像素提取模块

4相位高度映射模块

实验和结果

1测量系统建设

为了验证所提出方法的有效性,本文建立了一种基于相位测量轮廓(PMP)算法的高速FPGA测量系统。3D测量系统如图13所示。

该系统主要包括CCD摄像机(Genie Nano系列M800,分辨率:800像素×600像素,像素大小:4.8um)、DLP投影仪(TI PRO4500,分辨率:1140像素×912像素,DMD像素大小:7.6um)、FPGA(Xilinx spartan3 XC3S4000 FPGA)和插入PC主板PCIE接口的FPGA。相机和投影仪之间的角度约为15◦, 投影仪距离舞台约1050mm,相机距离舞台约1100mm。相机使用具有12×9角点的高精度陶瓷校准板进行校准,棋盘尺寸为11 mm×11 mm,精度为10um。

2实验步骤

步骤1:投影并获取调制的正弦条纹图案。将校准板放置在五个不同的空间位置(都在相机的测量范围内)。在每个位置投影13个图像(9个三步三频条纹+3个补偿条纹+1个空白),总共收集了5组图像。

步骤2:校准相机。拍摄每组投影空白图像,并使用MATLAB校准工具进行校准,以获得系统的校准参数“cameraParams”。根据校准参数,可以获得校准板的108个点和角的图像坐标(u,v)。通过透视投影近似模型[22],可以通过等式(19)计算角的相机坐标(Xc,Yc,Zc)。

根据校准参数“cameraParams”-重新投影误差”为0.0442 mm,符合本系统的要求。

步骤3:展开条纹图案后,获得绝对相位,然后根据角坐标计算目标每个角处的相位值。

步骤4:基于上述步骤,可以获得每个图像中目标角的(u,v,⑪)和(Xc,Yc,Zc)。并根据以下公式拟合数据:

拟合的参数a0、a1…a19、b0、b1…b19和c0、c1…c19最终存储在FPGA中。

步骤5:放置被测物体并投影12个正弦图案(9个三步三频图案+3个补偿图案),相机使用以太网将收集的变形图案传输到FPGA。在FPGA中的每个模块处理后,3D点云数据被输出到PC上进行显示。

3测量结果分析

浮点运算不能在FPGA中执行,因此定点运算会导致量化误差。本文在设计中选择了合适的量化精度,以减少量化误差并节省片上资源。我们测量了圆柱体,根据原始像素位置排列了点云在x、y和z方向上的量化误差,并使用MATLAB的双精度计算结果作为标准。分别计算FPGA在x、y和z方向上相对于MATLAB的量化误差,如图14所示。

测量了10个不同的物体,x方向的最大量化误差为0.0007206mm,y方向的最大误差为0.0008325mm,z方向的最大量子化误差为0.002513mm。可以看出,该系统的量子化误差对重建精度影响很小,可以忽略不计。

为了计算本文方法的重建精度,重建了图15(a)所示的标准球。球直径为100mm,通过FPGA重建标准球后生成的点云,如图15(b)所示。通过拟合203303点云数据获得球的中心位置和半径,RMSE为0.0507。

结果如表1所示。拟合球如图15(b)所示,其中球的下半部分从点云拟合,球的上半部分通过点云重建。点云和拟合的球面颜色偏差图如图15(c)所示。为了查看更准确地说,本文使用Geomagic Studio 2013渲染点云,如图15(d)所示。其表面非常光滑,验证了本文在减少非线性误差方面的有效性。此外,我们还重建了复杂和不连续的对象。实验表明,在800*600的相同分辨率下,可以重建不连续的物体和复杂的表面。我们无法分析重建精度,因为没有复杂对象的参考标准,如图16所示。

4资源消耗和速度提高

PGA的优点是可以并行处理数据。

更高的并行度消耗更多的片上资源。

表2列出了每个子模块占用的FPGA资源数量以及整个系统使用的各种资源占单板FPGA总资源的百分比。图像缓存和每个模块之间使用并行处理。从表2可以看出,多项式拟合模块使用了大量片上资源,因为该模块中的x、y和z的拟合在三个通道中并行执行。

为了将所提出的平台与其他平台的性能和质量进行比较,相应的系统软件程序由MATLAB 2018b实现,存储器为16G DDR4,处理器为AMD R5 3600(3.6GHz)主机。使用12张800×600分辨率的图片进行了10次实验,重建场景的平均时间为2.664秒

FPGA的速度与相机的采集分辨率和图像数量成反比。然而,与参考文献[8]相比,我们使用更小的分辨率获得了更高的精度。)。

实验表明,我们提出的FPGA系统比CPU快近2倍,比软件快86倍。

为了更全面地评估所提出的方法,将所提出的和参考文献8中的方法进行了比较。时间成本的比较如表3所示。在包裹模块中,参考文献[8]中使用了四步相移方法,而我们使用了三步相移法。在展开模块中,参考文献[8]中使用了多频外差方法,而我们使用了多频率方法。在点云生成模块中,参考文献[8]使用了相应的点并结合了三角测量原理,而我们使用了拟合多项式。表4中显示了误差的比较,表5中显示了消耗的资源的比较(Altera Stratix III使用8位lut,Xilinx使用6位lut;因此Altera Stradix III在使用相同数量的lut时消耗更多的资源)。结果表明,当使用性能较低的FPGA时,我们可以用较少的资源实现高精度的三维测量。虽然经过误差补偿后速度有所降低,但精度大大提高。

结论

本文设计了一种用于相位测量轮廓(PMP)算法的高速FPGA架构。我们在FPGA中重新设计了相位包裹、相位展开、有效像素提取、逆相位误差校正和多项式拟合。这种结构充分利用了像素并行和流水线数据处理模式进行加速,CORDIC算法可以在几个时钟周期内实现反正切函数计算,从而提高了三维重建的速度。本文还分析了各模块的误差。此外,本文还对投影仪的逆相位误差进行了校正,消除了逆相位误差,提高了测量精度。经过大量实验,已知投影仪和相机离被测物体越近,测量精度越高。简而言之,FPGA架构可以满足高精度和高速测量。

本文标题: FPGA辅助的高精度、高速3D形状测量
链接地址:https://www.dawendou.com/fanwen/qitafanwen/1643904.html

版权声明:
1.大文斗范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《FPGA辅助的高精度、高速3D形状测量》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。

本栏目阅读排行

    栏目最新

      重点推荐栏目

      关于大文斗范文网 | 在线投稿 | 网站声明 | 联系我们 | 网站帮助 | 投诉与建议 | 人才招聘 | 网站大事记
      Copyright © 2004-2025 dawendou.com Inc. All Rights Reserved.大文斗范文网 版权所有