一种马尾松苗木的形态指标无损测量方法

未命名 09-12 阅读:82 评论:0


1.本发明涉及智慧林业领域,具体是一种马尾松苗木的形态指标无损测量方法。


背景技术:

2.马尾松作为我国的重要树种,具有适应能力强,综合利用程度高的特点。它不仅是荒山造林的先锋树种,还可用于建筑工程、造纸等工业,甚至可作药用。针对不同的用途选取不同等级的马尾松苗木可以充分利用马尾松的优良性能,因此研究马尾松苗木的形态指标用以构建马尾松苗木评价体系具有非常重要的理论和实践意义。
3.传统的马尾松苗木形态指标测量多依靠人工,然而如今人力成本较高,且长时间的测量会导致误差的增大,更为重要的是部分形态指标的准确测量需要依赖专门的仪器测量设备,这无疑增加了测量难度与成本。


技术实现要素:

4.本发明所要解决的技术问题是针对上述现有技术的不足提供一种马尾松苗木的形态指标无损测量方法,本马尾松苗木的形态指标无损测量方法可以准确测量出马尾松苗木的形态指标,不再依赖人工和专业仪器测量设备,减少了测量成本和测量难度。
5.为实现上述技术目的,本发明采取的技术方案为:
6.一种马尾松苗木的形态指标无损测量方法,包括以下步骤:
7.步骤1:采集多视角多角度的马尾松2d图像并对2d图像进行矫正;
8.步骤2:将采集到的2d图像重建为马尾松的3d点云并对点云作预处理;
9.步骤3:制作马尾松点云语义分割的数据集,计算马尾松点云语义分割数据集中不同类别的类平衡权重;
10.步骤4:构建特征点自适应加权模块和密集映射块,并基于pointnet++构建密集加权语义分割网络模型;将步骤3中计算的类平衡权重赋值到密集加权语义分割网络模型的损失函数中;
11.步骤5:通过马尾松点云语义分割数据集训练密集加权语义分割网络模型;采用步骤1和步骤2的方法采集待测马尾松的马尾松点云,将待测马尾松的马尾松点云输入至训练完成的密集加权语义分割网络模型中,实现马尾松点云中的茎、叶和其他的分割;
12.步骤6:根据获得的马尾松点云中茎的点,获取茎的原始骨架点,在原始骨架点的基础上精细化提取茎的骨架点,得到茎的精细化骨架点;
13.步骤7:根据茎的精细化骨架点,提取待测马尾松的形态指标值。
14.作为本发明进一步改进的技术方案,所述的步骤1具体包括:
15.1.1、搭建黑箱,围上吸光布,两侧安装光源,黑箱内放置载物旋转台,将马尾松苗木盆栽和已知长宽高的长方体参照块一同摆放在载物旋转台中央,黑箱前放置两台相机,一台相机以平视的视角拍摄马尾松苗木盆栽,另一台相机以俯视45
°
的视角拍摄马尾松苗木盆栽;
16.1.2、单片机控制载物旋转台的运动以及两台相机的拍摄,标定相机获取其内外参数,载物旋转台每次旋转5
°
,旋转完成后等待15秒,然后由单片机控制相机拍摄图像,图像被保存至计算机后再进行下一次旋转,总共旋转72次,最后根据获取的相机内外参数矫正拍摄的马尾松苗木盆栽2d图像。
17.作为本发明进一步改进的技术方案,所述的步骤2具体包括:
18.2.1、使用运动结构恢复算法将矫正后的马尾松苗木盆栽2d图像重建为3d的马尾松稀疏点云,使用基于面片的多视角立体几何算法对马尾松稀疏点云进行处理,得到马尾松稠密点云;
19.2.2、使用颜色阈值分割算法去除马尾松三维重建过程中产生的黑色噪声,使用统计异常值剔除算法去除马尾松点云中的离群点。
20.作为本发明进一步改进的技术方案,所述的步骤3具体包括:
21.3.1、将需要人工标注的马尾松点云输入到cloudcompare中,为马尾松点云中的每一个点分配标签,标签包括茎、叶和其他;
22.3.2、按照步骤1、步骤2和步骤3.1的方法获取多颗马尾松点云以及各个点的标签,将分配标签后的多颗马尾松点云作为马尾松点云语义分割数据集,将马尾松点云语义分割数据集按比例分为训练集和测试集;
23.3.3、分别计算训练集中标签为茎的点的总个数、标签为叶的点的总个数以及标签为其他的点的总个数,并计算各个标签的占比:
[0024][0025]
其中,pointi为训练集中标签为i的点的总个数;sum为训练集中所有点的总个数;i=0,1,2,0表示茎,1表示叶,2表示其他;fi表示训练集中标签为i的占比;
[0026]
3.4、对训练集中标签为茎的占比、标签为叶的占比和标签为其他的占比求平均,得到均值占比根据和fi分别计算训练集中标签为茎的类平衡权重、标签为叶的类平衡权重以及标签为其他的类平衡权重:
[0027][0028]
weighti表示标签为i的类平衡权重。
[0029]
作为本发明进一步改进的技术方案,所述的步骤4具体包括:
[0030]
4.1、搭建的特征点自适应加权模块包括自适应平均池化层、自适应最大池化层、4个1维卷积层、2个leakyrelu激活函数层和sigmoid激活函数层;
[0031]
特征点自适应加权模块的处理过程为:
[0032]
4.1.1、使用自适应平均池化层聚合输入的特征信息,通过输出通道数为3的1维卷积层,再通过leakyrelu激活函数层,随后通过输出通道数为初始输入通道数的1维卷积层,得到平均池化特征;使用自适应最大池化层聚合输入的特征信息,通过输出通道数为3的1维卷积层,再通过leakyrelu激活函数层,随后通过输出通道数为初始输入通道数的1维卷积层,得到最大池化特征;
[0033]
4.1.2、将平均池化特征与最大池化特征逐元素相加,再通过sigmoid激活函数层得到1维通道注意力;
[0034]
4.2、搭建的密集映射块包括1维卷积层、1维batchnorm层、relu激活函数层、特征
点自适应加权模块和dropout层,设置dropout层中每个神经元失活的概率为0.1;
[0035]
4.3、将步骤3.4中计算的类平衡权重赋值到密集加权语义分割网络模型的损失函数中,损失函数采用现有常用公式,在代码中该损失函数需要带有weight参数才可以调用类平衡;
[0036]
4.4、基于pointnet++构建密集加权语义分割网络模型,密集加权语义分割网络模型包括sa1-msg模块、sa2-msg模块、sa3模块、fp1++模块、fp2++模块、fp3++模块、4个密集映射块、1维卷积层和log_softmax层;
[0037]
其中,fp1++模块包括fp模块以及输入通道数和输出通道数均为256的特征点自适应加权模块;fp2++模块包括fp模块以及输入通道数和输出通道数均为128的特征点自适应加权模块;fp3++模块包括fp模块以及输入通道数和输出通道数均为128的特征点自适应加权模块。
[0038]
作为本发明进一步改进的技术方案,所述的步骤6具体包括:
[0039]
6.1、在点云分割的基础上使用拉普拉斯收缩算法提取出茎的原始骨架点,原始骨架点组成的点集o={o1,o2,...,on},其中,n为原始骨架点的个数,在使用基于欧式距离的多迭代平面法精细化提取茎的骨架点之前,要先对o进行排序,排序方式为:
[0040]
6.1.1、创建空集p,遍历点集o中的每一个元素,寻找y坐标值最小的元素;
[0041]
6.1.2、将y坐标值最小的元素记为p1,将p1追加到空集p中,并将其从点集o中删除;
[0042]
6.1.3、设置j的初值为1,即j=1;
[0043]
6.1.4、遍历更新后的点集o中的每一个元素,计算每一个元素与pj的欧式距离,寻找点集o中使得该欧式距离最小的元素,记为p
j+1
,将p
j+1
追加到p中,并将其从点集o中删除;
[0044]
6.1.5、将j的值加1,即j=j+1;
[0045]
6.1.6、循环步骤6.1.4和步骤6.1.5,直至点集o变成空集,此时即可得到排序后的点集p={p1,p2,...,pn};
[0046]
.2、使用基于欧式距离的多迭代平面法精细化提取茎的骨架点:
[0047]
6.2.1、对原始骨架点p1p2进行精细化操作,具体如下:
[0048]
6.2.1.1、从p1,p2这两点开始,执行步骤6.2.1.2;
[0049]
6.2.1.2、以连接两点的线段为法向量,分别过这两点作垂直于法向量的两个平面,以这两个平面为约束进而得到茎的点云在其中的点集s;
[0050]
6.2.1.3、以点集s的最小包围盒为约束,在x轴、y轴、z轴上以0.0001的步长遍历其中的所有元素,寻找使得distance最小的元素(x,y,z);distance的计算方式为:
[0051][0052]
其中,(x,y,z)为遍历时当前元素的坐标,(xi,yi,zi)为以点集s的最小包围盒为约束的空间内的第i个元素的坐标,m为该空间所含元素的个数;
[0053]
6.2.1.4、将该元素记为a;
[0054]
6.2.1.5、将p1与a按照步骤6.2.1.2和步骤6.2.1.3进行操作得到新的精细化骨架点a与p2按照步骤6.2.1.2和步骤6.2.1.3进行操作得到新的精细化骨架点原始骨架p1p2即被精细化为
[0055]
6.2.2、按照步骤6.2.1的方法分别遍历p2,p3、p3,p4、

