高攀,钱宇珊,王佩玲,吕 新
(1.石河子大学信息科学与技术学院,新疆石河子 832000;2.石河子大学农学院,新疆石河子 832000)
【研究意义】棉花的病害是导致棉花产量减少的重要因素,当前棉花病害监测主要通过棉田观察棉花叶片,基于经验或部分结合现代实验室检测手段实现对病害的监测。这些传统的病害监测方法费时费力,且手段存在滞后性。【前人研究进展】近年来,国内外学者探索使用图像处理技术以实现棉花病害的识别[1-4],这些研究中都会涉及到图像分割技术。关于作物叶片分割方法的研究也有很多[5-12],但主要集中在实验室状态下的图像分割算法的研究,一般是先转换为灰度图再做进一步的处理,包括腐蚀,膨胀,开运算,闭运算,滤波,二值化,边缘检测,阈值分割。实验室状态的图像分割特点是背景单一,噪音少,在这一基础上采用的分割算法效果都比较明显[5,8],但在实验室条件下的研究局限性也比较明显,图像需要通过人为或者器械对采集的叶片进行二次收集[9]。为了快速高效的获取棉花病叶,图像一般是从棉田通过摄像机、无人机镜头直接拍摄而来。直接拍摄的图像无法直接使用实验室状态下的分割方法,而需要进行棉田复杂背景下棉花植株提取和基于植株的棉花叶片分割。该研究以棉花黄萎病视频关键帧图像为研究对象,通过颜色空间特征将土壤背景与植株分离,从关键帧图像中提取植株,并将获得的无背景植株经过腐蚀膨胀处理,去除棉花植株茎秆,最终通过图像分割算法分离叶片,为下一步利用图像识别算法识别棉花病害提供高质量的样本,为高效准确识别棉花病害奠定基础。
1.1 材 料
棉花叶部病害的颜色、纹理、形状三个特征主要表现在叶部,所以试验选用在棉田随机拍摄棉花的棉花植株冠层图像,图像背景复杂,噪声较多。拍摄原始图像20幅,3幅见图1。
图1 原始植株
1.2 方 法
1.2.1 复杂背景下的棉花植株与土壤分离
YIQ颜色空间一般是用于电视系统[4],Y是颜色的亮度信号,I、Q为色差信号,分别携带彩色信息,I分量色彩从橙色到青色,Q分量色彩从紫色到黄绿色。与YIQ颜色空间相比RGB颜色空间在处理亮度信号的有较小的劣势,但RGB色彩空间更易于理解[9]。而图像来源受到光照的影响较小,不需要特意进行亮度信息处理,与YIQ颜色空间相比,棉花植株的RGB颜色特征是十分明显,植株与土壤的RGB特征有着明显的差异,选择RGB色彩空间。
1.2.2 去棉花茎秆
腐蚀膨胀相互组合为形态学处理技术的多种运算,包括开运算,闭运算,形态梯度等[5]。其中,闭运算先进行膨胀再腐蚀,主要是可以消除“小型黑洞”寻找极大值联通区域,其数学表达式为:dist = close(src,ele) = erode(dilate(src,ele)),其中dist表示结果图像,close表示闭运算,src为输入图像,ele为卷积核,运算顺序是先dilate(膨胀)再erode(腐蚀)。开运算则是与闭运算相反,先进行腐蚀再膨胀,其效果是消除独立的图像元素,分离纤细处物体,数学表达式为:dist = open(src,ele) = dilate(erode(src,ele)),参数与闭运算相同。图2
图2 闭运算与开运算
1.2.3 广度搜索的分割算法
广度优先搜索(Breadth First Search, BFS)是图的一种遍历方法[6]。BFS是一种盲目搜索算法,不考虑位置因素,从根节点开始,按层次逐层向下遍历,直到找到结果。BFS在搜索过程中会将所有节点分为两类,一类是未访问节点,另一类是已访问节点,从根节点开始,其所有子节点放进队列中,每一次访问都从队列中取出一个节点,每一个被访问过的节点会被标记到已访问的容器中,直到队列为空时搜索才会结束。
1.2.4 基于距离变换的分水岭分割算法
分水岭分割法是一种基于区域的图像分割法[7],常用于处理图像中的目标物体是连接在一起的这类问题,通常会取得比较好的效果。距离变换是分水岭分割中常用方法,距离变换就是对二值图像的每个像素点重新赋值为离它最近的背景像素点。与传统分水岭算法相比,基于距离变换的分水岭分割在分割一组相互接触的类圆形物体的情况下作用明显[8]。距离变换的距离类型有[7]:欧式距离(Eudlidean Distance Transfrom)、棋盘距离(Chessboard Distance Transform)、城市街区距离(Cityblock Distance Transform)、倒角距离变换(Chamfer Distance Transform)。其中后三种又称为非欧式距离。
1.2.5 基于轮廓搜索函数的分割算法
findContours函数将轮廓以两层结构保存[9],顶层为连通域的外边缘,底层为内部空圈的外边缘,将每个轮廓做上A、B、C、D、E五个外轮廓区域标记。函数的特点是将二值化的白色区域作为寻找轮廓的区域,如果白色区域能够延伸到了图像边界,则将图像的边界也当作轮廓的一部分。findContour函数的核心思想是对数字二值图像进行拓扑分析,一种算法是确定外边界、孔边界以及他们的层次关系,另一种算法是修改版本,只找最外面的边界[11-12],其中第一种算法基于二值图像确定外边界与孔边界的层次关系,背景为0图像为1。
2.1 土壤作物分离
超绿特征2*G-R-B是一种常用的特征模型[9],利用该特征能够较好的将图像中绿色信息提出来。采用超绿特征模型分割后发现图像中仍存在着大量噪声,分割效果较差。在棉花植株叶片中,植株叶片G分量要高于R、B分量,即G>R且G>B,而相应的土壤主要呈灰白色,其R、G、B三种分量的比例接近,依据R、G、B三种分量的特征,当三种分量计算结果G-R>0且G-B>0时,像素点保持不变,其余的像素点置零,棉花植株作物保留而土壤及其他背景变为黑色。图3
图3 土壤作物分离
2.2 去茎秆操作
由棉田直接拍摄的图像除了有复杂的背景噪音存在以外,植株自身的茎秆对于叶片来说虽然纤细但也是一种噪音,为了实现下一步的棉花叶片分割,须要将茎秆与叶片分离。由于茎秆与叶片有着相似的RGB特征,因此无法通过RGB颜色空间特征去除,但是考虑到植株茎秆纤细,并且与叶片是相连接,是一块连通区域,所以可以通过应用形态学开运算消去极小值区域的连通性实现茎秆去除。
但是实验中发现先腐蚀在膨胀后会明显的增加灰度值大的区域,导致叶片的边缘信息不准确,所以在进行开运算以后必须要去除新增的区域,再重新定位到彩色图像中。于是在开运算以后需要对灰度图和开运算得到的图像进行与与运算,去除膨胀效果增加的区域,得到去除茎秆后的植株图像,具体步骤如下:
将土壤分离后的图3(c)彩色RGB图像转为灰度图像,如图4(a)所示。后续操作如下:
第一步:将图4(a)腐蚀去茎秆后得到如图4(b)所示;
第二步:对图4(b)进行膨胀后得到如图4(c)所示;
第三步:将图4(a)和图4(c)做与运算得到如图4(d)所示定位图,从而去掉图4(a)中的茎秆和图4(c)中膨胀出的多余的区域;
第四步:根据4(d)在图4(a)中定位,通过定位得到去茎秆植株彩图图,如图4(e)所示。
从图4(e)可以看出,经过去茎秆操作后得到的最终结果图里不存在茎秆噪音,而且原叶片也得到保留,有效去除了植株茎秆。图4
图4 去茎秆过程
2.3 基于广度搜索的轮廓提取与叶片分离
图像分割的最终目的是从植株中提取出单独的叶片,在经过去背景,去茎秆后接下来的关键问题如果就是分割出独立的叶片。首先需要找到叶片的轮廓并提取轮廓,然后依据轮廓再定位叶片,最终完成叶片的分离。通过二值化操作成功将叶片与背景分为0与255两极,保留叶片的轮廓信息。图5
图5 图像二值化
图像二值化后再结合边缘检测,寻找叶片的边缘信息,将叶片轮廓提取出来。边缘检测的检测算子很多,常用的是Canny算子,该算子不容易受到噪声干扰,使用两种不同的阈值,可以分别检测强边缘和弱边缘,保留较完整的边缘信息。通过Canny算子进行边缘检测得到叶片的边缘信息。图6
图6 边缘检测
叶片经过二值化、边缘检测后得到的叶片的边缘信息与图相结合,将每一个叶片的边缘看作一个闭环图,为了将每个叶片单独提取,本文在广度优先搜索算法的基础上,利用广度搜索,将图像看做一个二维数组,从(0,0)开始扫描,当遇到某个点的值不为0时,扫描到了叶片轮廓,再以此节点为根节点,将整个轮廓抽象为一个连通图,进行广度搜索。对节点的八个方位进行判断,如果节点未被访问且值不为0则将其放入队列,对每一次访问,都将该节点信息存放至对应的辅助数组中轮廓区域为1,其余位置为0。则广度搜索完毕就表示一个叶片轮廓已经找到且叶片轮廓也完整的存储在辅助数组中。当所有轮廓找完之后,利用辅助数组将每个轮廓与最初始图像进行定位,轮廓内部像素点赋值为原图像素点,其余不变,最终得到单独分离的叶片。图7
图7 广度搜索分割
2.4 基于距离变换分水岭分割
由于基于距离变换的分水岭分割算法对于彼此连接的物体的分割有较好的效果,于是本文在传统的分水岭算法基础上结合距离变换进行叶片分割。分割的过程如下:
第一步:通过threshold将图像转换为二值图像,如图8(a)所示;
第二步:进行距离变换,得到结果如图8(b)所示;
第三步:分水岭变换计算分水岭脊线,如图8(c)所示。
第四步:将二值化图像和分水岭脊线进行逻辑与运算完成分割,结果如图8(d)所示。
在图8(d)中白色区域表示棉花叶片区域,叶片中的黑线则是分水岭脊线,基于距离变换的分水岭分割的确可以分割相互连接区域,但是由于叶片表面的噪声影响,很容易出现过分割现象,导致分割效果并不理想。图8
图8 基于距离变换的分水岭分割
2.5 基于轮廓搜索函数的分割算法
通过将图像彩色分割可以发现,植株中叶子的轮廓是比较明显的。以图4(e)为初始图,对图像运用findContours轮廓搜索函数提取轮廓。先将彩色图像转换为灰度图,再进行高斯滤波去噪,与之前的广度搜索的轮廓提取方法不同,findContours函数可以将图像的拓扑信息保留,所以通过函数计算出来的图像既是二值化图像也是边缘检测图像。函数调用方式为:findContours(Imge,CTurs,HChy,CETR,CHAINs_APPROX),将叶片的轮廓点保存在CTurs中,拓扑信息保存在HChy中,再通过drawContours函数将contours中的轮廓画出并保存。图9
图9 轮廓提取
将提取的轮廓与原图融合定位,进行归一化,完成最终的棉花叶片提取。基于轮廓搜索函数的分割算法实现了目标图像分割,并将每个独立的棉花叶片单独保留在一张图像中,该方法与基于距离变换的分水岭分割算法和基于广度搜索的分割算法相比较适用性更广泛,效果更明显。图10
图10 最终分割
3.1 在植株和土壤分离,提取植株的过程中,选择RGB颜色特征进行分割,但是同时也发现植株的YIQ颜色特征也有一定特点,可以在后续实验应用YIQ颜色空间。
3.2 提出基于广度搜索的分割算法,由于算法适用范围问题而没有采用,后续实验将对算法进行改进以扩大其适用范围。
3.3 对大部分可识别叶片进行了分离,但也存在部分叶片连接的问题,所以后续实验将进一步研究重叠覆盖的叶片的精准分离。
提出一种快速分割棉花植株和棉花叶片分割提取的方法。首先根据棉花植株和土壤背景颜色空间特征通过棉叶的RGB颜色特征将植株与土壤进行分离,再结合形态学处理,将植株的茎秆去除,实现彩色分割,保留棉花叶片部分;然后分别使用广度搜索分割算法、分水岭分割算法和轮廓搜索分割算法,分别对棉花叶片图像进行分割提取。使用三种棉叶分割算法对提取的棉花植株进行棉叶片分割试实验,基于广度搜索的分割算法将叶片轮廓搜索出来与原图融合分离出叶片,该算法对于图像结构简单的情况分割效果较好,但是当叶片在图像边界覆盖较多时,无法达到较好的分割效果;基于距离变换的分水岭分割算法的分割结果同样没有达到预期效果,过分割严重;基于轮廓搜索函数的分割算法将图像中每个叶片的轮廓以点的形式保存,并且保存轮廓间的拓扑关系,通过对应的drawContours函数将每个轮廓画出,再与原图定位,将叶片的完整信息也轮廓结合,实现叶片的分离。达到非常理想的分割效果。