本发明涉及深度学习和图像处理技术领域,具体涉及一种基于视频图像的大型苗圃苗木数量统计方法及电子设备。
背景技术:
当前苗木数量统计算法的研究多以静态图像为研究对象,采用目标检测或分割技术实现单幅静态图像内苗木数量的统计。例如美国佛罗里达大学的shey和ehsanir使用小型无人机采集盆栽和地栽苗木静态图像,阈值分割苗木区域后根据苗木平均冠幅进行计数;河南理工大学的刘帅兵和杨贵军利用无人机采集玉米幼苗静态图像利用hsv颜色模型分割图像,通过harris角点检测方法获取玉米植株的数量;日本京都大学的masanorio和takeshii使用无人机采集可见光静态图像后借助ecognitiondeveloper软件分割桃树树冠,然后采用googlenet模型检测桃树完成计数;奥地利萨尔兹堡大学的ovidiucsillik使用卷积神经网络对无人机拍摄静态图像中的柑橘树进行检测完成计数。
然而,针对单幅静态图像的苗木数量统计方法仅能实现小型或者部分地块的苗木数量统计,大型苗圃是无法采用单幅静态图像进行数量统计的。因为在保证静态图像中苗木被清晰识别的前提下,单幅静态苗木图像所能覆盖的地块面积和苗木数量是有限的。
技术实现要素:
本发明实施例的目的在于提供一种基于视频图像的大型苗圃苗木数量统计方法及电子设备,以解决目前静态图像苗木数量统计中存在的工作范围小和耗时长的问题以及人工数量统计存在的成本高和数据更新慢的问题。
为实现上述目的,第一方面,本发明实施例提供了一种基于视频图像的大型苗圃苗木数量统计方法,包括:
模型训练步骤:通过无人机采集样本苗木图像,根据所述样本苗木图像构建苗木图像训练集和苗木图像验证集,根据所述苗木图像训练集和苗木图像验证集得到视频图像苗木计数模型;
视频图像苗木检测步骤:通过无人机采集待检测视频,将所述待检测视频输入所述视频图像苗木计数模型进行检测,以得到检测结果;
视频图像苗木跟踪计数步骤:采用deepsort算法对所述检测结果进行跟踪匹配,以得到苗木数量。
作为本申请的一种具体实施方式,通过无人机采集样本苗木图像或待检测视频具体包括:
确定无人机的飞行高度;
采用无人机以正投影的方式在飞行高度上采集样本苗木图像或待检测视频。
其中,确定无人机的飞行高度具体包括:
获取实验测得的苗木冠幅dl和苗木冠幅像素数dpx;
根据公式(1)计算预设的飞行高度;
其中,h表示飞行高度,f表示无人机的镜头焦距,a表示像元尺寸,dl表示苗木冠幅,dpx表示苗木冠幅像素数,gsd表示地面分辨率。
在本申请的一种具体实施方式中,模型训练步骤具体包括:
(1)图像采集与数据集制作步骤:通过无人机采集样本苗木图像,并对所述样本苗木图像进行标注,基于标注后的所述样本苗木图像,按照pascalvoc数据集格式进行数据集制作,以得到所述苗木图像训练集和苗木图像验证集;
(2)数据集扩充步骤:对所述苗木图像训练集和苗木图像验证集进行扩充处理;例如采用对比度变换和大小调整的方式对所述苗木图像训练集和苗木图像验证集进行扩充;
(3)训练步骤:以yolov3网络为基础模型构建苗木检测网络,采用扩充后的所述苗木图像训练集和苗木图像验证集对所述苗木检测网络进行训练,且在训练过程中采用所述苗木图像验证集对所述苗木检测网络模型进行验证,以得到所述视频图像苗木计数模型。
进一步地,视频图像苗木检测步骤具体包括:
通过无人机采集待检测视频;
将所述待检测视频输入所述视频图像苗木计数模型,对所述待检测视频中的苗木进行逐帧检测并使用矩形框标注苗木,对检测到的苗木从1开始编号。
进一步地,视频图像苗木跟踪计数步骤具体包括:
采用卡尔曼滤波器对当前帧检测苗木的矩形框在下一帧的位置和大小进行预测;
采用带权重的匈牙利算法对当前帧的苗木检测矩形框与上一帧苗木检测矩形框在当前帧的预测矩形框进行匹配;
根据匹配结果确定是否为同株苗木,如果不为同株苗木则标注为新苗木,赋予其新编号,否则赋予其原始编号,直至处理完待检测视频的最后一帧后最大编号即为苗木数量。
第二方面,本发明实施例提供了一种电子设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
实施本发明实施例,解决了目前静态图像苗木数量统计中存在的工作范围小和耗时长的问题以及人工数量统计存在的成本高和数据更新慢的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的基于视频图像的大型苗圃苗木数量统计方法的示意流程图;
图2是视频图像苗木计数算法流程图;
图3a是苗木检测网络整体结构图;
图3b是卷积、批量归一化和leakyrelu结构块示意图;
图3c是残差块示意图;
图3d是残差单元示意图;
图4是跟踪匹配算法deepsort的流程图;
图5是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的发明构思是:为了解决目前静态图像苗木数量统计中存在的工作范围小和耗时长的问题以及人工数量统计存在的成本高和数据更新慢的问题,提出一种视频图像苗木自动数量统计方法。该方法主要包括:首先使用无人机在一定高度采集苗木图像并标注制作数据集训练基于yolov3的苗木检测模型,然后以训练的苗木检测模型为基础,结合多目标跟踪算法deepsort实现视频内苗木数量的统计。其中,训练数据集的全面性、yolov3深度卷积神经网络苗木检测模型的合理性以及deepsort跟踪算法的稳定性保证了苗木数量统计结果的准确性,并且模型还具有一定的泛化能力。
请参考图1及图2,本发明实施例提供的基于视频图像的大型苗圃苗木数量统计方法,包括以下步骤:
s1,模型训练步骤:通过无人机采集样本苗木图像,根据样本苗木图像构建苗木图像训练集和苗木图像验证集,根据苗木图像训练集和苗木图像验证集得到视频图像苗木计数模型。
s1具体包括:
(1)图像采集与数据集制作步骤:通过无人机采集样本苗木图像,并对样本苗木图像进行标注,基于标注后的样本苗木图像,按照pascalvoc数据集格式进行数据集制作,以得到所述苗木图像训练集和苗木图像验证集;
根据任务目标,本发明提出根据苗木平均冠幅和冠幅占图像最低像素数确定无人机最大飞行高度的方法。根据无人机镜头焦距、像元尺寸、地面分辨率gsd和飞行高度间的数学关系建立数学模型,求其无人机图像采集最大飞行高度,公式如下。其中苗木冠幅dl和苗木冠幅像素数dpx均根据实验测得。
式中h—代表飞行高度,m
f—镜头焦距,mm
a—像元尺寸,mm
dl—苗木冠幅,m
dpx—苗木冠幅像素数,px
gsd—地面分辨率,m
根据以上方法使用无人机在一定高度采集苗木图像后制作苗木图像数据集d。为充分使用采集到的苗木图像进行接下来的模型训练,在训练集和验证集的分配过程中本发明采用自助法,假定无人机采集到的苗木图像数据集d中含有m张图像,对它进行采样产生数据集d',每次随机从d中拷贝一个样本到d',该过程执行m次后,我们就得到了包含m个样本的数据集d'。显然,d中部分样本图像会在d'中多次出现。假设样本在m次采样中式中不被采到的概率是
通过自助采样,初始数据集d中约有36.8%的样本未出现在采样集d'中。实际评估的模型与期望评估的模型都是使用m个样本,而仍有数据总量约1/3的没在训练集中出现的样本用于验证。
通过上述方法将采集到的样本苗木图像分为训练集和验证集后,使用labelimg软件标记苗木训练集图像中的苗木,标注过程不重不漏。对于图像中植株相互遮挡的情况,在标记过程中采用重叠标注的方式。
(2)数据集扩充步骤:对所述苗木图像训练集和苗木图像验证集进行扩充处理;
为克服苗木图像数据集有限的情况,采用对比度变换和大小调整的方式扩充苗木图像训练集和苗木图像验证集。具体实现方式如下:
针对无人机航拍苗木图像数据有限的情况,结合苗木数量统计的具体应用场景和苗木图像具有的特点,提出采用图像对比度变换和大小调整的方式扩充苗木图像训练集和苗木图像验证集。其中,对比度变换是通过随机生成0.2到1.8间的随机因子后,以该随机因子调整图像的对比度。而图像的大小调整是随机生成0.5到1.5的随机因子后,根据该随机因子放大或缩小图像。
(3)训练步骤:以yolov3网络为基础模型构建苗木检测网络,采用扩充后的所述苗木图像训练集和苗木图像验证集对所述苗木检测网络进行训练,且在训练过程中采用所述苗木图像验证集对所述苗木检测网络模型进行验证,以得到所述视频图像苗木计数模型。
s2,视频图像苗木检测步骤:通过无人机采集待检测视频,将待检测视频输入视频图像苗木计数模型进行检测,以得到检测结果。
需要说明的是,无人机采集待检测视频的具体方式与前述采集样本苗木图像一致,在此不再赘述。
针对不同大小的原始图像,yolov3首先将图像缩放为416像素×416像素,然后输入网络进行特征提取,提取特征后输入多尺度预测部分进行推理,并根据网络模型的置信度对检测结果进行非极大值抑制和分类识别,yolov3网络的基本结构如图3a至3d。需要说明的是,图3a中dcbl结构表示卷积单元,由卷积层、bn层(batchnormalization,bn)和leakyrelu激活函数串联而成,结构如图3b所示。resn中res表示残差块,由零填充、卷积单元和残差单元三部分构成;n为残差块中残差单元的数量,其结构如图3c所示。残差块中的残差单元由两个卷积单元构成,其结构如图3d所示。
yolov3网络模型的预测层用于在三个不同大小的特征图上执行预测,特征图的步幅为32、16和8。预测时首先将缩放后的输入图片划分为s×s个网格,当网格中心内落有目标物体时,该网格负责预测该目标物体。预测时每个网格将预测物体边界框的4个偏移坐标(tx,ty,tw,th)和1个置信度得分。以图像左上角顶点为坐标原点,计算检测框中心坐标(bx,by)、检验框宽度bw和高度bh的公式如下:
其中,(tx,ty)为卷积神经网络在单元格上预测的边界框坐标(x,y),tw和th为卷积神经网络在单元格上预测的边界框的宽度和高度,(cx,cy)是网格坐标相对于坐标原点的偏移量。(pw,ph)为先验锚点框的宽度和高度。
yolov3网络在三种不同尺度上进行目标预测,在每个尺度上使用3个锚点框预测3个边界框,共有9个锚点框。锚点框的大小通过k-means聚类训练数据集计算得到,以矩形框的交并比(iou,riou)计算相似度,k-means聚类的计算公式如下:
d(b,c)=1-riou(b,c)
式中b—矩形框的大小
c—矩形框的中心点坐标
riou(b,c)—两矩形框间的交并比
s3,视频图像苗木跟踪计数步骤:采用deepsort算法,检测结果进行跟踪匹配,以得到苗木数量。
s3具体包括:
采用卡尔曼滤波器对当前帧检测苗木的矩形框在下一帧的位置和大小进行预测;
采用带权重的匈牙利算法对当前帧的苗木检测矩形框与上一帧苗木检测矩形框在当前帧的预测矩形框进行匹配;
根据匹配结果确定是否为同株苗木,如果不为同株苗木则标注为新苗木,赋予其新编号,否则赋予其原始编号,如此,直至处理完待检测视频的最后一帧后最大编号即为苗木数量。
进一步地,请参考图4,在苗木目标检测的基础上deepsort使用一个8维空间变量
采用卡尔曼滤波器预测的状态与新到来的目标状态之间的马氏距离表示运动匹配程度,计算公式如下:
其中,d(1)(i,j)表示第j个检测和第i条轨迹间的运动匹配度,si是轨迹由卡尔曼滤波器预测得到的在当前时刻观测空间的协方差矩阵,yi是轨迹在当前时刻的预测观测量,dj为第j个边界框的实际状态(u,v,γ,h)。
考虑到运动的连续性,通过该马氏距离对目标进行筛选,使用卡方分布的0.95分位点作为阈值t(1)=0.4877,其定义如下:
当目标运动的不确定性较低时,马氏距离是较为理性的关联度量。但在苗木视频图像采集中,相机运动会造成马氏距离大量不能匹配,即马氏距离失效。为此引入深度学习的表观特征进行匹配度分析,对马氏距离进行补充,采用检测与跟踪特征向量间的最小余弦距离作为表观特征匹配度衡量标准,公式如下:
同理,使用卡方分布的0.95分位点作为阈值t(2),其定义如下:
然后采用两种度量标准取加权平均值:
d(i,j)=λd(1)(i,j) (1-λ)d(2)(i,j)
融合之后的阈值为:
其中λ为超参数,用于调整不同项之间的权重。
以上便为跟踪匹配算法deepsort对检测目标的跟踪匹配过程,其中苗木数量统计由检测、跟踪和匹配三部分共同实现。
从以上描述可以看出,实施本发明实施例提供的基于视频图像的大型苗圃苗木数量统计方法,其结合深度学习的卷积神经网络、目标检测、目标跟踪匹配和数量统计等,解决了目前静态图像苗木数量统计中存在的工作范围小和耗时长的问题以及人工数量统计存在的成本高和数据更新慢的问题。
基于相同的发明构思,本发明实施例提供了一种电子设备。如图5所示,该电子设备可以包括:一个或多个处理器101、一个或多个输入设备102、一个或多个输出设备103和存储器104,上述处理器101、输入设备102、输出设备103和存储器104通过总线105相互连接。存储器104用于存储计算机程序,所述计算机程序包括程序指令,所述处理器101被配置用于调用所述程序指令执行上述方法实施例部分的方法。
应当理解,在本发明实施例中,所称处理器101可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备102可以包括键盘等,输出设备103可以包括显示器(lcd等)、扬声器等。
该存储器104可以包括只读存储器和随机存取存储器,并向处理器101提供指令和数据。存储器104的一部分还可以包括非易失性随机存取存储器。例如,存储器104还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器101、输入设备102、输出设备103可执行本发明实施例提供的基于视频图像的大型苗圃苗木数量统计方法的实施例中所描述的实现方式,在此不再赘述。
需要说明的是,本发明实施例中电子设备的具体工作流程及相关细节,请参考前述方法实施例部分,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
1.一种基于视频图像的大型苗圃苗木数量统计方法,其特征在于,包括:
模型训练步骤:通过无人机采集样本苗木图像,根据所述样本苗木图像构建苗木图像训练集和苗木图像验证集,根据所述苗木图像训练集和苗木图像验证集得到视频图像苗木计数模型;
视频图像苗木检测步骤:通过无人机采集待检测视频,将所述待检测视频输入所述视频图像苗木计数模型进行检测,以得到检测结果;
视频图像苗木跟踪计数步骤:采用deepsort算法对所述检测结果进行跟踪匹配,以得到苗木数量。
2.如权利要求1所述的统计方法,其特征在于,通过无人机采集样本苗木图像或待检测视频具体包括:
确定无人机的飞行高度;
采用无人机以正投影的方式在飞行高度上采集样本苗木图像或待检测视频。
3.如权利要求2所述的统计方法,其特征在于,确定无人机的飞行高度具体包括:
获取实验测得的苗木冠幅dl和苗木冠幅像素数dpx;
根据如下公式公式计算预设的飞行高度;
其中,h表示飞行高度,f表示无人机的镜头焦距,a表示像元尺寸,dl表示苗木冠幅,dpx表示苗木冠幅像素数,gsd表示地面分辨率。
4.如权利要求1所述的统计方法,其特征在于,模型训练步骤具体包括:
(1)图像采集与数据集制作步骤:通过无人机采集样本苗木图像,并对所述样本苗木图像进行标注,基于标注后的所述样本苗木图像,按照pascalvoc数据集格式进行数据集制作,以得到所述苗木图像训练集和苗木图像验证集;
(2)数据集扩充步骤:对所述苗木图像训练集和苗木图像验证集进行扩充处理;
(3)训练步骤:以yolov3网络为基础模型构建苗木检测网络,采用扩充后的所述苗木图像训练集和苗木图像验证集对所述苗木检测网络进行训练,且在训练过程中采用所述苗木图像验证集对所述苗木检测网络模型进行验证,以得到所述视频图像苗木计数模型。
5.如权利要求4所述的统计方法,其特征在于,数据集扩充步骤具体包括:
采用对比度变换和大小调整的方式对所述苗木图像训练集和苗木图像验证集进行扩充。
6.如权利要求4所述的统计方法,其特征在于,视频图像苗木检测步骤具体包括:
通过无人机采集待检测视频;
将所述待检测视频输入所述视频图像苗木计数模型,对所述待检测视频中的苗木进行逐帧检测并使用矩形框标注苗木,对检测到的苗木从1开始编号。
7.如权利要求6所述的统计方法,其特征在于,视频图像苗木跟踪计数步骤具体包括:
采用卡尔曼滤波器对当前帧检测苗木的矩形框在下一帧的位置和大小进行预测;
采用带权重的匈牙利算法对当前帧的苗木检测矩形框与上一帧苗木检测矩形框在当前帧的预测矩形框进行匹配;
根据匹配结果确定是否为同株苗木,如果不为同株苗木则标注为新苗木,赋予其新编号,否则赋予其原始编号,直至处理完待检测视频的最后一帧后最大编号即为苗木数量。
8.一种电子设备,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
技术总结