以及p
n-1
,pn,进而将原始骨架点p2,p3、p3,p4、

以及p
n-1
,pn进行精细化操作。
[0056]
作为本发明进一步改进的技术方案,所述的步骤7具体包括:
[0057]
7.1、将茎的精细化骨架点底面放置在xoz平面,将马尾松的茎的精细化骨架点和叶的点投影在yoz平面,点在y轴方向的最大值减最小值即为苗高;
[0058]
7.2、根据茎的最底部的两个精细化骨架点作切片,切片中的点在x轴方向的最大值减最小值即为地径;
[0059]
7.3、使用步骤7.1得到的苗高除以步骤7.2得到的地径即为高径比;
[0060]
7.4、对步骤6得到的精细化骨架点,依次求精细化骨架点中每段的欧式距离,将所有求得的欧式距离相加即为茎长;
[0061]
7.5、使用空间曲线拟合茎弯曲处的精细化骨架点,求空间曲线在该处的曲率即可得到茎在该处的弯曲程度;
[0062]
7.6、将马尾松的茎和叶投影在xoz平面,使用graham算法得到凸包点,计算这些凸包点连成的多边形面积即可得到树冠投影面积;
[0063]
7.7、根据已知长宽高的长方体参照块和对其重建的点云,计算出校准系数其中l为长方体参照块的长度,l1为长方体参照块在计算机中重建后显示的长度,使用该系数校准步骤7.1-7.6中得到的形态指标值。
[0064]
为实现上述技术目的,本发明采取的另一个技术方案为:
[0065]
一种马尾松苗木的形态指标无损测量系统,包括:
[0066]
图像采集模块,用于采集多视角多角度的2d马尾松图像并对2d图像进行矫正;
[0067]
三维重建模块,用于将矫正后的2d图像重建为马尾松稀疏点云,再对马尾松稀疏点云进行处理,得到马尾松稠密点云;
[0068]
点云预处理模块,用于去除马尾松三维重建过程中产生的黑色噪声与马尾松点云中的离群点;
[0069]
数据集制作模块,用于为马尾松点云中的每一个点分配标签,标签包括茎、叶和其他,分配标签后的马尾松点云即可作为马尾松点云语义分割数据集,将马尾松点云语义分割数据集按照比例划分为训练集和测试集;
[0070]
点云分割模块,用于使用训练完成的密集加权语义分割网络模型分割马尾松点云,得到茎、叶和其他;
[0071]
茎的骨架提取模块,用于精细化提取点云分割中得到的茎的骨架点;
[0072]
表型信息提取模块,用于提取马尾松的形态指标值,形态指标值包括苗高、地径、高径比、茎长、茎的弯曲程度和树冠投影面积。
[0073]
本发明的有益效果为:
[0074]
(1)本发明的特征点自适应加权模块优化了pointnet++中feature propagation模块上采样的能力,通过计算fp模块输出的点特征在不同通道中的权重,将其与原特征相乘,从而改进了原特征的表达,提高了后续每个点的分类准确率。
[0075]
(2)本发明的密集映射块增强了pointnet++中fc layers的分类能力,通过逐级递减输出维度,逐级优化特征权重,进一步提高网络对每个点的分类准确率;此外针对重建的茎、叶和其他三个部分的点数悬殊较大的问题,计算了这三个部分的权重并将其赋值到损失函数中,优化了数据集中类别不平衡的情况。
[0076]
(3)本发明的基于pointnet++的密集加权语义分割网络很好地将马尾松点云分割为茎、叶和其他,由于马尾松针叶茂密,与茎紧密相连,且茎部分表面呈现绿色,因此使用传统的聚类分割和阈值分割效果不佳,基于pointnet++的密集加权语义分割网络则可以很好地完成分割任务。
[0077]
(4)本发明的基于欧式距离的多迭代平面法精细化地提取了茎的骨架点,精细化后的骨架点提高了后续地径、高径比、茎长和茎弯曲程度的测量精度,此外针对部分形态结构更为复杂的马尾松茎,还可以增加迭代次数,在两个骨架点之间多次使用该方法,从而得到可以准确反映马尾松茎生长形态的骨架点。
[0078]
(5)本发明使马尾松苗木的形态指标测量不再依赖人工和专业仪器设备,节约了测量成本,还提高了马尾松苗木的形态指标测量精度,尤其是茎长、茎弯曲程度、树冠投影面积等难以准确测量的形态指标。
附图说明
[0079]
图1为马尾松苗木的形态指标无损测量方法流程图。
[0080]
图2为特征点自适应加权模块的结构图。
[0081]
图3为基于pointnet++构建的密集加权语义分割网络的结构图。
[0082]
图4为基于欧式距离的多迭代平面法的算法流程图。
[0083]
图5为密集加权语义分割网络模型对马尾松点云做语义分割的效果图。
[0084]
图6为基于欧式距离和拉普拉斯收缩的多迭代平面法对茎做骨架精细化提取的效果图。
具体实施方式
[0085]
下面根据附图对本发明的具体实施方式作出进一步说明:
[0086]
本实施例提供一种马尾松苗木的形态指标无损测量方法,如图1所示,包括以下步骤:
[0087]
步骤1:搭建图像采集平台,采集多视角多角度的马尾松2d图像并对2d图像进行矫正。
[0088]
所述的步骤1具体包括:
[0089]
步骤1.1、搭建黑箱(0.8m
×
0.48m
×
0.48m),围上吸光布,两侧安装光源,黑箱内放置载物旋转台,将马尾松苗木盆栽和已知长宽高的长方体参照块一同摆放在载物旋转台中央,黑箱前放置两台相机,一台相机以平视的视角拍摄马尾松苗木盆栽,另一台相机以俯视45
°
的视角拍摄马尾松苗木盆栽;
[0090]
步骤1.2、单片机控制载物旋转台的运动以及两台相机的拍摄,标定相机获取其内外参数,载物旋转台每次旋转5
°
,旋转完成后等待15秒,然后由单片机控制相机拍摄图像,图像被保存至计算机后再进行下一次旋转,总共旋转72次,最后根据获取的相机内外参数矫正拍摄的马尾松苗木盆栽2d图像。
[0091]
步骤2:将采集到的2d图像重建为马尾松的3d点云并对点云作预处理。
[0092]
所述的步骤2具体包括:
[0093]
步骤2.1、使用运动结构恢复算法structure from motion(sfm)将矫正后的马尾
松苗木盆栽2d图像重建为3d的马尾松稀疏点云,使用基于面片的多视角立体几何算法patch-based multiple view stereo(pmvs)对马尾松稀疏点云进行处理,得到马尾松稠密点云;
[0094]
步骤2.2、使用颜色阈值分割算法去除马尾松三维重建过程中产生的黑色噪声,使用统计异常值剔除算法去除马尾松点云中的离群点。
[0095]
步骤3:制作马尾松点云语义分割的数据集,计算马尾松点云语义分割数据集中不同类别的类平衡权重。
[0096]
所述的步骤3具体包括:
[0097]
步骤3.1、将需要人工标注的马尾松点云输入到cloudcompare中,为马尾松点云中的每一个点分配标签,标签包括茎:0、叶:1和其他:2;
[0098]
步骤3.2、按照步骤1、步骤2和步骤3.1的方法获取多颗马尾松对应的马尾松点云以及各个点的标签,将分配标签后的多颗马尾松点云作为马尾松点云语义分割数据集,将马尾松点云语义分割数据集按8:2的比例分为训练集和测试集,以供后续对基于pointnet++的密集加权语义分割网络进行训练;
[0099]
步骤3.3、分别计算训练集中标签为茎的点的总个数、标签为叶的点的总个数以及标签为其他的点的总个数,并计算各个标签的占比:
[0100][0101]
其中,pointi为训练集中标签为i的点的总个数;sum为训练集中所有点的总个数;i=0,1,2,0表示茎,1表示叶,2表示其他;fi表示训练集中标签为i的占比;
[0102]
步骤3.4、对训练集中标签为茎的占比、标签为叶的占比和标签为其他的占比求平均,得到均值占比根据和fi分别计算训练集中标签为茎的类平衡权重、标签为叶的类平衡权重以及标签为其他的类平衡权重:
[0103][0104]
weighti表示标签为i的类平衡权重。
[0105]
步骤4:构建特征点自适应加权模块和密集映射块,并基于pointnet++构建密集加权语义分割网络模型;将步骤3中计算的类平衡权重赋值到密集加权语义分割网络模型的损失函数中。
[0106]
所述的步骤4具体包括:
[0107]
步骤4.1、如图2所示,搭建的特征点自适应加权模块包括1个自适应平均池化层、1个自适应最大池化层、4个1维卷积层、2个leakyrelu激活函数层和1个sigmoid激活函数层;
[0108]
特征点自适应加权模块的处理过程为:
[0109]
步骤4.1.1、使用自适应平均池化层聚合输入的特征信息,由1维卷积层对其作降维处理至3维,再通过leakyrelu激活函数层,随后由1维卷积层对其作升维处理至初始输入维度,得到平均池化特征;使用自适应最大池化层聚合输入的特征信息,由1维卷积层对其作降维处理至3维,再通过leakyrelu激活函数层,随后由1维卷积层对其作升维处理至初始输入维度,得到最大池化特征;
[0110]
步骤4.1.2、将平均池化特征与最大池化特征逐元素相加,再通过sigmoid激活函数层得到1维通道注意力;
[0111]
步骤4.2、搭建的密集映射块包括1个1维卷积层、1个1维batchnorm层、1个relu激活函数层、1个特征点自适应加权模块和1个dropout层,设置dropout层中每个神经元失活的概率为0.1;
[0112]
步骤4.3、将步骤3.4中计算的类平衡权重赋值到密集加权语义分割网络模型的损失函数中。损失函数采用现有常用公式,在代码中该损失函数需要带有weight参数才可以调用类平衡。将类平衡权重赋值到密集加权语义分割网络模型的损失函数中的目的是因为马尾松点云分割为茎、叶和其他三个部分后,每个部分所含的点数相差很多,比如叶和其他部分有很多点,而茎点数很少,因此通过类平衡技术赋值给茎更多的权重,可以帮助提高模型的准确率;
[0113]
步骤4.4、基于pointnet++构建密集加权语义分割网络模型:
[0114]
步骤4.4.1、修改pointnet++中的第二个feature propagation模块(fp2),mlp=[256,128]被修改为mlp=[128,128],将输入输出维度为256的特征点自适应加权模块插入到pointnet++中的第一个feature propagation模块(fp1),得到fp1++;将输入输出维度为128的特征点自适应加权模块插入到fp2和pointnet++中的第三个feature propagation模块(fp3),得到fp2++和fp3++;
[0115]
步骤4.4.2、删除fp3后fc layers中的1维卷积层、1维batchnorm层和dropout层,添加4个密集映射块,其中4个密集映射块的输入输出维度依次递减,即128

