三维物体体积的测量方法、测量装置以及存储介质与流程

文档序号:25872440发布日期:2021-07-16 16:48阅读:473来源:国知局
三维物体体积的测量方法、测量装置以及存储介质与流程

1.本发明涉及三维物体体积的测量技术,特别涉及利用三维物体的三维点云模型来校正三维物体体积的测量方法、测量装置以及存储介质。


背景技术:

2.在工农业产业作业中,利用拍摄技术来监视观测对象物或其外观变化等已被广泛周知。这其中尤其是在农业生产中,利用相机、摄像机在现场来进行农作物的观测,并计算农作物的体积,从而评价农作物的生长。作为针对农作物这样的三维物体体积的计算方法之一,使用了利用深度图像测量的3d形状识别技术等。
3.在利用3d形状识别来计算三维物体的体积的技术中,通常利用深度相机来获取三维物体的深度图像,然后根据深度图像来创建三维形状模型,再计算该三维形状模型的体积,并将该三维形状模型的体积作为三维物体的体积。


技术实现要素:

4.但是,在利用深度图像测量来得到三维物体的3d形状模型并对三维物体的体积进行评价的情况下,对于例如葡萄串这样的存在大量果粒重叠的复杂三维物体,通过图像测量无法准确地对果粒重叠的部分进行模型化,而且葡萄串在中心附近仅存在细梗而没有果粒,因此,通过图像测量所得出的葡萄串的体积与利用排水法所得到的葡萄串的实际体积相差较大,这样就无法求出准确的葡萄串的体积,进而无法准确地评价葡萄的生长状况。
5.本发明就是鉴于上述问题而做出的,目的在于提供一种三维物体体积的测量方法、测量装置以及存储介质,即使是葡萄串这样的形状复杂的三维物体也能够准确地求出其体积。
6.根据本发明的技术方案,提供一种三维物体体积的测量方法,包括:
7.获取三维物体的点云数据的点云数据获取步骤;
8.对所述点云数据进行处理而得到所述三维物体的三维点云模型的三维点云模型形成步骤;
9.基于所述三维点云模型而得到三维形状模型的三维形状模型构建步骤;以及
10.根据所述三维形状模型计算出所述三维形状模型的体积的模型体积计算步骤;
11.还包括对所述体积计算步骤中计算出的所述三维形状模型的体积进行校正的体积校正步骤,
12.该体积校正步骤包括:
13.基于所述三维点云模型来求出所述三维点云模型的中心轴周围的虚拟圆柱体的半径的虚拟圆柱体半径求取步骤;
14.基于所述三维点云模型来确定所述虚拟圆柱体的高度的虚拟圆柱体高度确定步骤;
15.利用所述虚拟圆柱体的半径和所述高度来计算出所述虚拟圆柱体的体积的虚拟
圆柱体体积计算步骤;以及
16.利用所述模型体积计算步骤中计算出的所述三维形状模型的体积减去所述虚拟圆柱体体积计算步骤中计算出的所述虚拟圆柱体的体积而得到校正后的体积,并将该校正后的体积作为所述三维物体体积的校正体积求取步骤。
17.根据本发明的技术方案,通过基于三维物体的点云数据来创建三维形状模型,并计算三维形状模型的体积,然后进行体积校正,即使是例如葡萄串这样的形状复杂的三维物体也能够准确地测量出其体积。
附图说明
18.图1是本发明涉及的三维物体体积测量装置的示意框图。
19.图2是本发明涉及的体积校正部的示意框图。
20.图3是通过三维点云模型形成部得到的葡萄串的三维点云模型的一例。
21.图4是通过三维模型构建部得到的葡萄串的三维形状模型的一例。
22.图5是说明第一实施方式的三维形状模型的校正体积的计算步骤的流程图。
23.图6是对第一实施方式的三维点云模型进行第一次球面拟合的示意图。
24.图7是第一实施方式的删除了球面外点云后的三维点云模型的示意图。
25.图8是对第一实施方式的三维点云模型进行最后一次球面拟合的放大示意图。
26.图9是说明第二实施方式的三维形状模型的校正体积的计算步骤的流程图。
27.图10是对第二实施方式的三维点云模型进行切片来计算虚拟圆柱体的高度的示意图。
28.图11是说明第三实施方式的三维形状模型的校正体积的计算步骤的流程图。
29.图12是对第三实施方式的三维点云模型进行切片来计算虚拟圆柱体的半径的示意图。
30.图13是示出用于计算体积的葡萄串的例子的图,(a)示出葡萄串1,(b)示出葡萄串2。
具体实施方式
31.本发明以葡萄串为例来说明三维物体体积的测量方法。
32.本发明的发明人针对葡萄串的果粒重叠的问题,发现如果利用葡萄串的点云数据来对葡萄串进行表面重建而得到葡萄串的三维形状模型,则即使是葡萄串这样的形状复杂的农作物,也能够准确地描绘其表面。由此,基于三维形状模型能够更准确地得到形状复杂的农作物的体积。另外,针对葡萄串这样的中心没有果粒而仅存在细梗、即中心看似具有空间这样的农作物,本发明的发明人想到:通过去除该空间的体积,来对利用三维形状模型求出的葡萄串的体积进行校正。具体而言,在葡萄串的三维形状模型中,将三维形状模型的中心轴附近仅存在细梗而没有果粒的沿着中心轴方向的空间看成沿着葡萄串的中心轴的圆柱体(以下称为虚拟圆柱体),由此以圆柱体来近似葡萄串中心实际上不存在的体积。本发明就是基于上述发明构思而完成的。
33.(第一实施方式)
34.以下,参照附图对本发明的第一实施方式进行说明。
35.本发明的三维物体体积测量装置1由包括至少1个ic(集成电路)的电路构成。电路包括处理器(未图示)和ram存储器、rom存储器(未图示)等。三维物体体积测量装置1具有的各功能可以通过处理器执行软件来实现。软件是作为程序描述的,并存储于存储装置。
36.如图1所示,三维物体体积测量装置1包括:点云数据获取部11,其从深度相机2等获取三维物体的深度图像或点云数据;三维点云模型形成部12,其对点云数据进行处理而得到三维物体的三维点云模型;三维形状模型构建部13,其基于所得到的三维点云模型来构建三维物体的三维形状模型;模型体积计算部14,其根据所构建的三维形状模型计算出三维形状模型的体积;体积校正部15,其对模型体积计算部14计算出的三维形状模型的体积进行校正。
37.如图2所示,体积校正部15包括:虚拟圆柱体半径求取部151,其基于三维点云模型来求出三维点云模型的中心轴周围的虚拟圆柱体的半径;虚拟圆柱体高度确定部152,其基于三维点云模型来确定虚拟圆柱体的高度;虚拟圆柱体体积计算部153,其利用虚拟圆柱体半径求取部151所求出的半径和虚拟圆柱体高度确定部152确定的高度来计算出虚拟圆柱体的体积;以及校正体积求取部154,其利用由模型体积计算部14计算出的三维形状模型的体积减去由虚拟圆柱体体积计算部153计算出的虚拟圆柱体的体积而得到校正后的体积,将该校正后的体积作为三维物体的体积。
38.以下,以葡萄串为例,对三维物体体积测量装置1测量三维物体体积的具体步骤进行说明。
39.点云数据获取部11从作为深度相机2的realsense相机获取由深度相机2所拍摄的葡萄串的深度图像,并利用realsense sdk(software development kit)将深度图像转换成点云数据。另外,也可以利用kinect2.0深度传感器、tof(time-of-flight)三维相机等来获取葡萄串的深度图像,再将深度图像转换为点云数据,将深度图像转换为点云数据可以使用现有的各种方法来实现。
40.三维点云模型形成部13对点云数据进行一定处理、例如点云过滤、迭代最近点、点云合并和点云旋转等而得到三维物体的三维点云模型。对点云数据进行处理而生成三维物体的三维点云模型不限于上述这些处理,可以使用现有的各种处理方法。图3是对点云数据进行处理后而得到的葡萄串的三维点云模型的一例。
41.三维形状模型构建部12根据三维点云模型而创建葡萄串的三维形状模型。该三维形状模型的创建方法可以使用poisson surface reconstruction(eurographics symposium on geometry processing(2006),michael kazhdan,matthew bolitho and hugues hoppe)所记载的泊松表面重建法等公知的各种方法。在此,不再进行详细说明。图4是利用泊松表面重建法所创建的葡萄串的三维形状模型的一例。
42.参照图5来说明本实施方式的计算三维形状模型的校正体积的方法。
43.在步骤s11中,模型体积计算部14计算所创建的葡萄串的三维形状模型的体积v
3dmodel
。该三维模型体积的计算可以使用fast and accurate computation of polyhedral mass properties(journal of graphics tools volume 1,1996-issue 2,brian mirtich)所记载的多面体质量的快速准确计算法等公知的各种方法。在此,不再进行详细说明。
44.接下来,由体积校正部15执行以下步骤来计算校正体积。
45.在步骤s12中,设置预设阈值d
th
,该预设阈值d
th
例如可以设为2mm。设置预设阈值d
th
的目的是为了使以下的球面拟合处理过程结束,即、在本次拟合与上一次拟合而得到的球面直径相差很小时结束拟合处理,该预设阈值d
th
是根据数次试验而得到的值,可以根据所测量的三维物体进行适当设定。
46.接着,在步骤s13中,利用最小二乘法对葡萄串的三维点云模型的点云进行第一次球面拟合而得到第一球面。图6是对三维点云模型进行第一次球面拟合的示意图。
47.在步骤s14中,将第一球面之外的点云数据删除。图7是删除了球面外点云后的三维点云模型的示意图。接着,利用最小二乘法对剩余的葡萄串的三维点云模型的点云进行第二次球面拟合而得到第二球面。
48.在步骤s15中,计算前一次球面近似得到的球面直径d
before
与本次球面近似得到的球面直径d
after
的差值,并判断该差值d
before-d
after
是否大于预设阈值d
th
。如果大于预设阈值d
th
,则表明通过最小二乘法所得到的前后2个球面直径相差较大。相反,如果小于等于预设阈值d
th
,则表明通过最小二乘法所得到的前后2个球面直径相差较小,即球面直径的变化较小。图8是对三维点云模型进行最后一次球面拟合的示意图。
49.当步骤s15中的判断结果为差值d
before-d
after
大于预设阈值d
th
时(s15:是),转移到步骤s14,反复进行利用最小二乘法的球面拟合。
50.当步骤s15中的判断结果为差值d
before-d
after
小于等于预设阈值d
th
时,结束球面拟合,将本次球面拟合得到的球面直径d
after
作为虚拟圆柱体的直径,并前进到步骤s16(s15:否)。
51.在步骤s16中,将第一次球面拟合得到的球面直径确定为虚拟圆柱体的高度h。
52.接下来,在步骤s17中,利用步骤s15中得到的虚拟圆柱体的直径d
after
和步骤s16中得到的虚拟圆柱体的高度h来计算虚拟圆柱体的体积v
cylinder
,即、v
cylinder
=πd
after2
/4*h。
53.然后,在步骤s18中,利用步骤s11中所计算出的三维形状模型的体积v
3dmodel
减去步骤s17中计算出的虚拟圆柱体的体积v
cylinder
,将得到的差值作为校正后的三维形状模型的体积,也就是,葡萄串的体积。
54.根据本实施方式的上述构成,通过点云数据获取部11,来获取三维物体的深度图像或点云数据,接着,通过三维点云模型形成部12来对点云数据进行处理而得到三维物体的三维点云模型,再基于所得到的三维点云模型,并通过三维形状模型构建部13来构建三维物体的三维形状模型,然后模型体积计算部14根据所构建的三维形状模型计算出三维形状模型的体积,而后再通过体积校正部15,对模型体积计算部14计算出的三维形状模型的体积进行校正。由此,即使是例如葡萄串这样的形状复杂的三维物体也能够准确地测量出其体积。
55.(第二实施方式)
56.以下,对本发明的第二实施方式进行说明。
57.第二实施方式与第一实施方式的不同之处在于:校正体积的计算方法,具体是虚拟圆柱体的高度的计算方法不同。除此之外,与第一实施方式相同。以下,仅对不同之处进行说明,而对于相同之处省略详细说明。
58.参照图9来说明本实施方式的计算三维形状模型的校正体积的方法。
59.在步骤s21中计算三维形状模型的体积v
3dmodel
。在步骤s22中设定预设阈值d
th
。在
步骤s23中,对点云数据进行球面拟合,在步骤s24中删除球面拟合后位于球面外的点云数据,并再次进行拟合。在步骤s25中计算前一次球面拟合得到的球面的直径d
before
与本次球面拟合得到的球面的直径d
after
的差值,并判断该差值与预设阈值d
th
的关系。
60.当步骤s25中的判断结果为差值d
before-d
after
大于预设阈值d
th
时(s25:是),转移到步骤s24,反复进行利用最小二乘法进行的球面拟合。
61.当步骤s25中的判断结果为差值d
before-d
after
小于等于预设阈值d
th
时(s25:否),结束球面拟合,将本次球面拟合得到的球面直径d
after
作为虚拟圆柱体的直径,并前进到步骤s26。
62.到此为止的步骤与第一实施方式的步骤s11~步骤s15相同,不再进行详细说明。
63.在步骤s26中,设定用于计算虚拟圆柱体的高度h的最小半径r
min
,例如设定r
min
为3mm。该最小半径r
min
的值为根据数次试验而得到的值。
64.接下来,在步骤s27中,以垂直于三维点云模型的中心轴的方式,针对葡萄串的三维点云模型的整个高度以一定厚度来对三维点云模型进行切片而得到多个切片sl1、sl2、sl3

