郑贵君,周聪玲,王永强
(天津科技大学机械工程学院,天津 300222)
目前,常用杀鱼机多采用固定的剖腹刀具,对不同种类和体型的鱼适应性程度低,容易造成腹部剖切不完全或过度剖切的问题。腹部剖切不完全,导致切口过小,不利于鱼类加工后续的去内脏处理,降低工作效率;剖切过度时,切口过大,影响鱼体美观,并且会造成苦胆破裂,影响口感。
随着机器视觉技术在渔业加工领域的广泛应用,针对渔业养殖、生产的研究逐渐深入。李楷模等[1]提出了视觉引导淡水鱼自动去头尾系统关键技术;Liang等[2]利用机器视觉技术设计了一种自动生鱼处理系统,可以加快对鱼的清洁和称重;王成[3]进行了基于机器视觉的鱼类定制切断方法研究;Liao等[4]利用鱼体表面颜色的变化来预测储存过程中的新鲜度指数(APC指数),评估了开发紫外光的机器视觉系统的可行性;单慧勇等[5]进行了鱼加工生产线头尾定向调理上料系统设计与试验,采用了结构光的方式,提取鱼体相关信息;何建雄[6]进行了淡水鱼加工生产线鱼体头尾腹背定向技术研究,进行了鱼体定向算法的研究;Azarmde等[7-8]提出了一种基于机器视觉技术的鳟鱼加工系统的定位和切点确定算法,该算法可以检测胸鳍、臀鳍、腹鳍、尾鳍的位置。包思圆等[9]进行了关于鱼的辨别的研究,赵慧等[10]在鱼辨别的基础上进行了鱼体分割的研究,李鑫星等[11]进行了鱼体新鲜度的检测研究,李艳君[12]基于立体视觉技术,进行了鱼体动态尺寸测量的研究,但上述研究都没有涉及鱼体上点的定位以及位置精度要求。在鱼类加工设备方面,王启航[13]采用机器视觉技术,进行了淡水鱼定向与切头设备的研究。唐友全[14]进行了杀鱼机的研究,但并未引入机器视觉技术,智能化水平低。尽管存在如上研究,但目前针对杀鱼机剖腹刀具自动控制的视觉检测方法研究却很少,目前的杀鱼机剖腹刀具仍需要手动调节其高度位置[15],自动化程度低。
本研究利用机器检测技术,提出了一种用于杀鱼机剖腹刀具自动控制的视觉检测方法。通过长宽比、斜率以及像素面积等特征寻找入刀点的位置,即剖腹刀具运动开始的位置;通过边缘检测和角点检测的方法提取出刀点的位置,即剖腹刀具运动结束的位置;最后准确得到鱼体的腹部轮廓,通过相机标定获取鱼体腹部轮廓的实际空间坐标,进而控制刀具实时调节运动。
通过设计的夹持运动装置分别夹紧鱼头鱼尾,图像采集装置采集鱼体图像;利用图像处理技术提取鱼身的入刀点、出刀点以及两点间的腹部轮廓。由图像处理技术和标定技术准确获取鱼腹轮廓的实际空间坐标,作为剖腹刀具实时柔性调节的输入控制信号,实现精确控制剖腹刀具上下运动。系统检测原理如图1所示。
图1 检测原理示意图
为获取鱼腹的空间信息,需要通过图像分割确定包含入刀点和出刀点的感兴趣区域。首先将鱼体和背景分割开,然后分割出所需要的感兴趣区域,进而在对应的感兴趣区域中提取相应特征,最后提取两点之间的腹部轮廓。
本研究将所采集到的白鲢鱼彩色图像转化到HSV颜色空间,H表示色调,S表示饱和度,V表示亮度。提取饱和度S通道图像数据,如图2所示,此时灰度直方图成双峰状,其中横轴表示灰度值,范围是0~255,纵轴表示灰度值的频数,利用最大类间方差法[16]将鱼体和背景分离。通过对图像物理尺寸分割,得到入刀点和出刀点的感兴趣区域,分割方法如图3所示。
图2 S通道下白鲢鱼灰度直方图
图3 分割方法流程图
鱼体轮廓所在的最小外接矩形区域[17]原点坐标O(u1,v1)和对角点E点坐标(u2,v2),可以计算出v方向上的中点C和u方向上的中点D的坐标,进而得到两个四分点F、G点的坐标,最后将图片等面积分割,提取出入刀点和出刀点的感兴趣区域,如图4所示。
图4 区域分割示意图
本研究首先在入刀点感兴趣区域中通过阈值分割、图像滤波、特征提取来获得鱼鳃处的最小外接矩形区域[18],然后得到入刀点的位置。
采用灰度中值进行阈值分割,灰度中值定义如式(1)所示:
(1)
式中:b为灰度中值;H为入刀点感兴趣区域的最大灰度值;h为入刀点感兴趣区域的最小灰度值。
阈值分割后的图像通过形态学处理去掉像素个数过少的噪声区域,处理结果如图5(a)所示。每个连通域都可以计算出其最小外接矩形,如图5(b)所示。
图5 连通域及其最小外接矩形
得到各连通域的最小外接矩形之后,采用求取若干最小外接矩形长宽比的平均值、长边斜率的正负以及像素面积三个特征值的方法,最终筛选出鱼鳃区域的最小外接矩形。最小外接矩形的长宽比是指最小外接矩形长边L和短边W的比值,如式(2)所示,其平均值是统计出所有最小外接矩形的长宽比,然后求均值得到,如式(3)所示。
(2)
(3)
式中:r代表最小外接矩形的长宽比,c代表长宽比的平均值,n代表最小外接矩形的个数。
计算流程如图6所示。在得到鱼鳃处最小外接矩形(图7中的红色区域)后,遍历寻找4个角点中v坐标最大的角点,从该点沿着v轴正方向做垂线,与腹部轮廓的交点(图7中鱼腹轮廓中的红色角点)即可确定为刀具入刀点的位置。
图6 鱼鳃区域最小外接矩形筛选流程图
图7 入刀点位置
本研究先通过阈值分割、形态学处理在出刀点感兴趣区域中提取出臀鳍图像[19-22],然后利用边缘检测提取出臀鳍边缘轮廓,最后通过角点检测确定出刀点,具体流程图如图8所示。
图8 出刀点提取流程图
在出刀点感兴趣区域中,臀鳍和鱼身颜色对比明显,灰度直方图呈现双峰,通过最大类间方差法可以提取出臀鳍区域[23],如图9(a)所示。利用canny算子边缘检测提取臀鳍边缘,首先利用二维高斯卷积核K对图像进行滤波,如式(4)所示:
(4)
式中:σ是高斯函数的标准差。
接下来通过水平和垂直方向的梯度算子,来计算梯度的模和方向,如式(5)、式(6)所示:
(5)
(6)
式中:Gu和Gv是水平和竖直方向上的梯度算子,G是梯度的模,θ是梯度方向。
采用非极大值抑制,利用线性插值,去除非边缘像素[24-29]。提取结果如图9(b)所示。
得到臀鳍图像边缘后,本研究采用Harris角点检测,其数学模型如式(7)所示:
(7)
式中:w(u,v)是窗口函数;E(u1,v1)描述窗口函数在图像上滑动前与滑动后的灰度变化情况;I(u,v)表示像素灰度值强度,范围是0~255。
根据Taylor展开式,将式(7)进一步化简,用Z矩阵表示为式(8):
(8)
式中:iu表示图像中每个像素点u方向的强度,iv表示图像中每个像素点v方向的强度。
确定角点的阈值R可用式(9)表示:
R=detZ-k(traceZ)2
(9)
式中:det表示式(6)中Z矩阵特征值的乘积,traceZ表示Z矩阵特征值的和,k是系数值,取值为0.05[30]。提取出的角点如图9c所示。遍历寻找各个角点中横坐标最小值的角点,该角点即可确定为出刀点位置,如图9d所示。
图9 提取出刀点示意图
鱼的腹部轮廓,存在腹鳍收回和腹鳍打开两种状态,如图10所示。
图10 鱼腹轮廓中的腹鳍状态
对于腹鳍收回的情况,腹部轮廓是光滑完整的,可以直接提取腹部轮廓。提取到的入刀点与出刀点的位置以及腹部轮廓如图11所示,图中uOv面代表像素坐标系下的二维平面。
图11 提取到的入刀点与出刀点位置以及腹部轮廓
对于腹鳍打开的情况,如图12所示,鱼腹边缘会多出腹鳍前后的两个角点P、Q,需要将其剔除。
图12 腹鳍处角点位置
剔除方法:首先通过边缘检测得到入刀点和出刀点之间的轮廓线,然后提取腹部轮廓边缘上腹鳍处的角点,筛选找到腹部轮廓与腹鳍相交的两个角点,直接连接这两个角点并去掉腹鳍部分的边缘点,即可形成理想的腹部轮廓线,过程如图13所示。
图13 提取腹部轮廓过程示意图
本研究标定的目的是得到世界坐标系下的鱼体腹部轮廓信息,进而控制杀鱼机剖腹刀具根据鱼体腹部轮廓变化实时调节高度位置。如图14所示。
图14 腹部轮廓分区域坐标转换
鱼体腹部轮廓狭长,横跨整张图像,为了保证精确性,将标定板平均分成4个部分,每个部分分别对应着鱼腹轮廓上从左到右25%的区域,分区域进行标定,每4个圆点作为一块标定区域,鱼体腹部轮廓边缘点的像素坐标映射在世界坐标系下时,采用对应区域的M矩阵进行坐标转换。
标定流程流程如图15所示。
图15 标定流程图
为了保证剖腹切割的美观,在剖腹工序中需要定义入刀点和出刀点的位置,入刀点的位置常选在鱼鳃下方,出刀点的位置常选在臀鳍前端处,本试验采用了10条鱼,试验前标注实际切割鱼腹时的入刀点和出刀点位置,经过图像处理后,测量提取出的入刀点和出刀点和试验前标注的位置是否一致。如图16所示,其中的黄色角点为试验前所标注的入刀点和出刀点,红色角点为图像处理后提取的入刀点和出刀点。
图16 试验前后的入刀点、出刀点位置
本研究选取10条鱼,如式(10)所示,统计其实际误差(实际加工的入刀点和出刀点的位置-图像处理后得到的入刀点和出刀点的位置),因为在实际加工中对两个点的精度要求不高,在合理加工范围内即可,因此误差保持在毫米级进行统计,如表1所示。如表1所示,入刀点在水平方向上的最大误差为2 mm,平均误差为1.6 mm;在竖直方向上的最大误差为1.5 mm,平均误差为1.25 mm;出刀点在水平方向上的最大误差为2 mm,平均误差为1.5 mm;在竖直方向上的最大误差为1.5 mm,平均误差为1.25 mm。
表1 腹部轮廓可靠性试验误差分析表
可以发现,标定后得到入刀点的位置在水平、竖直方向上都是偏大的,原因是在图像处理中,经过阈值分割、图像滤波等操作,会造成个别像素点的丢失,同时因为鱼鳃处的最小外接矩形的长边斜率范围在(-π/2,π/2)之间,所以会造成图像处理后得到的入刀点后移的情况,如图17所示。而同时,出刀点的位置在两个方向上都偏小,原因是对出刀点感兴趣区域进行阈值分割时,因为方差代表图像灰度值分布的均匀程度,若前景和背景差别不大,即直方图双峰不明显时,导致类间方差变小,导致臀鳍区域出现分割不精确、像素数量增加的情况。
图17 鱼鳃区域最小外接矩形引起入刀点出现偏移
此外,在水平方向上,标定后入刀点的位置比实际所设定的入刀点位置大,同时出刀点的位置比实际所设计出刀点的位置小,这样会造成剖切的鱼腹偏小,但根据试验测量,最大误差不影响实际的加工生产,也不会影响后续的去内脏工序,因此该误差满足加工要求。在竖直方向上,因为实际加工中入刀点的位置和图像处理后入刀点的位置均在鱼腹上,所以误差对实际加工不会造成影响,而出刀点的最大误差也不会造成刀具划破苦胆,因此该方法提取入刀点和出刀点位置准确。
本试验主要验证经过本研究提取到的鱼体腹部轮廓,经过坐标转换后,如图18所示,在世界坐标系下得到的腹部轮廓是否可以和鱼体的腹部准确重合。
图18 相机标定后得到的鱼腹轮廓与测量前鱼腹的对比情况
由图18可以看到,经过相机标定后得到的鱼腹轮廓和实际的鱼体腹部轮廓近似一致,但在个别区域存在误差,经过测量,最大误差为1 mm,该误差主要来自系统误差,包括标定误差以及在取点时出现偏差,但不影响实际生产加工。以上试验的误差的主要来源是:1)标定矩阵的误差。该误差来源于相机标定时镜头的分辨率以及标定板的精度,可以通过选取更高分辨率的镜头以及精度更高的标定板来减少误差。2)图像处理中,对于Harris角点检测以及连通域最小外接矩形的提取,均会存在误差,对精度产生影响,采用双阈值的Harris角点检测方法以及优化外接矩形计算方法可以减少误差。但对于杀鱼机剖腹工序来说,理想的剖腹工序是保持一定的进刀量,沿着腹部轮廓进行走刀切割即可,因此试验过程中产生的误差在合理范围内。
提出了一种用于杀鱼机剖腹刀具自动控制的视觉检测方法,设计了相应的算法提取入刀点、出刀点以及腹部轮廓,并进行了试验验证和误差分析,可以满足精度要求。该方法能够控制剖腹刀具对不同尺寸大小的鱼实现高质量的腹部轮廓切割,并且有望普及到其他鱼种的工业流水线加工,满足生产自动化、智能化的需求,可以避免传统的渔业加工方式造成的加工质量问题,提高渔业加工的经济效益。本研究通过机器视觉技术检测到鱼体腹部轮廓,进而控制剖腹刀具自动调整高度,且能保证精度要求,可以准确提取鱼体的腹部轮廓,为杀鱼机剖腹刀具精确控制提供数据支持。
□