64

32

16;4个密集映射块后再添加1个1维卷积层,输入维度为16,输出维度为分类数;
[0116]
如图3所示,最终获得的密集加权语义分割网络模型包括1个sa1-msg模块、1个sa2-msg模块、1个sa3模块、1个fp1++模块、1个fp2++模块、1个fp3++模块、4个密集映射块、1个1维卷积层和1个log_softmax层。
[0117]
基于pointnet++构建的密集加权语义分割网络中的sa1-msg模块、sa2-msg模块、sa3模块、fp模块为现有技术pointnet++中的现有模块。
[0118]
其中,sa1-msg模块由sa1模块和msg模块组成,sa2-msg模块由sa2模块和msg模块组成,sa1模块、sa2模块和sa3模块都由采样层、分组层和pointnet层组成,采样层通过最远点采样算法在输入点集中均匀采样一定数量的点,分组层以每个采样点为中心点,形成半径为r的局部邻域,pointnet层由relu激活函数层、2维卷积层和2维batchnorm层组成,msg模块通过构造多个半径进行多局部区域特征提取,再将这些不同半径的局部特征拼接在一起。
[0119]
sa1模块中的pointnet层由9个relu激活函数层、9个2维卷积层和9个2维batchnorm层组成,sa2模块中的pointnet层由6个relu激活函数层、6个2维卷积层和6个2维batchnorm层组成,sa3模块中的pointnet层由3个relu激活函数层、3个2维卷积层和3个2维batchnorm层组成。
[0120]
其中,fp1++模块包括fp模块以及输入通道数和输出通道数均为256的特征点自适应加权模块;fp2++模块包括fp模块以及输入通道数和输出通道数均为128的特征点自适应加权模块;fp3++模块包括fp模块以及输入通道数和输出通道数均为128的特征点自适应加权模块。fp模块由relu激活函数层、1维卷积层和1维batchnorm层组成,fp1++模块、fp2++模块和fp3++模块按照顺序包含1个1维卷积层、1个1维batchnorm层、1个relu激活函数层、1个特征点自适应加权模块、1个1维卷积层、1个1维batchnorm层、1个relu激活函数层、1个特征
点自适应加权模块。
[0121]
在fp3++模块后添加4个密集映射块,其中4个特征点自适应加权模块的输入输出维度依次递减,即128

