魏秋月,董环宇,汤少杰,2,冯宁宇
(1.西安邮电大学 自动化学院,陕西 西安 710121;2.西安邮电大学 西安市先进控制与智能处理重点实验室,陕西 西安 710121;3.宁夏医科大学总医院,宁夏 银川 750004)
点云配准技术[1]在三维模型重建中有着独特而关键的作用,随着许多高精度传感器的产生,点云已成为表示三维空间模型的主要数据格式。使用点云配准[2]进行模型匹配时由于配准对象的多变性,配准过程需要考虑的信息会不同,针对不同的配准目标应用不同的配准算法,能得到更好的结果。
迭代最近点(Iterative Closest Point,ICP)算法[3]是目前应用最为广泛的一种算法,由Besl等在1992年提出。该算法是利用最近点搜索法解决基于自由形态曲面的一种配准算法。根据一定的约束条件,找到原始点云与目标点云的对应关系,并计算出旋转矩阵与平移矩阵,然后将目标点云与计算得到的旋转矩阵与平移矩阵进行计算得到新的目标点云。该算法对于初始点的选取非常苛刻,并且会产生一些错误点。Du等[4-5]提出的尺度迭代最近点(Scale Iterative Closest Point,SICP)算法是在ICP算法的基础上加入了变尺度系数,通过原始点云与目标点云间的最小距离计算旋转矩阵、平移矩阵与尺度系数,但是鲁棒性较低,无法避免陷入局部最优。以上配准算法为目前应用比较广泛的方法,但是这些算法只能应用于点云全局配准,并不适用点云的局部配准,若存在大量缺失点的情况,便不能有一个稳定良好的结果。
相干点漂移(Coherent Point Drift,CPD)算法[6]由Myronenko等在2010年提出。相比之前两种算法,该算法是将两个点云配准问题看作是概率密度估计问题,通过建立高斯混合模型[7](Gaussian Mixture Model,GMM)创建似然函数并用EM (Expectation-Maximization)算法[8]进行求解。与之前的ICP、SICP相比,CPD算法既可以进行局部配准也可以进行全局配准,在进行点云模型配准时,可改善缺失点的情况。 但是原始CPD算法在进行人体面部点云配准时,由于发型不同导致配准时距离标准差较大,运算时间较长。为了解决此问题,拟提出一种基于双侧滤波的改进CPD算法。通过提取彩色三维模型的空间位置信息与颜色信息,将颜色信息转化为亮度信息,仿照双侧滤波算法计算对应的亮度信息权值系数,与原始CPD配准算法中距离权值系数相融合,得到更为有效的加权系数用于面部点云模型配准,从而缩短配准时间提高配准精度。
点云配准就是在两个点集中找到相互对应的点。原始CPD算法将这种对应看作概率问题[9],使用概率值描述这种对应关系,概率值越大,对应关系的确定性也就越大,理想情况下正确对应点概率为1,错误对应点概率为0。这种对应关系通过计算两个点集中对应点之间的距离获得,主要运算还是使用点云空间坐标信息计算与给定点距离最近的对应点。
其中,
双侧滤波[10-12](Bilateral Filter,BF)算法首先设定含噪声图像y,从含噪声图像中还原出原始图像,然后使用加权平均对图像x进行估计。在特定邻域内进行归一化加权平均,确定邻域中心像素,由像素的权值系数与距离的权值系数相乘得到加权系数。双侧滤波有非迭代性与局部性的特点,以中心像素附属邻域像素空间位置差异设计加权,结合像素值差异设计加权并且双侧滤波采用局部加权平均,其加权系数由像素空间距离决定的距离权值系数和由像素间差值决定的像素值权值系数相乘得到。
假定在理想图像x中加入一定方差的高斯噪声n,得到含噪声图像
电子白板带有可以标记功能的专用笔。教师可以用它来圈圈画画,给学生强调,突出重点。要知道,我们语文课堂的知识要点很多,而且很零碎,所以要学生牢牢记住,未免有点强人所难。我们就可以运用这个标记功能,勾画出重点,让学生把该记的记牢固了就可以,其他知识就看作课外拓展,了解就可以了。
y=x+n
在一个特定邻域以像素p为中心,r为半径的正方体中,对不同位置的含噪声图像yi和yj进行归一化加权平均[13],加权系数以该邻域内图像内容为基础进行构造。
最后,将二者归一化加权平均,即双侧滤波的加权系数为
改进CPD算法是在原始CPD算法只计算点云的距离信息基础上添加了点云的亮度信息。然后将距离与亮度信息相结合,构造双侧加权,有效降低面部点云配准时头发区域对配准效果的干扰,降低距离标准差,减少配准的运算数据,缩短运算时间,提高CPD算法用于人体面部配准的性能。
取其最大值,记为Cmax=max(R′,G′,B′),即亮度值V=Cmax。
(1)
式中,l为幂次。亮度相乘与幂运算可增加对最终权值的影响度。
将得到的亮度权值系数与原始CPD算法中计算距离权重的方法相结合,得到改进CPD加权系数为
三维点云模型数据以多边形文件格式(Polygon File Format,PLY)存储,既包含点云的空间坐标信息,也包含点云颜色信息。模型头发区域颜色较深,面部区域颜色较浅,如图1所示。
图1 PLY格式三维点云模型
考虑到头发区域点云在空间中位置的不确定性(比如发型不同)对配准结果造成干扰,根据头发区域与面部区域颜色差异,先将采集的人体面部模型数据进行降采样,然后在改进CPD算法中将模型的颜色信息提取出来,将其转化为亮度值V并计算亮度权值系数,与距离权值系数融合后得到新的加权系数,从而降低头发区域在配准过程中的权重,加快配准速率,提高准确性。
实验在Matlab R2018a,英特尔处理器Intel(R) Core(TM) i5-7200U CPU环境下运行,使用XYZprinting2.0手持式全彩3D扫描仪扫描获得三维点云数据,其支持Win 10系统,i5四代以上处理器。为了验证改进CPD算法的精确性和有效性,在收集的60组数据中随机选取8组彩色三维人体面部模型,通过降采样[16]使每组模型的待配准点数约为11 000个。通过计算最小误差值或迭代的次数是否达到设定的阈值判断配准是否完成。在分析配准效果的优劣时,需要考虑:1)两个点云间的最小误差值;2)配准完成后两个点云间的距离标准差;3)配准时算法的收敛速度。
8组数据分别使用原始CPD算法、双侧CPD算法和改进CPD算法进行配准,两个点云间的距离标准差[6]和运算时间如表1所示。
表1 3种算法点云配准参数对比
由表1可见,使用改进CPD算法进行配准时,数据4的距离标准差为2.050 mm,相比原始CPD算法减小了88%,在8组数据中减少最多,配准速度有明显加快。数据2的运算时间为4′49″40,相比原始CPD算法提高了46.9%,在8组数据中运算速度最快,距离标准差有明显减小。8组数据点云的距离标准差平均降低了66.01%,运算时间平均缩短18.57%,改进CPD算法相比原始CPD算法和双侧CPD算法在配准精度与效率方面均有显著提高。
以数据2为例,原始CPD算法、双侧CPD算法以及改进CPD算法的收敛速度对比曲线如图2所示。
图2 3种算法收敛速度曲线
从图2可以看出,原始CPD算法在迭代64次后收敛,双侧CPD算法在迭代76次后收敛,改进CPD算法在迭代27次后收敛。由此表明,改进CPD算法的迭代次数最少,收敛速度最快。另外7组数据也有类似结果。
以数据2为例,当l取不同值时,改进CPD算法的收敛情况如图3所示。
图3 不同l值时改进CPD算法的收敛曲线
由图3可知,当0≤l<1时,改进CPD算法需要迭代64次,当1 以数据4为例,给RGB值加不同强度高斯噪声后,改进CPD算法的稳定性箱线图如图4所示。 图4 改进CPD算法稳定性箱线图 由图4可以看出,噪声方差从1到32每次以二倍增长。箱子的高度表示数据的波动,随着高斯噪声的方差值σ越大点云标准差也稳定增大,并无异常波动,算法整体抗干扰能力较强,稳定性较好。其他7组数据也有类似结果。 使用原始CPD算法、双侧CPD算法以及改进CPD算法对图1进行面部点云配准,效果如图5所示。蓝色模型为目标点云,绿色模型为待配准点云。由图5可以看出,原始CPD算法的点云模型配准效果尚可,原因为该方法没有充分利用彩色三维模型的所有信息,只是采用了模型的空间坐标信息。相比于原始CPD算法,双侧CPD算法的两点云融合更为紧密。相比于前两种算法,改进CPD算法模型的匹配度更高。 图5 3种算法的配准结果 对于面部点云配准提出了一种基于双侧滤波的改进CPD算法。根据面部三维模型不同区域的不同亮度分布,计算点云模型不同区域所对应的权值,降低面部模型头发区域在配准中的权重,改善了原始CPD算法在进行人体面部点云配准时距离标准差较大、运算时间较长的情况,优化了配准效果。实验结果表明,改进CPD算法点云的距离标准差平均降低66.01%,运算时间平均缩短18.57%,配准效果与效率明显提高。3.3 面部点云配准效果与分析
4 结语