APP下载

基于表面凹凸性的羊胴体点云分割方法

2022-08-08王树才赵世达杨华建

农业机械学报 2022年7期
关键词:分体胴体凹凸

王树才 白 宇 赵世达 杨华建

(1.华中农业大学工学院, 武汉 430070; 2.农业农村部长江中下游农业装备重点实验室, 武汉 430070;3.青岛建华食品机械制造有限公司, 胶州 266300)

0 引言

我国是羊肉生产大国,2020年我国羊肉产量为492万t,同比增长1.0%,已连续多年保持增长趋势[1]。目前我国的羊肉产品以屠宰初级加工的胴体肉为主,在羊肉加工过程中,羊胴体分割作为羊屠宰加工减损降耗、提质增效的关键环节,与羊肉产品增值存在直接关系。但是由于缺乏自动化的分割工艺,现阶段大多数企业仍以传统的倒挂式手工屠宰加工为主[2-4],特别是羊胴体分割区域的识别普遍依赖于操作员的经验,存在分割效率低、分割精度差等问题,严重制约加工水平的提升。因此,实现羊胴体分割区域的自动识别,不仅是研发羊胴体分割机器人视觉系统的基础,更是实现自动化屠宰的关键。

三维视觉作为一项多融合多交叉技术,相比于二维图像,三维点云具有可以反映场景丰富且完整几何信息的优势,可呈现关于对象清晰且完备的结构特征[5],已被应用于作物表型研究[6-10]、家畜体尺测量[11-12]等农业相关领域。此外,国内外研究者结合三维视觉,以不同畜禽的胴体三维点云模型为研究对象,在智能屠宰领域也展开了一定探索,但大部分研究集中在猪腹剖切环节或者面向劈半羊胴体的分割环节[13-15],针对倒挂状态下羊胴体点云分割的研究较少,且多数研究的方法在分割方案等方面并不完全适用于我国的羊肉分割需求。

本文以巴美肉羊胴体为研究对象,利用激光传感器获取羊胴体点云,以羊胴体表面的凹凸性作为分割依据,实现羊胴体点云分割。在此基础上,选取差异性样本进行试验,用以验证本文方法的适用性和可行性。最后引入欧氏聚类、区域生长两种点云分割方法进行对比试验,进一步验证本文方法的综合分割能力。

1 材料与方法

1.1 点云数据获取

试验以经过剥皮、去内脏处理后的巴美肉羊胴体作为研究对象,羊胴体点云数据采集于内蒙古巴彦淖尔美洋洋食品股份有限公司的羊胴体分割生产线。使用FreeScan X7型手持式三维激光扫描仪获取羊胴体点云数据,该激光扫描仪的光学分辨率为0.05 mm,精度可达0.03 mm。

为获取完整清晰的点云,同时还原羊胴体分割生产线的实际场景,采用将羊胴体倒挂于挂架上,手持扫描仪环绕羊胴体的采集方式。采集时无特定光源与背景,不限定采集时间,将羊胴体表面随机粘附激光感光片进行三维定位扫描,扫描仪与羊胴体之间的距离控制在200 mm之内,整个点云采集过程如图1所示。由于同批次的羊胴体存在体型、质量、年龄相近的情况,为增大样本之间的差异性,针对5批次羊胴体随机采集了100个样本。

图1 羊胴体点云采集示意图Fig.1 Schematic of point cloud collection of sheep carcass1.挂架 2.挂钩 3.三维扫描仪 4.羊胴体 5.激光感光片

1.2 点云预处理

1.2.1点云去噪

采集点云时,会不可避免地产生一定数量的噪声点[16],点云噪声主要分为小振幅噪声和离群点噪声[17],噪声点的存在会影响表面精度[18]。为获取高质量的羊胴体点云,避免噪声点对后续分割的影响,在软件Cloud Compare中手动去除背景中的离群点噪声,去噪前、后点云数据如图2所示。