,切片的数量没有特别限定。各切片的厚度例如可以为5mm,但并不限于5mm,也可以大于5mm,还可以小于5mm,此外,各个切片sl的厚度可以相同也可以不同。针对进行切片所得到的每个切片sl,将该切片sl中的点云数据的各点向该切片的表面(上表面或下表面)投影,或者向与该切片的表面平行的虚拟平面投影,从而得到与该切片sl中的点云数据的各点对应的投影点。然后对各投影点的x坐标和y坐标分别进行算术平均而得到中央坐标(x,y),将该中央坐标(x,y)对应的虚拟点设为中央点d,并计算各投影点与该中央点d的距离,将计算出的各距离进行算术平均而得到距离平均值,将该距离平均值设为与该切片sl对应的圆柱体切片的半径r
ave
。图10示出了对第二实施方式的三维点云模型进行切片来计算虚拟圆柱体高度的示意图。
65.在步骤s28中,将步骤s27中所计算出的各个半径r
ave
与步骤s26中设定的最小半径r
min
进行比较。将半径r
ave
大于最小半径r
min
的圆柱体切片的厚度设为有效厚度而用于虚拟圆柱体的高度的计算。即、将半径r
ave
大于最小半径r
min
的所有圆柱体切片的厚度相加而得到的值作为虚拟圆柱体的高度h,h=h1+h2+h3+

