论文部分内容阅读
光学图像三维重建在工业设计、医学图像构造、3D影像构建和图像识别等领域得到了广泛的应用,具有很重要的研究价值和社会实用价值。在光学图像三维重建过程中,摄像机的标定技术是一个关键点,其结果体现在从二维图像像素坐标到三维空间坐标的映射中,也就是对摄像机参数矩阵和畸变系数的求解,而提取到亚像素精度的光条纹中心坐是三维重建的基础。基于此,本文对光学图像光条纹中心的提取技术和图像像素坐标到三维空间坐标的映射技术进行了深入研究。(1)本文首先介绍了光条纹中心的提取方法,重点介绍了Steger方法。Steger算法具有较高的精度、稳定性和鲁棒性,但由于需要对图像上每一个像素点进行至少5次的二维高斯卷积,导致计算量非常大,运算时间较长。本文将GPU多网格(grid)多块(block)多线程(thread)的并行运算优势,与Steger算法每一个像素点进行卷积运算相互独立的特点相结合,在进行光条纹中心提取时,首先把相关数据从CPU内存拷贝到GPU显存中,对每一个像素点设置一个block,在此block中设置thread的数目,利用thread计算5次高斯卷积模板,block计算该像素点的5次高斯卷积和用来确定光条纹中心法线方向的hessian矩阵值;以此类推,每一个block和block中的thread重复之前的工作,得到每一个像素点的高斯卷积模板值和hessian矩阵值,并把此结果从GPU显存复制到CPU内存中,从而得到光条纹中心坐标值。这种光条纹中心坐标的计算方式,可极大提高运算效率。本文在GTX1060 6G显卡和四核i5-4590CPU以及四核AMD A6-7310CPU实验环境下,编程计算了基于CPU和基于GPU光条纹中心坐标的提取时间,实验结果表明:GPU下的光条纹提取时间为CPU下的1/16到1/12,大大提高了运算效率,减少了计算时间。(2)传统的三维重建技术需要求解内参数矩阵中的4个内参数和外参数矩阵中的6个外参数,还要考虑径向畸变、切向畸变和薄棱镜畸变,计算畸变系数,这种方法不仅需要对参数矩阵进行求解,而且还需要准确求解畸变系数,完成畸变校正,两个过程中出现的任何误差都会给三维重建结果带来极大偏差。本文借鉴其他学者在光学图像处理时采用多项式求解相关问题的思路,利用多项式方法在求解一一对应的两个坐标系间的映射关系时具有简单、直观的特点,推导并建立了从二维图像像素坐标到三维空间坐标的多项式映射关系,用多项式的计算代替参数方程和畸变系数的计算,简化了计算过程,减少了计算量,提高了准确性。利用前述实验结果和软硬件环境,对高度Z_w分别为38,48,54,68,82,93的被标定物体,在python的开发环境Wing IDE中进行了实验验证,求解了对应的多项式系数,与被标定物体在不同Z_w高度下的Y_w和Z_w的实际测量值相比较,得出Y_w的平均误差约为0.5058%,Z_w的平均误差约为1.176%,满足了误差精度要求,大大降低误差率。