图2 去噪前后点云数据Fig.2 Point cloud data before and after denoising

1.2.2点云滤波

由三维激光扫描仪采集到的单只羊胴体点云数量多为十万级,部分样本点数可达百万,如此庞大的数据量直接作为算法的输入会影响运算速度。对于冗余数据进行合理的精简,可以提高后期的处理速度[19],故需要对采集到的羊胴体点云进行滤波处理。目前常用的点云滤波方法有:直通滤波、半径滤波、统计离群消除滤波、体素网格滤波[20]等,考虑到后续的分割需求,即在下采样的同时不破坏点云本身的几何结构,故采用体素滤波作为羊胴体点云的下采样方法[21]。根据不同样本点数,创建不同栅格叶大小的体素滤波器可将单只羊胴体点云数量精简至2×104~6×104个,该数量的点云在保留羊胴体几何特征的同时,也能高效完成分割任务。滤波前、后的羊胴体点云如图3所示。

图3 滤波前后点云数据Fig.3 Point cloud data before and after filtering

1.3 点云分割

根据文献[22],将羊胴体分割为后腿腱、带臀去腱腿、鞍肉、颈肉、肩肉、前腿腱等6分体,分割示意图如图4所示。

图4 羊肉分割技术规范示意图Fig.4 Schematic of mutton segmentation specifications1.后腿腱 2.带臀去腱腿 3.鞍肉 4.颈肉 5.肩肉 6.前腿腱

以上各分体的交界处,羊胴体表面往往具有较为明显的局部凹凸性突变。在流水线分割场景中,操作员便以此几何特征的变化作为实际分割依据。基于上述思路,本文使用了一种基于表面凹凸性的羊胴体点云分割方法[23],该方法的具体实现步骤如下:

(1)由于凹凸性是定义在超体素邻接图中的公共边上,故参照文献[24]中的方法将羊胴体点云超体素化,根据文献[25]中的方法对超体素公共边进行凹凸性判断,判断方法为

C=n1d-n2d

(1)

其中

(2)

式中n1、n2——两相邻超体素的法向量

x1、x2——两相邻超体素的质心位置向量

若C≥0,则该边为凸;若C<0,则该边为凹。

(2)将两个相邻超体素的公共边抽象成一个包含方向、凹凸性等几何特征的欧几里得边缘云。每个欧几里得边缘云的坐标为其连接的两超体素的平均值(x1,x2),方向的计算方法与式(2)相同。2个超体素法向量之间夹角的计算式为

|α|=arccos(n2n1)

(3)

若α>0,代表该欧几里得边缘云为凹;若α<0,代表该欧几里得边缘云为凸。

(3)由于分割往往发生在凹度更显著的位置,故将凹凸性不同的欧几里得边缘云赋予不同的权重,计算式为

ω(α)=H(α-βthresh)

(4)

其中,H代表单位阶跃函数,凹度公差角βthresh设为10°,以忽略弱凹度和来自噪声点云的凹度。该步骤将所有凹点权重设为1,将所有凸点权重设为0。

(4)为实现对点云的受约束分区和局部分割,设置得分评估函数

(5)

其中

sm——模型表面法向量

(5)根据步骤(4)计算得出的结果,利用随机采样一致算法[26]确定切割平面,提取出此平面上的所有点云,以此作为最终的分割平面,完成羊胴体点云分割。

1.4 评价指标

引入精确度、召回率、F1值和总体准确率对单只羊胴体点云的分割精度进行评估[27],按照《羊肉分割技术规范》在软件Cloud Compare中手动分割羊胴体点云,以此作为分割的真实值。

2 结果与分析

基于表面凹凸性的羊胴体点云分割主要包含4个步骤:采集羊胴体点云,经过预处理后作为待分割样本;基于羊胴体表面凹凸变化等几何特征,完成羊胴体点云分割;通过处理差异性点云样本,验证本文方法的适用性;与常用点云分割方法进行对比试验,进一步验证本文方法的综合分割能力。流程如图5所示。

