APP下载

基于机器视觉的粘连米粒图像分割算法研究

2018-07-12黄肖琳余杭州葛光涛

中国粮油学报 2018年6期
关键词:轮廓线米粒像素点

王 粤 黄肖琳 余杭州 葛光涛

(浙江工商大学,杭州 310018)

大米的外观是大米品质的一项十分重要的指标,也是影响大米市场价格的重要因素。影响大米外观最重要的几个因素有大米的碎米率,大米的垩白米粒率和黄米粒率。传统的人工检测由于效率低,准确率低已经不能满足我们的需要,近几年,基于机器视觉的大米质量检测已成为研究的热点。由于在利用机器视觉方法检测抽样米粒的各种外观指标时,米粒是随意放置在载样台或传送带上的,有些米粒会不可避免地互相碰触,由此造成在图像预处理时获取的米粒轮廓线互相粘连在一起,从而在后续的检测中粘连在一起的多颗米粒会被误判为是一颗米粒,致使大米外观指标如碎米率,垩白米粒率,黄米粒率的检测都出现错误。因此,利用基于机器视觉的米粒自动分割算法来分割粘连在一起的米粒就非常必要了。Shatadal等[1]根据数学形态法分割粘连的籽粒,但适用于单点接触的籽粒。ISEN等[2]根据曲率识别接触点,且根据最短距离判断接触点对,但该算法容易误判接触点对。凌云等[3]基于面积阈值识别单个和粘连的籽粒,并利用形态学方法分割粘连米粒。荀一等[4]利用腐蚀膨胀处理,提出了一种基于公共区域和籽粒轮廓寻找分割点的方法。该算法在检测较小的圆形籽粒粘连时,易发生误判识别成单个籽粒。杨蜀秦等[5]提出了一种基于主动轮廓模型的分割算法,将通过膨胀算子获得的区域作为初始曲线,在主动轮廓模型的指导下,曲线向籽粒边界演化,最终实现米粒分割。文献[6]则利用曲率来检测分割点,但算法只能用于检测简单的粘连,复杂粘连不能正确分割。刘庆杰[7]采用轻微振动玻璃板的方法,对抖动前后的两幅图像去背景后求解光流矢量,最后结合归一化割法实现水稻害虫的粘连分割。戴丹[8]设计了一种改进分水岭算法,利用大津阈值分割及分水岭算法实现粘连籽粒的分割。于建宁[9]以粘连米粒为对象,分别以间隔90°的4个方向和不同高度的光源采集大米图像,然后对采集到的一系列图像用LOG算子进行边缘检测,综合不同条件下的边缘,得到粘连分界线。洪浩等[10]将GA算法与最大类间方差的结合引入图像分割。P.Lin等[11]提出了通过寻找轮廓曲线的曲率极小值点来确定凹点,凸点,并认定其为粘连点,然后实施分割的算法。但该算法计算复杂度较高,且轮廓线中的曲率极小值点不仅仅只有米粒粘连点,米粒长度方向的两个端点也会是曲率极小值点,还有米粒轮廓线上的非平滑的一些转角稍陡峭的点都很容易被误判为粘连点。闫磊等[12]首先使用分水岭算法对粘连颗粒进行分割,接着提取各个颗粒的形态特征和颜色特征,然后计算马氏距离,并比较它们的马氏距离与设定的阈值,来识别混杂在谷物中的杂质,该算法计算复杂度较高,且在复杂米粒粘连时分割精度不高。

本研究提出了一种新的粘连米粒的分割算法,首先对采集米粒图像进行预处理,获得米粒的轮廓线,然后逐个检测内外米粒轮廓线上的各像素点的曲率方向,当外轮廓线上的像素点曲率方向指向米粒外部,而内轮廓上的像素点曲率方向指向内轮廓内部时可以认为检测到了粘连接触点,然后按照各接触点的曲率方向及距离可将检测到的接触点一一配对成最佳分割点对,从而实现粘连米粒的准确分割。

1 材料与方法

1.1 实验设备

为了有效检测大米的碎米率,垩白米粒率,黄米粒率等大米的质量指标,我们开发了基于机器视觉的大米外观质量检测设备,该设备示意图如图1所示。镜头采用24位真彩色高清摄像镜头,分辨率在1024×768及以上,并配合环形光源,能采集到准确不失真清晰的数字图像信息。接通电源,通过放置在主板插槽中的CF卡上的软件程序,控制摄像机镜头采集米粒数字图像信息,并对其做相应的处理。米粒放置托盘和卡槽可以让托盘随时抽出来放置检测样本及退回装置内部,托盘被刷成黑色。

图1 大米外观质量检测设备结构示意图

图2为设备前面板示意图,通过分析图像信息,检测放置在面板的米粒样本是否有粘连,若有粘连采用本研究的算法进行分割之后,可继续计算碎米率,垩白米粒率,垩白度,黄米粒率等质量指标[13],并将结果显示在LED液晶触摸显示屏上。显示屏上也可以分别显示拍摄的原始图像,粘连米粒进行切割之后的图像,检测出来的垩白米图像及垩白米的垩白部分二值图像,碎米图像及黄米粒图像等。

