向卓龙,张启灿,吴周杰
四川大学电子信息学院,四川 成都 610065
三维传感技术已成为时下研究热点,其中的光学三维传感方法发展势头迅猛,并以非接触、高精度、测量速度快等优点获得了业界学者们的青睐。目前,光学三维传感技术已在机器视觉、工业检测、文物保护、生物医学、影视特技、虚拟现实等领域得到广泛应用[1-8]。
双目立体视觉[9-11]属于被动三维传感技术,其结构简单、操作便捷,不需要人为提供光照条件,仅用两套成像系统获取二维图像完成三维面形的重建。然而,该技术在弱纹理区域容易产生匹配的多义性,导致相关操作难以进行。为了解决这个问题,业内提出了将主动传感与被动传感相结合的方法,即在双目立体视觉的条件下,使用结构光对被测物体进行辅助照明[12-14],增加双目匹配时的对应特征点。即使在弱纹理区域,利用结构光的相位信息也可准确实现双目系统的匹配。
随着应用需求的发展,物体三维数据的数字化不再单单以获得物体的高精度三维模型尺寸信息为最终目的。让三维模型表面附着上场景真实的颜色和纹理信息,使重建三维模型具有更强烈的真实感,同样也成为三维重建中不可或缺的一部分。因此,纹理映射技术应运而生,最早提出纹理映射概念的是Catmull[12],他给出了以像素(u,v)表示的纹理空间和以坐标参数(x,y,z)表示的三维空间之间的映射关系,随后Blinn[13]对该方法进行了改进,使得纹理映射结果更加自然。Bier[14]提出了两步映射法,通过引入中介曲面作为映射媒介,构建起从三维模型到纹理图像的映射关系。
早期传统的纹理映射方法大多是通过计算机生成纹理信息渲染添加到三维模型中,与物体本身所呈现的纹理样式差异较大,其三维模型与纹理图像的映射关系也并非真实存在于物理世界之中。学者们随后所研究的纹理贴图方法,则是利用实际拍摄的彩色照片作为待映射纹理图像,获取真实物体的三维模型与其纹理图像映射关系后,将纹理信息赋给三维点云,完成具有高真实感和还原度的三维重建。
在以实际拍摄图片作为纹理信息进行映射的研究中,所用方法大致可以分为两类:一类是不采用额外成像设备,在三维重建的数据记录过程中同时拍摄纹理图像,通过图像处理方式从所采集图像中提取物体纹理信息,利用深度图像与纹理图像的精确对应完成纹理映射;另一类是采用额外的纹理相机,该相机不参与三维重建过程,仅用于拍摄物体的纹理信息,通过确定纹理相机与重建系统的位姿关系来达到纹理映射的目的。第一类研究中由于不需要建立复杂的映射关系,因此其重点在于如何获取纹理图像。张宗华[15]等通过白光数字莫尔三维成像系统,利用傅里叶变换方法重建了物体的三维点云并从编码条纹中提取出不含条纹的R、G、B 三分量信息,通过组合变换得到彩色纹理图像。孙士杰[16]等通过彩色编码的正弦相移光栅,通过改进的“2+1”相移算法实现了物体的三维面形重建并得到了彩色纹理信息。Liu[17]利用一个单色相机,通过投影仪投影三幅不同频率的正弦条纹和三幅均匀的R、G、B 灰度图案,利用傅里叶变换方法恢复物体的三维面形,所采集到的三幅R、G、B 灰度图像用于消除零频项的影响并同时用来组合生成物体的彩色纹理。
第一类研究中,在获得了物体的纹理信息后,即可简单、精确地实现纹理映射,但其纹理图像单一且分辨率受限。此外,彩色相机同时用于重建三维面形和获取二维纹理信息,通常会因为颜色串扰问题而影响三维重建的质量。
第二类研究中,Zhang[18]等通过一个额外的彩色相机获取物体的纹理信息,再用事先标定好彩色相机与黑白相机之间的关系来完成纹理映射。随后Ou[19]等为获得自然光照下的物体纹理信息,利用近红外相机标定过程中已有的棋盘格信息直接确定三维点云与纹理图像像素点间的映射关系。刘星明[20]等通过将纹理相机加入双目结构光系统中并保持它们之间的相对位姿关系不变,事先标定好纹理相机与双目系统的位姿关系,将不同视角下的点云以及纹理信息统一到同一坐标系下,完成了多视角的点云拼接及纹理映射。杜瑞建[21]等在双目结构光基础上增加一个长焦相机去获取高分辨率图像,通过二维特征匹配构建纹理图像双目左图的单应性矩阵,以其为桥梁构建起三维点云与纹理图像的映射关系,得到了高分辨率的纹理映射结果。赵琳敬[22]通过标定旋转轴参数,得到相机旋转角度与左右相机外参数变化关系,在旋转角度已知的条件下,可以确定不同视角的纹理图像与三维点云间的对应关系。
为了增强纹理信息记录和映射的工程实用性,本文针对如何获取高精度三维面形重建数据、无彩色相机条件下纹理映射及额外增加彩色相机情况下的自由纹理映射等内容展开研究,总结提出了三种不同场景下的纹理信息获取和映射方法。在三维重建环节采用了双目与条纹结构光相结合的测量方案,保证了对待测物体的高精度三维面形测量。在纹理映射环节,依照不同的使用场景,设计了在无彩色相机条件下,利用固有的双目系统去获取灰度纹理及彩色纹理的方案;为了获取丰富的多视角纹理,采用分辨率高、操作简单的智能手机作为额外的纹理相机,提出了两种纹理映射方案,仅只对纹理相机初始标定一次,即可简单、准确地完成自由纹理映射目标。
本节针对于无彩色成像设备条件下的纹理映射任务展开研究,在利用双目结构光(条纹)方案重建被测物体的三维(3D)点云数据时,可以直接利用双目系统本身的两个相机同时获取被测物体的纹理信息。由于纹理信息以及点云重建的数据都来自同一个传感器,且视角固定不变,不涉及复杂映射关系的建立,仅需将双目端获取的纹理图像同样进行极线校正,即可保证3D 点云与纹理图像像素点的一一对应。因此,该方法的关键在于如何获取物体在双目成像端的纹理信息。
通过将双目相机所拍摄到的相移条纹图样算术平均消去条纹强度周期分布,即可得到被测场景的灰度纹理信息,将其对应的灰度赋值给3D 点云,即可完成灰度纹理贴图。
在3D 点云和纹理数据获取的视角固定情况下,也可以获取到被测场景的彩色纹理信息,具体流程如图1 所示。使用三频相位展开方法,利用测量系统中的投影仪R、G、B 三通道分别投影三个周期数t分别为1、√、S(本实验中S=64)的四步相移条纹(共12 幅)到测量视场中,将三个频率相移条纹图样各自算术平均消去条纹强度周期分布,获得物体在R、G、B 单色光投影下的调制图像,组合这三幅调制图像并进行颜色校正,即可得到彩色纹理图像。诚然,如果双目系统采用两个彩色相机进行测量,也可以直接投影三频相移黑白条纹,通过求取相移条纹图均值获得对应彩色纹理。
图1 固定视角彩色纹理信息获取流程Fig.1 Flow chart of the acquiring color texture information from fixed viewing angle
所谓自由纹理映射,是在保持焦距不变的条件下,纹理相机可以自由移动,利用不同摆放姿态拍摄目标的纹理图片完成纹理贴图。
要完成自由纹理映射,关键是在纹理相机位置发生改变时也要能准确获得其与双目系统的外方位参数。本文提出在被测场景上增设标记点,事先标定得到纹理相机的内部参数,当纹理相机任意移动拍图时,将被测物体纹理和标记点信息一起获得,通过标记点及时反映纹理相机的当前位置姿态。利用标记点在世界坐标系、纹理相机图像像素坐标系和双目左相机图像像素坐标系中的坐标位置变换关系,完成自由移动的纹理相机和双目系统的坐标位置转换,再根据成像模型得到3D 点云与纹理像素的对应关系,最终完成自由纹理的贴图[23],其原理如图2 所示。
图2 自由纹理映射原理示意图Fig.2 Schematic diagram of the free texture mapping
以图中红圈所标识的四个点作为空间位置已知的共面标记点,通过这四个点已知的空间坐标及它们在左相机和纹理相机像平面上的像素坐标可以求出标记点平面与左相机以及纹理相机像平面间的单应性矩阵H1和H2,由已知的纹理相机和左相机的内参即可求得该靶标坐标系与两个坐标系间的外参R1、t1和R2、t2。由此,以该靶标平面坐标系为桥梁,即可构建其左相机与自由纹理相机间的位姿关系,该位姿关系和已知的纹理相机内参数联合构建起3D 点云到纹理图像的映射关系,将2D 点的RGB 值对应赋值给3D 点云,即可完成自由纹理映射[23]。
利用增设标记点来确定双目系统与纹理相机之间的位姿关系,实现自由纹理映射的方法,对物体本身的纹理特征没有要求,但该方法依赖于辅助存在的标记点,需要在视场中设置四个已知空间位置的标记点,对某些测量场景来说不太方便、不适用。
针对纹理特征较为明显、纹理信息比较丰富的被测场景,我们提出一种新的纹理映射方法,在不增设额外标记点的条件下,通过自由纹理相机所拍到的彩色纹理图像与双目相机所拍到的灰度纹理图像建立起3D 点云与纹理图像之间的映射关系。该方法希望能摆脱自由纹理映射任务对标记点的依赖,利用物体本征存在的特征信息完成自由纹理映射。
该方法具体过程是:首先采用特征检测算法对双目左相机捕获的灰度纹理图像与纹理相机记录的彩色纹理图像进行特征检测与提取,随后将两幅图中所提取到的特征进行匹配,并利用误匹配点消除算法剔除无效匹配点,获得正确的匹配点对。由于在三维重建过程中已经得到了左相机每个像素所对应的3D 点云数据,因此以左相机图像上的像素点为媒介,可以建立起匹配点与3D 点云的对应关系,也就得到了若干组空间点在左相机坐标系下的坐标位置以及它们在纹理图像上的像素坐标。本质上,该过程是已知N组3D 到2D 的对应点关系及相机内参,求解世界坐标系(左相坐标系下)与纹理相机坐标系之间的外方位参数关系问题,也即N点透视(perspective n-point,PnP)问题求解。
该方法原理如图3 所示。首先利用双目结构光方案获取物体在左相机坐标系下的3D 点云,将左相机记录的变形条纹图像算术平均消去条纹强度周期分布得到灰度纹理分布,采用SURF 算法将其与自由纹理相机灰度化的纹理图像进行特征检测及匹配,对匹配结果采用RANSAC 算法并辅以少量人工干预进行误匹配消除,获得N组正确的匹配点(如图中黄色线条所示)。由于在双目结构光重建过程中已建立起左相机图像像素与3D 点云之间的对应关系,因此,左相机图像中的N个匹配点也可找到其在3D 点云中的N个对应点,以左相机图像为媒介,得到了左相机坐标系下3D 点与纹理图像2D 点的N组对应(图中绿色线条所示)。
图3 无约束自由纹理映射方法原理示意图Fig.3 Schematic diagram of the unconstrained free texture mapping method
通过EPnP 算法[24]求解左相机坐标系与自由纹理相机坐标系之间的外方位参数R、t,且纹理相机内参Atc已由预先标定获得,根据相机成像模型,即可构建起左相机坐标系下点云与自由纹理图像之间的映射关系。此时通过映射关系建立的3D 点云对应2D纹理图像坐标为亚像素坐标,为了得到更为准确的纹理映射结果,对纹理图像进行双线性插值操作得到纹理图像亚像素的RGB 值并将其赋给对应空间点,完成纹理贴图。
图4(a)中由两台Imageware 公司IDS UI-2250SE黑白相机和一台可投影R、G、B 三色条纹的DLP Light Crafter 4500 投影仪(其分辨率为912 pixels×1140 pixels),构成的双目结构光三维测量系统,用于进行固定视角下的纹理映射实验。IDS 相机分辨率为1600 pixels×1200 pixels,镜 头 为AVENIR CCTV LENS SE1212 精工镜头,焦距为12 mm。图4(b)所示的系统用于进行自由纹理映射实验,在图4(a)的基础上额外增加了一个手持可自由移动的苹果iPhone7 手机作为纹理相机,手机(纹理相机) 分辨率4032 pixels×3024 pixels,投影仪更换为只能投影黑白灰度条纹的福州巨维达PDC03 投影仪,其分辨率为1140 pixels×912 pixels。
图4 实验装置图。(a) 固视纹理映射实验装置;(b) 自由视角纹理映射实验装置Fig.4 Experimental setup of (a) fixed-view texture mapping and (b) free-view texture mapping
对一个羊脸面具进行了三维重建及固定视角下的灰度与彩色纹理映射实验,其实物如图5 所示。
图5 羊脸面具实物Fig.5 Sheep face mask to be measured
使用图4(a)所示双目结构光三维重建系统投影仪的RGB 三通道分别投影三种频率正弦条纹。将左相机采集到的三种频率四步相移图分别算术平均得到如图6(a)~6(c)的结果,将该三个结果进行组合,得到如图6(d)的纹理信息,对其进行白平衡校正,得到如图6(e)的被测物体彩色纹理信息。
依据双目结构光三维重建原理恢复被测面具的3D 点云如图7(a)所示,将图6(e)所示经过白平衡校正的纹理信息进行贴图后得到图7(b)所示的带彩色纹理信息物体3D 点云结果。
图6 羊脸面具纹理。(a) 低频(R 通道)灰度纹理;(b) 中频(G 通道)灰度纹理;(c) 高频(B 通道)灰度纹理;(d) 未校正的彩色纹理;(e) 校正后的彩色纹理Fig.6 Sheep face mask texture.(a) Low frequency (R channel) grayscale texture;(b) Intermediate frequency (G channel) grayscale texture;(c) High frequency (B channel) grayscale texture;(d) Uncorrected color texture;(e) Corrected color texture
图7 羊脸面具的三维重建与纹理映射结果。(a) 羊脸3D 点云;(b) 校正彩色纹理贴图结果Fig.7 3D reconstruction and texture mapping results of sheep face mask.(a) 3D point cloud of sheep face;(b) Corrected color texture mapping result
需要注意的是,该方法会存在因被测物体纹理颜色单一、且与高频条纹颜色互补时,所获取到的条纹图质量下降、影响相位质量的问题。因此,使用该方法时应根据被测物体主要纹理颜色分布,调节、交换三组相移条纹图的投影颜色,保证最高频率条纹投影颜色尽可能与物体主要纹理颜色最接近,以确保获得可靠的相位质量。
陶瓷猫脸模型重建3D 点云的两个姿态结果如图8 所示,纹理相机在不同角度下所拍摄的纹理图片如图9(a)~9(b)所示,其所对应的两个姿态下纹理映射结果分别如图9(c)~9(d)和图9(e)~9(f)所示。
图8 不同视角下的陶瓷猫脸重建3D 点云Fig.8 Reconstructed 3D point clouds of a ceramic cat face from different perspectives
图9 纹理相机在不同位置获得陶瓷猫脸2D 纹理及其映射结果。(a)~(b) 纹理相机自由拍摄的2 幅纹理;(c)~(f) 分别对应于(a)~(b)纹理不同视角下的映射结果Fig.9 2D textures of a ceramic cat face obtained from different positions by the texture camera and their mapping results.(a)~(b) Texture images freely captured by the texture camera;(c)~(f) Texture mapping results in different perspective views
从实验结果可以看出,从不同角度拍摄的纹理图像都与3D 点云进行了较好的映射,未出现纹理走样、伪像等情况,且能有效表达由不同角度所带来的纹理之间差异,如亮度不同及反光点的移位等都很好地体现在纹理映射结果上,实验结果验证了本文方法的可行性。
被测物体分别为表面有丰富纹理信息的人脸面具和狐狸面具,其实物图如图10 所示。
图10 待测物体实物图。(a) 人脸面具;(b) 狐狸面具Fig.10 Object to be measured.(a) Human face mask;(b) Fox mask
通过前文所介绍的双目结构光三维测量方案对待测物体进行三维面形重建,在重建获得被测物体的3D 点云后,为验证所提方法能够实现自由纹理映射的目标(即可将自由角度拍摄的纹理信息对应映射到3D 点云表面),分别用纹理相机在三个不同角度获取了物体的纹理信息,下文将简单称其为“纹理1”、“纹理2”、“纹理3”,将它们与双目系统所拍摄的灰度纹理图像进行特征匹配,通过EPnP 算法计算其与双目系统的外方位参数关系。左右相机图像均可用来参与以上过程,以所能获取正确匹配点对的数量作为选择标准,在数量相当时,默认选择左相机图像参与运算过程。
人脸面具与双目系统左相机的外方位参数如表1所示,纹理相机在三个不同角度所拍摄到的物体纹理图如图11 所示,三维重建及纹理映射结果如图12 所示,图12(a)、12(e)、12(i)分别为人脸面具点云的三视图,图12(b)、12(f)、12(j)、12(c)、12(g)、12(k)、12(d)、12(h)、12(l)分别为与图11(a)~11(c)对应纹理映射结果的三视图。由映射结果可以看到,贴图结果与所拍摄物体的纹理信息一致,由于物体面形遮挡而导致某些区域纹理信息的缺失,这些区域的3D 点云纹理信息将表现为光心与该区域点的连线与物体上可见区域交点的纹理信息。如图11(c)所示的纹理3 中,由于面形遮挡导致的左眼区域附近未采集到物体的纹理信息,导致图12(l)中红色虚线框区域纹理信息出现错误,该错误信息可以在后期用其他视角的纹理信息进行插补弥合。
表1 左相机与不同位置纹理相机的外方位参数Table 1 External orientation parameters of the left camera and the texture camera at different positions
图11 纹理相机在三个不同角度所拍摄到的人脸面具纹理图片Fig.11 Texture images of human face mask captured by texture camera at three different angles
图12 人脸面具的三维重建与纹理映射结果。(a) 重建点云结果;(b)~(d) 纹理1~3 映射结果;(e)~(h) 对应于(a)~(d)结果的左视图;(i)~(l) 对应于(a)~(d)结果的右视图Fig.12 3D reconstruction and texture mapping results of human face mask.(a) Reconstructed point cloud results;(b)~(d) Mapping results of texture 1~3;(e)~(h) Left view corresponding to (a)~(d) results;(i)~(l) Right view corresponding to (a)~(d) results
该方法第二个实验中,纹理相机在三个不同角度所拍摄到的狐狸面具纹理图片如图13 所示。同理,在获得狐狸面具与双目系统左相机的外方位参数后,三维重建及纹理映射结果如图14 所示,图14(a)、14(e)、14(i)分别为狐狸面具点云的三视图,图14(b)、14(f)、14(j)、14(c)、14(g)、14(k)、14(d)、14(h)、14(l)分别为与图13(a)~13(c)对应纹理映射结果的三视图,由映射结果可以看到,贴图结果与所拍摄物体的纹理信息一致,贴图结果准确。
图13 纹理相机在三个不同角度所拍摄到的狐狸面具纹理图片Fig.13 Texture images of the fox mask captured by texture camera at three different angles
图14 狐狸面具的三维重建与纹理映射结果。(a) 重建点云结果;(b)~(d) 纹理1~3 映射结果;(e)~(h) 对应于(a)~(d)结果的左视图;(i)~(l) 对应于(a)~(d)结果的右视图Fig.14 3D reconstruction and texture mapping results of the fox mask.(a) Reconstructed point cloud results;(b)~(d) Mapping result of texture 1~3;(e)~(h) Left view corresponding to (a)~(d) results;(i)~(l) Right view corresponding to (a)~(d) results
针对传统三维重建只恢复了物体的3D 点云信息,忽略了物体所携带的纹理信息这一问题,为了让物体重建的3D 点云信息更加具有真实感,对不同硬件条件、不同待测物体3D 点云的纹理映射方法进行了研究。分别提出了不同场景和要求下的纹理映射实用方法:无额外纹理相机时的固定视角灰度或彩色纹理映射方案、对测量物体纹理特征信息无要求的自由纹理映射方案,以及针对具有较为丰富纹理特征信息被测物体的无约束自由纹理映射方案,实验验证了本文提出三种纹理贴图方法的有效性。本文研究内容有望在文物保护、影视娱乐等领域得到应用。
本文所提出的通过增设标记点实现自由纹理映射的方案中,在待测大场景中设置空间位置已知且精确的标记点较为困难,如何在面临大场景贴图工作中对该方法进行改进需要进一步研究;无约束自由纹理映射方案会因为物体面形遮挡致使某些区域纹理信息的缺失或错误,后续将通过多视角纹理获取和融合等手段解决该部分纹理缺陷问题,实现3D 测量结果整个区域高质量、完整的彩色纹理映射。两种自由纹理映射方案分别适用于不同测量场景及被测物体,目前尚未设计出一种所有场景的自由纹理通用贴图方案,后续将针对所提两种方案的优劣性,尝试做深入研究。