图5 羊胴体点云分割试验流程图Fig.5 Flow chart of segmentation test of sheep carcass point cloud

本文算法基于Visual Studio 2017,PCL1.9.1点云库运行,试验的硬件环境为Intel Core i7-9750处理器,NVIDIA GeForce GTX 1660Ti显卡;计算机操作系统为Windows 10专业版。

2.1 算法参数

本文方法首先将羊胴体点云超体素化,获得超体素邻接图。影响超体素化的参数主要有:体素分辨率Rvoxel、种子分辨率Rseed,影响分割精度的参数为最小分割得分Smin,其余参数设在合理范围内即可。试验发现,Rvoxel过小,无法形成超体素;Rvoxel过大导致分辨率降低,丢失局部凹凸性特征。Rseed影响超体素划分,Rseed过小,会导致算法效率偏低;Rseed过大,邻接超体素间特征差异变小。影响最终分割精度的主要参数为Smin,若Smin设置过小会造成过分割,设置过大会造成分割精度不足,无法满足实际分割要求。在确定最佳分割参数时,采用穷举策略,通过多次分割试验,比较不同参数下的分割结果,基于试验结果确定该样本参数的最优值。通过多次试验发现,针对正常体型的羊胴体点云样本,取Smin=0.15可达到较好的分割效果。针对特殊体型的羊胴体点云样本,由于其自身形态结构较复杂,为避免过分割现象,应适当增大该参数的值,取Smin=0.3可达到较好的分割结果。

2.2 羊胴体点云样本分割结果

针对羊胴体点云样本进行分割试验,并对结果进行评价。获取羊胴体点云的分割结果,分别计算6分体的分割精确度与召回率。同时,为判断本方法是否具有良好的实时性,记录处理单只羊胴体点云的时长,并求平均值。部分样本的分割结果如图6所示。

图6 部分羊胴体点云分割结果Fig.6 Results of partial sheep carcass point cloud segmentation

由图6可知,羊胴体点云被分割为6分体,相邻两分体以不同的颜色标明区分,过分割与欠分割现象并不明显,符合行业分割规范。特别是前腿腱部分,由于该部分点云较密集,各处几何特征较复杂,且与肩肉、鞍肉较为接近,本文方法均可准确识别分割。同时,分体之间界线清晰且平整,后续可作为羊体分割机器人的分割轨迹。最终,后腿腱、带臀去腱腿、鞍肉、肩肉、颈肉、前腿腱的平均分割精确度分别为92.7%、90.7%、92.6%、93.2%、92.5%、92.2%,平均召回率分别为86.0%、93.2%、92.8%、91.6%、90.9%、93.4%,处理单只羊胴体点云的时长为18.82 s,结果表明该方法适用于针对智能屠宰领域的羊胴体点云分割,同时具有一定的实时性。

2.3 多分体组合点云分割

羊胴体点云相邻分体之间往往存在明显的凹凸性变化,突变处即为待分割处,但部分样本的部分分体之间并无显著的凹凸性变化。为验证本文方法针对上述分体的分割效果,随机选取若干羊胴体点云样本,在软件Cloud Compare中手动提取有明显凹凸性突变的多分体以及无明显凹凸性突变的多分体,以此作为待分割样本,展开分割试验。分割结果如图7所示,图中自上而下分别为:带臀去腱腿与鞍肉的点云组合,颈肉、肩肉与前腿腱的点云组合。

图7 多分体组合点云分割结果Fig.7 Results of multi-split combined point cloud segmentation

由图7可知,带臀去腱腿与鞍肉之间的过渡相对平滑,分界处并无较明显的凹凸性变化,而颈肉、肩肉与前腿腱三分体之间特征差异较大,其相邻两分体的分界处有较明显的凹凸性变化。针对上述两种点云组合,本文方法均取得较好的分割结果,过分割与欠分割现象并不显著,说明本文方法能适应凹凸性突变存在差异的点云样本组合。

