基于HSV 和骨架提取的水稻种子芽根长度自动化测量方法研究
2023-05-13王成城马启良
王成城 马启良
(1湖州师范学院信息工程学院,浙江湖州 313000;2湖州师范学院信息技术中心,浙江湖州 313000)
水稻种植历史悠久,是我国主要的粮食作物之一。水稻种子的高质和高产对保障我国粮食供应安全具有重要作用[1]。种子活力关系到水稻的产量和质量。因此,测定种子活力,筛选出高活力种子,对于确保播种种子质量和实际田间出苗率具有重大的生产意义。种子发芽速度测定是种子活力检测的重要手段之一,具体包括幼苗的发芽率、生长速度,是评判种子质量的重要指标[2-3]。因此,准确地测定种子发芽率、每日幼苗长度、根长度,有助于精确地评估种子质量,但是以上指标都需要人工进行测定,繁琐、费时、主观因素大,所以需要一种客观的、快速自动化的测定方法。
图像处理技术作为一种无损检测技术,在植物病虫害检测、果蔬分级分类、农作物长势测定等方面具有良好的应用前景[4-5]。Sako等[6]开发了一个生菜种子活力自动评估系统,利用图像处理技术从幼苗形态特征中获取了各种参数,并生成了表示种子活力指标的数值;金涛等[7]开发了种子幼苗长度辅助测量系统,为种子质量检测提供了一种新的思路;AF Hoffmaster 等[8-9]基于图像处理技术实现了自动评估3 日龄大豆和玉米幼苗的活力;杨红云等[10]为了监测自然生长状态下的水稻叶片,采用手势交互插值法和骨架提取法得到了水稻叶片几何形态参数。金沙沙等[11]提出了一种基于端点删除的剪枝方法,实现了对小麦、水稻的芽长和根长的测量。这些研究为本文对水稻种子发芽中的芽长根长自动化测量提供了研究思路。
本研究通过采集种子发芽图像,综合运用图像分割、形态学、骨架提取与最大路径搜索等技术,实现芽长与根长的自动检测,并与手工测量方法进行对比,以验证本研究算法的有效性。
1 材料与方法
1.1 样本获取及实验环境
为采集试验所需图像,对水稻种子进行培养,选取发芽10~14 d的100株水稻幼苗作为研究对象,并将100 株幼苗平均分成10 组,按从左到右依次排列在黑色吸光绒布上,采用工业级相机固定高度并垂直于黑色绒布进行拍摄,获取幼苗图像。
在64 位win10 操作系统下,CPU 为AMD Ryzen 7 4800H、主频2.90 GHz、内存16G,基于pycharm 开发环境,实现了相关算法的研究。
1.2 研究方法及原理
1.2.1 阈值分割。阈值分割是为了将植株从背景中提取出来,只保留需要的植株图,用于后续提取芽长和根长的形态特征[12]。本文使用常用的阈值分割算法大津法(OTSU),OTSU是一种图像自适应二值化分割算法,由日本学者大津于1979 年提出[13]。OTSU是图像分割中阈值选取的最佳算法之一,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用。阈值分割可用式(1)表示。
式中:T为阈值,f(x,y)表示图像中坐标为(x,y)的像素点的灰度值,m(x,y)是图像阈值分割之后和在(x,y)处像素灰度值。
1.2.2 基于HSV 的颜色特征提取与分割。在计算机中,色彩空间是描述颜色的一种特定方式,RGB是应用最广的色彩空间,而HSV是基于人类对颜色感知而提出的色彩空间。HSV 是色调(Hue)、饱和度(Saturation)和明度(Value)简称,能够直观表达颜色的色调、亮暗程度和色彩的浓度,方便进行颜色的对比,且更容易追踪到某种特定颜色的目标。
设(R、G、B)是某个颜色在RGB单位化立方体中的坐标,取值范围为[0,1],设max表示R,G和B中的最大者,min表示最小者,则从RGB彩色空间到HSV彩色空间的计算公式如式(2)、(3)和(4)所示[14]。
水稻种子幼苗图像中芽和根的颜色明显区别于种子的颜色,所以可以根据颜色确定种子的位置并分割芽和根[15]。HSV 中的S与人眼的感知密切相关,它表示颜色的纯度,受光照影响较小,可采用S去识别根区域,而H可显著区分芽与其他植株部分。因此,对种子幼苗图像进行HSV 的分析,可以识别出幼苗的绿芽区域和根区域。芽区域分割可用式(5)表示,根区域的分割可用式(6)表示。
式中,h1是芽颜色最小色调值,h2是芽颜色最大色调值,s1是根的最小饱和度值,s2是根的最大饱和度值。
1.2.3 骨架提取与最长路径。骨架是基于物体形状特征的简化描述方式,是一种良好的形状表达方式,简洁、准确的骨架能够表现物体的整体结构、形状拓扑和几何性质,与图形图像的轮廓相比,其在形变和噪声影晌下更为稳定,且骨架可以降低物体后期描述和度量的难度。因此,为了测量芽与根长度,可提取幼苗的骨架图进行统计分析。
对种子幼苗骨架图中出现的多条根分支和叶分支,选取其中最长的根骨架和芽骨架。以8 邻域来对骨架进行分析跟踪,设P(x,y)为任一像素点,记中心点为P1,其邻域的另8 个点顺时针绕中心点分别记为P2、P3、P4、P5、P6、P7、P8、P9,位置关系如图1所示。
当P1(x,y)点的邻域仅有一个值不为0,该点骨架端点,当P1点的8 邻域有2 个以上点的值不为0,该点为骨架节点,而8邻域内有且仅有2个点的值不为0,则该点为骨架连接点。
基于DFS 搜索算法,采用8 连通链码逐步实现对植株骨架的最大路径提取,遍历骨架图像上的每个像素点,具体算法描述如下:①首先遍历每株幼苗骨架,找到满足8 邻域之和为1 的骨架点,确定每一粒种子骨架的初始端点;②创建一个栈,并且把初始端点放入其中,并且设初始最长长度max_L 为0、最长路径坐标数组max_array;③取出栈顶的一个像素点进行八邻域搜索,逐个搜寻把各个像素点的链码存入数组Freeman 中,并且令扫描过的像素点的像素值为0;④如果跟踪到骨架节点,则记录该节点的所有分支的起始坐标,并且压入栈中,作为下次跟踪起始点,并且储存跟踪到该节点为止的长度以及记录当前所有坐标放入数组。如果是骨架端点,则计算跟踪到端点的整个链码(所跟踪的分支)的长度L,然后与max_L 比较,如果L>max_L,则把L 的值赋值给max_L,并且更新当前最大路径坐标数组max_array。⑤判断栈顶是否为空,若栈非空,则继续从栈顶取出一个像素点的坐标,跳转到步骤③,若没有,则输出最终结果max_L以及max_array。
1.2.4 长度分析。本文利用8方向链码跟踪骨架进行长度计算。用8方向链码和特定值(01234567)标记所跟踪的像素,对于8 连通的邻域点有8 个方向,这8个方向在编码的时候,用0、1、2、3、4、5、6、7来表示。而链码则是初始点加有一串带有方向码构成的一组数列,称之为Freeman 链码。设中心点坐标为(x,y),则该点8邻域的八个像素坐标分别是:(x,y-1)、(x+1,y-1)、(x+1,y)、(x+1,y+1)、(x,y+1)、(x-1,y+1)(x-1,y)、(x-1,y-1),且它们的链码依次为0、1、2、3、4、5、6、7。
因此,只要存储起始坐标及后续点的链码值,就可以得到路径上的所有坐标值,并且存入数组记为L1。由于发芽图的骨架曲线较多,如果每个都进行计算会出现误差,算法计算的长度大于实际的长度。因此,本文在计算长度时候,从坐标数组中每五个取一个坐标值生成一个新的数组记为L2,并且判断是否加入了L1中的最后一个坐标,若否则把最后的坐标加入新数组L2,进行长度计算降低误差。设A、B两点坐标分别为(x1,x2),(y1,y2),则两点之间的欧式距离公式如式(7)所示:
在数组L2中取出所有的坐标进行计算长度,通过累加求和公式(3)进行总长度计算。
式中,n表示L2数组中有多少段线段(即坐标点总数减去1后的值),而(AB)i表示第i个线段长度。
1.2.5 结果评价。将本文方法测量的水稻种子幼苗芽长与根长与手工软件测量结果进行对比分析,进行最大误差和百分误差(Percentage error)计算,如公式(9)所示。并且计算两个变量间的相关系数,如公式(10)所示。
式中,x是本文方法得出的测量值,y是手工测量值,xˉ和yˉ是平均值。
2 结果与分析
2.1 图像分割和去噪
OTSU 算法对发芽图像进行分割的结果如图2A 所示,可以看出根尖处会出现不连续现象且二值图像中有噪声点,为了让其更具连通性和平滑效果,对图像进行形态学方法处理[16-17],先后进行了膨胀和腐蚀运算,通过设定阈值,对小于该阈值的小连通区域噪声进行去除,处理后的图像如图2B 所示。针对二值图像根形成的孔洞,为了保证像素点的连续性以及避免骨架提取时出现闭环,采用remove_small_holes 方法对空洞进行处理,结果如图2C所示。
图2 图像分割结果
2.2 骨架提取
通常骨架提取算法要满足以下几点要求:保证原图像轮廓的连通性、原图像轮廓的中心线为骨架线、细化后的骨架线宽度为1 个像素、细化速度要快[18]。本研究分别运用thin、skeletonize 骨架提取算法对单个水稻种子幼苗的二值图像进行细化。通过细化获得的两个骨架特征如图3 所示。对比2 种骨架提取算法,通过局部分支点的放大,可以发现thin算法在分支处无法保留细化之前图像的分支角度,skeletonize算法效果较好。
图3 2种骨架提取算法效果对比
2.3 最长路径搜索
为了计算芽和根的长度,在得到骨架的基础上,利用DFS 遍历算法对骨架图进行遍历,找出最长骨架线,并将最长骨架线与原种子幼苗图像合并显示,如图4 所示,可以发现提取的最长骨架线能够很好匹配幼苗图像。
图4 最长路径骨架提取结果
2.4 种子定位与分割
利用种子芽和根在HSV 空间表现的特征,分别识别种子的芽区域和根区域,去除芽区域后的图像如图5A所示,去除根区域的图像如图5B所示,图5A和图5B 共有的部分即为种子区域,如图5C 所示。得到种子区域二值图像后,提取种子区域轮廓,并获得质心坐标,通过质心坐标实现对幼苗芽根主骨架先的分割,分别统计芽和根的长度。
图5 种子区域选择结果
2.5 数据分析
使用软件Adobe Illustrator 2019,分别统计水稻种子实验图像中芽和根的像素个数作为标准参考值,与本文方法的测量值进行比较,俩组数据的根长相关系数为0.997,芽长相关系数0.998。这与图6中所有点均在1∶1线附近是一致的。经统计分析,100株幼苗图像根长的平均百分比误差为1.57%,芽长的平均百分比误差为1.48%。产生误差的原因可能有,有些种子的根数量较多会形成闭环,在轮廓内部填充后的骨架提取步骤里会导致算法采用的是中心线,而不是主根;以及较粗的芽在细化时也会产生偏移,导致计算长度不一致;在分割芽长和根长的时候,因为种子萌发点不是在种子中心,所以用种子中心去分割芽和根区域也会产生一定的误差。
图6 芽、根长度的手工测量值与本文方法测量值比较
3 结论
目前对种子发芽时的根长和芽长的自动测量方法研究较少,本文使用的水稻种子幼苗图像根长和芽长的自动测量方法是有效的,且芽和根长度的平均误差在2%以下,能够满足农学应用的需要。
该方法具有计算速度快、自动化程度高等优点,具有一定的适用性,可为试验室种子发芽试验中芽与根长度测量提供参考,也可扩展到其他具有相似的谷物作物种子幼苗(小麦、玉米、马尾松)的检测与分析,具有一定的推广价值。