h
n
(n为自然数)。
66.在步骤s29中,利用步骤s25中得到的虚拟圆柱体的直径d
after
与步骤s28中得到的虚拟圆柱体的高度h,来计算虚拟圆柱体的体积v
cylinder
,即、v
cylinder
=πd
after2
/4*h。
67.接下来,在步骤s30中,利用步骤s21中所计算出的三维形状模型的体积v
3dmodel
减去步骤s29中计算出的虚拟圆柱体的体积v
cylinder
,将得到的差值作为校正后的三维形状模型的校正体积,也就是葡萄串的体积。
68.根据本实施方式的上述构成可知,与第一实施方式同样地,即使是例如葡萄串这样的形状复杂的三维物体也能够准确地测量出其体积。
69.(第三实施方式)
70.以下,参照图11来说明本实施方式的计算三维形状模型的校正体积的方法。
71.在步骤s31中,计算所创建的葡萄串的三维形状模型的体积v
3dmodel
。该体积v
3dmodel
的计算与第一实施方式和第二实施方式相同,在此,不再进行说明。
72.在s32中,设定用于计算虚拟圆柱体的半径r和高度h的最小半径r
min
。该最小半径r
min
的值为根据数次试验而得到的值。本实施方式中设定为3mm。
73.接下来,在步骤s33中,以垂直于三维点云模型的中心轴的方式,针对葡萄串的三维点云模型的整个高度以一定厚度对三维点云模型进行切片而得到多个切片sl1、sl2、sl3