2.4 多体型羊胴体点云分割

为进一步验证本文方法的适用性和可行性,根据体型的不同选取3类器官完整、结构清晰的羊胴体点云,模拟生产线处理各类羊胴体的实际情况进行试验。其中样本1代表结构最复杂的一类羊胴体,该样本经滤波后包含56 010个点;样本2代表体型正常的一类羊胴体,该样本经滤波后包含43 185个点;样本3代表体型最小的一类羊胴体,该样本经滤波后包含22 296个点。比较多次试验结果并结合文献[28-29],选取各样本的最佳分割结果,其参数设置如下:样本1,Rvoxel=0.3,Rseed=0.75,Smin=0.3;样本2,Rvoxel=0.35,Rseed=0.8,Smin=0.15;样本3,Rvoxel=0.005,Rseed=0.2,Smin=0.3。3个样本的分割结果如图8所示,评价各分体分割精度的指标如表1所示。

表1 多体型样本分割结果评价Tab.1 Evaluation of segmentation results of multi-body samples %

图8 多体型羊胴体点云分割结果Fig.8 Results of multi-body sheep carcass point cloud segmentation

从图8中可以看到,在面对体型有明显差异的羊胴体点云样本,本文方法仍能较好地完成分割任务,正确将羊胴体点云分割为6分体,各分体的分割效果没有明显变化,同时分体之间的界线清晰准确。特别是样本1,该点云样本对应的羊胴体质量较大,

导致各分体几何特征较复杂。对比其他样本可知,样本1带臀去腱腿和肩肉处体积较大,上述两分体在横向有一定延展,部分与颈肉、前腿腱在竖直方向上处于同一平面,可能导致在确定分割平面时出现误分割。最终,本文方法对该样本也较好完成分割,误分割现象并不明显。以上结果说明样本体型差异对本文方法的分割效果影响并不显著,该分割方法能适应羊胴体分割生产线的实际情况,能满足处理各种体型及质量羊胴体样本的需求。

由表1可知,样本3后腿腱的分割召回率和带臀去腱腿的分割精确度低于其余样本的同分体,具体原因为:3号羊胴体体型较小、质量较轻,其后腿处表面几何特征并不明显;同时由于羊胴体倒挂于挂架上,在自身重力的影响下后腿处丢失部分凹凸性特征,进而导致本属于后腿的点云被误分割为带臀去腱腿。

2.5 与其他分割算法对比试验

目前可用于点云分割的算法较多,但面对不同场景和对象,不同算法的分割效果有较大差异。为进一步验证本文方法的综合分割能力,继续以大、中、小3个不同体型的羊胴体点云样本为例,引入点云分割任务中常用的区域生长[30]、欧氏聚类[31]两种算法进行对比试验。其中,影响区域生长算法分割效果的参数为平滑阈值,影响欧氏聚类算法分割效果的参数为欧氏距离。使用上述两种算法对羊胴体点云进行分割对比试验时,采用逼近原则确定算法参数最优取值,即从过大和过小两极端值开始,逐步向中间值逼近,最终得到最优参数,并以该参数下的分割结果作为最终结果参与评估。各算法分割结果如图9所示。

图9 不同算法分割结果对比Fig.9 Comparison of segmentation results of different algorithms

从图9中可以看到,区域生长与欧氏聚类两种算法只能近似分割得到颈肉、前腿腱、后腿腱3部分,对带臀去腱腿、鞍肉以及肩肉的分割效果较差;针对近似分割出的区域,还存在一定程度过分割与欠分割现象。同时,各分体之间界线不规则且较模糊,无法作为后续机器人的分割轨迹;上述算法均未能很好地完成分割任务,其原因在于未利用羊胴体点云在局部区域具有的凹凸性等深层次几何特征,仅依靠平滑阈值、距离阈值等参数作为分割依据,故无法将羊胴体点云精确分割为多分体;相比于本文方法,区域生长与欧氏聚类均未能获得清晰平直分割边界的原因在于:本文确定分割平面时引入了随机采样一致算法,在局部对点云进行约束加权以获得清晰平整的分割边界。

