基于FCM及HSV模型的方格蔟黄斑茧检测与剔除技术
2018-07-28刘莫尘许荣浩闫银发李法德刘双喜
刘莫尘 许荣浩 闫 筱 闫银发 李法德 刘双喜
(1.山东农业大学机械与电子工程学院,泰安 271018; 2.山东省园艺机械与装备重点实验室,泰安 271018;3.华北电力大学(保定)电气与电子工程学院,保定 071003)
0 引言
为了提高生丝质量,缫丝前需要对蚕茧进行检测分类,剔除黄斑茧、口茧、薄皮茧等下茧。黄斑茧是指因被死蚕或蚕尿等污染造成表面出现黄色污斑的蚕茧,根据污斑面积的大小分为尿黄茧(污斑总面积超过0.5 cm2)、靠黄茧(污斑总面积超过1 cm2)和老黄茧(污斑占茧体面积的1/3以上)等[1]。黄斑茧占下茧的比例高达50%,而传统黄斑茧剔除主要靠人工目测,劳动力成本较高,同时选茧的准确性易受人员技术水平、精神状态等主观因素影响,存在劳动强度大、误选率高等缺点。
图1 方格蔟图像Fig.1 Images of mountage
国外对蚕茧检测的研究报道较少,国内对蚕茧检测研究主要以图像处理与机器视觉为主。蔡健荣等[2]提出了一种基于X射线成像技术的蚕茧雌雄判别方法。SUMRIDDETCHKAJORN等[3-4]通过处理红白两种光源照射下的蚕茧尾部图像来判断蚕茧性别。KAMTOSNGDEE等[5]则采用模式匹配的方法处理蚕茧尾部图像实现蚕茧雌雄鉴定。甘勇等[6]和周志宇等[7]通过图像分析和处理、基于机器视觉技术的方法进行了单个蚕茧表面积的测量,实现了蚕茧质量无损智能检测。陈浩等[8]在多光源条件下,用高拍仪拍摄蚕茧图像,提出了利用图像处理实现单个蚕茧表面污斑面积自动检测的方法。宋亚杰等[9]利用数学形态学方法实现了单个蚕茧蚕型判断。陶丹等[10-11]提出了图像处理过程中基于解模糊算法进行蚕蛹图像恢复。张琦[12]和乔乐领[13]探讨了基于图像处理的蚕茧自动检测计数系统,实现了对方格蔟中采出蚕茧的自动计数。
综上所述,目前采用图像处理的方法可以实现蚕茧的雌雄鉴别、蚕茧表面积测量、茧型判断和蚕茧的自动计数及检测等功能,为蚕桑产业的自动化提供了有益的借鉴,但并没见对整张方格蔟蚕茧进行黄斑茧检测和自动剔除的研究文献。
针对上述问题,本文使用基于模糊C均值聚类及HSV模型的黄斑茧检测算法,快速分割整张方格蔟蚕茧,同时完成黄斑茧的检测,并使用基于机器视觉的直角坐标式方格蔟自动采茧机对黄斑茧进行检测剔除试验。
1 试验材料与装置
1.1 试验材料
方格蔟由山东农业大学马庄蚕桑实验站提供,规格为540 mm×390 mm,采用MicroVision公司的MV-DC500型工业相机,图像分辨率为640像素×480像素。用于图像处理的上位机为Intel Core 2 Duo 2.93 Hz CPU,4 GB RAM,Windows XP操作系统的计算机。图像处理软件为OpenCV 3.2机器视觉库。将方格蔟水平固定,两台相机分别设置在方格蔟的上、下方,且均正对方格蔟中心。在室内自然光下采集图像,方格蔟上方相机采集图像即为方格蔟正面原始图像,如图1a所示。方格蔟下方相机采集图像为方格蔟反面原始图像,如图1b所示。为了使同一蚕茧在正反两面图像中的位置相同,将方格蔟下方相机采集的图像做竖直镜像,即为方格蔟反面原始图像,如图1c所示。竖直镜像后,同一蚕茧在正反两面图像中的位置一一对应。
1.2 试验装置
黄斑茧检测及剔除试验装置采用基于机器视觉的直角坐标式方格蔟自动采茧机,主要由X轴导轨、Y轴导轨、电磁采摘器、步进电动机、工业相机、上位机及STM32嵌入式控制系统等组成,如图2所示。
图2 直角坐标式方格蔟自动采茧机结构简图Fig.2 Schematic of Cartesian coordinate automatic cocoon harvestor1.机架 2.工作台 3.X轴导轨 4.X轴步进电动机 5.传动轴6.上方工业相机 7.Y轴导轨 8.Y轴步进电动机 9.电磁采摘器 10.蚕茧方格蔟 11.方格蔟夹持装置 12.下方工业相机
X轴导轨为2个由传动轴连接的同步导轨,长1 m,Y轴导轨带有电磁采摘器,长1 m,在X轴导轨上运动,同步导轨导程为72 mm。步进电动机为57型步进电动机,步距角1.8°,扭矩2.8 N·m,用于带动导轨运动,实现电磁采摘器定位。电磁采摘器由1个行程60 mm、单次往返时间0.5 s的电磁铁和1个采茧头组成,用于剔除检测的黄斑茧。
上位机控制工业相机采集方格蔟图像,采用基于模糊C均值聚类及颜色直方图检测算法进行黄斑茧检测和视觉测量定位,计算黄斑茧的中心点坐标,通过RS232串口将黄斑茧的中心点坐标传输给STM32控制器。STM32控制X轴、Y轴步进电动机将电磁采摘器定位到黄斑茧位置,控制电磁采摘器接通电源,实现电磁采摘器对黄斑茧的定位剔除,然后断开电磁采摘器电源,释放电磁采摘器准备下一个黄斑茧的剔除,直到将方格蔟中黄斑茧剔除完毕,结束工作。其工作流程图如图3所示。
图3 直角坐标式自动采茧机工作流程图Fig.3 Flow chart of Cartesian coordinate automatic cocoon harvestor
2 黄斑茧检测
2.1 黄斑茧检测算法
因方格蔟中存在茧衣,茧衣较厚的区域使用传统的Otsu阈值分割算法[14],易造成蚕茧黏连,无法完整地分割蚕茧,图4为对图1a使用Otsu算法分割后的二值图像。从图4红色标记处可以看出,茧衣较厚处的蚕茧存在黏连,Otsu算法不能有效消除茧衣的影响。
图4 Otsu算法分割结果Fig.4 Result of Otsu segment algorithm
为解决茧衣较厚、蚕茧不易分割及黄斑茧检测剔除效率低的问题,本文采用基于FCM和HSV模型的黄斑茧检测算法,其算法步骤为:
(1)将工业相机采集的方格蔟正面图像作为原始图像I0。
(2)对方格蔟原始图像I0进行灰度化,得到灰度图I1。
(3)对灰度图I1采用FCM算法进行聚类,得到聚类后的图像F0。
(4)对聚类后的图像F0进行锐化,得到锐化图像L1。
(5)对灰度图I1使用Otsu算法进行二值化,得到二值化图像I2。
(6)将L1与I1掩膜,并对掩膜后的图像进行孔洞填充,得到去除方格蔟只保留蚕茧的二值图像B0。
(7)将二值图像B0与方格蔟原始图像I0做掩膜,得到单个蚕茧的彩色图像。
(8)对单个蚕茧的彩色图像建立HSV空间的累积颜色直方图,根据颜色直方图判断蚕茧是否为黄斑茧。
(9)若蚕茧为黄斑茧,保存当前正在检测的蚕茧正面二值图像连通域中心坐标作为黄斑茧坐标,开始下一个蚕茧的污染判断;若由正面彩色图像判断蚕茧不是黄斑茧,则将工业相机采集到的方格蔟反面彩色图像作为原始图像I0,从步骤(2)开始重复执行。
2.2 模糊C均值聚类分割
模糊C均值聚类通过模糊理论对重要数据进行分析和建模,获得对样本类属的不确定描述[15]。
FCM算法可以把n个向量xi(i=1,2,…,n)分为c个模糊类别,并求出每类的聚类中心,使得非相似性指标的目标函数达到最小。
FCM目标函数[16]为
(1)
式中U——隶属度均值
uik——介于0~1之间的值
k——样本数据序号
ci——模糊类别i的聚类中心
dik——第i类模糊聚类中心与第k个样本数据点之间的欧几里得距离
m——权重系数,取值为(1,∞)
对图1a的灰度图使用FCM进行聚类,聚类图像将灰度图分成了4种不同的颜色,分别为黑色、灰色、灰白色和白色。蚕茧区域为白色,茧衣则为灰白色,实现了蚕茧与茧衣的分割,如图5所示。
图5 FCM聚类分割Fig.5 FCM clustering segmentation
为将蚕茧完整的分割出来,对聚类后的图像进行锐化、阈值分割和掩膜处理。用拉普拉斯算子对聚类后的图像进行锐化,锐化后的图像如图6a所示。图6a中,红色标记处为存在茧衣的区域,茧衣区域锐化后的放大图像如图6b所示,蚕茧、茧衣及方格蔟均保留了轮廓。将锐化后的图像与图4所示的二值图像进行掩膜,掩膜后的图像茧衣与方格蔟的边框被去除,但完整保留了蚕茧轮廓,茧衣区域掩膜后如图6c所示。对整张方格蔟进行掩膜,实现蚕茧分割,如图6d所示。
图6 蚕茧轮廓提取Fig.6 Contour extraction of cocoon
图7 蚕茧形状还原Fig.7 Shape reduction of cocoon
为保证掩膜分割后的蚕茧形状完好,对图6d中的蚕茧轮廓进行区域填充,如图7a所示。图7a中存在较小的椒盐噪点,对填充后的图像进行开运算,去除噪点,如图7b所示。把蚕茧图像近似为椭圆,对图7b的蚕茧连通域分别进行中心点提取,测量蚕茧两个半轴的长度,并计算蚕茧的表面积A。把第n个蚕茧的表面积记为An,单位cm2。
2.3 黄斑茧检测算法
累积颜色直方图表示图像中每一种颜色与其出现频率间的统计关系[17],频率计算公式为
Pi=ni/N
(2)
式中Pi——第i个颜色子空间出现的频率
ni——第i个颜色子空间的像素数
N——图像的总像素数
HSV颜色空间包括3个要素,其中,H分量代表色调,S分量代表饱和度,V分量代表亮度[18]。作为一种面向视觉感知的颜色模型,HSV色彩空间比RGB色彩空间更符合人的视觉特性[19]。因此,选择在HSV颜色空间建立累积颜色直方图。颜色直方图中将H分量非等间隔量化为16级,表示为Hm(m=1,2,…,16)。S分量非等间隔量化为4级[20],表示为Sn(n=1,2,3,4)。其中H3、H4和H5分量区间代表黄色和绿色,S2的归一化量化区间为[0.15, 0.4],V分量为亮度分量,对颜色分辨无明显影响,故不予考虑。正常蚕茧如图8a所示,正常蚕茧的累积颜色直方图如图8b所示,根据GSBW40001选择样本黄斑茧,如图8c所示,其累积颜色直方图如图8d所示。
图8 蚕茧累积颜色直方图Fig.8 Accumulative color histograms
设某幅分辨率为M像素×N像素的图像,其像素总数为Y0,Y0=M×N,图像中的像素点为pl(I,J)(1≤I≤M,1≤J≤N)。
对比图8b和图8d,正常蚕茧的Hm-S2直方图在H3、H4、H5的量化占比均小于0.1,且波动较大,黄斑茧的Hm-S2直方图在H3、H4、H5量化占比均超过0.1,且变化平缓。同时,黄斑茧污斑颜色大都表现为黄色和浅绿色,因此可将Hm-S2直方图在H3、H4、H5的频率之和与黄斑颜色阈值T的大小关系作为判定蚕茧是否为黄斑茧的标准。
在GB/T 9111—2015《桑蚕干茧试验方法》中规定,黄斑污染总面积超过0.5 cm2的蚕茧为黄斑茧,则判断某个蚕茧为黄斑茧的阈值T为
(3)
式中A——蚕茧表面积,cm2
判断蚕茧为黄斑茧方法为
(4)
黄斑茧检测的步骤为:
(1)对正面二值图像进行连通域标记,按标记顺序计算各连通域的外接矩形,同时提取外接矩形在蚕茧正面原始图像和正面二值图像中的对应区域,二者做掩模运算后得到单个蚕茧的正面彩色图像,把蚕茧近似为椭圆,外接矩形的长、宽为蚕茧的长轴和短轴,进而计算每个蚕茧的表面积。
(2)对单个蚕茧的正面彩色图像建立累积颜色直方图,并将Hm-S2直方图在H3、H4、H5的量化占比之和作为黄斑颜色分量占比。
(3)若某个蚕茧黄斑颜色占比超过阈值T,则直接判为黄斑茧,保存当前正在检测的蚕茧正面二值图像连通域中心坐标作为黄斑茧坐标,开始下一个蚕茧的污染判断;若蚕茧正面彩色图像的黄斑颜色占比未超过阈值,则提取外接矩形在蚕茧反面原始图像和蚕茧正面二值图像中的对应区域,二者做掩模运算后得到单个蚕茧的反面彩色图像。对反面彩色图像建立累积颜色直方图。若黄斑颜色分量占比不小于阈值,则判为黄斑茧,保存当前正在检测的蚕茧正面二值图像连通域中心坐标作为黄斑茧坐标;若黄斑颜色分量的占比小于阈值,则判为正常蚕茧,开始下一个蚕茧的污染判断。
方格蔟正面和反面的黄斑茧整体检测结果在正面呈现,如图9所示,能够较准确地检测出方格蔟中的黄斑茧。对单张方格蔟图像进行分割和黄斑茧检测的平均时长约为1.271 s。
图9 黄斑茧整体检测结果(正面)Fig.9 Result of stained cocoon detection
茧衣上附有少量桑叶梗或碎桑叶,如图10红色标记1和2处,会导致正常蚕茧误判为黄斑茧,本文算法可以在去除茧衣时,将桑叶梗或碎桑叶的影响一并去除,降低黄斑茧的误判率。
图10 茧衣附有桑叶梗的方格蔟图像Fig.10 Out floss image of cocoon with leaf stalks
图11 未识别蚕茧聚类放大图Fig.11 Enlarge diagram of unidentified cocoon
经过试验发现,当黄斑点位于蚕茧边缘时,与图像背景融合,FCM处理过程中,黄斑部分被当作背景,如图11所示,因此本文算法对黄斑部分位于边缘处的蚕茧检测效果不好,图12中红色标记处和图10中红色标记3处是未能正确检测的黄斑茧。
图12 未能检测到的黄斑茧Fig.12 Stained cocoon without detection
3 试验与结果分析
在山东农业大学马庄蚕桑实验站,使用基于机器视觉的直角坐标式方格蔟自动采茧机,对方格蔟进行污黄斑茧检测、视觉测量定位和黄斑茧剔除验证试验。基于机器视觉的直角坐标式方格蔟自动采茧机样机如图13所示。
图13 基于机器视觉的直角坐标式方格蔟自动采茧机样机Fig.13 Mock-up of Cartesian coordinate automatic cocoon harvestor based on machine vision
3.1 黄斑茧检测正确率
检测正确率[21]是评估信息处理领域相关技术的经典评价指标。检测正确率说明系统排除干扰、减少噪声的能力,将其运用到黄斑茧检测性能评价中,其定义为
(5)
式中p——检测正确率,%
Nc——检测正确的黄斑茧个数
Nt——方格蔟黄斑茧总个数
3.2 黄斑茧视觉测量与定位
机器视觉系统涉及世界坐标系、摄像机坐标系和图像坐标系。方格蔟固定在工作台上,方格蔟竖直方向固定不变,因此方格蔟蚕茧坐标只由水平面坐标决定。通过摄像机标定参数,可以把摄像机拍摄的方格蔟蚕茧图像坐标转换为世界坐标系下的标定坐标[23],实现方格蔟蚕茧物理空间坐标的视觉测量。
设第k个黄斑茧中心点图像坐标为Cck(uk,vk),世界坐标原点所对应的图像坐标为Oc(u0,v0),则第k个黄斑茧的标定坐标Cwk(xwk,ywk)为
(6)
采用特征点的世界坐标与标定坐标之间的欧氏距离作为标定偏差D。则标定偏差D为
(7)
式中 (Xi,Yi)——世界坐标
(xi,yi)——标定坐标
图像坐标系以图像左上角第1个像素点作为原点,世界坐标系则以图像左上角第1个蚕茧的中心点为原点,方格蔟中M个黄斑茧中心点作为已知点,使用游标卡尺分别测出M个已知蚕茧中心点的世界坐标(Xi,Yi)(i=1,2,…,M)。已确定M个蚕茧中心点在图像上的坐标(ui,vi),通过式(6)分别计算得到M个已知点的标定坐标(xi,yi),通过式(7)分别计算M个蚕茧中心点标定坐标与世界坐标的标定偏差,将M个标定偏差的最大值作为该方格蔟的定位偏差。
3.3 黄斑茧检测及剔除结果分析
随机选取10张方格蔟,每张方格蔟可营茧169个,共计1 690个蚕茧左右,使用基于机器视觉的直角坐标式方格蔟自动采茧机,进行黄斑茧检测、视觉测量定位和黄斑茧剔除试验,试验效果如图14所示。
图14 黄斑茧剔除效果图Fig.14 Effect diagram of removing
对图9中检测到的黄斑茧进行剔除,剔除效果如图14b所示,红色标记处的黄斑茧已被成功剔除。对试验数据进行整理,结果如表1所示。
表1 蚕茧检测正确率及定位偏差Tab.1 Correct ratio of cocoon detection and deviation
由表1可得,随机选取的10张方格蔟中黄斑茧平均检测正确率81.2%,能较准确检测出方格蔟中的黄斑茧,最大定位偏差3.0 mm,满足黄斑茧剔除定位精度的要求。
4 结论
(1)使用基于模糊C均值聚类及HSV模型的黄斑茧检测算法,对方格蔟中的黄斑茧进行检测。其中,模糊C均值聚类算法消除蚕茧茧衣及方格蔟边框对蚕茧分割的影响,通过掩膜对单个蚕茧进行提取,并利用HSV颜色直方图中黄斑颜色分量占比是否超过黄斑茧检测阈值来检测蚕茧是否为黄斑茧。试验结果表明,方格蔟黄斑茧平均检测正确率为81.2%,对单张方格蔟图像进行分割和黄斑茧检测的平均时长为1.271 s。
(2)本文算法对方格蔟上附有的桑叶梗或碎桑叶具有较好的处理效果,可以避免因桑叶梗或碎桑叶的遮挡而造成黄斑茧的误判,但该算法对黄斑位于边缘处的蚕茧检测效果不好。
(3)使用直角坐标式方格蔟自动采茧机对检测到的黄斑茧进行定位剔除试验,黄斑茧定位准确,最大定位偏差为3.0 mm,样机运行平稳,剔除效果良好。