,切片的数量没有特别限定。各切片的厚度例如可以为5mm,但并不限于5mm,也可以大于5mm,还可以小于5mm,此外,各个切片sl的厚度可以相同也可以不同。针对进行切片所得到的每个切片sl,将该切片sl中的点云数据的各点向该切片的表面(上表面或下表面)投影,或者向与该切片的表面平行的虚拟平面投影,从而得到与该切片sl中的点云数据的各点对应的投影点。然后对各投影点的x坐标和y坐标分别进行算术平均而得到中央坐标(x,y),将该中央坐标(x,y)对应的虚拟点设为中央点d,并计算各投影点与该中央点d的距离,将计算出的各距离进行算术平均而得到距离平均值,将该距离平均值设为与该切片sl对应的圆柱体切片的半径r
ave

74.在步骤s34中,将步骤s33中所计算出的各个半径r
ave
与步骤s32中设定的最小半径r
min
进行比较。将半径r
ave
小于最小半径r
min
的圆柱体切片的半径r
ave
设为有效半径而用于虚拟圆柱体的半径的计算。具体而言,将半径r
ave
小于最小半径r
min
的所有圆柱体切片的有效半径r
ave
的算数平均值作为虚拟圆柱体的半径r,也就是,r=(r
ave1
+r
ave2
+r
ave3
+

r
avem
)/m(m为自然数)。图12示出了对第三实施方式的三维点云模型进行切片来计算虚拟圆柱体的半径的示意图。
75.在步骤s35中,将步骤s33中所计算出的各个半径r
ave
与步骤s32中设定的最小半径r
min
进行比较。将半径r
ave
大于最小半径r
min
的圆柱体切片的厚度设为有效厚度而用于虚拟圆柱体的高度的计算。具体而言,将半径r
ave
大于最小半径r
min
的所有圆柱体切片的厚度相加而得到的值作为虚拟圆柱体的高度h,也就是,h=h1+h2+h3+