表2列出了评价上述算法分割效果的量化指标,由于区域生长与欧氏聚类只近似分割出3个分体,故计算整只羊胴体分割精确度、召回率、F1值和总体准确率时,分割得到的分体数量m为3。

表2 不同分割算法结果对比Tab.2 Comparison of results of different segmentation algorithms

从表2可以看出,本文方法的平均精确度、平均召回率、平均F1值和平均总体准确率均高于其余方法,4个指标分别高于区域生长27.1%、11.5%、19.2%、8.9%,高于欧氏聚类10.8%、21.7%、16.3%、16.6%。在分割实时性方面,本文方法、区域生长、欧氏聚类分割单只羊胴体点云的平均耗时分别为18.82、15.37、14.62 s,本文使用的方法略高于其他方法,其原因可能是本文方法对邻接图进行凹凸性判断和计算函数得分均需要遍历每个点云,运算量较大。考虑到其余算法均未能有效完成分割任务,且本文方法平均耗时仅比区域生长高3.45 s,比欧氏聚类高4.2 s,说明本文方法在保证分割精度的同时,也可以兼顾一定的实时性,满足羊胴体分割生产线的实际需求。

本文分别计算了评价3种方法对各分体分割精度的指标,其结果如图10、11所示。由于区域生长和欧氏聚类无法对带臀去腱腿、鞍肉、肩肉完成有效分割,故仅讨论剩余可完成分割的分体。

由图10、11可知,本文方法对后腿腱、颈肉、前腿腱的分割精确度略优于区域生长与欧氏聚类,分割召回率均优于其余两种方法。最终,本文方法对上述3分体的分割精确度为92.7%、92.5%、92.2%,分别高于欧氏聚类18.4、6.9、2.3个百分点,高于区域生长23.6、17.9、18.2个百分点;本文方法对上述3分体的分割召回率为86.0%、90.9%、93.4%,分别高于欧氏聚类1.2、36.0、8个百分点,高于区域生长2.6、10.7、11.4个百分点。结果表明本文方法能满足实际生产线对羊胴体各分体分割的精度要求。

图10 各分体分割精确度Fig.10 Segmentation accuracy of each split

图11 各分体分割召回率Fig.11 Recall rate of each split segmentation

3 结论

(1)基于羊胴体表面凹凸性等几何特征,实现了对羊胴体点云的自动分割。分割平均精确度、平均召回率、平均F1值和平均总体准确率分别为92.3%、91.3%、91.8%、92.1%,处理单只羊胴体点云的平均时长为18.82 s,说明本文方法在分割精度上能够满足实际生产线的需求,同时兼顾一定的实时性。

(2)设计了多分体组合点云、多体型羊胴体点云分割试验,试验结果表明针对样本差异性,本文方法仍能保持较高的分割精度,具有良好的适用性。

(3)与区域生长、欧氏聚类2种点云分割方法相比较,本文方法处理单只羊胴体点云的平均耗时高于欧氏聚类4.2 s,高于区域生长3.45 s,但平均精确度、平均召回率、平均F1值和平均总体准确率分别优于区域生长27.1%、11.5%、19.2%、8.9%,优于欧氏聚类10.8%、21.7%、16.3%、16.6%,综合分割能力较好。

猜你喜欢

分体胴体凹凸
猪胴体冷却降温特性及耗能分析
商品猪胴体性能对分割销售后效益的影响
妻的腹部
最易写错笔顺的字
CJ/T256—2016分体先导式减压稳压阀
这是谁的照片
无边框全面屏 乐视发布高端Unique分体电视
分体设计更贴心
消除凹凸纹理有妙招!
凹凸的爆笑生活