基于图像分析的堆肥腐熟度判别研究*

2023-06-04 06:24丁雯丽裴晓芳司广字
计算机与数字工程 2023年2期
关键词:注意力原料卷积

丁雯丽 裴晓芳,2,3 司广字

(1.南京信息工程大学电子与信息工程学院 南京 210044)(2.无锡学院电子信息工程学院 无锡 214105)(3.南京信息工程大学江苏省大气环境与装备技术协同创新中心 南京 210044)

1 引言

近年来,农业废弃物资源化和能源化[1]越来越受到大众的重视,将其进行堆肥化处理,不仅能够减少环境污染,还能实现农业可持续发展[2~3]。判断堆肥产品是否安全可用和达到稳定的依据是腐熟度[4],腐熟的有机肥能够改良土壤,提高农产品的品质和质量,而使用未腐熟的有机肥,影响农作物生长,散发出来的刺激气味还会给环境带来污染。因此,判别堆肥是否腐熟是生产过程中至关重要的环节。

目前堆肥腐熟度一般是通过堆肥过程中产生的温度、气味、颜色等物理变化[5],或者根据PH 值、碳氮比、含水率等生物化学指标来判定。随着大数据和深度学习的迅猛发展,其应用于农业领域的研究也越来越多。不少研究者也尝试通过分析堆肥图像来判定堆肥腐熟度。Kujawa 等[6]基于UV-A光下获得的堆肥材料样本图像中包含的信息,开发了用于确定堆肥污水污泥和菜籽秸秆早期成熟期的分类神经模型,所建立的神经模型的分类误差在1.83%~4.27%之间。薛卫等[7]基于卷积神经网络堆肥腐熟度预测,对获取的堆肥图像进行卷积操作,构建堆肥腐熟度识别率和堆肥表面特征之间的关联模型。

相较于传统腐熟判别方法,基于深度学习的堆肥腐熟度的判别能够很好地平衡堆肥腐熟识别模型识别精度和复杂度。目前现有研究存在多光源对堆肥腐熟进行干预、堆肥原料种类单一、抗噪能力不足等问题,针对不同原料的堆肥在不同时期不同环境下具有不同的表征,本文基于改进CoAtNet(Convolution+Attention)模型构建多类堆肥腐熟图像识别模型,对堆肥腐熟度进行判别。

2 材料与方法

本文试验数据来源于南京农业大学薛卫等拍摄整理的各地区、各季节、白天夜晚、不同原料的堆肥图像,采用厂棚内槽式堆肥方式,定期翻堆进行通风供氧。图像采集设备为海康威视摄像头,型号为C3W,清晰度1080p,距离堆肥体表面约1m 进行拍摄,将拍摄到的图像不重叠切割分辨率为300 像素×300 像素,图像样本共计22459 张,其中以畜禽粪便为原料的堆肥图像共计6379 张,未腐熟4699张,腐熟1680 张,以尾菜为原料的堆肥图像共计8320 张,未腐熟6720 张,腐熟1600 张,以秸秆为原料的堆肥图像共计7760 张,未腐熟6560 张,腐熟1200 张,并按照畜禽粪便∶尾菜∶秸秆=1∶1∶1 的比例构成新的一组数据集共计9404 张,未腐熟7428张,腐熟1976张,三种原料堆肥图像如图1所示。

图1 三种原料堆肥图像

3 堆肥图像识别模型

3.1 CoAtNet算法简介

CoAtNet 是一个Convolution + Attention 的组合模型,卷积网络的泛化性更强,收敛速度更快,而注意力层则拥有更强的模型能力,以适当的方式堆叠卷积层和注意力层,可以取得更好的泛化性和模型能力[8~9],CoAtNet 利用卷积神经网络(CNN)和Transformer 的超强能力,基于MBConv[10]块和相对自注意力将平移同变性(translation equivariance)、输入自适应加权(input-adaptive weighting)和全局感受野(global receptive field)融合在一起,构建了一个新架构[11]。

3.2 CoAtNet算法实现

CoAtNet算法分两步实现:

1)将卷积和自注意结合在一个基本计算块中;

2)以有原则的方式垂直堆叠不同类型的计算块,形成一个完整的网络。

