一种基于热力图的高密度豆粒计数及中心点定位方法和系统技术方案

技术编号:38736975 阅读:14 留言:0更新日期:2023-09-08 23:23
一种基于热力图的高密度豆粒计数及中心点定位方法,用高斯函数生成高斯核模板,结合已标记的豆粒中心点位置,生成用于豆粒计数的真值热力图;采用基于空洞卷积的CSRNet作为密度图估计模块,将原始图像与真值热力图输入到模型中计算得到与原始图像同大小的热力图,通过对比预测热力图与真值热力图的L2损失进行参数的学习,实现高质量的热力图估计。对于待测试图像,使用CSRNet预测热力图,再通过判断局部最大位置点,从热力图中获取得到所有中心点的位置坐标,并通过局部中心点热力图的值取整获得豆粒数。还包括一种基于热力图的高密度豆粒计数及中心点定位系统。本发明专利技术可提高豆粒计数模型在高密度、遮挡严重场景下的计数准确性。性。性。

【技术实现步骤摘要】
一种基于热力图的高密度豆粒计数及中心点定位方法和系统


[0001]本专利技术涉及机器学习领域,尤其是涉及一种基于热力图的高密度豆粒计数方法和系统。

技术介绍

[0002]大豆是世界重要的粮食作物,成熟期大豆豆粒数量,是大豆考种的重要农艺性状,可帮助育种家估算不同大豆品种的产量情况,从而为选取优良品种的研究提供重要依据。传统豆粒计数方式是人工测量,这导致了豆粒考种速度慢、误差大且成本高。随着深度学习和图像处理技术的快速发展和应用,使用豆粒图像进行自动豆粒计数的应用逐渐增多。基于深度学习的豆粒计数方法包含两种,一种是基于目标框检测的方法,一种是基于热力图的方法。基于检测的方法是将豆荚或者豆粒作为一个检测单元,使用Faster

RCNN、YOLO、SSD等检测模型进行目标框的检测。这种方式由于是正矩形的目标框,容易检测出较多的背景信息,而且由于锚点设计自身的限制,计算方法复杂,且容易在豆粒重叠度高、遮挡、密度大的情况下产生较多的漏检。近年来,基于热力图计数的方式由于其将目标作为一个点进行检测,不需要锚点设计、计算简单逐渐成为计数的主流方式。但是,基于热力图的方法对于重叠目标的检测的效果不佳,且只能输出目标的数量,无法同时定位到目标的位置。

技术实现思路

