一种由粗到精的旗袍三维点云模型对齐方法

文档序号:36100580发布日期:2023-11-21 12:53阅读:85来源:国知局
一种由粗到精的旗袍三维点云模型对齐方法

本发明属于计算机视觉与图形处理领域与服装设计与制造领域的交叉领域,具体涉及一种由粗到精的旗袍三维点云模型对齐方法。


背景技术:

1、在计算机视觉和图形学领域,由于点云数据的复杂性和噪声的存在,点云模型的精确对齐仍然是一个具有挑战性的问题。基于手持式三维扫描装置获取的点云数据,数据噪声和手动旋转带来的模型旋转轴偏移、坐标系偏移、扫描中额外的旋转或平移误差等问题,可能会导致配准误差。通常需要依赖手动操作或者耗时的迭代算法,依赖于人工识别和处理关键截面,缺乏自动化的处理能力,无法实现高效准确的对齐。


技术实现思路

1、本发明的目的在于提供一种由粗到精的旗袍三维点云模型对齐方法,针对现有技术中的缺陷,通过最小二乘法求解旋转矩阵和平移向量,将点云模型转换为体素模型,并利用全状态空间穷举方法在状态空间的邻域中进行穷举,通过计算截面穿模量来找到最佳的平移变换,实现旗袍模型的精确对齐。同时,该方法可以半自动地识别关键截面,降低了配准过程中的人工参与。在处理数据噪声和手动旋转质量问题,解决模型坐标轴旋转不一致问题的同时,通过分析点云数据的极值和网格化处理,确定坐标轴对齐的位置和方向,从而实现点云模型之间的准确对齐,有助于实现服装个性化定制和无损服装复制等应用。

2、为了解决上述技术问题,采用如下技术方案:

3、一种由粗到精的旗袍三维点云模型对齐方法,其特征在于包括如下步骤:

4、(1)用手持式三维扫描装置获取人台和旗袍的全面三维点云数据;

5、(2)坐标轴旋转手动对齐;

6、(3)点云模型转换为体素模型;

7、(4)建立逻辑数组;

8、(5)提取模型“顶部”截面并计算重心;

9、(6)计算侧面方向的平移量并对齐截面重心;

10、(7)同一高度各个截面离群体素处理;

11、(8)对同一高度的两个截面求并集定义为穿模量;

12、(10)穷举所有有效截面计算平均穿模量;

13、(10)寻找平均穿模量最低时的平移变换进行对齐。

14、优选后,所述步骤(1),该手持式三维扫描装置包括采集装置与人台装置,所述采集装置包括扫描高度调节杆、手持式扫描仪与万向轮,所述扫描高度调节杆上设有所述手持式扫描仪,所述扫描高度调节杆的底部设有万向轮;所述人台装置包括人台、底座与人台高度调节杆,所述底座安装所述人台高度调节杆,所述人台高度调节杆安装所述人台;所述人台高度调节杆与所述扫描高度调节杆之间连接有上伸缩杆与下伸缩杆,通过所述上伸缩杆与所述下伸缩杆可调节所述采集装置与所述人台装置之间的间距;其扫描过程包括:

15、a、安装该手持式三维扫描装置:所述人台穿上旗袍,通过所述人台高度调节杆安装在所述底座上,所述采集高度调节杆上安装并固定所述手持式扫描仪,所述手持式扫描仪朝向所述人台,安装后分别调整所述手持式扫描仪与所述人台的高度,使两者匹配,最后接入所述上伸缩杆与所述下伸缩杆;

16、b、扫描前距离调整:扫描前调整所述人台装置与所述采集装置之间的间距;调试所述手持式扫描仪,进行标定消除系统误差,确定合适的扫描距离α,然后调节所述上伸缩杆与所述下伸缩杆为此距离长度α;

17、c、深度信息的获取:依次固定所述手持式扫描仪高度在旗袍可扫描范围上半部分、中间位置、下半部分,将所述人台为旋转中轴线,以α为半径,匀速的做圆周运动,共旋转三周,直到获得完整旗袍三维点云数据。

18、优选后,所述步骤(2),提供待对齐的两个三维点云模型ptcloud_1和ptcloud_2,分别为人台三维点云模型及旗袍三维点云模型,使用compose_rotation函数构造一个3x3的旋转矩阵compose_rotation(theta_x,theta_y,theta_z),其中theta_x、theta_y和theta_z是各个轴的旋转角度,接受三个角度作为输入,并输出旋转矩阵;

19、a、对于绕x轴的旋转,旋转矩阵x是:

20、b、对于绕y轴的旋转,旋转矩阵y是:

21、c、对于绕z轴的旋转,旋转矩阵z是:

22、d、通过矩阵乘法将这三个旋转矩阵组合在一起以得到总旋转矩阵r:r=z*y*x。

23、优选后,所述步骤(3),使用convert_to_voxel(ptcloud,metadata,params)函数将点云模型ptcloud_1和ptcloud_2转换为体素模型voxel_data_1和voxel_data_2,并设定体素模型的空间分辨率;转换过程如下:

24、a、创建体素数组:根据体素模型的空间分辨率和范围,创建一个三维数组,用于表示体素模型,数组的大小由体素模型的边界确定,并且根据空间分辨率划分为小的体素单元;

25、b、映射点云到体素坐标:对于点云中的每个点,根据其坐标,将其映射到相应的体素坐标中;

26、c、设置体素值:遍历点云中的每个点,将其对应的体素坐标位置在体素数组中设置为true,通过在该位置上计数找到的点的数量,决定是否将体素设置为true,这样,体素模型中的true值表示该体素内存在点云数据;

27、通过上述转换过程,将点云模型转换为体素模型,并将其表示为一个三维数组,其中每个数组元素表示一个体素单元,true值表示该体素单元内存在点云数据,false值表示没有点云数据。

28、优选后,所述步骤(4),根据点云数据在z轴上的分布,构造了一个三维的逻辑数组"voxel_data",在这个逻辑数组中,z轴的每一层都代表一个不同高度的截面;对于任意一层z值的截面,通过访问"voxel_data(:,:,z)"获取;在逻辑数组中,每个体素单元表示为一个布尔值,true表示该体素存在,false表示不存在;通过构建逻辑数组,对体素模型在不同高度截面上的分布进行可视化和分析;

29、假设voxel_data的维度为(x,y,z),其中x和y表示平面的宽度和长度,z表示截面的高度;通过访问voxel_data(:,:,z),获取第z层的截面,这将返回一个二维逻辑数组,描述该高度截面上的体素分布情况,通过分析这个二维逻辑数组,获取特定高度截面上的体素信息。

30、优选后,所述步骤(5),首先,通过检索人台模型和旗袍模型的体素数据,访问模型的体素数据结构中的z轴极值来获取它们在z轴上的范围;将人台模型的最大z值存储在z_max_model变量中,将旗袍模型的最大z值存储在z_max_qipao变量中;

31、计算了两个z值截面的重心,分别保存在centroid_3d_model和centroid_3d_qipao变量中,这些重心代表了对应模型在z轴上的平均高度位置;通过计算模型点云的坐标平均值,即x、y和z坐标分量的平均值,可以得到模型在z轴上的平均高度位置;

32、通过提取z轴最大值和计算截面重心,获得模型在垂直方向上的高度范围和平均高度位置,用于确定模型的垂直位置关系。

33、优选后,所述步骤(6),通过计算截面重心之间的差异,比较了两个模型的重心位置,并计算出它们在x、y和z轴上的差异;接下来,对模型在x、y和z轴上的平移量进行估计,根据网格大小将差异量除以网格大小以进行标准化;然后,通过向下取整将差异量量化为离散的网格单元数量;最后,乘以网格大小以获得在实际空间中的平移量估计,并将结果保存在`trans_x_model_rough`、`trans_y_model_rough`和`trans_z_model_rough`变量中;通过上述计算和操作,可以估计模型在x轴,y轴,z轴上的平移量,并将模型的截面重心对齐。

34、优选后,所述步骤(7),在给定的搜索范围内,循环遍历模型的每个截面;对于每个截面,获取模型的体素数据voxel_data_model和旗袍的体素数据voxel_data_qipao;

35、通过一系列形态学操作对模型和旗袍的体素数据进行预处理;这些操作包括桥接、清理和填充,通过bwmorph函数实现;桥接操作用于连接体素中的断开部分,清理操作用于去除小的噪声体素,填充操作用于填充截面中的孔洞。

36、优选后,所述步骤(8),将经过预处理的人台截面体素数据bw_model和旗袍截面体素数据bw_qipao进行合并,生成合并后的二值图像`bw_merge`。合并操作使用逻辑运算符or将两个二值图像进行逻辑或运算,获得人台模型和旗袍模型的共同区域;随后计算bw_qipao和bw_merge的面积,如果bw_merge的面积大于bw_qipao的面积,则截面穿模量被定义为这两个面积的差;

37、使用`vision.blobanalysis`进行区域分析,对合并后的二值图像bw_merge进行连通区域分析,获取关于区域形状、大小和位置的信息,进一步分析模型之间的差异;