h
n
(n为自然数),参照图10。
76.在步骤s36中,利用步骤s34中得到的虚拟圆柱体的半径r与步骤s35中得到的虚拟圆柱体的高度h来计算虚拟圆柱体的体积v
cylinder
,即、v
cylinder
=πr2*h。
77.接下来,在步骤s37中,利用步骤s31中计算出的三维形状模型的体积v
3dmodel
减去步骤s36中计算出的虚拟圆柱体的体积v
cylinder
,将得到差值作为校正后的三维形状模型的校正体积,也就是葡萄串的体积。
78.(实施例)
79.以下,通过实施例和比较例来说明本发明的技术效果。
80.实施例1
81.利用第一实施方式的测量方法对图13(a)所示的葡萄串1和图13(b)所示的葡萄串2分别进行体积测量。
82.实施例2
83.利用第二实施方式的测量方法对上述葡萄串1和葡萄串2分别进行体积测量。
84.实施例3
85.利用第三实施方式的测量方法对上述葡萄串1和葡萄串2分别进行体积测量。
86.比较例1
87.利用排水法对上述葡萄串1和葡萄串2分别进行体积测量。
88.比较例2
89.利用前文所述的多面体质量的快速准确计算(fast and accurate computation of polyhedral mass properties)法分别计算出上述葡萄串1和葡萄串2的体积。
90.测量结果示于表1,并将实施例1~3和比较例2的测量结果相对于比较例1的测量结果的比值以百分数的形式示于各测量结果之后。
91.【表1】
[0092] 葡萄串1葡萄串2比较例1330cm3210cm3比较例2469cm3(142%)258cm3(123%)实施例1391.1cm3(118.5%)181.5cm3(86.4%)实施例2374.6cm3(113.5%)172.6cm3(82.2%)实施例3405.9cm3(123%)180.4cm3(86%)
[0093]
从表1可以看出,实施例1、2、3所测量出的体积相比于比较例2,更接近比较例1的体积,也就是说,更接近于利用排水法所测量出的葡萄串的实际体积。
[0094]
因此,对于葡萄串这种多果粒重叠且中间存在空间的复杂三维物体,利用本发明的各实施方式所述的测量方法能够更准确地测量出该三维物体的体积。
[0095]
以上,以葡萄串为例对本发明的三维物体的体积的测量方法进行了说明,但是,本发明的测量方法并不限于葡萄串,只要是中间存在空间的三维物体、例如谷穗、麦穗等农作物都可以应用本发明。除此之外,也可以应用于工业领域相关类似的体积测量方面。
[0096]
另外,本发明的三维形状模型不仅适用于形状复杂的三维物体的体积测量,很显然也可以适用于形状简单的三维物体的体积测量。
[0097]
上述各实施方式能够通过程序使计算机或微处理器执行上述的各处理和步骤来实现。在这种情况下,可以使程序执行全部处理,还可使硬件执行一部分处理和步骤且使程序执行剩余的处理和步骤。另外,还可以使用存储了可执行程序的计算机可读介质将程序提供给计算机。作为计算机可读介质的例子有磁记录介质(例如软盘、磁带、硬盘)、cd-rom、u盘等。
[0098]
以上对本发明的若干实施方式进行了说明,但是,这些实施方式是作为例子给出的,并不限定发明的范围。这些实施方式可以适当组合来实施,还可以在不脱离发明的主旨的范围内进行各种省略、置换、变更。例如,也可以使用第一实施方式中求出虚拟圆柱体的高度的步骤来求取虚拟圆柱体的高度,并使用第三实施方式中求出虚拟圆柱体的半径的步骤来求取虚拟圆柱体的半径。此外,在第二、第三实施方式中,是相对于三维点云模型的中心轴垂直的方式进行切片,但是,也可以相对于三维点云模型的中心轴以一定的倾斜角度进行切片。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1