[0003]为解决现有技术的不足,本专利技术提供了一种成熟期豆荚整株上的高密度豆粒计数和中心点定位方法和系统,基于CSRNet模型生成豆粒中心点的高质量热力图,结合豆粒特性从热力图中定位出豆粒中心关键点坐标位置。本专利技术采用如下的技术方案:
[0004]一种基于热力图的高密度豆粒计数及中心点定位方法,包括如下步骤:
[0005]S1,豆粒中心点标注。对图像中所有豆粒的中心点位置进行标记,记录下在图像中的坐标(x
i
,y
i
),分别表示第i颗豆粒的横坐标和纵坐标;
[0006]S2,生成豆粒热力图。将所述S1中标记的豆粒中心点位置,利用高斯函数生成豆粒的热力图H(x,y),包括如下步骤:
[0007]S21,初始化原始图像的热力图H(x,y),是与原始图像同大小、通道数为1、像素值均为0的二维图像;
[0008]S22,使用高斯函数获得高斯核模板。基于给定高斯核的大小ksize和标准差σ两个参数,生成大小为ksize、总和为1的高斯核模板。高斯核模板中,中心点的像素位置值最大,远离中心像素点的值逐渐减小。具体的,高斯函数为:
[0009][0010]其中,a、b是依据ksize得到的高斯核模板中的位置坐标。
[0011]S23,将所述S22得到的高斯核模板,添加到有标记豆粒中心点的位置上,若该地方已添加了像素值,则将该位置的像素值进行相加得到新的像素值。
[0012]S3,构建豆粒热力图生成模型。采用基于空洞卷积的CSRNet模型,对所有的训练图
像进行学习,并预测热力图通过计算所述S2中的H(x,y)和之间的损失,更新CSRNet网络参数,直到模型收敛,最终输出热力图估计模型;
[0013]S4,从热力图中定位豆粒中心点。利用所述S3得到的热力图估计模型,对待测试图像输出热力图,基于豆粒的特性,选取在当前区域内具有最大值的点,作为豆粒的中心点位置,并输出该位置坐标,从而获得图像中的豆粒数以及豆粒的中心位置坐标。
[0014]进一步的,所述S3包含了如下步骤:
[0015]S31,对原始图像和密度图,同时采用随机水平翻转、配对裁剪进行数据的增强;
[0016]S32,对所述S31中的图像,输入到构建好的CSRNet中,预测得到豆荚的热力图
[0017]S33,计算所述S32中得到的热力图与标记得到的真值热力图H(x,y)之间的距离损失,损失函数为:
[0018][0019]其中,N表示逐像素位置对应计算误差。
[0020]S34,判断模型是否达到收敛条件,若已经达到收敛条件,则结束模型的训练,输出得到最终的热力图估计模型;若未达到收敛条件,则继续顺序执行S31、S32、S33、S34。
[0021]进一步的,所述S32中构建好的CSRNet模型,采用VGG16作为基础模块,将全连接层替换为包含6层空洞卷积层。最后直接采用8倍的上采样,获得得到与原始输入图像大小相等、通道数为1的预测图。其中,CSRNet使用在ImageNet上训练好的模型进行初始化。
[0022]进一步的,所述S4对待测图像输出热力图,是将待测试的原始图像,输入到所述S3中达到收敛条件后最终获得的热力图估计模型中,得到与原始图像长宽相等、通道数为1的热力图。
[0023]进一步的,所述S4中选取当前区域内具有最大值的点,作为豆粒的中心点位置,是从预测得到的热力图中,通过以下步骤获得:
[0024]S41,将待测试图片输入到所述训练好的热力图模型中,得到与输入图像大小相同、通道数为1的热力图。
[0025]S42,从所述得到的热力图中,逐像素分析大于上、下、左、右四个方向的像素点,将区域内最大的点作为备选中心点。
[0026]进一步的,将预测得到的热力图中,小于预设阈值的像素点设置为0,并将热力图中的上、下、左、右四个边界分别扩展2个像素;
[0027]进一步的,获取每个中心像素点P
center
的上、下、左、右四个位置的像素点值P
up
,P
down
,P
left
,P
right
,将P
center
的值重新表示为原始P
center
和四个位置像素的和:
[0028][0029]进一步的,通过判断中心点是否为局部最大,获取得到所有局部最大的点位置P
all

