基于数字光栅投影的结构光三维测量技术

概述

欢迎访问 持续更新:https://cgabc.xyz/posts/fb344124/

本文是在读了论文《基于数字光栅投影的结构光三维测量技术与系统研究》[1]之后做的学习总结,方便自己学习,同时与博友共享,共同提高!

三维重建 & 三维测量

三维重建

三维重建(3D Reconstruction)是指利用二维投影恢复物体三维信息的数学过程和计算机技术,包括数据获取、预处理、点云拼接和特征分析等步骤。

三维重建过程:图像获取、摄像机标定、特征提取、立体匹配和三维重建。

三维测量

三维数据测量即对物体的三维数据进行测量,根据三维数据测量采用的原理或媒介的不同可以将其分为两大类:接触式测量和非接触式测量。接触式测量是在测量时与被测物体相接触的测量方法;非接触式测量则指在测量时与被测物体不接触的测量方法。

光学三维测量

光学三维测量主要分为被动三维测量(无结构光)和主动三维测量(有结构光)两种:

被动三维测量

主要过程:多幅二维图像–>计算出特征点–>重建三维特征点–>特征点滤波–>得到三维模型。

主动三维测量

  • 结构光的作用:增加三维物体的纹理信息;
  • 双目视觉系统:将投影仪当作一个逆向的相机,通过建立投影仪图像和相机图像的对应关系,将投影仪标定转换为成熟的相机标定,从而将单相机结构光三维测量系统转换为经典的双目视觉系统;
  • 主要测量方法:激光扫描法(LS)、傅立叶变换轮廓术(FTP)、相位测量轮廓术(PMP)、彩色编码条纹投影法(CFP)等。

基于PMP的结构光三维测量技术

本文所讲的三维测量方法用的是主动三维测量中的相位测量轮廓术(PMP)

测量时,投影仪将一幅或一组正弦光栅条纹投影到空间中,形成投影条纹,摄像机拍摄到被测物体表面,得到条纹图像,根据图像获得相位分布情况进行三维重建。

整体架构参见附录《结构光三维测量原理图》。

结构光生成与投射

  • 水平方向光栅条纹图像12幅:不同频率3组,每组不同相移的4幅图像
  • 竖直方向光栅条纹图像12幅:不同频率3组,每组不同相移的4幅图像

结构光生成

由计算机生成并发送到投影仪的光栅图像的灰度分布为:

I ( u , v ) = a + b c o s ( θ ( u , v ) ) , θ ( u , v ) = ϕ ( u , v ) + α I(u,v) = a + bcos(\theta(u,v)), \theta(u,v) = \phi(u,v)+ \alpha I(u,v)=a+bcos(θ(u,v)),θ(u,v)=ϕ(u,v)+α

其中, ( u , v ) (u,v) (u,v)表示投影面投影像素单元的坐标, I ( u , v ) I(u,v) I(u,v) ( u , v ) (u,v) (u,v)点的灰度值,a和b分别为正弦光栅的直流基波分量(光强背景值)和振幅(调制光强), θ ( u , v ) \theta(u,v) θ(u,v) I ( u , v ) I(u,v) I(u,v)对应的光栅相位, ϕ \phi ϕ为待求相位主值, α \alpha α为相位位移。

光栅非正弦性

由于环境光的影响,投影光栅在波峰和波谷处出现平台现象[2]。

相位计算

相位主值计算

相位主值即相对相位值,本文采用标准的四步相移法计算光栅图像的相位主值。

利用频率相同四幅光栅图像计算出一幅相位主值图像,四幅光栅图像的光强表达式为:
I i ( u , v ) = a + b c o s ( θ i ( u , v ) ) , θ i ( u , v ) = ϕ ( u , v ) + π 2 i , i ∈ { 0 , 1 , 2 , 3 } I_i(u,v) = a + bcos(\theta_i(u,v)), \theta_i(u,v) = \phi(u,v) + \frac{\pi}{2}i, i \in \{0,1,2,3\} Ii(u,v)=a+bcos(θi(u,v)),θi(u,v)=ϕ(u,v)+2πi,i{0,1,2,3}