3.2.1 合并卷积层和自注意力层

在卷积层上,主要采用MBConv 卷积块,由于Transformer 和MBConv 中的FFN(Feed-Forward Networks)模块都采用了“反向瓶颈”[12]的设计,所以采用深度卷积来捕获空间交互,其依赖于一个固定的内核来从局部感受野收集信息:

式中xi、yi∈RD分别是位置i 的输入和输出,L(i)表示i 的局部邻域。

在自注意力层上,允许感受野成为整个空间位置[13],并基于对(xi,xj)之间的重归一化成对相似性来计算:

式中G表示全局空间空间。

理想的结合卷积层和自注意力层模型应该在Softmax 归一化之后或者之前,将全局静态卷积核与自适应注意矩阵相加。

先求和,再Softmax:

或者先Softmax,再求和:

3.2.2 纵向布局堆叠

通过合并卷积层和自注意力层的优点之后,接下来就是通过堆叠搭建一个完整的网络。要构建一个实际操作可行的模型,需要在特征图达到可管理水平之后,进行一些下采样以减小空间大小,再使用全局相对注意。根据泛化能力、模型容量以及迁移性能,选择C-C-T-T(其中C 和T 分别表示卷积和Transformer)的堆叠方式,网络结构图如图2所示。

图2 CoAtNet网络结构图

3.3 Fused-MBConv模块

CoAtNet 在卷积类型上选择了MBConv,MBConv有两个特点:

1)采用了深度卷积(depthwise convlution),相比于传统卷积,depthwise convlution 的参数大大减少;

2)采用了“倒瓶颈”的结构,特征经历了升维和降维两个步骤,提高模型的学习能力。

虽然depthwise convlution结构相比普通卷积拥有更少的参数和计算量,但往往无法充分利用现有加速器,为在网络浅层中提升训练速度,提出将浅层MBConv 结构替换成Fused-MBConv 结构,即将原来的MBConv 结构主分支中的conv1×1 和depthwise conv3×3 替换成一个普通的conv3×3,如图3 所示。

图3 MBConv和Fused-MBConv结构图

基于CoAtNet 模型,将网络浅层即S0-S1 替换成Fused-MBConv 结构,经实验可明显提高训练速度,但如果将S0-S2 都替换成Fused-MBConv 结构,会明显增加参数量以及训练速度也会降低,所以本文采用MBConv和Fused-MBConv的组合方式。

3.4 注意力机制

由于本文采用的是厂棚内槽式堆肥图像,会伴随着各种环境因素的干扰,例如各种噪声的干扰,对模型识别产生一定的影响,为抑制噪声,减少干扰因素的权重,增强有用信息[14],在S2 的MBConv结构中,将ECA模块替换当前的SE模块,该模块是一种高效通道注意模块,只涉及少量参数[15],复杂度小,能够带来明显的性能增益。为避免维度缩减,其通过一维卷积有效的实现了一种无降维的局部交叉信道交互策略,有效地克服了性能和复杂性之间的矛盾。图4为ECA模块。

图4 ECA模块

输入原始图像特征,使用全局平均池(GAP)的聚合特性[16],获得图像未降维的所有特征,再通过执行尺寸为k 的快速一维卷积来生成通道权值,其中k 是通过通道维度C 的函数自适应地确定,因此存在某种映射φ(k)和C:

映射φ通常是未知的,k与C成非线性比例,采用一个指数函数近似映射φ:

由于通道维度C 通常设置为2 的整数次幂,将2(γ*k-b)代替exp(γ*k-b):

一种精密整流电路在电涡流位移传感器检测中的应用………………………………李双喜,郑凤菊,娄树勇,等(39)

给定通道维度C,自适应确定内核大小k:

其中k表示卷积核大小,C表示通道数,令,|t|odd表示距t 最近的奇数,γ和b用于改变通道数C 和卷积核大小和之间的比例,γ和b设置为2和1。

4 实验结果与分析

4.1 模型性能分析

本实验模型是在Windows10 操作系统下、pycharm开发平台构建的,采用Pytorch 深度学习框架,CUDA 计算架构。

