改进DeepLabv3+和XGBoost的羊骨架切割方法
2021-09-26李振强王树才赵世达
李振强,王树才,赵世达,白 宇
华中农业大学 工学院,武汉430070
羊骨架切割是羊屠宰加工中的重要环节。目前国外基本实现羊肉的自动切割加工,Grégory等[1]以骨头走向作为参考,搭建具有力传感器的机器人单元,实现机器人可避让式自动剔骨;Moreno[2]指出工业机器人并不能完全满足食品加工业的特殊需求,提出适用于食品加工行业的低成本机械臂设计指南。由于饮食习惯和切割方式的不同,国外的自动化屠宰设备并不适合国内现状。目前国内羊屠宰加工领域的研究多为综述性研究,尚无羊骨架自动分割技术方面的研究。方梦琳等[3]通过对羊肉加工现状的分析提出羊肉屠宰加工行业需要引入现代化加工技术以适应行业发展需求。张进[4]和李月娥[5]等对羊肉加工过程中的羊肉脱膻、嫩化和保藏等技术进展做出总结。
国内屠宰企业主要依靠人工借助半自动化机械完成,存在效率低、劳动强度大、噪音大等问题[6-7]。因此实现羊骨架自动切割对提升羊屠宰加工效率和食品安全具
有重要意义。随着计算机技术的发展,机器学习、目标检测[8-13]、语义分割[14-17]等技术日益成熟,并在产品检测加工领域得到广泛应用[18]。钟思华等[19]通过引入密集连接层和改进混合损失函数等方式对U-NET结构进行调整优化,实现了CT图像中肺结节的准确分割。赵霞等[20]采用多尺度自适应形态特征提取模块和可变形卷积等方法搭建DeepLab-MAFE-DSC网络,提升了物体部件分割网络的分割精度和泛化能力。杨波等[21]通过嵌入注意力机制模块和增加底层特征来源的方式对DeepLabv3+网络结构进行调整,改进了网络在手术器械分割上的表现。王慧芳等[22]针对电力系统电压稳定评估问题,以电力系统运行状态为特征集,以电压稳定裕度绝对值为标签,通过XGBoost算法实现了电压稳定裕度预测。这种基于机器学习和深度卷积神经网络的检测加工方法,不仅能提升检测加工效率还能有效控制二次污染。目前在羊骨架切割领域尚无相关研究,因此采用深度学习和机器学习方法对羊骨架切割进行研究具有理论和现实意义。为实现羊骨架自动切割,本研究以去腿后的羊骨架为研究对象,调整优化DeepLabv3+网络结构,对羊骨架特征部位进行分割;根据分割结果提取5个特征部位的35组形位特征,采用XGBoost框架建立切割位置预测模型,搭建机器人平台对羊骨架进行切割试验。
1 材料与方法
1.1 图像采集和数据增广
1.1.1 图像采集
本研究所采用的图像数据拍摄于美洋洋食品有限公司,采用CCD相机进行数据采集,分辨率为1 200像素×960像素,光照条件为工厂白光照明。为了保证样本的多样性,图像采集工作分2次进行,每次持续时间为3天,采集过程中从不同角度进行拍摄。分别对羊骨架的侧面和胸腔部位进行采集,如图1所示,各采集2 000张。
图1 羊骨架原始图像Fig.1 Original images of sheep skeleton
1.1.2 分割方案
根据NY/T 1564-2007分割标准羊骨架切割为腰椎骨、胸椎骨、肋排、腹肋肉、锁骨和颈部等6种产品,如图2所示。
图2 羊骨架切割标准Fig.2 Cutting standards of sheep skeleton
分别将切割点坐标进行标记作为机器学习的标签,如图3所示,图中红色圆点的圆心为切割位置。
图3 羊骨架切割位置标记Fig.3 Marking point location of image
1.1.3 图像标注和数据增广
采用Labelme图像标记工具对羊骨架图像特征部位进行标注,特征部位如图4(a)和(b)所示。按照6∶2∶2的比例将数据划分为训练集、验证集和测试集。为了增加数据多样性采用Pytorch中torch.transforms.compose()方法对训练集进行数据增强操作。基于随机剪裁、旋转随机角度、缩放、错切和翻转等5种方法对图像进行仿射变换,以增加数据在形态和尺寸方面的多样性;基于亮度、饱和度、对比度和色相等4种属性对图像进行色彩抖动,以减弱光照条件对数据的影响。增广后的部分图像如图4(c)、(d)、(e)和(f)所示,训练集的样本容量扩充为12 000张。
图4 羊骨架图像标注和数据增广Fig.4 Data tagging of images and data augmentation
1.2 基于DeepLabv3+的羊骨架特征部位分割
1.2.1 DeepLabv3+网络架构
DeepLabv3+是一种基于深度卷积神经网络(Deep Convolutional Neural Network,DCNN)的语义分割框架,其网络结构如图5所示[17]。DeepLabv3+整体架构分为Encoder和Decoder两部分。Encoder网络主要完成特征提取工作,采用不同扩张率的空洞卷积(Atrous Convolution)[23]和图像全局池化的方式搭建空洞空间金字塔池化(Atrous Spatial Pyramid Pooling,ASPP)模块获取多尺度图像信息并进行融合。Decoder对Encoder提取法人特征图进行上采样并与底层特征图进行合并,最后再次进行上采样并完成预测任务。
图5 DeepLabv3+网络架构Fig.5 Network architecture of DeepLabv3+
1.2.2 基于ResNet的羊骨架特征提取网络
DeepLabv3+的特征提取网络为ResNet-101,ResNet[24]主要包括Conv1、Conv2_x、Conv3_x、Conv4_x和Conv5_x等模块。为了使得特征提取网络满足羊骨架特征部位分割的需求,本研究对ResNet的Conv4_x模块分别增加、减少6层和12层,得到ResNet-89、95、107和113,其结构分别如图6所示。
图6 不同ResNet的Conv4_x结构Fig.6 Conv4_x structures of different ResNet
1.2.3 ASPP模块调整
Chen等[25]在DeepLabv1中证明了ASPP模块有效提升了卷积核的感受野并提升了语义分割的精度,但较大的空洞扩张率也带来了信息丢失等问题。DeepLabv3+中的空洞扩张率分别为1、6、12、18,卷积核尺寸为1×1和3×3。本研究分别设置1、3、6、12和1、6、9、12两种尺度的扩张率与原始结构进行对比。羊骨架不同部位边缘具有明显的生物特征,且受去腿工艺的影响具有显著的不规则性。因此固定尺寸的卷积核性能会受到一定影响,为了减弱该情况对网络性能的影响,本研究采用可形变卷积核[26](Deformable Convlution,Def-Conv)替代固定形状卷积核,通过偏移变量来对当前位置周围进行随机采样,调整后的2种ASPP结构如图7所示。
图7 不同的ASPP结构Fig.7 Different structures of ASPP
1.2.4 Decoder模块
在DeepLabv3+中羊骨架图像经过Encoder环节得到的特征图尺寸较小,因此发生较多信息损失。为了弥补高层卷积带来的羊骨架边缘损失,本研究通过转置卷积(Transposed Convolution)的方式将Encoder特征图扩大4倍,采用1×1的卷积核对羊骨架图像的底层特征进行卷积以降低通道数。将合并后的高层和底层特征图采用3×3的卷积核进行卷积操作以矫正羊骨架图像分割效果,最后再次进行上采样将图像还原到原始尺寸。
1.3 DeepLabv3+羊骨架特征部位分割实验
1.3.1 环境配置和评价标准
本研究基于Python3.5和Cuda9.0进行Pytorch环境搭建,采用Pytorch框架对DeepLabv3+进行搭建和调整,网络训练的硬件为i7-770HQ(16 GB)和GPU-1080Ti。
为了合理评估网络在羊骨架特征部位分割中的性能,本研究选取交并比(Intersection over Union,IOU)、像素精度(Pixel Accuracy,PA)和F值作为评价指标。IOU是语义分割中的常用的评价标准[27-28],其数学定义为预测区间和实际区间的交集与并集比值,计算公式如下:
式中,ps为网络分割出的羊骨架特征部位;gs为标签中羊骨架特征部位。
像素精度定义为正确分类的像素与该区域全部像素的比值,计算公式如下:
式中,TP代表羊骨架特征部位正确分类的像素点个数;FP代表该特征部位未正确分类的像素点个数。
在羊骨架特征部位分割中,召回率和精度都是重要的性能指标,为了平衡二者关系采用F值进行评价,计算方法如下:
式中,FN代表网络误判为羊骨架特征部位的像素点个数。
1.3.2 网络训练与试验分析
基于调整后的4种ResNet结构和2种优化的ASPP结构搭建8种羊骨架特征部位分割网络,与DeepLabv3+进行对比实验。采用小批量的随机梯度下降[29](Stochastic Gradient Desent,SGD)对9种网络进行训练,小批量样本容量设置为64,采用指数缩减策略进行学习率更新。9种网络的配置和分割性能如表1所示。
由表1中实验结果可知改进优化后的网络性能较DeepLabv3+性能有一定提升,其中改进网络-6性能最佳,其基础网络为ResNet-95,扩张率1、6、9、12,卷积核为可变形卷积核,MIoU为0.849,PA为0.870,F值为0.879,较原始的DeepLabv3+分别提升了1.6、2.2和0.7个百分点,网络性能得到一定提升,可以用于羊骨架特征部位的分割。随机选取2组图像对网络分割结果进行可视化如图8所示,由图中分割效果可知,网络较好地实现了羊骨架特征部位的分割,具备一定的泛化性能。
表1 不同网络结构的分割性能Table 1 Segmentation performance of different network structure
图8 改进网络分割效果图Fig.8 Identification effect of improves networks
1.4 特征提取
基于改进网络-6的分割结果对羊骨架的轮廓和4个特征部位进行特征提取。本研究采用OpenCV中boundingRect()函数求取5个部位的最小外接矩形左上顶点和长宽坐标参数,并基于该2组参数计算外接矩形的4个顶点坐标和中心点坐标,计算公式如下:
式中,w和h为矩形的宽高参数;x,y为左上顶点坐标参数;O为中心点坐标,B、C、D分别为顶点坐标。
通过计算特征部位的最小外接矩形顶点和中点坐标共获得25组形位特征参数。在此基础上引入5组宽高参数,特征集的维度达到35维。
2 基于XGBoost的羊骨架切割位置计算
2.1 数据预处理
2.1.1 数据平移
本研究提出的羊骨架切割位置计算模型假设羊骨架位于图像中心,为保证特征数据满足该假设条件,对特征集进行数据平移操作,平移计算方法如下:
式中,d(x)和d(y)为平移前数据;D(x)和D(y)为平移后数据;M1和O1为图像和羊骨架的中心点坐标。
2.1.2 数据归一化
由于羊骨架特征部位的尺寸不同导致形位参数的分布范围存在一定差异,采用归一化的方法将特征分布范围压缩到(0,1),计算公式如下:
式中,X为归一化后的数据;x为原始数据;Xmax和Xmin为数据的最大最小值。
2.2 XGBoost预测模型
2.2.1 模型设置
XGBoost不仅具有特征筛选和集成功能,还能够降低过拟合风险,因此本研究采用XGBoost框架建立羊骨架切割位置预测模型。XGBoost模型参数设置如下:收缩步长eta为0.02,树的最大深度Max_depth为6,采样比例subsample为0.6。采用交叉验证的方式对子节点最小样本权重和进行调整。为了衡量模型性能采用均方误差MSE和R2拟合度对模型进行打分,计算方法如下:
式中,ŷ、yˉ和yi分别代表羊骨架切割位置的预测位置、平均值和标签值;SS E、SST分别代表残差平方和与总平方和。
2.2.2 模型训练与分析
分别建立Lasso和SVR回归模型进行对比实验,3种模型的综合性能如表2所示。由训练结果可知XGBoost模型综合性能明显优于Lasso和SVR模型,验证集和测试集的MSE分别为7.73和8.18,拟合度达到0.949,残差绝对平均值达到2.47像素点。由此可知模型具有较好的泛化能力和预测精度。
表2 不同模型的预测性能Table 2 Segmentation performance of different network
2.3 羊骨架切割实验
2.3.1 实验平台搭建
根据羊骨架的生物特性采用仿形学方法搭建羊骨架夹具系统,夹具3D模型如图9(a)所示。基于羊骨架和夹具系统的空间尺寸对机械臂进行选型,根据最大作业空间和负载等指标选取华数HSR-JR620L工业机器人作为执行机构,如图9(b)所示。实验流程如图9(c)所示,羊骨架切割系统如图9(d)所示。
图9 实验设备及系统Fig.9 Experimental equipment and systems
2.3.2 切割实验与数据分析
采用6只羊骨架进行切割实验,根据质量分布将样本分为3组进行对比实验。A组样本质量分布区间为(6,7)kg,样本数量为2;B组样本质量分布区间为(7,9)kg,样本数量为2;C组样本质量分布区间为(9,10)kg,样本数量为2。分别对3组样本进行切割实验并测量切割误差和消耗时间,实验数据如表3所示。
表3 偏移距离和消耗时间统计表Table 3 Statistics of offset distance and consumption time
根据表中数据可得出以下结论:
羊骨架切割的平均误差约为3.25 mm,平均每只消耗时间8.69 s,理论效率约为413只/h,较人工约提升
37.9%。
切割线2(颈部)误差最小约为3.16 mm,切割线1(腰椎)、切割线4和5(肋排和腹肋肉)、切割线6和7(胸椎和肋排)误差约为3.2 mm,切割线3(锁骨)误差约为3.48 mm。主要原因为锁骨与颈部和骨架之间的分割界限并不明显,且屠宰过程中容易导致颈部扭曲变形。
3组实验的平均误差分别为3.3 mm、3.25 mm、3.2 mm,该方法可以用于切割质量发生一定波动的羊骨架。
3 结论
改进的DeepLabv3+有效地实现了羊骨架特征部位的分割,MIOU、PA和F值分别为0.849、0.870和0.879。基于分割结果提取了35组特征参数,该组特征参数通过XGBoost模型能有效实现羊骨架切割位置的预测,验证集和测试集MSE分别为7.73和8.18,拟合度达到0.949,残差绝对平均值达到2.47像素点,该方法能够准确快速地实现羊骨架切割位置的预测。基于机器人平台进行切割实验,3组样本的误差分别为3.3 mm、3.25 mm、3.2 mm,该方法能够实现质量发生波动的羊骨架切割,切割误差为3.25 mm。平均切割时间为8.69 s,理论效率约为413只/h,较人工约提升37.9%。结果表明深度学习和机器人技术能较好解决生物体切割问题,且精度与效率有明显提升。