64

32

16;4个密集映射块后再添加1个1维卷积层,输入维度为16,输出维度为分类数。
[0122]
步骤5:通过马尾松点云语义分割数据集训练密集加权语义分割网络模型;采用步骤1和步骤2的方法采集待测马尾松的马尾松点云,将待测马尾松的马尾松点云输入至训练完成的密集加权语义分割网络模型中,实现马尾松点云中的茎、叶和其他的分割,如图5所示,图中绿色的为茎,红色的为叶,蓝色的为其他,如“盆”。
[0123]
步骤6:根据获得的马尾松点云中茎的点,获取茎的原始骨架点,在原始骨架点的基础上精细化提取茎的骨架点,得到茎的精细化骨架点。
[0124]
所述的步骤6具体包括:
[0125]
步骤6.1、在点云分割的基础上使用拉普拉斯收缩算法提取出茎的原始骨架点,原始骨架点组成的点集o={o1,o2,

,on},其中,n为原始骨架点的个数,在使用基于欧式距离的多迭代平面法精细化提取茎的骨架点之前,要先对o进行排序,如图4所示,排序方式为:
[0126]
步骤6.1.1、创建空集p,遍历点集o中的每一个元素,寻找y坐标值最小的元素;
[0127]
步骤6.1.2、将y坐标值最小的元素记为p1,将p1追加到空集p中,并将其从点集o中删除;
[0128]
步骤6.1.3、设置j的初值为1,即j=1;
[0129]
步骤6.1.4、遍历更新后的点集o中的每一个元素,计算每一个元素与pj的欧式距离,寻找点集o中使得该欧式距离最小的元素,记为p
j+1
,将p
j+1
追加到p中,并将其从点集o中删除;
[0130]
步骤6.1.5、将j的值加1,即j=j+1;
[0131]
步骤6.1.6、循环步骤6.1.4和步骤6.1.5,直至点集o变成空集,此时即可得到排序后的点集p={p1,p2,...,pn};
[0132]
步骤6.2、使用基于欧式距离的多迭代平面法精细化提取茎的骨架点。如图6所示,蓝色绿色代表切片层,红色代表精细化的骨架点,主要表示的是基于欧式距离的多迭代平面法的内容,根据原始骨架点做切片进而寻找新的精细化骨架点。
[0133]
步骤6.2.1、对原始骨架点p1p2进行精细化操作,具体如下:
[0134]
步骤6.2.1.1、从p1,p2这两点开始,执行步骤6.2.1.2;
[0135]
步骤6.2.1.2、以连接两点的线段为法向量,分别过这两点作垂直于法向量的两个平面,以这两个平面为约束进而得到茎的点云在两个平面之间的点集s;
[0136]
步骤6.2.1.3、以点集s的最小包围盒为约束,在x轴、y轴、z轴上以0.0001的步长遍历其中的所有元素,寻找使得distance最小的元素(x,y,z)。每一个点(x,y,z)都可以计算它自身与点集s中的所有点的欧式距离的总和,总共可以求出m个distance,找到其中最小的distance,其对应的(x,y,z)才是寻找的坐标,即为该点集s的中心。distance的计算方式为:
[0137][0138]
其中,(x,y,z)为遍历时当前元素的坐标,(xi,yi,zi)为以点集s的最小包围盒为约束的空间内的第i个元素的坐标,m为该空间所含元素的个数;
[0139]
步骤6.2.1.4、将该元素记为a;
[0140]
步骤6.2.1.5、将p1与a按照步骤6.2.1.2和步骤6.2.1.3进行操作得到新的精细化骨架点a与p2按照步骤6.2.1.2和步骤6.2.1.3进行操作得到新的精细化骨架点原始骨架点p1p2即被精细化为
[0141]
步骤6.2.2、按照步骤6.2.1的方法分别遍历p2,p3、p3,p4、