则光栅图像的相位主值为:
ϕ ( u , v ) = a r c t a n ( I 3 − I 1 I 0 − I 2 ) \phi(u,v) = arctan( \frac{I_3-I_1}{I_0-I_2} ) ϕ(u,v)=arctan(I0I2I3I1)

编程中,一般使用atan2方法:
ϕ ( u , v ) = a t a n 2 ( I 3 − I 1 , I 0 − I 2 ) \phi(u,v) = atan2(I_3-I_1, I_0-I_2 ) ϕ(u,v)=atan2(I3I1,I0I2)

最终,12幅水平条纹光栅图像计算出3幅水平相位主值图像,12幅竖直条纹光栅图像计算出3幅竖直相位主值图像。

相位展开

相位展开,又称解包裹,计算其绝对相位值。本文利用 三频外差原理 计算其绝对相位值。

最终,根据上步计算出的3幅水平相位主值图像计算出1幅水平绝对相位值图像,根据上步计算出的3幅竖直相位主值图像计算出1幅竖直绝对相位值图像。

DMD图像坐标计算

根据一个方向的绝对相位值,可以确定DMD图像中的一条垂直线或水平线;则根据水平和垂直两个方向的绝对相位值,可以确定DMD图像中的一个点。

通过竖直和水平光栅条纹的CCD图像(相机图像)中的点 ( u c , v c ) (u_c,v_c) (uc,vc),可以确定DMD图像(投影仪图像)中对应的一个点 ( u p , v p ) (u_p,v_p) (up,vp),该点坐标可用如下公式计算。

