本发明涉及害虫图像识别技术领域,具体来说是一种利用热力图进行点标注方式的密集分布小目标害虫自动计数方法。
背景技术:
随着计算机视觉技术和图像处理技术的快速发展,基于图像的害虫自动识别与计数技术在近年来已成为研究热点。虽然此方法省时省力、具有智能化等优点,但在实际应用中发现,其难以适应密集分布的小目标害虫识别。其原因在于:首先,小目标害虫的个体很小,只有几毫米大小,针对这样的小目标利用传统的图像识别技术(svm)很难检测到;其次,采集图像时,外界环境的光照不稳定、不均匀都会影响图像的质量;再者,在实际应用中,采集的图像常混有其他杂物,背景较复杂。
特别是传统的候选框形式的害虫识别方法,在遇到密集分布小目标害虫时,出现候选框重叠、一个候选框中多个目标的问题,致使密集小目标害虫统计出现较大误差。
因此,如何针对于密集小目标害虫进行识别已经成为急需解决的技术问题。
技术实现要素:
本发明的目的是为了解决现有技术中难以针对密集小目标害虫进行识别的缺陷,提供一种利用热力图进行点标注方式的密集分布小目标害虫自动计数方法来解决上述问题。
为了实现上述目的,本发明的技术方案如下:
一种利用热力图进行点标注方式的密集分布小目标害虫自动计数方法,包括以下步骤:
获取训练样本并进行预处理:获取若干张自然环境下密集分布小目标害虫图像,将其作为训练样本数据集,对训练样本数据集采用点标注的方式标注出害虫中心点;
生成热力图:将进行点标注后的训练样本数据集通过核函数生成小目标害虫图像密度分布热力图;
构建密集小目标害虫定位计数网络:基于卷积神经网络根据热力图的点标注方式构建密集小目标害虫定位计数网络;
训练密集小目标害虫定位计数网络:根据小目标害虫图像密度分布热力图训练小目标害虫定位计数网络,更新网络参数与损失函数;
待定位计数图像的获取:获取待定位计数的害虫图像,并对其通过核函数生成待定位计数的热力图;
小目标害虫自动计数结果的获得:将待定位计数的热力图输入训练后的密集小目标害虫定位计数网络,得到密集分布小目标害虫自动计数结果。
所述的生成热力图包括以下步骤:
设密集分布小目标害虫图像中一头害虫中心坐标位置为xi,选择冲激函数σ(x-xi)作为热力图的激活函数;
使用自适应核函数与冲激函数做卷积,得到最终的小目标害虫的密集分布热力图,其中,自适应核函数表达式如下:
其中,
自适应核函数大小的计算步骤如下:假设图像中有一头害虫xp,则它的k近邻距离为
其中,
将核函数与原图进行卷积得到,得到热力图f(x):
f(x)=kernel(x)*σ(x-xi),
其中,kernel(x)表示自适应核函数。
所述构建密集小目标害虫定位计数网络包括以下步骤:
设定n层卷积神经网络作为密集小目标害虫定位计数网络,
设定第1层的输入为生成的热力图、输出第1层特征图,第1层特征图作为第2层的输入、输出第2层特征图,第2层特征图作为第3层的输入,直至第n-1层特征图作为第n层的输入;
输出n-8层、n-4层、n层的特征图,用于提取不同尺度害虫的特征,并且对n-4层、n层的特征图做上采样操作,将特征图尺寸放大至与n-8层特征图同等大小,将这些特征图进行相加后得到最终的特征图;
根据训练样本数据集中的标注文件计算每头害虫之间距离,取最小距离;
若最小距离超过阈值后将其删掉,其阈值设置为:20个像素值;
设一幅图像去除离群点后有m头害虫,则害虫之间的最小距离为:
{d1,d2,...dm},则平均距离为:
取davg做为害虫检测框长和高,di表示第i头蚜虫距离相邻蚜虫之间的最小距离。
所述训练密集小目标害虫定位计数网络包括以下步骤:
害虫检测框初始值设定:设定针对n层上密集的anchor集合,将davg做为害虫检测框真值的长和高;
害虫检测框更新:从anchor集合与初始的害虫检测框的交并比挑选正样本和负样本,并利用这些样本训练一个二分类分类器,利用该二分类分类器为anchor候选区域打分;
利用点标注的方式进行害虫的定位,进行损失函数loss函数的设计:
定义表示预测点与真实点中心距离的losspoint函数:
其中,(xt,yt)表示真实标记点的位置,(xa,ya)表示anchor预测点的位置,n表示预测点的个数;
定义用于计算高和宽的loss_sizeij函数:
假设在图像坐标(i,j)处的高和宽真值使用davg表示,那么在行[i-a,i a]之间害虫的矩形的尺寸的标准差如下:
其中,|gi|表示[i-a,i a]区域内害虫集合的基数,gsmn表示预测尺寸的大小,
设定loss函数采用了λδsize策略进行损失调整,如果预测矩形框的大小在[davg-λδsize,davg λδsize]区域之间,不会收到惩罚,在区域之外测会受到惩罚;为此,将矩形框的loss函数设计为:
结合losspoint函数和loss_sizeij函数,将最终的loss函数设定为:
其中,
有益效果
本发明的一种利用热力图进行点标注方式的密集分布小目标害虫自动计数方法,与现有技术相比通过点标注方式进行害虫识别,防止候选框方式识别带来的重叠和误判,特别适用于密集分布小目标害虫的识别计数。
附图说明
图1为本发明的方法顺序图。
具体实施方式
为使对本发明的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:
如图1所示,本发明所述的一种利用热力图进行点标注方式的密集分布小目标害虫自动计数方法,包括以下步骤:
第一步,获取训练样本并进行预处理:获取若干张自然环境下密集分布小目标害虫图像,将其作为训练样本数据集,对训练样本数据集采用点标注的方式标注出害虫中心点。
第二步,生成热力图:将进行点标注后的训练样本数据集通过核函数生成小目标害虫图像密度分布热力图。由于数据库图片采用点的方式进行标记,每头害虫只占一个像素点,最终得到的会是一个特别稀疏的热力图,稀疏的热力图无法进行有效的训练,因此为了解决这个问题,引入核函数,以核函数与标记点做卷积的方式可以解决稀疏问题。由于数据库中的图片因为拍摄角度,害虫分布各不相同,使用单一的核函数无法对数据集分布进行有力的表达,在此设计了一种自适应核函数。其具体步骤如下:
(1)设密集分布小目标害虫图像中一头害虫中心坐标位置为xi,选择冲激函数σ(x-xi)作为热力图的激活函数。
(2)植保图片在拍摄过程中角度、焦距不同导致图片中害虫的尺寸不用,所以核函数的尺寸也就不同,为了满足不同图像使用不同的核函数,在此使用自适应大小的核函对冲激函数进行卷积。同时,冲激函数σ(x-xi)易导致稀疏矩阵出现,为了避免稀疏矩阵出现,同时为了更好的凸显害虫特征,使用新的混淆核函数与冲激函数做卷积。
使用自适应核函数与冲激函数做卷积,得到最终的小目标害虫的密集分布热力图,其中,自适应核函数表达式如下:
项式核函数,c表示偏置,tanh(xtxi d)表示sigmoid核函数,d表示偏置,α、β、γ表示不同核函数的权值;
自适应核函数大小的计算步骤如下:假设图像中有一头害虫xp,则它的k近邻距离为
其中,
将核函数与原图进行卷积得到,得到热力图f(x):
f(x)=kernel(x)*σ(x-xi),
其中,kernel(x)表示自适应核函数。
第三步,构建密集小目标害虫定位计数网络:基于卷积神经网络根据热力图的点标注方式构建密集小目标害虫定位计数网络。其具体步骤如下:
(1)设定n层卷积神经网络作为密集小目标害虫定位计数网络,
设定第1层的输入为生成的热力图、输出第1层特征图,第1层特征图作为第2层的输入、输出第2层特征图,第2层特征图作为第3层的输入,直至第n-1层特征图作为第n层的输入。
(2)输出n-8层、n-4层、n层的特征图,用于提取不同尺度害虫的特征,并且对n-4层、n层的特征图做上采样操作,将特征图尺寸放大至与n-8层特征图同等大小,将这些特征图进行相加后得到最终的特征图。
(3)根据训练样本数据集中的标注文件计算每头害虫之间距离,取最小距离,有些离群害虫距离比较大会给矩形框的初始化造成很大的误差,因此,需设定阈值加以限制。
若最小距离超过阈值后将其删掉,其阈值设置为:20个像素值;
设一幅图像去除离群点后有m头害虫,则害虫之间的最小距离为:
{d1,d2,...dm},则平均距离为:
取davg做为害虫检测框长和高,di表示第i头蚜虫距离相邻蚜虫之间的最小距离。
第四步,训练密集小目标害虫定位计数网络:根据小目标害虫图像密度分布热力图训练小目标害虫定位计数网络,更新网络参数与损失函数。现有技术中,害虫识别与计数主要方法是按照目标检测的方式进行,先以矩形框的方式标注害虫进行训练,然后利用模型进行检测,该方法对于密集小目标害虫检测效果较差。与现有技术不同的是,本发明采用的是以点的方式进行标注,该标注方式可以有效的避免重叠问题。该训练方法与矩形框方式标注方法不同,首先点标注的方法热力图作为训练时的真值(groundtruth),讲害虫分布的特性加入到网络中进行训练;其次省略了区域建议网络(rpn)的步骤,不需要很深的网络就能得到理想的效果;最后,采用点标注的方法进行训练,充分利用了害虫的先验知识比如害虫的大小,分布等特点,在减少网络模型参数的同时可以对害虫进行又快有准的识别与计数。其具体步骤如下:
(1)害虫检测框初始值设定:设定针对n层上密集的anchor集合,将davg做为害虫检测框真值的长和高,因为这保证了大部分的检测框能够通过迭代的方式进行合适的预测更新,考虑了害虫尺寸与周围害虫的距离有关。
(2)害虫检测框更新:为更新检测计数网络参数,从anchor集合与初始的害虫检测框的交并比挑选正样本和负样本,并利用这些样本训练一个二分类分类器,利用该二分类分类器为anchor候选区域打分。
(3)现有技术中大部分基于深度学习的目标检测算法是以矩形框的形式进行标注,与其不同,在此采用点标注的方式进行害虫的定位,因此需要进行损失函数loss函数的设计:
a1)定义表示预测点与真实点中心距离的losspoint函数:
其中,(xt,yt)表示真实标记点的位置,(xa,ya)表示anchor预测点的位置,n表示预测点的个数。
a2)因为在此数据标注采用的是点标注的方式,所以无法进行矩形框定位,但根据聚集小目标害虫的特性我们将剔除离群点后的害虫之间最小距离的均值davg作为矩形的高和宽,同时由于拍照角度的问题,如果有多个密集区域,靠近底部的框偏大,靠近上部的框偏小,因此davg作为检测矩形的高和宽并不准确,需要对其进行调整,如果预测的边界框的宽度和高度与观测结果差距很大就要对其惩罚。因此设计了用于计算高和宽的loss_sizeij函数。
定义用于计算高和宽的loss_sizeij函数:
假设在图像坐标(i,j)处的高和宽真值使用davg表示,那么在行[i-a,i a]之间害虫的矩形的尺寸的标准差如下:
其中,|gi|表示[i-a,i a]区域内害虫集合的基数,gsmn表示预测尺寸的大小,
设定loss函数采用了λδsize策略进行损失调整,如果预测矩形框的大小在[davg-λδsize,davg λδsize]区域之间,不会收到惩罚,在区域之外测会受到惩罚;为此,将矩形框的loss函数设计为:
a3)结合losspoint函数和loss_sizeij函数,将最终的loss函数设定为:
其中,
第五步,待定位计数图像的获取:获取待定位计数的害虫图像,并对其通过核函数生成待定位计数的热力图。
第六步,小目标害虫自动计数结果的获得:将待定位计数的热力图输入训练后的密集小目标害虫定位计数网络,得到密集分布小目标害虫自动计数结果。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。
1.一种利用热力图进行点标注方式的密集分布小目标害虫自动计数方法,其特征在于,包括以下步骤:
11)获取训练样本并进行预处理:获取若干张自然环境下密集分布小目标害虫图像,将其作为训练样本数据集,对训练样本数据集采用点标注的方式标注出害虫中心点;
12)生成热力图:将进行点标注后的训练样本数据集通过核函数生成小目标害虫图像密度分布热力图;
13)构建密集小目标害虫定位计数网络:基于卷积神经网络根据热力图的点标注方式构建密集小目标害虫定位计数网络;
14)训练密集小目标害虫定位计数网络:根据小目标害虫图像密度分布热力图训练小目标害虫定位计数网络,更新网络参数与损失函数;
15)待定位计数图像的获取:获取待定位计数的害虫图像,并对其通过核函数生成待定位计数的热力图;
16)小目标害虫自动计数结果的获得:将待定位计数的热力图输入训练后的密集小目标害虫定位计数网络,得到密集分布小目标害虫自动计数结果。
2.根据权利要求1所述的一种利用热力图进行点标注方式的密集分布小目标害虫自动计数方法,其特征在于,所述的生成热力图包括以下步骤:
21)设密集分布小目标害虫图像中一头害虫中心坐标位置为xi,选择冲激函数σ(x-xi)作为热力图的激活函数;
22)使用自适应核函数与冲激函数做卷积,得到最终的小目标害虫的密集分布热力图,其中,自适应核函数表达式如下:
其中,
自适应核函数大小的计算步骤如下:假设图像中有一头害虫xp,则它的k近邻距离为
其中,
将核函数与原图进行卷积得到,得到热力图f(x):
f(x)=kernel(x)*σ(x-xi),
其中,kernel(x)表示自适应核函数。
3.根据权利要求1所述的一种利用热力图进行点标注方式的密集分布小目标害虫自动计数方法,其特征在于,所述构建密集小目标害虫定位计数网络包括以下步骤:
31)设定n层卷积神经网络作为密集小目标害虫定位计数网络,
设定第1层的输入为生成的热力图、输出第1层特征图,第1层特征图作为第2层的输入、输出第2层特征图,第2层特征图作为第3层的输入,直至第n-1层特征图作为第n层的输入;
32)输出n-8层、n-4层、n层的特征图,用于提取不同尺度害虫的特征,并且对n-4层、n层的特征图做上采样操作,将特征图尺寸放大至与n-8层特征图同等大小,将这些特征图进行相加后得到最终的特征图;
33)根据训练样本数据集中的标注文件计算每头害虫之间距离,取最小距离;
若最小距离超过阈值后将其删掉,其阈值设置为:20个像素值;
设一幅图像去除离群点后有m头害虫,则害虫之间的最小距离为:{d1,d2,...dm},则平均距离为:
取davg做为害虫检测框长和高,di表示第i头蚜虫距离相邻蚜虫之间的最小距离。
4.根据权利要求1所述的一种利用热力图进行点标注方式的密集分布小目标害虫自动计数方法,其特征在于,所述训练密集小目标害虫定位计数网络包括以下步骤:
41)害虫检测框初始值设定:设定针对n层上密集的anchor集合,将davg做为害虫检测框真值的长和高;
42)害虫检测框更新:从anchor集合与初始的害虫检测框的交并比挑选正样本和负样本,并利用这些样本训练一个二分类分类器,利用该二分类分类器为anchor候选区域打分;
43)利用点标注的方式进行害虫的定位,进行损失函数loss函数的设计:
431)定义表示预测点与真实点中心距离的losspoint函数:
其中,(xt,yt)表示真实标记点的位置,(xa,ya)表示anchor预测点的位置,n表示预测点的个数;
432)定义用于计算高和宽的loss_sizeij函数:
假设在图像坐标(i,j)处的高和宽真值使用davg表示,那么在行[i-a,i a]之间害虫的矩形的尺寸的标准差如下:
其中,|gi|表示[i-a,i a]区域内害虫集合的基数,gsmn表示预测尺寸的大小,
设定loss函数采用了λδsize策略进行损失调整,如果预测矩形框的大小在[davg-λδsize,davg λδsize]区域之间,不会收到惩罚,在区域之外测会受到惩罚;为此,将矩形框的loss函数设计为:
433)结合losspoint函数和loss_sizeij函数,将最终的loss函数设定为:
其中,