以及p
n-1
,pn,进而将原始骨架点p2,p3、p3,p4、

以及p
n-1
,pn分别进行精细化操作。
[0142]
步骤7:根据茎的精细化骨架点,提取待测马尾松的形态指标值。
[0143]
所述的步骤7具体包括:
[0144]
步骤7.1、将茎的精细化骨架点底面放置在xoz平面,将马尾松的茎的精细化骨架点和叶的点投影在yoz平面,点在y轴方向的最大值减最小值即为苗高;
[0145]
步骤7.2、根据茎的最底部的两个精细化骨架点作切片,切片中的点在x轴方向的最大值减最小值即为地径;
[0146]
步骤7.3、使用步骤7.1得到的苗高除以步骤7.2得到的地径即为高径比;
[0147]
步骤7.4、对步骤6得到的精细化骨架点,依次求精细化骨架点中每段的欧式距离,将所有求得的欧式距离相加即为茎长;
[0148]
步骤7.5、使用空间曲线拟合茎弯曲处的精细化骨架点,求空间曲线在该处的曲率即可得到茎在该处的弯曲程度;
[0149]
步骤7.6、将马尾松的茎和叶投影在xoz平面,使用graham算法得到凸包点,计算这些凸包点连成的多边形面积即可得到树冠投影面积;
[0150]
步骤7.7、根据已知长宽高的长方体参照块和对其重建的点云,计算出校准系数,使用该系数校准步骤7.1-7.6中得到的形态指标值。
[0151]
步骤7.1-7.6求出来的具体值并不是马尾松形态指标的真实值,因为马尾松在被重建成三维模型以后,在电脑中反映的值不具有实际单位并且数值大小和马尾松指标真实大小也存在缩放。例如,假设已知长宽高的长方体长为l厘米,它在电脑中重建后,长度显示为l1,那么当重建的马尾松苗高在电脑中显示为d时,它的真实形态指标值其实是厘米,其中为校准系数。目的是为了求出马尾松在现实中的形态指标值,最终应该选择校准后的数值。
[0152]
本实施例还提供一种马尾松苗木的形态指标无损测量系统,包括:
[0153]
图像采集模块,用于采集多视角多角度的2d马尾松图像并对2d图像进行矫正;
[0154]
三维重建模块,用于将矫正后的2d图像重建为马尾松稀疏点云,再对马尾松稀疏点云进行处理,得到马尾松稠密点云;
[0155]
点云预处理模块,用于去除马尾松三维重建过程中产生的黑色噪声与马尾松点云中的离群点;
[0156]
数据集制作模块,用于为马尾松点云中的每一个点分配标签,标签包括茎:0、叶:1和其他:2,分配标签后的马尾松点云即可作为马尾松点云语义分割数据集,将马尾松点云语义分割数据集按照8:2的比例划分为训练集和测试集;
[0157]
点云分割模块,用于使用训练完成的密集加权语义分割网络模型分割马尾松点云,得到茎、叶和其他;
[0158]
茎的骨架提取模块,用于精细化提取点云分割中得到的茎的骨架点;
[0159]
表型信息提取模块,用于提取马尾松的形态指标值,形态指标值包括苗高、地径、高径比、茎长、茎的弯曲程度和树冠投影面积。
[0160]
本发明的保护范围包括但不限于以上实施方式,本发明的保护范围以权利要求书为准,任何对本技术做出的本领域的技术人员容易想到的替换、变形、改进均落入本发明的保护范围。