{ u p = Φ v ( u c , v c ) N v ⋅ 2 π ⋅ W v p = Φ h ( u c , v c ) N h ⋅ 2 π ⋅ H \begin{cases} u_p = \frac{\Phi_v(u_c,v_c)}{N_v \cdot 2\pi} \cdot W \\ v_p = \frac{\Phi_h(u_c,v_c)}{N_h \cdot 2\pi} \cdot H \end{cases} {up=Nv2πΦv(uc,vc)Wvp=Nh2πΦh(uc,vc)H

其中, Φ v \Phi_v Φv Φ h \Phi_h Φh分别为CCD光栅图像中 ( u c , v c ) (u_c,v_c) (uc,vc)点处竖直和水平方向的绝对相位值, N v N_v Nv N h N_h Nh分别为竖直和水平CCD光栅图像中光栅条纹数,H和W分别为CCD光栅图像竖直和水平方向分辨率。

图像矫正

( u c , v c ) (u_c,v_c) (uc,vc) ( u p , v p ) (u_p,v_p) (up,vp) 使用预先标定出的 系统畸变参数 进行矫正,二阶径向畸变 矫正公式如下。

{ u ˉ = u + ( u − u 0 ) [ k 1 ( x 2 + y 2 ) + k 2 ( x 2 + y 2 ) 2 ] v ˉ = v + ( v − v 0 ) [ k 1 ( x 2 + y 2 ) + k 2 ( x 2 + y 2 ) 2 ] \left\{ \begin{aligned} \bar u = u + (u-u_0)[k_1(x^2+y^2) + k_2(x^2+y^2)^2] \\ \bar v = v + (v-v_0)[k_1(x^2+y^2) + k_2(x^2+y^2)^2] \end{aligned} \right. {uˉ=u+(uu0)[k1(x2+y2)+k2(x2+y2)2]vˉ=v+(vv0)[k1(x2+y2)+k2(x2+y2)2]

重建三维坐标

投影测量和计算机视觉中总是利用两张或两张以上的图像恢复物体的三维坐标。

本文根据矫正后的CCD图像和DMD图像坐标 ( u c , v c ) (u_c,v_c) (uc,vc) ( u p , v p ) (u_p,v_p) (up,vp),以及预先相机标定出的系统内参和外参,计算出对应的三维坐标(世界坐标)。

{ s c [ u c v c 1 ] = A c [ R c t c ] [ X w Y w Z w 1 ] 确定相机光心与像点的一条线 s p [ u p v p 1 ] = A p [ R p t p ] [ X w Y w Z w 1 ] 确定光机光心与像点的一条线 } 得到三维坐标 \left\{ \begin{aligned} s_c \left[\begin{array}{c}u_c\\v_c\\1\end{array}\right] = A_c[R_c \quad t_c] \left[\begin{array}{c}X_w\\Y_w\\Z_w\\1\end{array}\right] \text{确定相机光心与像点的一条线} \\ s_p \left[\begin{array}{c}u_p\\v_p\\1\end{array}\right] = A_p[R_p \quad t_p] \left[\begin{array}{c}X_w\\Y_w\\Z_w\\1\end{array}\right] \text{确定光机光心与像点的一条线} \end{aligned} \right\}\text{得到三维坐标} sc ucvc1 =Ac[Rctc] XwYwZw1 确定相机光心与像点的一条线sp upvp1 =Ap[Rptp] XwYwZw1 确定光机光心与像点的一条线 得到三维坐标

其中, s c s_c sc s p s_p sp分别为相机和光机的尺度因子, ( u c , v c ) (u_c,v_c) (uc,vc) ( u p , v p ) (u_p,v_p) (up,vp)分别为矫正后的CCD图像和DMD图像坐标, A c A_c Ac A p A_p Ap为内部参数矩阵, [ R c t c ] [R_c \quad t_c] [Rctc] [ R p t p ] [R_p \quad t_p] [Rptp]为外部参数矩阵。

添加彩色纹理

利用预先计算出的 白平衡参数 和 R、G、B灰度图像,根据三原色加法原理,得到彩色图像,再使用该彩色图像渲染三维点云。

三维点云处理

利用PCL(Point Cloud Library)库对三维点云进行处理。

系统精度评估

标定精度评估

使用标定出的参数计算出所有标定点的三维坐标,然后计算其与实际坐标的距离。

测量精度评估

  • 平面测量误差
  • 球体空间误差:球心距、单个球的球面误差

参考文献

[1]李中伟. 基于数字光栅投影的结构光三维测量技术与系统研究[D].华中科技大学,2009.
[2]达飞鹏,盖绍彦. 光栅投影三维精密测量[M]. 北京:科学出版社,2011.

附录

  • 28
    点赞
  • 157
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
结构三维测量技术是一种非接触式的三维测量方法,利用投射在被测物体表面上的结构,通过相机捕捉物体表面上的斑图案,进而获取物体的形状和表面信息。该技术可以应用于工业制造、医疗、文物保护等多个领域。 面结构三维测量技术的主要原理是利用结构投射仪产生光栅或编码线,照射在物体表面上。被照射的物体会根据其表面的高低不同,在接收到结构后产生形状上的形变。相机捕捉到物体上的斑图案后,再通过计算和分析,可以准确测量物体的高程和形状。 这种技术具有许多优点。首先,它是非接触式的测量方法,可以避免对物体造成损坏或变形。其次,面结构三维测量技术具有快速高效的特点,可以在短时间内获得物体的三维信息。此外,该技术还可以应用于复杂不规则物体的测量,对于需要高精度的形状和尺寸测量具有很大的优势。 然而,面结构三维测量技术也存在一些限制。首先,该技术对环境的影响比较敏感,需要在相对较暗的环境下进行测量才能得到准确的结果。其次,对于反射性较低的表面或线吸收较强的物体,测量结果可能会受到一定的限制。 总之,面结构三维测量技术是一种非接触式、快速高效、适用于多种表面形状测量的方法。它在工业制造、医疗、文物保护等领域具有广泛的应用前景,可以为相关行业提供更加精确和可靠的测量手段。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨光ABC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值