图2 前面板示意图

1.2 实验材料

为了进行粘连米粒分割,我们选用了市场上比较常见的米粒作为实验类型,将其随意放置在试验托盘上,米粒互相之间有粘连。

图3 米粒实验样本

1.3 实验方法

1.3.1 粘连米粒图像预处理

首先将摄像头拍到的米粒RGB图像转换成灰度图像,然后做3×3中值滤波去除噪声,之后采用类间最大方差法(OTUS)计算自适应分割阈值,并按照计算出的阈值将灰度图像变换成米粒为白色,背景为黑色的二值黑白图像,再按照区域连通法获得米粒的轮廓图像,若米粒无粘连,获得的轮廓线就是一颗米粒的完整轮廓线,且其轮廓线上的每个点的曲率方向都指向轮廓线内部,若米粒有粘连,处理后获得的轮廓线有两种情况,一种是粘连米粒会联通成一个封闭的外轮廓线,其内部无小轮廓线,如图4a所示。另一种则是联通成一个封闭的外部轮廓线,在其内部还包含了一个或多个小的封闭的内部轮廓线的内外轮廓线组合,如图4b所示,该样本原图像为图3样本2,其处理后获得的轮廓线有内外两层,外轮廓线的内部还有3个小的封闭的内轮廓线。这两种米粒轮廓若不经过进一步的图像分割的话就会在后续的处理中造成检测错误。本研究中,我们采集了200组以各种不同方式多个米粒粘连在一起的米粒粘连图像,并对这些不同的粘连米粒的粘连点的位置信息进行综合分析后,发现了两个特征:第一,外轮廓线上的粘连点的曲率方向指向米粒轮廓线的外部,而内轮廓线上的粘连点的曲率方向指向内轮廓线内部,且对应的一对粘连点其曲率方向之间的夹角为钝角。第二,粘连点对之间的距离是在满足第一条件基础之上最短的距离。由此,提出了本研究的分割算法。

图4 内外轮廓线上米粒粘连点特征示意图

1.3.2 米粒轮廓线上粘连点的检测

首先,根据上一节获得的内外轮廓线,逐点搜索每一个封闭轮廓线,图4中的a封闭轮廓线只有外轮廓,b轮廓线则由封闭的外轮廓线及内部3个封闭的内轮廓线组成,因此,我们采用如下策略进行搜索:若只有外轮廓则只搜索外轮廓线,若外轮廓线内部还有内轮廓线,则也要逐一搜索。搜索时获取当前像素点S1的向前第五个点S11的坐标值S11.x和S11.y以及向后第五个点S21的坐标值S21.x和S21.y,然后可以计算出这两条线S1S11及S1S21的斜率:

(1)

(2)

并由此获得两条线之间的夹角θ:

(3)

θ=acos(X)×180/π

(4)

X为夹角θ的余弦值,公式(4)求出的夹角θ只是两条直线S1S11及S1S21之间形成的锐角,而在轮廓线逐点搜索过程中直线S1S11及S1S21之间可能是锐角也可能是钝角,因此,需要根据S1S11及S1S21线段在不同的象限的不同情况,分别求得这两条直线的夹角θ,如表1所示。

表1 两条直线间夹角θ的求法

之后还需要确定S1点的曲率方向上离S1点距离15个像素的像素点W1,具体的求法如下:

从图5的示意图可以知道,需要求得S1的曲率方向与x轴的夹角δ,然后根据公式可以求出像素点W1的x,y坐标W1.x及W1.y:

δ={atan[fabs(k1)]+atan[fabs(k1)]}×

180/2π

(5)

W1.x=S1.x+ceil[15×cos(δ)]

(6)

W1.y=S1.y+ceil[15×sin(δ)]

(7)

式中:S1.x和S1.y分别是S1点的x和y坐标;ceil为返回小数向上最接近的整数。

图5 S1点曲率方向上W1点示意图

对于夹角δ及W1的坐标的求法,由于S1S11及S1S21线段若在不同的象限,求法则有所区别,如表2所示。

接下来,判断米粒的粘连点,需要满足如下条件: ①外轮廓线上的粘连点其对应的W1像素点在封闭外轮廓线的外部,即该点的曲率方向指向米粒的外部,而内轮廓线上的粘连点其对应的W1像素点则落在封闭内轮廓线的内部,意味着该点的曲率方向也指向米粒的外部。② 夹角θ>阈值Dθ,这里设定阈值Dθ的原因是在搜索粘连点时发现,若只满足条件1会导致轮廓线上某些非粘连点的细小尖锐,凹凸不平的陡峭点,也被认定为粘连点,而这些点所对应的夹角θ通常都是一个很小的夹角,由此,设定了阈值Dθ来排除掉这些非粘连点,本研究中,设定的Dθ为35。根据这两个条件,在遍搜米粒的轮廓线时就可以判别该米粒是否有粘连,若是没有粘连的米粒轮廓,则所有点对应的W1像素点都指向封闭轮廓线的内部,而有粘连的米粒,其粘连点则会满足上述的两个条件,且粘连点总数应该是一个偶数。