技术特征:
1.一种马尾松苗木的形态指标无损测量方法,其特征在于,包括以下步骤:步骤1:采集多视角多角度的马尾松2d图像并对2d图像进行矫正;步骤2:将采集到的2d图像重建为马尾松的3d点云并对点云作预处理;步骤3:制作马尾松点云语义分割的数据集,计算马尾松点云语义分割数据集中不同类别的类平衡权重;步骤4:构建特征点自适应加权模块和密集映射块,并基于pointnet++构建密集加权语义分割网络模型;将步骤3中计算的类平衡权重赋值到密集加权语义分割网络模型的损失函数中;步骤5:通过马尾松点云语义分割数据集训练密集加权语义分割网络模型;采用步骤1和步骤2的方法采集待测马尾松的马尾松点云,将待测马尾松的马尾松点云输入至训练完成的密集加权语义分割网络模型中,实现马尾松点云中的茎、叶和其他的分割;步骤6:根据获得的马尾松点云中茎的点,获取茎的原始骨架点,在原始骨架点的基础上精细化提取茎的骨架点,得到茎的精细化骨架点;步骤7:根据茎的精细化骨架点,提取待测马尾松的形态指标值。2.根据权利要求1所述的马尾松苗木的形态指标无损测量方法,其特征在于,所述的步骤1具体包括:1.1、搭建黑箱,围上吸光布,两侧安装光源,黑箱内放置载物旋转台,将马尾松苗木盆栽和已知长宽高的长方体参照块一同摆放在载物旋转台中央,黑箱前放置两台相机,一台相机以平视的视角拍摄马尾松苗木盆栽,另一台相机以俯视45
°
的视角拍摄马尾松苗木盆栽;1.2、单片机控制载物旋转台的运动以及两台相机的拍摄,标定相机获取其内外参数,载物旋转台每次旋转5
°
,旋转完成后等待15秒,然后由单片机控制相机拍摄图像,图像被保存至计算机后再进行下一次旋转,总共旋转72次,最后根据获取的相机内外参数矫正拍摄的马尾松苗木盆栽2d图像。3.根据权利要求2所述的马尾松苗木的形态指标无损测量方法,其特征在于,所述的步骤2具体包括:2.1、使用运动结构恢复算法将矫正后的马尾松苗木盆栽2d图像重建为3d的马尾松稀疏点云,使用基于面片的多视角立体几何算法对马尾松稀疏点云进行处理,得到马尾松稠密点云;2.2、使用颜色阈值分割算法去除马尾松三维重建过程中产生的黑色噪声,使用统计异常值剔除算法去除马尾松点云中的离群点。4.根据权利要求3所述的马尾松苗木的形态指标无损测量方法,其特征在于,所述的步骤3具体包括:3.1、将需要人工标注的马尾松点云输入到cloudcompare中,为马尾松点云中的每一个点分配标签,标签包括茎、叶和其他;3.2、按照步骤1、步骤2和步骤3.1的方法获取多颗马尾松点云以及各个点的标签,将分配标签后的多颗马尾松点云作为马尾松点云语义分割数据集,将马尾松点云语义分割数据集按比例分为训练集和测试集;3.3、分别计算训练集中标签为茎的点的总个数、标签为叶的点的总个数以及标签为其
他的点的总个数,并计算各个标签的占比:其中,point
i
为训练集中标签为i的点的总个数;sum为训练集中所有点的总个数;i=0,1,2,0表示茎,1表示叶,2表示其他;f
i
表示训练集中标签为i的占比;3.4、对训练集中标签为茎的占比、标签为叶的占比和标签为其他的占比求平均,得到均值占比根据和f
i
分别计算训练集中标签为茎的类平衡权重、标签为叶的类平衡权重以及标签为其他的类平衡权重:weight
i
表示标签为i的类平衡权重。5.根据权利要求4所述的马尾松苗木的形态指标无损测量方法,其特征在于,所述的步骤4具体包括:4.1、搭建的特征点自适应加权模块包括自适应平均池化层、自适应最大池化层、4个1维卷积层、2个leakyrelu激活函数层和sigmoid激活函数层;特征点自适应加权模块的处理过程为:4.1.1、使用自适应平均池化层聚合输入的特征信息,通过输出通道数为3的1维卷积层,再通过leakyrelu激活函数层,随后通过输出通道数为初始输入通道数的1维卷积层,得到平均池化特征;使用自适应最大池化层聚合输入的特征信息,通过输出通道数为3的1维卷积层,再通过leakyrelu激活函数层,随后通过输出通道数为初始输入通道数的1维卷积层,得到最大池化特征;4.1.2、将平均池化特征与最大池化特征逐元素相加,再通过sigmoid激活函数层得到1维通道注意力;4.2、搭建的密集映射块包括1维卷积层、1维batchnorm层、relu激活函数层、特征点自适应加权模块和dropout层,设置dropout层中每个神经元失活的概率为0.1;4.3、将步骤3.4中计算的类平衡权重赋值到密集加权语义分割网络模型的损失函数中;4.4、基于pointnet++构建密集加权语义分割网络模型,密集加权语义分割网络模型包括sa1-msg模块、sa2-msg模块、sa3模块、fp1++模块、fp2++模块、fp3++模块、4个密集映射块、1维卷积层和log_softmax层;其中,fp1++模块包括fp模块以及输入通道数和输出通道数均为256的特征点自适应加权模块;fp2++模块包括fp模块以及输入通道数和输出通道数均为128的特征点自适应加权模块;fp3++模块包括fp模块以及输入通道数和输出通道数均为128的特征点自适应加权模块。6.根据权利要求1所述的马尾松苗木的形态指标无损测量方法,其特征在于,所述的步骤6具体包括:6.1、在点云分割的基础上使用拉普拉斯收缩算法提取出茎的原始骨架点,原始骨架点组成的点集o={o1,o2,...,o
n
},其中,n为原始骨架点的个数,在使用基于欧式距离的多迭代平面法精细化提取茎的骨架点之前,要先对o进行排序,排序方式为:
6.1.1、创建空集p,遍历点集o中的每一个元素,寻找y坐标值最小的元素;6.1.2、将y坐标值最小的元素记为p1,将p1追加到空集p中,并将其从点集o中删除;6.1.3、设置j的初值为1,即j=1;6.1.4、遍历更新后的点集o中的每一个元素,计算每一个元素与p
j
的欧式距离,寻找点集o中使得该欧式距离最小的元素,记为p
j+1
,将p
j+1
追加到p中,并将其从点集o中删除;6.1.5、将j的值加1,即j=j+1;6.1.6、循环步骤6.1.4和步骤6.1.5,直至点集o变成空集,此时即可得到排序后的点集p={p1,p2,...,p
n
};6.2、使用基于欧式距离的多迭代平面法精细化提取茎的骨架点:6.2.1、对原始骨架点p1p2进行精细化操作,具体如下:6.2.1.1、从p1,p2这两点开始,执行步骤6.2.1.2;6.2.1.2、以连接两点的线段为法向量,分别过这两点作垂直于法向量的两个平面,以这两个平面为约束进而得到茎的点云在其中的点集s;6.2.1.3、以点集s的最小包围盒为约束,在x轴、y轴、z轴上以0.0001的步长遍历其中的所有元素,寻找使得distance最小的元素(x,y,z);distance的计算方式为:其中,(x,y,z)为遍历时当前元素的坐标,(x
i
,y
i
,z
i
)为以点集s的最小包围盒为约束的空间内的第i个元素的坐标,m为该空间所含元素的个数;6.2.1.4、将步骤6.2.1.3寻找到的元素记为a;6.2.1.5、将p1与r这两点按照步骤6.2.1.2和步骤6.2.1.3进行操作,寻找使得distance最小的元素,该元素记为新的精细化骨架点将a与p2这两点按照步骤6.2.1.2和步骤6.2.1.3进行操作,寻找使得distance最小的元素,该元素记为新的精细化骨架点原始骨架p1p2即被精细化为6.2.2、按照步骤6.2.1的方法分别遍历p2,p3、p3,p4、

