本发明涉及计算机视觉和深度学习技术领域,特别涉及一种基于k均值聚类和宽度突变算法的田间麦穗计数方法。
背景技术:
小麦作为全球主要的粮食作物之一,可为人们提供人体一些必须的营养元素,它的充足供应对保障全球的粮食安全至关重要。麦穗计数是预测小麦产量的一种重要手段,对小麦新品种培育、病损灾害评估和优质生产具有重要的意义。小麦赤霉病是一种常见的小麦病害,主要由禾谷镰刀菌引起的,发病后可以引起整株麦穗籽粒变质,是造成小麦减产的一个重要因素之一,且该病害在全球分布广泛。更为重要的是,禾谷镰刀菌产生的毒素脱氧雪腐烯醇(don)对人畜危害极大,甚至会引起中毒。因此,对小麦赤霉病的无损监测研究意义重大。
对于小麦的无损监测技术有很多种,最常见的就是通过拍摄田间麦穗照片,然后对麦穗照片进行复杂的图像处理,由于麦田中一大片麦穗的图像中,常出现麦穗重叠现象,使得在处理时,常常将多个麦穗识别为一个,或者有些被遮挡了的麦穗都识别不出来,只能大概的对麦穗的面积进行粗略估计,这样,对于麦穗产量估计时就会有很大误差。
技术实现要素:
本发明的目的在于提供一种基于k均值聚类和宽度突变算法的田间麦穗计数方法,能够准确的实现麦穗计数。
为实现以上目的,本发明采用的技术方案为:一种基于k均值聚类和宽度突变算法的田间麦穗计数方法,包括如下步骤:s1、采集麦穗原始图像并对原始图像进行预处理;s2、对预处理后的图像依次进行图像变换、k均值聚类、形态学处理后得到麦穗粗分割图;s3、选择随机森林分类器,用滑窗法对训练集图片滑窗取样,进一步对麦穗粗分割图进行细分割;s4、根据每个连通域中的麦穗区域宽度突变情况统计麦穗数量。
与现有技术相比,本发明存在以下技术效果:由于常规采集到的麦穗原始图像大小不一、麦穗区域不一定居中,所以可以通过预处理将原始图像转换成统一格式的图像以方便后续处理,再通过k均值聚类,可以将图像中连通域挑选出来,每个连通域对应的是一个连续的区域,一般为麦穗、叶片、茎秆、地面等,通过随机森林分类器,可以将其中的麦穗部分挑选出来,最后,根据宽度突变情况来对麦穗进行计数,这样就能较为准确的计算出麦穗的数量,即使麦穗之间有遮挡,依然不会影响到麦穗的计数。
附图说明
图1是本发明的流程示意图;
图2是黑布背景下田间小麦群体图像;
图3是基于k均值聚类的麦穗粗分割算法流程图;
图4是图2经过图像变换后的结果图;
图5是图4经过麦穗粗分割后的结果图;
图6是图5经过二级细分割后的结果图;
图7是图6中左图的三级细分割结果图(左)和麦穗病斑分割图(右);
图8是颜色特征提取流程图。
具体实施方式
下面结合图1至图8,对本发明做进一步详细叙述。
参阅图1,一种基于k均值聚类和宽度突变算法的田间麦穗计数方法,包括如下步骤:s1、采集麦穗原始图像并对原始图像进行预处理;s2、对预处理后的图像依次进行图像变换、k均值聚类、形态学处理后得到麦穗粗分割图;s3、选择随机森林分类器,用滑窗法对训练集图片滑窗取样,进一步对麦穗粗分割图进行细分割;s4、根据每个连通域中的麦穗区域宽度突变情况统计麦穗数量。由于采集到的麦穗原始图像大小不一、麦穗区域不一定居中,所以可以通过预处理将原始图像转换成统一格式的图像以方便后续处理,再通过k均值聚类,可以将图像中连通域挑选出来,每个连通域对应的是一个连续的区域,一般为麦穗、叶片、茎秆、地面等,通过随机森林分类器,可以将其中的麦穗部分筛选出来,最后,根据宽度突变情况来对麦穗进行计数,这样就能较为准确的计算出麦穗的数量,即使麦穗之间有遮挡,但依然不会影响到麦穗的计数。
一般来说,麦穗的原始图像多通过高清相机拍摄获得,本实施例中优选地,所述的步骤s1中,包括如下步骤:s11、以黑布作为田间麦穗的背景,采用高清相机拍摄麦穗原始rgb图片,以黑布作为背景,拍摄出的麦穗图像中麦穗及其背景有着明显的颜色区别,后续处理起来非常的方便;s12、用矩形框裁剪出整个麦穗群体,去除多余干扰背景,这样可以保证图像中麦穗居中且大小适中;s13、在不影响分割效果的前提下,为了提升算法运行效率,将裁剪后的图片像素统一为m*m,比如本实施例中统一为2000*2000像素。图2所示的即为黑布背景下的田间麦穗图像,采集时间为小麦的灌浆期,照相机选用nikond3200,采集图像原始尺寸为6016*4000像素,拍摄角度为45°。
选择灌浆期的数据原因如下:(1)抽穗期及之前时期,小麦赤霉病是零星发病,没有足够的患病麦穗数据来诊断出病害发生等级;(2)灌浆初期是二次喷药的重要窗口,可以精确识别与诊断病害发生等级,从而可以根据病情针对性定量喷药,为降低喷药量和保护环境提供技术支持;(3)成熟期时,患病和不患病麦穗都是黄色的,无法识别。
图2中是我们采集图像的部分原图,我们总共选择的三个群体病害等级分别是中等偏重、重度和中等偏轻微病害等级。在四个方位角(前,后,左,右)对每个群体分别拍摄4张图,记作w1_1,w1_2,w1_3,w1_4,……,第一个数字标记的是某个群体、第二个数字标记的是方位角,以此类推,共计12张图。图2只显示了w1_1(左图)、w2_1(中间)和w3_2(右边)。
参阅图3,进一步地,所述的步骤s2中,包括如下步骤:s21、输入裁剪后的rgb图像,将其b分量替换成g分量,再用图像增强得到新的rgg图像,这样做是为了使麦穗区域的颜色特征差别扩大;s22、将rgb图像转换至hsi空间中得到image1,将rgg图像转换至hsv空间中得到image2;s23、将image1和image2转换至lab空间后经过k-means聚类处理后分别得到image1'和image2';s24、将image1'和image2'相减后得到image3;s25、将image3与步骤s21中的rgb图像相与后得到image3';s26、对image3'进行形态学处理后得到麦穗粗分割图。
实验发现,原图和变换后的新图分别转变到hsi和hsv空间后麦穗区域颜色不同,而小麦叶片和茎秆区域颜色相同,图4所示的即为图2中三幅图经过图像变换处理后的结果图。因此可经过k-means聚类和形态学处理后,再用图像相减的方法把麦穗初步提取出来。lab色彩空间中色域更广,有利于聚类,因此这里还需要把图像转换到lab色彩空间,使得聚类操作更为精准。
参阅图5,经过图像分割处理之后,会形成很多碎小杂质区域,影响分割精度和后续的计数等操作,而形态学可以有效地处理此类问题。通过采用形态学操作的腐蚀、膨胀和滤除小面积连通域操作去除碎小杂质。故本实施例中,所述的步骤s26中,包括如下步骤:先对image3'进行腐蚀处理;然后进行膨胀处理;最后标记每个连通域,计算每个连通域的面积,剔除小于设定阈值的连通域即得到麦穗粗分割图。
随机森林是一种集成算法,是以决策树学习器构建决策森林,在训练集重采样和投票机制基础上,在训练过程中引入了随机属性选择。它比单一的决策树分类器有更强的泛化性,克服了决策树容易过拟合的缺点。鉴于随机森林分类器优秀的分类效果和泛化能力,因此选用这个分类器进行麦穗细分割和病斑分割。
具体地,所述的步骤s3中,包括如下步骤:s31、用随机森林算法对麦穗粗分割图进行分割得到麦穗二级细分割图,其中选择某一麦穗群体中的一个方位角对应的图片作为测试集,另外三个方位角对应的图片中随机剪裁的区域作为训练集,训练集与测试集不重叠,训练集中麦穗区域样本为10个、非麦穗区域样本为15个,我们选择了多种数量组合进行了实验,比如(3,3)、(5,5)、(10,10)、(10,15)、(15,15)、(20,20)等,最后发现数量为(10,15)时分割效果最好;图6即为图5中三个图经过二级细分割后的结果图。
经过二级细化分割后基本去除了叶片、茎秆和麦芒,仅留下少部分地面区域,需要再次进行三级细分割。故这里进一步地,包括步骤s32、用随机森林算法对麦穗二级细分割图进行分割得到麦穗三级细分割图,其中选择麦穗二级细分割图为测试集,训练原始集与步骤s31中一致,训练集中麦穗区域样本为10个、地面区域样本为7个,图7中左图即为图6中左图的三级细分割结果图。步骤s31和步骤s32中,滑动窗口、特征选择、分类器均相同。
窗口大小的选择有很多种,本实施例中,所述的滑动窗口大小为8*8。特征选择也有很多种,本发明中提供了18种特征供选择,包括6个颜色特征、4个纹理特征、1个植被指数特征和7个形状特征:为了增强麦穗区域与非麦穗区域之间颜色特征的区分度,这里对rgb和lab颜色特征进行卷积得到6个颜色特征,图8所示的即为颜色特征的提取过程:conv2(r)、conv2(g)、conv2(b)、conv2(l)、conv2(a)和conv2(b);麦穗区域与非麦穗区域的纹理特征有明显不同,故这里还选择了由灰度共生矩阵glcm产生4个纹理特征:对比度、一致性、能量和相关性;实验中我们发现,归一化绿红植被指数与归一化绿蓝植被指数的差值在麦穗与非麦穗区域之间有很好的区分度,因此新构建归一化绿红绿蓝差异植被指数:ngrbdi=α(g-r)/(g r)-(g-b)/(g b),式中α为增强因子,这里优选地将α取值为2;同时还利用7个hu不变矩作为形状特征。
通过以上步骤对麦穗进行识别后,识别分割精度非常的高,根据(预测分割图中被正确分为麦穗和背景的像素面积之和/真值图中麦穗和背景的像素面积之和),我们统计出了识别分割精度如下表所示:
作为本发明的优选方案,这里通过宽度突变来对麦穗进行识别。其具体的方案为,所述的步骤s4中,包括如下步骤:s41、划分连通域,确定各个连通域的最小点坐标、最大点坐标和高度,计算各个连通域的倾斜角angle;s42、选择一个连通域,依据该连通域的angle将该连通域旋转成水平;s43、若该连通域的高度小于设定的高度阈值且宽度小于设定的宽度阈值thresh_weight时,判断为非麦穗区域,舍弃该连通域,返回步骤s42选择下一个连通域,否则执行下一步;s44、逐行扫描该连通域,计算i行和i 1行之间的宽度变化率rate,若rate大于设定值thresh_rate,把i行和i 1行最右边的点标记为宽度突变点,直至该连通域扫描完成;s45、标记该连通域左上角点为起始点、右下角点为终止点,去除距离过近的突变点;s46、若标记点只有起始点和终止点,则麦穗数加1;s47、若标记点有起始点、终止点以及突变点,则将所有标记点连线,计算相邻连线之间的斜率差值k,若k>thresh_k,则麦穗数加1,所有斜率差值k判断完毕后返回步骤s42选择下一个连通域,所有连通域处理完毕后输出麦穗数。通过对连通域进行逐行扫描,我们可以标记出宽度突变率的位置,并且对各突变点进行连线,通过对比斜率差值,可以找到宽度突变的地方,这种地方一般对应的都是不同麦穗,采用此方案计算得到的麦穗计数非常精确,可以消除麦穗互相遮挡引起的计数误差。
考虑到连通域的处理时,会出现各种复杂情况,每个连通域中有时候会包括多个关联的麦穗,故本发明中进一步地,所述的步骤s42后还包括如下步骤:s421、对所有连通域的高度求平均值得到平均麦穗高度,s422、若该连通域的高度小于等于1倍平均麦穗高度,取thresh_weight等于thresh_weight_1、thresh_rate等于thresh_rate_1、thresh_k等于thresh_k_1并执行步骤s43;s423、若该连通域的高度大于1倍平均麦穗高度且小于等于2倍平均麦穗高度,取thresh_weight等于thresh_weight_2、thresh_rate等于thresh_rate_2、thresh_k等于thresh_k_2并执行步骤s43;s424、若该连通域的高度大于2倍平均麦穗高度,执行下一步;s425、以2倍平均麦穗高度为间隔将该连通域纵向切割为多个子连通域,针对每个子连通域,取thresh_weight等于thresh_weight_3、thresh_rate等于thresh_rate_3、thresh_k等于thresh_k_3并执行步骤s43。针对不同的连通域高度,thresh_weight、thresh_rate以及thresh_k取值都是不同的,但这些取值预先都已经设置好,需根据实验测试后予以确定。
下面对w1、w2、w3三个群体进行了人工计数(有经验的植保专家),然后将其预测值和真实值填入下表中,并根据表格数据统计出该计数方法的计数精度如下:
由上表我们可知,麦穗数统计精度最高可达98.75%,最低可达90%,误差不超过6%,计数精度非常高。
以上针对的都是正常麦穗的计数,准确计数后,我们就可以估算麦田产量等所需要的参数。除此之外,很多情况下我们还需要对患病麦穗进行计数,以方便对麦穗的患病情况进行监测。
故本发明中,进一步地,所述的步骤s3中,包括如下步骤:s31、用随机森林算法对麦穗粗分割图进行分割得到麦穗二级细分割图,其中选择某一麦穗群体中的一个方位角对应的图片作为测试集,另外三个方位角对应的图片中随机剪裁的区域作为训练集,训练集中麦穗区域样本为10个、非麦穗区域样本为15个;s32、用随机森林算法对麦穗二级细分割图进行分割得到麦穗三级细分割图,其中选择麦穗二级细分割图为测试集,训练集与步骤s31中一致,训练集中麦穗区域样本为10个、地面区域样本为7个;s33、用随机森林算法对麦穗三级细分割图进行分割得到麦穗病斑区域分割图,其中选择麦穗三级细分割图为测试集,训练集与步骤s31中一致,训练集中健康麦穗区域样本10个、患病麦穗区域样本10个,该步骤中的滑动窗口、特征选择、分类器与步骤s31中的一致;以上三个步骤中,滑动窗口、特征选择、分类器均相同,比如可以采取前述的方案:滑动窗口大小为8*8,特征选择包括18个特征,这里就不再详细赘述。与之前方案的不同之处在于,这里增加了步骤s33,即对连通域进行病斑区域识别,使得最后分割得到的图像是麦穗病斑区域分割图,分割后的图如图7中的右图所示。
同样地,我们可以按照前述的宽度突变法进行患病麦穗的计数,其具体步骤如下:所述的步骤s4中,按如下步骤计算患病麦穗的数量:s41'、划分连通域,计算每个连通域中所有病斑区域面积的总占比;s42'、将面积占比小于25%的病斑区域标记为0,总麦穗计数中没有麦穗的病斑区域标记为0,其余标记为1,根据标记0和1计算rate_label;s43'、按照步骤s42、s421~s425、s43~s47统计各个病斑区域的计数count;s44'、将rate_label*count作为最终的患病麦穗数量输出。之所以执行步骤s41'和s42'以及最后的s44',是因为这里统计的患病麦穗数是单株麦穗中严重度级别高于1级以上的数量之和,对于1级的麦穗,即患病小穗占全部小穗的面积比小于等于25%。
下面同样对w1、w2、w3三个群体进行了人工计数(有经验的植保专家),然后将其预测值和真实值填入下表中,并根据表格数据统计出该计数方法的计数精度如下:
由上表可以得知,患病麦穗数统计精度最高可达100%,最低为88.24%(经分析,这是因病穗数的基数较小造成的统计误差),计数误差数不超过4个,总体来说,计数精度非常高,可满足实际生产中的调查需求。
本发明提出了一种基于图像变换和k-means聚类分割的算法对麦穗图片进行粗分割,并结合随机森林分类器完成对田间小麦图片的精细分割,平均分割精度达到90%。在特征选择方面,本文用卷积的方法对颜色特征进行增强,并采用glcm灰度共生矩阵纹理特征、新构建的ngrbdi植被指数和hu形状矩,提升了精细分割的效果。本发明提出的宽度突变麦穗计数方法以及应对特殊情况采取的算法,使得总麦穗和患病麦穗平均计数精度分别达95.5%和94.85%,超过传统基于颜色和纹理特征的麦穗计数算法的精度。根据病穗率统计的小麦赤霉病平均发生程度分级预测精度达100%,预测的药剂防治效果与实际完全吻合。总麦穗和患病麦穗数精度拟合相关系数r2分别达到0.9026和0.9925,非常具有实际推广价值。
1.一种基于k均值聚类和宽度突变算法的田间麦穗计数方法,其特征在于:包括如下步骤:
s1、采集麦穗原始图像并对原始图像进行预处理;
s2、对预处理后的图像依次进行图像变换、k均值聚类、形态学处理后得到麦穗粗分割图;
s3、选择随机森林分类器,用滑窗法对训练集图片滑窗取样,进一步对麦穗粗分割图进行细分割;
s4、根据每个连通域中的麦穗区域宽度突变情况统计麦穗数量。
2.如权利要求1所述的基于k均值聚类和宽度突变算法的田间麦穗计数方法,其特征在于:所述的步骤s1中,包括如下步骤:
s11、以黑布作为田间麦穗的背景,用高清相机拍摄麦穗原始rgb图片;
s12、用矩形框裁剪出整个麦穗群体,去除多余的干扰背景;
s13、将裁剪后的图片像素统一为m*m。
3.如权利要求2所述的基于k均值聚类和宽度突变算法的田间麦穗计数方法,其特征在于:所述的步骤s2中,包括如下步骤:
s21、输入裁剪后的rgb图像,将其b分量替换成g分量,再用图像增强得到新的rgg图像;
s22、将rgb图像转换至hsi空间中得到image1,将rgg图像转换至hsv空间中得到image2;
s23、将image1和image2转换至lab空间后经过k-means聚类处理后分别得到image1'和image2';
s24、将image1'和image2'相减后得到image3;
s25、将image3与步骤s21中的rgb图像相与后得到image3';
s26、对image3'进行形态学处理后得到麦穗粗分割图。
4.如权利要求3所述的基于k均值聚类和宽度突变算法的田间麦穗计数方法,其特征在于:所述的步骤s26中,包括如下步骤:先对image3'进行腐蚀处理;然后进行膨胀处理;最后标记每个连通域,计算每个连通域的面积,剔除小于设定阈值的连通域即得到麦穗粗分割图。
5.如权利要求1所述的基于k均值聚类和宽度突变算法的田间麦穗计数方法,其特征在于:所述的步骤s3中,包括如下步骤:
s31、用随机森林算法对麦穗粗分割图进行分割得到麦穗二级细分割图,其中选择某一麦穗群体中的一个方位角对应的图片作为测试集,另外三个方位角对应的图片中随机剪裁的区域作为训练集,训练集中麦穗区域样本为10个、非麦穗区域样本为15个;
s32、用随机森林算法对麦穗二级细分割图进行分割得到麦穗三级细分割图,其中选择麦穗二级细分割图为测试集,训练集与步骤s31中一致,训练集中麦穗区域样本为10个、地面区域样本为7个;
以上两个步骤中,滑动窗口、特征选择、分类器均相同。
6.如权利要求5所述的基于k均值聚类和宽度突变算法的田间麦穗计数方法,其特征在于:所述的滑动窗口大小为8*8,特征选择包括6个颜色特征、4个纹理特征、1个植被指数特征和7个形状特征:对rgb和lab颜色特征进行卷积得到6个颜色特征:conv2(r)、conv2(g)、conv2(b)、conv2(l)、conv2(a)和conv2(b),卷积核大小为2*2;由灰度共生矩阵glcm产生4个纹理特征:对比度、一致性、能量和相关性;归一化绿红绿蓝差异植被指数:ngrbdi=α(g-r)/(g r)-(g-b)/(g b),其中增强因子α等于2;7个hu不变矩作为形状特征。
7.如权利要求1所述的基于k均值聚类和宽度突变算法的田间麦穗计数方法,其特征在于:所述的步骤s4中,包括如下步骤:
s41、划分连通域,确定各个连通域的最小点坐标、最大点坐标和高度,计算各个连通域的倾斜角angle;
s42、选择一个连通域,依据该连通域的angle将该连通域旋转成水平;
s43、若该连通域的高度小于设定的高度阈值且宽度小于设定的宽度阈值thresh_weight时,判断为非麦穗区域,舍弃该连通域,返回步骤s42选择下一个连通域,否则执行下一步;
s44、逐行扫描该连通域,计算i行和i 1行之间的宽度变化率rate,若rate大于设定值thresh_rate,把i行和i 1行最右边的点标记为宽度突变点,直至该连通域扫描完成;
s45、标记该连通域左上角点为起始点、右下角点为终止点,去除距离过近的突变点(<48.5个像素);
s46、若标记点只有起始点和终止点,则麦穗数加1;
s47、若标记点有起始点、终止点以及突变点,则将所有标记点连线,计算相邻连线之间的斜率差值k,若k>thresh_k,则麦穗数加1,所有斜率差值k判断完毕后返回步骤s42选择下一个连通域,所有连通域处理完毕后输出麦穗数。
8.如权利要求7所述的基于k均值聚类和宽度突变算法的田间麦穗计数方法,其特征在于:所述的步骤s42后还包括如下步骤:
s421、计算平均麦穗高度;
s422、若该连通域的高度小于等于1倍平均麦穗高度,取thresh_weight等于thresh_weight_1、thresh_rate等于thresh_rate_1、thresh_k等于thresh_k_1并执行步骤s43;
s423、若该连通域的高度大于1倍平均麦穗高度且小于等于2倍平均麦穗高度,取thresh_weight等于thresh_weight_2、thresh_rate等于thresh_rate_2、thresh_k等于thresh_k_2并执行步骤s43;
s424、若该连通域的高度大于2倍平均麦穗高度,执行下一步;
s425、以2倍平均麦穗高度为间隔将该连通域纵向切割为多个子连通域,针对每个子连通域,取thresh_weight等于thresh_weight_3、thresh_rate等于thresh_rate_3、thresh_k等于thresh_k_3并执行步骤s43。
9.如权利要求8所述的基于k均值聚类和宽度突变算法的田间麦穗计数方法,其特征在于:所述的步骤s3中,包括如下步骤:
s31、用随机森林算法对麦穗粗分割图进行分割得到麦穗二级细分割图,其中选择某一麦穗群体中的一个方位角对应的图片作为测试集,另外三个方位角对应的图片中随机剪裁的区域作为训练集,训练集中麦穗区域样本为10个、非麦穗区域样本为15个;
s32、用随机森林算法对麦穗二级细分割图进行分割得到麦穗三级细分割图,其中选择麦穗二级细分割图为测试集,训练集与步骤s31中一致,训练集中麦穗区域样本为10个、地面区域样本为7个;
s33、用随机森林算法对麦穗三级细分割图进行分割得到麦穗病斑区域分割图,其中选择麦穗三级细分割图为测试集,训练集与步骤s31中一致,训练集中健康麦穗区域样本10个、患病麦穗区域样本10个,该步骤中的滑动窗口、特征选择、分类器与步骤s31中的一致;
以上三个步骤中,滑动窗口、特征选择、分类器均相同;所述的滑动窗口大小为8*8,特征选择包括6个颜色特征、4个纹理特征、1个植被指数特征和7个形状特征:对rgb和lab颜色特征进行卷积得到6个颜色特征:conv2(r)、conv2(g)、conv2(b)、conv2(l)、conv2(a)和conv2(b);由灰度共生矩阵glcm产生4个纹理特征:对比度、一致性、能量和相关性;归一化绿红绿蓝差异植被指数:ngrbdi=α(g-r)/(g r)-(g-b)/(g b),其中增强因子α等于2;7个hu不变矩作为形状特征。
10.如权利要求9所述的基于k均值聚类和宽度突变算法的田间麦穗计数方法,其特征在于:所述的步骤s4中,按如下步骤计算患病麦穗的数量:
s41'、划分连通域,计算每个连通域中所有病斑区域面积的总占比;
s42'、将面积占比小于25%的病斑区域标记为0,总麦穗计数中没有麦穗的病斑区域标记为0,其余标记为1,根据标记0和1计算rate_label;
s43'、按照步骤s42、s421~s425、s43~s47统计各个病斑区域的计数count;
s44'、将rate_label*count作为最终的患病麦穗数量输出。
技术总结