本技术涉及计算机,具体而言,涉及一种对象的包围盒处理方法、装置、计算机设备及存储介质。
背景技术:
1、物体的包围盒在物体的建模渲染、碰撞检测、物体测量等领域发挥着重要作用。包围盒能够将一个不规则几何体的所有部分均包围在一个规则的几何体中,从而利用该规则的几何体实现各种功能。其中,有向包围盒是一种重要的包围盒类型,如何构建物体的有向包围盒是重要的问题。
2、现有技术中,普遍使用主成分分析(principal components analysis,简称pca)方法来构建有向包围盒。该方法根据物体表面的顶点计算特征向量,用来估计点集中最大扩展的方向,并作为有向包围盒的主轴。
3、但是,使用现有技术的方法,无法保证有向包围盒的体积足够小,进而导致有向包围盒的准确性不高。
技术实现思路
1、本技术的目的在于,针对上述现有技术中的不足,提供一种对象的包围盒处理方法、装置、计算机设备及存储介质,以解决现有技术中无法保证有向包围盒的体积足够小,进而导致有向包围盒的准确性不高的问题。
2、为实现上述目的,本技术实施例采用的技术方案如下:
3、第一方面,本技术实施例提供一种对象的包围盒处理方法,包括:
4、确定初始角度参数;
5、根据所述初始角度参数以及目标对象的点云集合中各点云的坐标,确定所述目标对象的初始包围盒体积,其中,所述初始包围盒体积为所述目标对象在所述初始角度参数对应的坐标系下的轴对齐包围盒的体积;
6、根据所述初始包围盒体积,基于梯度下降算法对所述初始角度参数进行迭代修正,得到目标角度参数;
7、根据所述目标角度参数,确定所述目标对象的最小体积有向包围盒,其中,所述最小体积有向包围盒为所述目标对象在所述目标角度参数对应的坐标系下的轴对齐包围盒;
8、根据所述最小体积有向包围盒,确定所述目标对象的目标包围盒,所述目标包围盒为所述目标对象在原始坐标系下的包围盒。
9、作为一种可能的实现方式,所述根据所述初始角度参数以及目标对象的点云集合中各点云的坐标,确定所述目标对象的初始包围盒体积,包括:
10、根据所述初始角度参数,确定初始转换矩阵;
11、基于所述初始转换矩阵,对所述点云集合中各点云进行坐标转换,得到各点云在所述初始角度参数对应的坐标系下的坐标;
12、根据各点云在所述初始角度参数对应的坐标系下的坐标,确定所述初始包围盒体积。
13、作为一种可能的实现方式,所述根据各点云在所述初始角度参数对应的坐标系下的坐标,确定所述初始包围盒体积,包括:
14、根据各点云在所述初始角度参数对应的坐标系下的坐标,分别确定所述目标对象在所述初始角度参数对应的坐标系下的最大x坐标、最小x坐标、最大y坐标、最小y坐标、最大z坐标以及最小z坐标;
15、根据最大x坐标以及最小x坐标,确定x方向长度;
16、根据最大y坐标以及最小y坐标,确定y方向长度;
17、根据最大z坐标以及最小z坐标,确定z方向长度;
18、根据所述x方向长度、所述y方向长度以及所述z方向长度,确定所述初始包围盒体积。
19、作为一种可能的实现方式,所述根据所述初始包围盒体积,基于梯度下降算法对所述初始角度参数进行迭代修正,得到目标角度参数,包括:
20、以所述初始包围盒体积作为可微函数的初始函数值,以所述初始角度参数所述可微函数的初始输入参数,迭代调整输入参数,以进行梯度下降计算,直至相邻两次迭代所得到的函数值的差异小于预设阈值,停止迭代,并将最后一次迭代所使用的输入参数作为所述目标角度参数。
21、作为一种可能的实现方式,所述根据所述目标角度参数,确定所述目标对象的最小体积有向包围盒,包括:
22、根据所述目标角度参数,确定目标转换矩阵;
23、基于所述目标转换矩阵,对所述点云集合中各点云进行坐标转换,得到各点云在所述目标角度参数对应的坐标系下的坐标;
24、根据各点云在所述目标角度参数对应的坐标系下的坐标,确定所述目标对象的最小体积有向包围盒。
25、作为一种可能的实现方式,所述根据各点云在所述目标角度参数对应的坐标系下的坐标,确定所述目标对象的最小体积有向包围盒,包括:
26、根据各点云在所述目标角度参数对应的坐标系下的坐标,分别确定所述目标对象在所述目标角度参数对应的坐标系下的最大x坐标、最小x坐标、最大y坐标、最小y坐标、最大z坐标以及最小z坐标;
27、根据最大x坐标、最大y坐标以及最大z坐标,确定第一顶点;
28、根据最小x坐标、最小y坐标以及最小z坐标,确定第二顶点;
29、根据所述第一顶点和所述第二顶点,确定所述目标对象的最小体积有向包围盒。
30、作为一种可能的实现方式,所述根据所述最小体积有向包围盒,确定所述目标对象的目标包围盒,包括:
31、获取所述最小体积有向包围盒中各顶点的坐标;
32、根据所述目标转换矩阵,确定目标反转换矩阵;
33、基于所述目标反转换矩阵,对所述最小体积有向包围盒中各顶点的坐标进行转换,得到所述目标包围盒的各顶点的坐标。
34、第二方面,本技术实施例提供一种对象的包围盒处理装置,包括:
35、第一确定模块,用于确定初始角度参数;
36、第二确定模块,用于根据所述初始角度参数以及目标对象的点云集合中各点云的坐标,确定所述目标对象的初始包围盒体积,其中,所述初始包围盒体积为所述目标对象在所述初始角度参数对应的坐标系下的轴对齐包围盒的体积;
37、修正模块,用于根据所述初始包围盒体积,基于梯度下降算法对所述初始角度参数进行迭代修正,得到目标角度参数;
38、第三确定模块,用于根据所述目标角度参数,确定所述目标对象的最小体积有向包围盒,其中,所述最小体积有向包围盒为所述目标对象在所述目标角度参数对应的坐标系下的轴对齐包围盒;
39、第四确定模块,用于根据所述最小体积有向包围盒,确定所述目标对象的目标包围盒,所述目标包围盒为所述目标对象在原始坐标系下的包围盒。
40、作为一种可能的实现方式,所述第二确定模块具体用于:
41、根据所述初始角度参数,确定初始转换矩阵;
42、基于所述初始转换矩阵,对所述点云集合中各点云进行坐标转换,得到各点云在所述初始角度参数对应的坐标系下的坐标;
43、根据各点云在所述初始角度参数对应的坐标系下的坐标,确定所述初始包围盒体积。
44、作为一种可能的实现方式,所述第二确定模块具体用于:
45、根据各点云在所述初始角度参数对应的坐标系下的坐标,分别确定所述目标对象在所述初始角度参数对应的坐标系下的最大x坐标、最小x坐标、最大y坐标、最小y坐标、最大z坐标以及最小z坐标;
46、根据最大x坐标以及最小x坐标,确定x方向长度;
47、根据最大y坐标以及最小y坐标,确定y方向长度;
48、根据最大z坐标以及最小z坐标,确定z方向长度;
49、根据所述x方向长度、所述y方向长度以及所述z方向长度,确定所述初始包围盒体积。
50、作为一种可能的实现方式,所述修正模块具体用于:
51、以所述初始包围盒体积作为可微函数的初始函数值,以所述初始角度参数所述可微函数的初始输入参数,迭代调整输入参数,以进行梯度下降计算,直至相邻两次迭代所得到的函数值的差异小于预设阈值,停止迭代,并将最后一次迭代所使用的输入参数作为所述目标角度参数。
52、作为一种可能的实现方式,所述第三确定模块具体用于:
53、根据所述目标角度参数,确定目标转换矩阵;
54、基于所述目标转换矩阵,对所述点云集合中各点云进行坐标转换,得到各点云在所述目标角度参数对应的坐标系下的坐标;
55、根据各点云在所述目标角度参数对应的坐标系下的坐标,确定所述目标对象的最小体积有向包围盒。
56、作为一种可能的实现方式,所述第三确定模块具体用于:
57、根据各点云在所述目标角度参数对应的坐标系下的坐标,分别确定所述目标对象在所述目标角度参数对应的坐标系下的最大x坐标、最小x坐标、最大y坐标、最小y坐标、最大z坐标以及最小z坐标;
58、根据最大x坐标、最大y坐标以及最大z坐标,确定第一顶点;
59、根据最小x坐标、最小y坐标以及最小z坐标,确定第二顶点;
60、根据所述第一顶点和所述第二顶点,确定所述目标对象的最小体积有向包围盒。
61、作为一种可能的实现方式,所述第四确定模块具体用于:
62、获取所述最小体积有向包围盒中各顶点的坐标;
63、根据所述目标转换矩阵,确定目标反转换矩阵;
64、基于所述目标反转换矩阵,对所述最小体积有向包围盒中各顶点的坐标进行转换,得到所述目标包围盒的各顶点的坐标。
65、第三方面,本技术实施例提供一种计算机设备,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器执行所述机器可读指令,以执行如上述第一方面所述的对象的包围盒处理方法的步骤。
66、第四方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面所述的对象的包围盒处理方法的步骤。
67、本技术实施例所提供的对象的包围盒处理方法、装置、计算机设备及存储介质,在根据初始角度参数和点云坐标确定出目标对象的初始包围盒体积之后,基于包围盒体积相对于角度参数是可微的这一前提,利用梯度下降算法确定出最小体积包围盒所对应的目标角度参数,进而利用该目标角度参数可以确定出该最小体积包围盒并转换得到目标对象在原始坐标系下的包围盒。由于包围盒体积相对于角度参数是可微的,因此,基于梯度下降算法可以确定出具有最小体积的有向包围盒,从而提升包围盒的准确性。