[0030]S43,将备选中心点进行排序,按照像素点之间的距离的进行去重,获取最终的豆粒中心点位置。
[0031]进一步的,将P
all
按照横坐标从小到大的顺序进行排序,并从第一个开始分别计算其与后续点的欧式距离,若距离小于设定的阈值,则小于阈值的该处位置则认为是重合点,
此后不再参与最终的豆粒的计数和中心点位置计算。直到所有的局部最大点位置都计算完毕,获得中心点去重之后的豆粒中心点位置
[0032]S44,将最终的豆粒中心点位置处的热力值进行向上取整,得到该中心位置处的豆粒数,并将所有中心点位置豆粒数相加,得到最终的豆粒总数。
[0033]进一步的,针对中的每个点,通过对该位置的值进行向上取整,获得该中心点的豆粒数:
[0034][0035]进一步的,将所述豆粒中心点位置以及豆粒数进行组合,得到图像中的豆粒数Q以及所有豆粒的中心点位置所述豆粒数为每个中心点豆粒数的总和:
[0036][0037]本专利技术还涉及一种基于热力图的高密度豆粒计数及中心点定位系统,包括:
[0038]豆粒中心点标注模块,用于对图像中所有豆粒的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于热力图的高密度豆粒计数及中心点定位方法,其特征在于,包括如下步骤:S1,豆粒中心点标注;对图像中所有豆粒的中心点位置进行标记,获得所有的豆粒中心点坐标;S2,生成豆粒热力图;在所标记的豆粒中心点位置处,通过高斯函数生成高斯核模板,在初始热力图中通过像素值相加得到真值热力图;S3,构建豆粒热力图生成模型;将原始图像和真值热力图,输入到已经构建好的热力图生成模型中,训练得到最终的热力图生成模型;S4,从热力图中定位豆粒中心点;将待测试图片,输入到最终训练好的热力图生成模型中,获得待测图片的热力图,并通过计算局部区域最大值得到中心点坐标和相应的豆粒数,包括如下步骤:S41,将待测试图片输入到所述训练好的热力图模型中,得到与输入图像大小相同、通道数为1的热力图;S42,从所述得到的热力图中,逐像素分析大于上、下、左、右四个方向的像素点,将区域内最大的点作为备选中心点;S43,将备选中心点进行排序,按照像素点之间的距离的进行去重,获取最终的豆粒中心点位置;S44,将最终的豆粒中心点位置处的热力值进行向上取整,得到该中心位置处的豆粒数,并将所有中心点位置豆粒数相加,得到最终的豆粒总数。2.根据权利要求1所述的一种基于热力图的高密度豆粒计数及中心点定位方法,其特征在于,步骤S1标记所有豆粒的中心点位置坐标,一粒豆只标注一个位置。3.根据权利要求1所述的一种基于热力图的高密度豆粒计数及中心点定位方法,其特征在于,步骤S2具体包括如下步骤:S21,初始化原始图像的热力图H(x,y),与原始图像同宽高、通道数为1、像素值均为0的二维图像;S22,使用高斯函数生成高斯核模板;基于给定高斯核的大小ksize和标准差σ两个参数,生成大小为ksize、总和为1的高斯核模板;高斯核模板中,中心点的像素位置值最大,远离中心像素点的值逐渐减小;S23,将所述S22得到的高斯核模板,添加到有标记豆粒中心点的位置上,若该地方已添加了像素值,则将该位置的像素值进行相加得到新的像素值。4.根据权利要求3所述的一种基于热力图的高密度豆粒计数及中心点定位方法,其特征在于,步骤S22所述的高斯函数是指普通二维高斯函数,计算方式为:5.根据权利要求3所述的一种基于热力图的高密度豆粒计数及中心点定位方法,其特征在于,步骤S23所述的将所述S22得到的高斯核模板添加到有标记豆粒中心点的位置上,包括:高斯核模板的中心点与初始化热力图中的已标记豆粒中心点位置对齐,逐个针对豆粒已标注点添加高斯模型到所述热力图中的相应位置,得到真值热力图。6.根据权利要求1所述一种基于热力图的高密度豆粒计数及中心点定位方法,其特征在于,步骤S3已经构建好的热力图生成模型,采用基于空洞卷积的CSRNet模型,基础网络为
VGG16,之后接6层的空洞卷积,通过上采样恢复到原始输入图像大小;使用在ImageNet上训练好的模型进行权重初始化;在空洞卷积之后,采用1
×
1、输出通道数为1的卷积层获得输出特征图,并采用8倍的最近邻上采样恢复到原始输入图像的大小。7.根据权利要求1所述的一种基于热力图的高密度豆粒计数及中心点定位方法,其特征在于,步骤S3包括如下步骤:S31,对原始图像和密度图,同时采用随机水平翻转、配对裁剪进行数据的增强;S32,对所述S31中的图像,输入...

【专利技术属性】
技术研发人员:贺菁菁徐晓刚冯献忠王军何鹏飞李萧缘陈若晨张耀华
申请(专利权)人:中国科学院东北地理与农业生态研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1