本文节选自:
朱海鹏, 张玉安, 李欢欢, 王建文, 杨英魁, 宋仁德. 基于改进残差网络模型的不同部位牦牛肉分类识别方法[J]. 智慧农业(中英文), 2023, 5(2): 115-125. doi:10.12133/j.smartag.SA202303011
ZHU Haipeng, ZHANG Yu'an, LI Huanhuan, WANG Jianwen, YANG Yingkui, SONG Rende. Classification and Recognition Method for Yak Meat Parts Based on Improved Residual Network Model[J]. Smart Agriculture, 2023, 5(2): 115-125. doi:10.12133/j.smartag.SA202303011
官网全文在线阅读
知网阅读
1
引 言
牦牛肉素有“牛肉之冠”的美称,是市场上稀少的高级肉类,不同部位牦牛肉蛋白质、脂肪酸等营养成分含量差异显著。2022年,中国屠宰牦牛约380万头,胴体产量约48.6万吨,牦牛肉产值约467亿元。牦牛肉贸易市场较大,但依赖人工进行牦牛肉部位分类成本高、效率低。目前,西藏当雄县、甘肃甘南州等地都已经在推动牦牛屠宰机械化,其中甘南州玛曲县建设了全封闭屠宰加工流水线,中国牦牛屠宰已经越来越机械化、规模化。2023年,着力推进牛肉及其产品分区、分型、分类将是加工业和技术研发的主要方向。因此,探寻一种准确、快速的牦牛肉部位识别方法不仅能提高牦牛肉产业的质量和安全水平,提高牦牛肉贸易效率,降低成本,还能为牦牛肉产业向智能化方向发展提供技术支撑。
目前,应用于牛肉、猪肉、羊肉等肉类检测的主要技术有激光诱导击穿光谱(Laser-Induced Breakdown Spectroscopy,LIBS)技术、多光谱技术、红外/近红外技术等。这些检测技术能够达到较高的准确率,但是由于其实验成本昂贵、实验条件苛刻等特点难以将其推广使用,大多运用于实验室研究。图像识别具有成本低、可移植性高、操作便利等特点,得到了广大研究者的关注。但是,将图像识别应用于不同部位牦牛肉的鉴别方法以及相关研究相对较少。
深度学习作为机器学习中的热门领域,具有学习能力强、可迁移性高、并行化处理等特点,近年来发展飞速,各种网络层出不穷,网络深度越来越深,网络参数越来越大,网络结构越来越复杂。目前深度学习方法在农业领域已经广泛地应用于农作物病毒虫害检测、生物量识别、动植物表型监测等研究领域。随着智能手机领域技术的飞速发展,基于移动端的牛羊肉制品检测研究逐渐增多。运用手机进行图像采集并检测具有成本低、操作便利、适用范围更大等特点。但是对模型有复杂度低、参数量小的要求。
为避免牦牛肉生产和销售过程中出现不同部位混淆、以次充好等情况,开展牦牛肉部位识别研究,有助于提高牦牛肉行业的透明度和可追溯性,保障食品安全。本研究首先通过将卷积块注意力模块(Convolutional Block Attention Module,CBAM)融入残差网络模型,以提高模型的准确性和性能,然后通过采取不同的优化结构、不同的学习率、权重衰减系数和优化器比较其对网络效率的影响。将改进后的残差网络模型部署到移动端。通过开发分类识别手机App,利用智能手机采集牦牛肉样品图像并实现牦牛里脊、牦牛上脑、牦牛腱子、牦牛胸肉的实时识别,具有高便捷性以及普及性。
2
材料与方法
2.1 数据获取
实验所需的牦牛肉实验材料全部来自于青海省西宁市牛羊肉批发市场,于2023年1月开始每天到牦牛肉摊位拍摄由工人师傅分割的牦牛里脊、牦牛上脑、牦牛腱子、牦牛胸肉样本,共拍摄14天,包括晴天、阴天、雨天等不同天气。拍摄设备为手机,成像距离为30~80 cm,图像分辨率像素为3024 × 4032,图像格式为*.jpg。共采集原始图像2000张,考虑到本研究模型的实际使用环境,选择在顺光、逆光、不同背景,以及每天中的不同时间进行图像采集如图1所示。为降低相似图片对网络模型训练的影响,使用人工方式对所采集到的原始图像进行筛选,筛选后得到牦牛肉部位原始图像1960张。
图1 使用手机端采集的不同部位牦牛肉图像
Fig. 1 Yak meat images from different parts collected using mobile phones
2.2 数据预处理
在本研究中,考虑到自建的牦牛肉样本数据集数量较少,为提高网络的泛化能力与分类识别性能,采用数据增强的方式扩充原数据集。扩充方式为对原图像进行水平翻转、垂直翻转、对比度调整、饱和度调整、灰度调整、随机方向旋转30°、随机方向旋转120°、随机方向旋转300°等,如图2所示。通过8种方式对原数据集扩充后的图像数量为原来的9倍,包括17,640张图像。按照4∶1的标准划分训练集与测试集,得到训练集牦牛肉样本图像14,112张以及测试集牦牛肉样本图像3528张。
图2 数据扩充后的牦牛肉图片示例
Fig. 2 Example of yak meat images after data augmentation
2.3 算法设计
2.3.1 残差网络
在深度学习中为了解决随着网络层数不断加深,训练集loss非但不随着降低,反而随着升高而出现网络退化现象。He等提出了残差网络结构。残差网络由一系列的残差块组成,残差块由普通卷积层以及残差映射组成。由于在残差结构中引入了直接映射,从而保证了第t+1层的参数一定多于第t层,避免了网络结构在特征提取的过程中出现信息丢失的现象。本研究选取ResNet18和ResNet34作为网络原型,其网络结构如表1所示。
表1 ResNet18和ResNet34网络模型结构
Table 1 Network model structure of ResNet18 and ResNet34
2.3.2 注意力机制
在本研究牦牛里脊、牦牛上脑、牦牛腱子、牦牛胸肉的分类问题中,主要是根据不同的脂肪、筋、膜来进行区别,牦牛里脊、牦牛上脑、牦牛腱子、牦牛胸肉在瘦肉部分的区别微乎其微,这就需要网络模型提取脂肪、筋、膜等有用的信息从而来提高网络模型的精度。针对此问题,本研究提出在ResNet18中融入注意力机制。
CBAM由通道注意力机制(Channel Attention Module,CAM)与空间注意力机制(Spatial Attention Module,SAM)组成,如图3所示。首先,对输入大小为W×H×C(W为图像的宽,H为图像的高,C为图像的通道数)的牦牛肉特征图进行通道注意力机制模块处理生成通道注意力特征图,之后将原输入特征图与通道注意力特征图相乘后生成新的特征图;再将新特征图进行空间注意力机制模块处理生成空间注意力特征图,新特征图与空间注意力特征图相乘,得到最后的输出特征图。通道注意力机制如图4所示,空间注意力机制如图5所示。
图3 CBAM模型结构图
Fig. 3 Model structure of convolutional block attention module
图4 通道注意力机制结构
注:Ft为传统的普通卷积结构;X为Ft的输入;O为Ft的输出;W、H、C分别为图像的宽、高、通道数;a为经过Channel Attention压缩之后的特征图;Fs为将所得权重与原特征图相乘;X'为经过Fs的最终输出;W'、H'、C'分别为普通卷积结构之前原始输入图像的宽、高、通道数。下同
Fig. 4 Structure of channel attention mechanism
图5 空间注意力机制结构
注:b为经过Spatial Attention压缩之后的特征图
Fig. 5 Structure of spatial attention mechanism
2.3.3 改进ResNet18的牦牛肉部位识别模型
首先将ResNet18、ResNet34原始模型在本研究中的数据集上进行训练,其结果如图6所示。
图6 ResNet18与ResNet34模型在测试集的准确率变化曲线
Fig. 6 The accuracy variation curves of the ResNet18 and ResNet34 models in the test set
由图6可知,本研究中的牦牛肉部位识别图像测试集在ResNet18上的准确率高于ResNet34且ResNet18的准确率变化曲线也比ResNet34稳定,所以本研究选取ResNet18模型作为主干网络进行改进。
此外,本研究将CBAM模块加入ResNet18网络中与单独将空间以及通道注意力机制加入网络中进行对比,其热力图如图7所示,由此可知,将CBAM模块加入ResNet18中对本研究有效。
图7 不同注意力机制在牦牛肉数据集上的热力图
Fig. 7 Heat maps of different attention mechanisms on the dataset of yak meat
改进后的ResNet18_CBAM网络模型结构如图8所示。本研究提出改进的ResNet18网络主要有两个改进之处。第一,在原来ResNet18网络模型的每个残差块之后都加上了CBAM模块,在网络模型中引入这一机制可以以较小的计算开销和参数量取得较大的精度提升。第二,将原模型在所有残差块之后直接加上全连接层改成了先进行全局平均池化与全局最大池化后再加上全连接层,可以提高网络模型的准确率,防止出现过拟合现象,以及减少后续网络层的连接数,加快网络模型的执行速度,减少手机端识别图像时的运算时间。
注:图中的输入为一张牦牛肉部位图片,其大小为一个224×224×3的三通道图像;Residual_CBAM表示在每一个残差块后面加入CBAM模块后形成的新的模块;BN-ReLU表示在特征图经过批量归一化之后采用ReLU激活函数进行激活;“⊗”表示两个特征图相乘;“⊕”表示两个特征图相加
图8 ResNet18_CBAM网络模型的结构示意图
Fig. 8 The structural diagram of the ResNet18_CBAM network model
2.3.4 评测指标
在本研究中采用准确率(Accuracy,%)来作为不同部位牦牛肉识别模型的评价指标,通过混淆矩阵来分析四种不同部位的牦牛肉的分类情况。准确率为分类正确的样本数与实验中样本总数的比值,其计算如公式(1)所示。
Accuracy= TP+TNTP+TN+FP+FN×100% (1)
其中,TP、FP、FN、TN分别为混淆矩阵中分类模型对不同部位牦牛肉的分类情况统计。TP为预测为真实际为真的样本个数,个;FP为预测为真实际为假的样本个数,个;FN为预测为假实际为真的样本个数,个;TN为预测为假实际为假的样本个数,个。
2.4 软件实现
为在移动端实现不同部位牦牛肉快速、准确识别,采用PyTorch深度学习框架中的PyTorch Mobile模块将训练好的ResNet18_CBAM网络模型转换成TorchScript模型,并保存为*.ptl格式。然后使用Android Studio开发环境开发牦牛肉部位识别App,包括前端界面和后端处理两部分。App前端采用*.xml进行各种按钮、文本框的布局,后端采用Java语言开发。最后,调用*.ptl格式的TorchScript模型实现牦牛肉的部位识别功能。其识别界面如图9所示。
图9 基于ResNet18_CBAM网络模型开发的App对牦牛肉部位识别展示图
Fig. 9 Display diagram for identifying yak meat parts based on the developed ResNet18_CBAM network model
推荐阅读
智慧农业微信交流服务群
发布征集
欢迎在我公众号发布科研团队介绍、创新科研成果及相关活动等信息。