以及p
n-1
,p
n
,进而将原始骨架点p2,p3、p3,p4、

以及p
n-1
,p
n
进行精细化操作。7.根据权利要求2所述的马尾松苗木的形态指标无损测量方法,其特征在于,所述的步骤7具体包括:7.1、将茎的精细化骨架点底面放置在xoz平面,将马尾松的茎的精细化骨架点和叶的点投影在yoz平面,点在y轴方向的最大值减最小值即为苗高;7.2、根据茎的最底部的两个精细化骨架点作切片,切片中的点在x轴方向的最大值减最小值即为地径;7.3、使用步骤7.1得到的苗高除以步骤7.2得到的地径即为高径比;7.4、对步骤6得到的精细化骨架点,依次求精细化骨架点中每段的欧式距离,将所有求得的欧式距离相加即为茎长;7.5、使用空间曲线拟合茎弯曲处的精细化骨架点,求空间曲线在该处的曲率即可得到茎在该处的弯曲程度;7.6、将马尾松的茎和叶投影在xoz平面,使用graham算法得到凸包点,计算凸包点连成的多边形面积即可得到树冠投影面积;
7.7、根据已知长宽高的长方体参照块和对其重建的点云,计算出校准系数其中l为长方体参照块的长度,l1为长方体参照块在计算机中重建后显示的长度,使用该系数校准步骤7.1-7.6中得到的形态指标值。8.一种马尾松苗木的形态指标无损测量系统,其特征在于,包括:图像采集模块,用于采集多视角多角度的2d马尾松图像并对2d图像进行矫正;三维重建模块,用于将矫正后的2d图像重建为马尾松稀疏点云,再对马尾松稀疏点云进行处理,得到马尾松稠密点云;点云预处理模块,用于去除马尾松三维重建过程中产生的黑色噪声与马尾松点云中的离群点;数据集制作模块,用于为马尾松点云中的每一个点分配标签,标签包括茎、叶和其他,分配标签后的马尾松点云即可作为马尾松点云语义分割数据集,将马尾松点云语义分割数据集按照比例划分为训练集和测试集;点云分割模块,用于使用训练完成的密集加权语义分割网络模型分割马尾松点云,得到茎、叶和其他;茎的骨架提取模块,用于精细化提取点云分割中得到的茎的骨架点;表型信息提取模块,用于提取马尾松的形态指标值,形态指标值包括苗高、地径、高径比、茎长、茎的弯曲程度和树冠投影面积。

技术总结
本发明公开了一种马尾松苗木的形态指标无损测量方法,包括:采集马尾松图像并进行矫正;将采集到图像重建为3D点云并对点云作预处理;制作马尾松点云语义分割的数据集,计算数据集中不同类别的类平衡权重;构建密集加权语义分割网络模型;将类平衡权重赋值到模型的损失函数中;通过数据集训练密集加权语义分割网络模型;根据密集加权语义分割网络模型分割的马尾松点云中茎的点,获取茎的原始骨架点,并精细化提取茎的骨架点;根据茎的精细化骨架点,提取待测马尾松的形态指标值。本发明可以准确测量出马尾松苗木的形态指标,不再依赖人工和专业仪器测量设备,减少了测量成本和测量难度。难度。难度。


技术研发人员:李玉荣 计恺豪 夏海飞 刘英 倪超 高捍东 杨雨图 霍林涛 周海燕 孙奇
受保护的技术使用者:南京林业大学
技术研发日:2023.06.12
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