表2 两条直线间夹角θ的求法

注:g1=atan(fabs(k1))×180/π;g2=atan(fabs(k2))×180/π。

1.3.3 粘连点对的配对

在1.3.1节已经提出了粘连点对的配对需要满足的两个条件: 1)粘连点对的曲率方向之间的夹角形成一个钝角。2)粘连点对的两像素点S1,S2之间的距离是最小的。

图6 内外轮廓线上米粒粘连点对曲率示意图

由此,提出了检测粘连点对的曲率方向是否配对的算法:

首先定义了如图7所示的曲率归一化示意图,按照前面计算出的角度δ,将每一个粘点的曲率方向归一到了如图7所示的0~7,共8个方向,比如,当曲率方向在第一象限,且22.5<δ≤67.5,可以将其归一到1方向。当曲率方向在第一象限,且夹角δ≤22.5的范围内,可以将其归一到0方向。依次类推,我们就可以将所有的粘连点的曲率方向做一个归一化,而互相配对的粘连点则必须满足归一化后的两个方向之间的夹角不能小于135°。由此,在匹配粘连点对时,只需要保证若两个粘连点的曲率方向满足上述要求,且其两点之间的距离最短,就可以确定其为最佳匹配粘连点对。

图7 粘连点曲率方向归一化示意图

1.3.4 粘连点分割

确定出粘连点对中每个粘连点的前第3个及后第3个轮廓像素点(两个粘连点共4个像素点),判断这4个像素点的位置,将4个像素点连接成两条不相交的直线,然后将米粒轮廓二值图像上各边界点及其前后第一、第二像素点删除掉,轮廓线分割即可完成,之后则可以根据轮廓线信息及原图像信息,进一步实施米粒个数,垩白米粒率,黄粒米粒率等米粒外观质量指标的进一步检测。

2 结果与分析

为了验证算法的有效性,首先对1.2节给出的4种典型样本按1.3.1节提出的方法做了图像预处理,获得了米粒图像的轮廓图如图8所示。

图8 米粒样本图像轮廓线

对这些样本按照1.3节的分割算法对其进行了分割,为了清楚地显示分割效果,做了分割后的轮廓线图,以方便与原米粒轮廓线作比较,如图9所示。

图9 米粒样本分割后轮廓线

由图8的样本轮廓线可以看出,样本1为11颗米粒互相粘连,样本2为7颗米粒互相粘连,样本3为多个2~7个互相粘连的米粒,样本4为多个2~26颗米粒互相粘连在一起,依据本分割算法,均可以准确地进行分割,如图9所示,与文献[5]中只能分割2~5个粘连点的结果相比,有较强的优势。

另外,由于本研究提出的算法只需要将预处理获得的米粒图像的内外轮廓线逐个辨识一次,就可以获得准确的粘连点对,并不会有算法上的迭代收敛问题,因此,从运行速度上来说相对于文献[5]有较大优势,如表1所示。

可以看出,本研究的分割算法准确率相对于其他文献中提到的算法,分割准确率有较明显的优势。同时,相对于文献[5,12]中所述,由于其算法在分割过程中,使用了形态膨胀和细化,造成米粒边缘信息丢失,由此,分割后的米粒图像在像素级精度上有所降低,继而造成后续的碎米率等米粒外观指标计算时精度随之降低。本研究提出的算法则避免了上述问题的存在,直接在搜索到粘连点对后进行准确分割,使得米粒边缘信息尽可能多地予以保留,保证了后续的米粒外观指标计算的精度不会降低。

表3 本研究算法与文献[5]比较

3 结论

本研究提出了一种通过搜索粘连米粒内外轮廓线上的各像素点的曲率方向特征的方法来获得粘连米粒的粘连点,并且根据粘连点的曲率伸展方向和粘连点之间的距离,计算出最佳粘连配对点,从而实现粘连米粒的精确分割。本算法不采用迭代算法,且搜索复杂度较低,与目前已提出的其他分割算法相比有快速,精确度高等特点,不仅适用于粘连大米米粒的分割,同样也适用于其他农作物籽粒的实时在线或离线分割,具有很强的实用性,在产品应用中有很广阔的前景。

猜你喜欢

轮廓线米粒像素点
立体图像任意剖面轮廓线提取方法仿真研究
基于局部相似性的特征匹配筛选算法
感恩“小米粒”
基于像素点筛选的舰船湍流尾迹检测算法
基于canvas的前端数据加密
米粒很怕黑
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
一种有效的秦俑碎块匹配算法①
第十章 米粒的错误
第十章 米粒的错误