(浙江农林大学 a.信息工程学院;b.浙江省林业智能监测与信息技术研究重点实验室;c.林业感知技术与智能装备国家林业与草原局重点实验室,浙江 杭州 311300)
立木图像分割用于对图像中的立木进行像素级语义分割[1],为后续的立木可视化三维重建[2]、测树因子特征提取[3-4]等任务提供更有意义、更便于计算机识别的图像信息。一些研究基于前景和背景的颜色特征和纹理的特征差异,利用K-means聚类[5-6]和超像素聚类[7-8]的方法分割植物病害图像。由于待分割立木前景与杂草、灌木等背景的特征较为接近,使用该方法分割立木时极易受背景环境的干扰,导致分割出的图像不准确。一些研究基于图论和数学形态学对图像中的立木进行了分割。鄂雪等[9]构造像素无向带权图,利用权值矩阵进行树干图像的归一化分割,但不能分割立木的整体边缘,存在欠分割的现象。冯静静等[10]提出基于影像灰度梯度图像的树冠分割方法,使用数学形态学快速分割单株树冠并提取相应信息,但存在视觉及投影分析误差、无法解决遮挡问题。杨婷婷等[11]提出了基于graph cut 算法的多株立木图像分割方法,通过构造s-t 网络图,寻找s-t 网络的最小割,将图像分割问题转化为能量函数最小化问题,并辅之以腐蚀膨胀、开闭等操作,提取立木轮廓边缘。该方法采用人工交互的方式,解决了立木形态存在多样性、树干之间存在空洞、立木之间相互遮挡等问题。
卷积神经网络是近年来兴起的一种适用于图像分析的深度学习模型[12-13],解决了需半人工操作、分割精确度不高等问题,凭借着全自动化、一次性录入、批量处理等优势受到广泛的专家学者的青睐[14-17]。陈娟等[18]改进了ResNet 残差网络,避免了因网络加深而出现的梯度消失问题,从而实现了园林害虫的图像识别。一些研究通过融合多种神经网络,提高了图像分割的准确率[19-21]。董月等[20]融合了ResNeXt101 和U-Net 卷积神经网络,采用多路分支的ResNeXt 网络,增大了广度,减小了深度,使其效果与ResNet200 相当,从而提高了训练的速度。丢弃ResNeXt101 网络的最后3 层进行特征提取,并利用U-Net 网络的设计思路进行特征还原。设计注意力生成模块和注意力融合模块,将阴影掩膜与权重图对应元素相乘,从而准确地检测出了图像中的阴影。由于自然条件下立木的生长环境复杂,树冠之间相互遮挡,立木前景与杂草背景颜色相近,不同种类立木的颜色、纹理、形态存在较大差异,卷积神经网络还缺少在立木图像分割中的广泛运用。
ResNet 网络可以加速网络收敛、有效解决梯度消失和因网络结构深而带来的网络退化问题;U-Net 网络采用特征拼接、多尺度融合的方式,更关注分割细节,结果更加精确。由于立木特征不明显、不典型,需多次运算来提升模型拟合的精确度,形成结构较深的卷积神经网络。鉴于立木复杂的特征、实现立木图像的精确分割,本研究以ResNet-34 网络作为特征提取前端,并结合U-Net网络上采样的设计思路,形成立木分割模型,较精确地分割出图像中的立木。同时,为避免预测结果可能出现过拟合等问题导致分割结果不精确,构造动态阈值,设计惩罚-奖励机制,并辅之以腐蚀膨胀、开闭操作,实现立木图像的精准分割。
在白天不同光照条件下,使用iphone 6s plus手机相机采集试验图像,包含背景立木、道路、土壤等自然环境噪声,共采集了樟树、枫树、木兰、银杏等395 幅立木图片,每幅图像的分辨率均为1 920×1 080 像素。
对图像进行批量剪裁和双线性内插处理,为了提高分割的效率,将图像尺寸统一为512×512像素并灰度化。为了提高分割的准确性,本研究采用随机旋转、镜像、按比例随机缩放方法对样本数据量进行扩充,并自动从样本中随机分配60%的图片作为训练集、20%作为验证集、20%作为测试集[19]。
ResNet-34 网络是结构为34 层的ResNet 残差卷积神经网络,由独立卷积结构、卷积残差结构、平均池化及全连接结构3 个部分组成。独立卷积结构采用尺寸为7×7、通道数为64 的卷积核对图像进行卷积处理,并采用3×3 的卷积核进行最大池化操作。卷积残差结构由4 个不同的卷积残差模块组成,每个卷积残差模块的残差分支由两次卷积、批正则化、ReLu 组成。以残差模块为单位,对每个卷积残差结构分别做3 次、4 次、6 次、3 次不等次数的残差模块操作。最后扁平化特征向量,对网络进行平均池化和全连接处理,输出分割图,从而有效避免因网络梯度消失而导致的网络退化问题[22]。
U-Net 网络前半部分为特征提取,后半部分为上采样。依据特征图维度的不同由上至下可以划分5 层。每层都采用3×3 的卷积和ReLu 修正性线性单元。特征提取部分对相邻层之间进行特征剪裁和下采样,减小特征尺寸,增加特征维度;上采样部分对相邻层之间进行特征插值和上采样,增加特征尺寸、减小特征维度。对同一层的特征提取部分和上采样部分使用特征复制拼接。最后对上采样部分最后一步操作进行一次1×1 的卷积和ReLu 处理得到分割图,更关注分割细节、提升分割的精确度[23]。
本研究的ResNet-UNet 网络使用ResNet-34 作为特征提取前端,同时利用UNet 网络的设计思路,采用上采样和特征复制拼接还原图像分辨率。操作过程如下:在特征提取部分,将得到的尺寸为512×512 立木图像输入ResNet-34 网络的特征提取模块,使用独立卷积结构和卷积残差结构、去除ResNet-34 的平均池化和全连接层。为了将ResNet 与U-Net 网络有机融合,ResNet-UNet 网络特征提取的最后一个残差模块操作的卷积通道数与ResNet-34 的最后一层的卷积通道数保持一致。仿照U-Net 模型的设计思路,利用上采样对图像进行插值,以还原图像分辨率;使用特征复制拼接操作将特征提取部分和上采样部分相同尺度的特征进行拼接融合。每次特征复制拼接后都依次进行3×3 的卷积、批正则化和ReLu 修正线性单元操作,重复两次。上采样部分的终层卷积使用Sigmoid 目标分类函数,以提高学习效率,保证分类的准确率。最后使用非局部操作引入全局信息,并使用1×1 的卷积层和上采样操作得到初步的立木分割结果[20]。模型架构如图1所示。
图1 ResNet-UNet 网络体系结构Fig.1 Network architecture of ResNet-UNet
随机梯度下降法(SGD)是在批量梯度下降法(BGD)基础上进行改进的算法,无需训练完所有的样本即可获得精确度较优的模型,利于大样本训练。但也存在着训练单个样本噪音大,收敛速度会随着训练次数的增加而减慢的问题。本研究采用Adam 一阶优化算法代替随机梯度下降法,能基于训练数据迭代地更新神经网络权重。其初始学习率设为0.001,学习率衰减因子通过计算梯度的一阶矩估计和二阶矩估计自适应得到。
在训练时,由于立木图像特征不明显,目标前景的特征面积不断变化,本研究采用dice loss非线性损失函数与二进制交叉熵损失函数(Binary cross entropy loss,bce loss)相结合的方法,代替了常用二进制交叉熵损失函数,改善数据极度不平衡问题,在关注整体图像损失度的前提下,更注重目标物损失度的变化,从而避免特征面积对分割精度的影响。
dice loss 损失函数损失率loss 的公式如下:
bce loss 损失函数损失率loss 的公式如下:
dice_bce_loss损失函数损失率loss的公式如下:
式(1)~(3)中:N为待分割图片的所有像素点个数;p为模型预测训练集的前景像素点个数;r为训练集标签中真实的前景像素点个数;n表示每次训练的次数;xn表示损失函数训练的自变量;yn表示梯度变化的因变量。
在一定范围内,训练次数越多,模型拟合效果越好,损失度越低;但超过该范围模型会出现过拟合现象,增加训练次数可能导致损失度不变或上升。由于训练次数的范围不易准确地被人为界定,预测最终结果可能会产生过分割现象。为避免分割最终结果对预测最终结果的过分依赖,本研究的后期处理方法通过对训练N次的结果设定动态阈值并给前景背景赋值,然后依据训练精度设定惩奖权重,最后利用形态学的腐蚀膨胀开闭操作平滑立木边缘[13],从而实现立木图像的二值化分割。后期处理流程如图2所示。
图2 后期处理流程Fig.2 Post-processing flow chart
受光照环境等因素的影响,使用同一模型预测不同立木图片时前景、背景颜色深浅不一,所以使用固定的阈值对立木图像做二值化会导致分割不精确。依据预测的分割图中前景为深色、背景为浅色的特性,依据前景和背景的色差,对预测的立木分割图设定动态阈值(表1)。
表1 设定动态阈值Table 1 Set dynamic threshold
其中,fmax和fmin获取方法如表2所示。
记录为前景概率最大的像素值fmax和为前景概率最小的像素值fmin。
式(4)中:threshold 为动态阈值,反映前景和背景像素值之间的差值;fmin为前景概率最小的像素值,像素值次大;fmax为前景概率最大的像素值,像素值最小;经试验a设为2 最佳。
依据动态阈值将图像分为前景和背景两类:大于阈值的像素统一为一个初始背景,将其作为惩罚值并赋值为-1;小于阈值的像素为初始前景,将其作为奖励值并赋值为1。
将训练的中间过程图像及该训练次数下模型的损失度喂入惩罚-奖励机制中,公式为:
表2 获取fmax、fmin 的伪代码Table 2 Obtaining fmax and fmin pseudocode
式(5)中:y*为更新后的像素估计赋值;loss 为训练的损失度(介于0 到1 之间);v为对应像素的惩罚值或奖励值(取值-1 或1);y为更新前的像素估计赋值,通过迭代得到,上一步的y*即下一步的初始像素估计赋值y。
由于模型的精确度与其损失度呈负相关,以训练损失度的倒数作为惩罚或奖励的权重,该权重则与模型的精确度呈正相关。权重较高的惩罚奖励值对惩罚-奖励机制的贡献较大,但多个权重较小的惩罚奖励值对该机制也产生一定的影响。依据对应像素的惩罚值或奖励值,将惩罚或奖励值与损失度权重对应相乘并相加,迭代y得到更新后的像素估计赋值y*。将y*与0 作比较,大于0 的像素代表前景;小于0 的像素代表背景,并对立木图像做二值化分割。最后使用腐蚀膨胀、开闭运算填充二值立木分割图的孤立团块并平滑目标立木的分割边界[11],得到最终的二值化立木分割图。
为验证本研究方法的分割性能,硬件配置为:Intel Xeon E-2134 @ 3.50GHz,8GB RAM 配置计算机。软件环境:在Windows 10 操作系统下,结合Anaconda 的Spyder 集成开发环境,使用Python3.5 语言编写,采用Tensorflow 的Keras 接口作为框架,并集成Opencv3、PIL 模块。
对立木图像(图3a)的人工分割标准结果如图3b 所示。本研究使用ResNet-UNet 方法,记录采用60%样本训练集、20%验证集、20%测试集下训练不同次数时得到的分割图(图3c)。将其(图3c)喂入惩罚-奖励机制,并利用腐蚀膨胀、开闭运算去除分割二值立木图像的孔洞和噪声,得到立木分割结果(图3d)。由图3可看出,最终分割结果(图3d)与人工分割结果(图3b)较为接近。
图3 立木分割过程Fig.3 The process of tree segmentation
为了验证方法的有效性,本研究采用对比试验的方法。在不同的光照条件下,对不同树种分别采用graph cut 图像分割算法[11]和传统的ResNet-UNet 卷积神经网络方法[21]分割立木图像,与改进的ResNet-UNet 卷积神经网络立木分割效果形成对比(图4)。结果发现,使用graph cut 算法(图4b)分割出的目标立木形态不准确,使用ResNet-UNet 模型预测的立木分割图(图4c)与人工分割的真实图像(图4e)相差较大,使用改进的ResNet-UNet 模型分割的立木图像(图4d)与真实立木分割图(图4e)接近。
为了客观评判分割效果,本研究采用统计像素的准确率(Pixel accuracy,PA)以及比较试验分割图与人工分割图的前景形状余弦相似度(Shape similarity,SS)两个指标共同评价。
像素的准确率PA 与漏检像素和错检像素的概率有关,分别以假阴率RFN和假阳率RFP表示,RFN和RFP越小表示分割精确度越高。RFN和RFP依据试验分割图像的前景像素集合和人工分割图像的前景像素集合,通过集合差上两者的交集计算而得,公式如下:
试验分割结果与人工分割结果的形状余弦相似反映二者在形状上的接近程度。余弦值越接近于1 表明夹角越接近于0,形状相似度越高。使用误检率Af衡量分割结果的形状差异,Af值越小表示分割的精确度越高。
式(8)中:H为垂直分辨率;W为水平分辨率;G为人工分割图像的前景像素;F为试验分割图像的前景像素;P为人工分割图和试验分割图中的任意像素。
图4 立木图像分割结果试验对比Fig.4 Comparison of tree image segmentation results
分别选取不同光照条件下的立木图像,由表3可以看出:本研究的误分率Af、假阴率RFN、假阳率RFP均值分别为3.87%、4.50%、3.13%,均低于graph cut 算法指标(20.03%、29.55%、28.72%)。其中误分率低于传统的ResNet-UNet网络的分割指标的误分率(7.33%)。结果表明,基于改进后的ResNet-UNet 分割模型在不同复杂的光照条件下,具有较好的性能指标。
表3 不同分割方法评价指标统计†Table 3 valuation index statistics of different segmentation methods %
针对现有图像分割方法分割立木图像存在的问题,提出了一种基于改进ResNet-UNet 的立木图像分割方法。采用改进的ResNet-UNet 网络模型训练立木图像数据集。以ResNet-34 作为特征提取前端,通过使用不等次数的残差模块操作,实现立木图像的特征提取;以U-Net 网络作为编码解码框架,通过上采样部分还原图像分辨率。利用Adam 一阶优化算法方法和dice bce loss 损失函数训练网络模型,提高了网络训练的准确度。结合使用后期处理方法,设定动态阈值,利用惩罚奖励机制,并辅以形态学图像处理方法,实现立木图像分割。
试验结果表明:较现有的graph cut 立木图像分割方法[11],本研究方法的准确率提高20 个百分点;较传统的ResNet-UNet 图像分割方法[21]相比,本研究方法的准确率提高3 个百分点。因此,本研究方法有效提高了立木分割的精确度。同时相较于传统的图像分割方法,本研究方法自动化程度高,减少了人工干预,简化了操作流程,适用于立木图像的批量分割[11]。
然而,本研究方法仍存在一定的局限性。由于目前的方法是在适当光照条件下进行,在光照条件过暗或者过亮情况下,采用该方法分割的立木图像误差较大。拟结合注意力生成机制聚焦立木图像前景,避免由于图像像素分辨率低导致分割图像内容不清晰[20],降低立木图像质量对立木分割准确率的影响。在今后的研究中将进一步讨论在复杂光照条件下立木图像分割的问题。