38、在区域分析中,首先创建了`vision.blobanalysis`对象,并设置`maximumcount`属性为1,以确保只获取最大的连通区域;然后,针对合并后的二值图像`bw_merge`进行连通区域分析;通过调用`hblob`对象并传入二值图像,获取连通区域的相关信息,连通区域的面积表示该区域的像素数目,重心表示区域的中心位置;

39、通过连通区域分析,获得合并后的二值图像中连通区域的属性,包括穿模量的面积和重心。

40、优选后,所述步骤(9),在每个有效截面上进行循环:

41、对当前截面的人台模型体素数据bw_model和旗袍模型体素数据bw_qipao进行预处理,使用bwmorph函数进行桥接、清理操作;创建合并后的二值图像bw_merge,使用逻辑运算符or将bw_model和bw_qipao进行逻辑或运算;使用vision.blobanalysis对象进行连通区域分析;设置maximumcount属性为1,以确保只获取最大的连通区域;对合并后的二值图像bw_merge进行连通区域分析,获取连通区域的属性,包括面积和重心;如果连通区域的面积大于等于旗袍模型的面积,则计算该截面的穿模量;将重心差异保存在dev_centroid数组中,将穿模量保存在area_chuanmo数组中;

42、循环结束后,计算重心差异和穿模量的平均值,得到平均穿模量。通过穷举所有有效截面并计算重心差异和穿模量,可以综合考虑模型在各个截面的差异程度。平均穿模量提供了模型与旗袍之间整体相似性的度量,有助于评估模型之间的一致性和匹配程度。

43、优选后,所述步骤(10),通过改变每个体素的坐标,穷举所有可能的位移,然后通过计算重心偏差和穿模量来选择最优的对齐方式:根据平均穿模量大小和重心差异,估计了模型在x、y和z轴上的平移量;其中,x轴的平移量为trans_x_model_rough,y轴的平移量为trans_y_model_rough,z轴的平移量为trans_z_model_rough;

44、接下来,使用循环遍历的方式,在给定的搜索范围内,对平移量进行微调,以找到平均穿模量最低的对齐结果;搜索范围由search_area_refinement_lateral侧向搜索范围和search_area_refinement_vertical垂直搜索范围决定;在每一次迭代中,根据微调后的平移量构造一个临时的刚性变换tform_z_model_temp,并使用该变换将人台模型进行平移;将平移后的人台模型转换为体素模型,并通过调用compare_voxel函数计算平移后的模型与旗袍模型的穿模量相关参数,包括重心差异和穿模量;保存穿模量相关参数到results数组中,记录每一次迭代的结果;

45、循环结束后,根据所有迭代结果中的最小穿模量,找到平均穿模量最低的对齐结果,并获取对应的平移量;将最佳的平移量应用于刚性变换,得到最终的对齐变换tform;

46、使用最终的对齐变换,将人台模型进行平移,得到平移后的体素模型;将平移后的体素模型转换为体素数据,保存在voxel_data_model_registered中;通过上述过程,寻找到平均穿模量最低的对齐结果,并得到相应的平移变换;这个过程基于穿模量的度量,通过不断微调平移量来找到最优的对齐结果,以实现人台模型和旗袍模型的精确对齐。

47、由于采用上述技术方案,具有以下有益效果:

48、本发明通过最小二乘法求解旋转矩阵和平移向量,将点云模型转换为体素模型,并利用全状态空间穷举方法在状态空间的邻域中进行穷举,通过计算截面穿模量来找到最佳的平移变换,实现旗袍模型的精确对齐。同时,该方法可以半自动地识别关键截面,降低了配准过程中的人工参与。在处理数据噪声和手动旋转质量问题,解决模型坐标轴旋转不一致问题的同时,通过分析点云数据的极值和网格化处理,确定坐标轴对齐的位置和方向,从而实现点云模型之间的准确对齐,有助于实现服装个性化定制和无损服装复制等应用。

49、本发明能够在保持整体对齐准确性的同时,实现点云模型坐标轴的精密对齐。该方法能够有效处理数据噪声和手动旋转质量等问题,并且在局部微弱穿模的情况下仍然保持良好的对齐效果。

50、本发明采用手持式扫描仪实现不同方位、不同角度扫描旗袍,达到均匀、全面采样的目的,方便点云数据的获取及处理。两根高度调节杆使得扫描装置能够被设置在最佳的扫描位置,达到均匀、全面、清晰采样的目的,方便后续的数据处理。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1