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

文章目录

  • 概述
    • 三维重建
    • 光学三维测量
      • 被动三维测量
      • 主动三维测量
  • 基于PMP的结构光三维测量技术
    • 结构光生成与投射
      • 结构光生成
      • 光栅非正弦性
    • 相位计算
      • 相位主值计算
      • 相位展开
    • DMD图像坐标计算
    • 图像矫正
    • 重建三维坐标
    • 添加彩色纹理
    • 三维点云处理
  • 系统精度评估
    • 标定精度评估
    • 测量精度评估
  • 参考文献
  • 附录

概述

本文是在读了论文《基于数字光栅投影的结构光三维测量技术与系统研究》[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),该点坐标可用如下公式计算。
\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}
其中, Φ 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{得到三维坐标} scucvc1=Ac[Rctc]XwYwZw1确定相机光心与像点的一条线spupvp1=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.

附录

基于数字光栅投影的结构光三维测量技术(总结)_第1张图片

你可能感兴趣的:(计算机视觉)