将三种不同原料和按比例混合的堆肥图像按照6∶2∶2 的比例分为训练集、验证集和测试集,测试集用来计算模型的混淆矩阵,作为模型效果的评价指标。表1给出每种原料的图像数量。

表1 堆肥图像数据集统计

在实验过程中,考虑到模型的训练效果和实验条件,设置初始学习率为0.001,batch-size 设置8,epoch 设置为300,损失函数采用交叉熵函数,选择Adam 梯度下降优化算法,权重衰减为1e-4,将图像送入到网络模型前进行归一化处理。

堆肥未腐熟和腐熟的原料在物理形态上会有很大的差异,在堆肥过程中,堆肥的颜色和纹理均发生变化,未腐熟的堆肥原料形态明显,纹理粗糙杂乱,颗粒度大,腐熟的堆肥原料纹理由粗糙变得细致规整,颗粒度小,成品中没有其他杂质。通过深度学习,提取多层次多尺度堆肥图像特征,不断学习调整网络模型参数,感知不同时期堆肥图像中颜色、纹理、颗粒度等变化,实现堆肥图像腐熟度的识别。

实验设置训练总迭代次数为300,得到各个模型在所构建堆肥图像数据集上的准确率变化曲线,实线代表CoAtNet 模型准确率,虚线代表Fused-CoAtNet模型准确率,如图5所示。

图5 不同原料堆肥图像准确率变化曲线

表2 不同注意力机制识别结果准确率/%

4.2 模型评价

选取未训练的测试集,使用已经训练好的Fused-CoAtNet 模型进行识别,得到堆肥图像识别的混淆矩阵如图6所示。

图6 堆肥图像识别混淆矩阵

通过混淆矩阵可以看出,以畜禽粪便为原料的堆肥图像识别完全正确,以尾菜、秸秆以及混合仅有少量识别错误,平均识别准确率达到99.61%。通过与RestNet50、EffcientNetV2 和CoAtNet 模型相比,Fused-CoAtNet 模型准确率提高了0.31、0.58、0.17 个百分点,且在精确率、召回率、F1 分数指标中,均高于其余三种模型,如表3 所示。Fused-CoAtNet 模型参数量是17.49M,相对于四种模型中参数量最高的RestNet50,减少了8.07M,在推理时间上,也远低于其他三种模型。综合模型的准确率、参数量以及推理时间,Fused-CoAtNet 模型堆肥腐熟度判别优于其他模型。

表3 各模型性能指标对比结果

5 结语

针对传统堆肥判别腐熟度工作复杂、测定时间较长等问题,本文提出的基于改进CoAtNet 的堆肥腐熟分类识别模型,能够直接、快速地判别腐熟度,为工厂化堆肥提供指导。

1)建立可以精确识别不同原料的堆肥腐熟度的模型,针对堆肥图像的颜色、纹理、轮廓等及环境干扰因素问题,提出在实现CoAtNet 网络模型后,再利用MBConv 和Fused-MBConv 的组合方式对不同原料堆肥图像的特征进行提取,引入ECA 模块,获得性能增益,更加关注堆肥图像的有用特征,使Fused-CoAtNet 模型更好地适应堆肥腐熟度的识别。

2)在实现的CoAtNet 网络模型对堆肥图像腐熟度具有较好的识别效果,而改进后的Fused-CoAtNet模型对畜禽粪便、尾菜、秸秆以及混合原料数据集的识别平均准确率达到了99.61%,相对于CoAtNet 提高了0.17 个百分点,而且参数量减少了0.3M。该模型在堆肥腐熟度识别上具有优异的表现,既能保持较高的识别率,又能减少参数量,在模型精度和复杂度之间取得了较好的平衡。

3)通过与RestNet50、EffcientNetV2 和CoAtNet模型相比,Fused-CoAtNet 模型平均准确率分别提高0.31、0.58、0.17个百分点,参数量较少的同时,推理时间也较快。

猜你喜欢
注意力原料卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
水磨石生产原料的制备(三)
水磨石生产原料的制备(二)
从滤波器理解卷积
严把原料采购关,才是对养殖负责
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
以铁泥为原料合成Fe2O3 并制备LiFePO4/C