一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于深度学习的苗线识别的方法、装置和农机与流程

2022-07-10 04:38:41 来源:中国专利 TAG:


1.本技术实施例涉及农业领域,并且更具体地,涉及一种基于深度学习的苗线识别的方法、装置和农机。


背景技术:

2.随着科技的发展,农业机械化越来越趋向于智能化,农业机械自动导航技术是精细农业的关键技术,尤其是农机在田间作业的时候,苗线的识别至关重要。
3.现有技术中,苗线识别的方法较为复杂且耗费大量时间,从而降低苗线识别的速度。因此,如何提供一种可以兼顾速度和准确率的苗线识别方法是一个亟待解决的技术问题。


技术实现要素:

4.本技术提供一种基于深度学习的苗线识别的方法、装置和农机,能够兼顾苗线识别的速度和准确率。
5.第一方面,提供了一种基于深度学习的苗线识别的方法,包括:获取第一图片,并根据所述第一图片生成第二图片,第一图片是农机的摄像头拍摄的图片;使用预先训练的神经网络模型处理所述第二图片,以生成苗线;根据所述苗线的坐标计算各条苗线在所述第一图片的空间关系,得到第一苗线和第二苗线,所述第一苗线和所述第二苗线分别为所述第一图片中的苗线中的最中心的两条苗线;根据所述第一苗线和所述第二苗线生成导航线,所述导航线的横坐标为所述第一苗线的横坐标和所述第二苗线的横坐标的均值。
6.本技术提供的方案,基于预先训练的神经网络模型,可以正确并快速地识别农机行驶过程中的苗线,并根据识别的苗线输出导航线,从而使得农机可以按输出的导航线行驶,可以避免对农作物的损坏。
7.结合第一方面,在一些可能的实现方式中,所述根据所述第一苗线和所述第二苗线生成导航线包括:当农机的两轮之间的作物带的数量为奇数时,生成位于所述作物带的中间的所述导航线,所述第一苗线和所述第二苗线分别是属于同一条作物带的两条苗线;当农机的两轮之间的作物带的数量为偶数时,生成位于相邻的两条所述作物带的垄的中间的所述导航线,所述第一苗线和所述第二苗线分别为相邻两条所述作物带的临垄的苗线。通过根据农机的两轮之间的作物带的数量设置生成的导航线的位置,可以避免由于农机的摄像头的偏移或农机的跑偏导致的生成错误的导航线。
8.结合第一方面,在一些可能的实现方式中,所述根据所述第一图片生成第二图片包括:根据第一比例将所述第一图片缩小至所述第二图片;所述根据所述苗线的坐标计算各条苗线在所述第一图片的空间关系包括:在生成所述苗线后,根据第二比例将所述苗线在所述第二图片的坐标还原至所述苗线在所述第一图片的坐标,所述第一比例与所述第二比例对应。这样,缩小后的图片与原图比例接近,按照与第一比例对应的第二比例进行还原可以减少苗线识别结果的偏差;同时使用缩小后的第二图片进行计算可以减小苗线识别过
程中的计算量,节约计算资源。
9.结合第一方面,在一些可能的实现方式中,在训练所述神经网络模型前,所述方法还包括:获取第三图片;对所述第三图片添加标签,将添加标签后的所述第三图片转化为第四图片,所述第四图片为添加标签后的所述第三图片的灰度图,其中,所述标签与所述苗线在所述第三图片中的空间位置对应。这样,第四图片中的苗线的坐标值可以作为神经网络模型在训练过程中输出的苗线的坐标值的参照。
10.结合第一方面,在一些可能的实现方式中,在所述使用预先训练的神经网络模型处理所述第二图片,以生成苗线之前,所述方法还包括:对所述神经网络模型进行训练以得到所述预先训练的神经网络模型;其中,所述对所述神经网络模型进行训练包括:获取第三图片,根据第一比例将所述第三图片缩小至第五图片;使用骨干网络提取所述第五图片的特征,得到第一特征图;将所述第一特征图转化为所述苗线的坐标;使用损失函数对所述神经网络模型进行修正。
11.结合第一方面,在一些可能的实现方式中,所述骨干网络包括:第一输入层,所述第一输入层被配置为采用卷积模块对所述第五图片进行处理,得到第二特征图;第一中间层,所述第一中间层被配置为采用深度可分离卷积模块对所述第二特征图进行处理,得到第三特征图;第一输出层,所述第一输出层被配置为采用卷积模块对所述第三特征图进行处理,得到第一特征图;第二中间层,所述第二中间层被配置为采用深度可分离卷积模块对第四特征图进行处理,得到第五特征图;第二输出层,所述第二输出层被配置为采用卷积模块对所述第五特征图进行处理,得到第六特征图;第三中间层,所述第三中间层被配置为采用深度可分离卷积模块对第七特征图进行处理,得到第八特征图;第三输出层,所述第三输出层被配置为采用卷积模块对所述第八特征图进行处理,得到第九特征图。该骨干网络结构能够加快神经网络模型的运行速度,并且可以部署到嵌入式设备上,能够兼容嵌入式设备。
12.结合第一方面,在一些可能的实现方式中,所述输入层,所述第一中间层和所述第一输出层被配置为推理所述苗线;所述第二中间层,所述第二输出层,所述第三中间层和所述第三输出层被配置为参与所述苗线的辅助训练。
13.结合第一方面,在一些可能的实现方式中,所述骨干网络包括5次下采样。这样,进一步加快了神经网络模型的运行速度。
14.结合第一方面,在一些可能的实现方式中,所述第一中间层包括3个深度可分离卷积模块,所述第二中间层和所述第三中间层分别包括2个深度可分离卷积模块。
15.结合第一方面,在一些可能的实现方式中,所述深度可分离卷积模块包括:特征扩充层,所述特征扩充层被配置为使用1*1卷积核将特征图数量扩充为原来的6倍;逐深度卷积层,所述逐深度卷积层被配置为在单一通道上进行卷积;逐点卷积层,所述逐点卷积层被配置为通过1*1的卷积核在所有通道上遍历;直连层,所述直连层被配置为使用残差结构连接输入与输出。通过深度可分离卷积模块,可以在获得更多细节的基础上,减小计算量,提升神经网络模型的运算速度。
16.结合第一方面,在一些可能的实现方式中,所述将所述第一特征图转化为所述苗线的坐标包括:使用1*1卷积核,将所述第一特征图进行降维,得到第十特征图;使用第一路线,第二路线,第三路线分别从第十特征图提取三组特征点;将所述三组特征点与n个全连
接层拼接,得到n个中间层;将n个中间层与n个输出层一一对应连接,得到n*h*(m 1)的输出矩阵,其中,n对应所述苗线的数量,h对应所述苗线的纵坐标,m对应所述苗线的横坐标。将第一特征图降维至第十特征图,可以在不损失明显精度的强狂下提高神经网络模型的推理速度;使用三种不同的路线进行特征的提取,可以获得更丰富的特征。
17.结合第一方面,在一些可能的实现方式中,n=6。
18.结合第一方面,在一些可能的实现方式中,所述使用第一路线,第二路线,第三路线分别从第九特征图提取三组特征点包括:基于所述第一路线,先从纵坐标方向提取特征,再从横坐标方向提取特征;基于所述第二路线,先从横坐标方向提取特征,再从纵坐标方向提取特征;基于所述第三路线,使用全卷积的方式提取特征。
19.结合第一方面,在一些可能的实现方式中,所述损失函数满足:
20.l
total
=l
cls
αl
str
βl
seg

21.其中,
[0022][0023]
l
str
=l
sim
l
shp

[0024][0025][0026]
l
cls
为分类损失函数,l
total
为所述损失函数,l
str
为结构损失函数,l
seg
为分割损失函数,l
sim
为相邻损失函数,l
shp
为形状损失函数,α为l
str
的放缩参数,β为l
seg
的放缩参数,p
i,j
对应苗线坐标的预测值,t
i,j
对应苗线坐标的实际值,l
ce
为交叉熵损失函数,loc
i,j
为苗线中苗点的坐标。分类损失函数l
cls
表示第位于第i条苗线的纵坐标为j的苗线上的苗点的横坐标的分类损失;相邻损失函数l
sim
可以用于约束同一苗线上的相邻苗点的位置,使苗点的坐标保持连续;形状损失函数l
shp
可以用于约束苗线的形状;分割损失函数l
seg
可以用于对神经网络模型进行辅助训练。
[0027]
第二方面,提供了一种苗线识别的装置,包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的模块。
[0028]
第三方面,提供了一种农机,包括:摄像头,用于拍摄农机行驶过程中作业地块的图像;处理器,用于控制所述摄像头并执行第一方面或第一方面的任意可能的实现方式中的方法。
[0029]
第四方面,提供了一种计算机可读存储介质,包括计算机程序,当其在计算机设备上运行时,使得所述计算机设备中的处理单元执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
[0030]
第五方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面或第一方面的各实现方式中的方法。
[0031]
第六方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一可能的实现方式中的方法。
附图说明
[0032]
图1为本技术一实施例的应用场景的示例图;
[0033]
图2为本技术一实施例的苗线识别的方法的示意性流程图;
[0034]
图3为本技术一实施例的识别的苗线的示意图;
[0035]
图4为本技术一实施例的输出的导航线的示意图;
[0036]
图5是本技术一实施例的输出的导航线的示意图;
[0037]
图6是本技术一实施例的导航线偏移的示意图;
[0038]
图7是本技术一实施例的输出的导航线的示意图;
[0039]
图8是本技术一实施例的添加标签后的图片的示意图;
[0040]
图9为本技术一实施例的对神经网络模型进行训练的示意图;
[0041]
图10是本技术一实施例的深度可分离卷积模块的示意图;
[0042]
图11是本技术一实施例的将特征图转化为苗线坐标的示意图;
[0043]
图12是本技术一实施例的将第一特征图转化为苗线坐标的流程图;
[0044]
图13是本技术一实施例的提取特征点的路线的示意图。
具体实施方式
[0045]
下面将结合附图,对本技术实施例中的技术方案进行描述。
[0046]
本技术实施例可以应用在田间作业中,识别作业地块的苗线的位置并输出导航线,使得农机按照导航线行驶。
[0047]
图1是本技术实施例提供的技术方案的应用场景的示例图。如图1所示,该应用场景中可以包括至少一个农机110和一个摄像头120。在农机110作业行驶过程中,摄像头120拍摄图片以采集作业地块的图像,根据采集到的作业地块的图像识别作业地块的苗线的位置,其中,作业地块可以包括一条或多条作物带,一条作物带可对应两条苗线。
[0048]
农机110在行驶过程中,一般会利用农机上的摄像头120抓拍若干张图片,然后通过神经网络等图像识别技术识别图片中苗线的位置。通常的苗线识别方法运算速度慢,需要占用较多的计算资源,难以兼顾准确率和运行速度。
[0049]
本技术中的苗线识别算法基于预先训练形成的神经网络模型,可以根据获得的图片正确识别农机行驶过程中的苗线,并根据苗线输出导航线,该苗线识别的算法可以兼顾苗线识别的准确率和速度。
[0050]
下面将结合图2详细描述本技术的苗线识别的方法。
[0051]
图2是本技术实施例提供的一种基于深度学习的苗线识别的方法的示意性流程图。如图2所示,该方法200包括:
[0052]
s210,获取第一图片,并根据第一图片生成第二图片,第一图片是农机110的摄像头120拍摄的图片。
[0053]
第一图片可以为农机110的摄像头120拍摄的作业地块的图片,第二图片为第一图片处理后得到的图片,例如,第二图片为第一图片按照一定比例缩小后的图片。其中,第一图片和第二图片中均可以包括一条或多条作物带。第二图片可以为第一图片经图像处理工具,例如opencv,处理后的图片。
[0054]
s220,使用预先训练的神经网络模型处理第二图片,以生成苗线。
[0055]
将第二图片输入预先训练好的神经网络模型,可以获得第二图片上的目标像素,根据目标像素正确识别并生成农机110行驶过程中的苗线。其中,生成的苗线可以包括以下
信息:苗线的数量,苗线中的苗点的坐标,例如纵坐标和横坐标等。
[0056]
可选地,第二图片也可以以数据的形式输入预先训练的神经网络模型,例如,该数据为第一图片经opencv工具处理后得到的数据,该数据包括压缩后的第一图片中的信息。
[0057]
s230,根据苗线的坐标计算各条苗线在第一图片的空间关系,得到第一苗线和第二苗线,第一苗线和第二苗线分别为第一图片中的苗线中的最中心的两条苗线。
[0058]
图3是本技术一实施例中识别的苗线的示意图。如图3所示,示出了6条苗线,6条苗线沿横坐标方向,即沿x方向依次排列,标号分别为1,2,3,4,5,6。第一苗线和第二苗线分别为图3中所示的6条苗线中的最中心的两条苗线,即,标号为3和4的苗线。第一图片中包括的作物带的数量不同,预先训练的神经网络模型在农机110的作业过程中输出的苗线的数量也可能不同,但第一苗线和第二苗线均为所识别输出的苗线中的最中心的两条苗线。
[0059]
s240,根据第一苗线和第二苗线生成导航线,导航线的横坐标为第一苗线的横坐标和第二苗线的横坐标的均值。
[0060]
如图3所示,第一苗线和第二苗线可以分别为图中标号为3和4的苗线,导航线位于第一苗线和第二苗线的中间,农机110可以按照该生成的导航线行驶。
[0061]
可选地,在本技术一实施例中,根据第一苗线和第二苗线生成导航线包括:当农机的两轮之间的作物带的数量为奇数时,生成位于所述作物带的中间的所述导航线,所述第一苗线和所述第二苗线分别是属于同一条作物带的两条苗线;
[0062]
当农机的两轮之间的作物带的数量为偶数时,生成位于相邻的两条所述作物带的垄的中间的所述导航线,所述第一苗线和所述第二苗线分别为相邻两条所述作物带的临垄的苗线。
[0063]
图4是本技术一实施例中的输出的导航线的示意图。如图4所示,农机110的两轮之间包括一条作物带,即包括两条苗线,该两条苗线分别可以为第一苗线和第二苗线。此时,生成的导航线位于作物带的中间。
[0064]
图5是本技术一实施例中的输出的导航线的示意图。如图5所示,农机110的两轮之间包括三条作物带,即,包括6条苗线,此时,第一苗线和第二苗线可以分别为标号为3和4的苗线。此时,生成的导航线位于作物带的中间。
[0065]
图6是本技术一实施例的导航线偏移的示意图。如图6所示,当摄像头120偏移后,识别的苗线可能会向左偏移。也就是说,此时,识别的苗线由图5所示变成了图6所示,原图5中标号为1的苗线为图6中标号为2’的苗线,原图5中未识别的苗线在图6中被识别为苗线。在这种情况下,所识别的第一苗线和第二苗线不属于同一条作物带,生成的导航线位于相邻的两条作物带的垄的中间,会与正确的导航线相差一个垄的距离。农机110按照错误的导航线行驶会发生跑偏,造成对作物带的破坏。
[0066]
通过设置当农机的两轮之间作物带的数量为奇数时,生成的导航线位于作物带的中间,可以避免由于摄像头等的偏移而导致的导航线的偏移,从而避免了农机的跑偏。
[0067]
图7是本技术一实施例中的输出的导航线的示意图。如图7所示,农机110的两轮之间包括两条作物带,即四条苗线,此时,第一苗线和第二苗线分别为图7中标号为2和3的苗线,第一苗线和第二苗线分别属于不同的作物带,且均靠近垄。在这种情况下,生成的导航线位于两条相邻的作物带间的垄上。
[0068]
可选地,在本技术一实施例中,根据第一图片生成第二图片包括:根据第一比例将
第一图片缩小至第二图片;根据苗线的坐标计算各条苗线在第一图片的空间关系包括:在生成苗线后,根据第二比例将苗线在第二图片的坐标还原至苗线在第一图片的坐标,第一比例与第二比例对应。
[0069]
第一图片的大小可以为720*1280(以像素为单位),可以根据第一比例将第一图片缩小至288*400的第二图片,缩小后的第二图片与第一图片的比例接近,在后续计算过程中,计算量可变为原计算量的大约1/9。在生成苗线的苗点的坐标后,可以将各条苗线上的苗点的坐标按第二比例还原至在第一图片中的坐标,从而可以得到在第一图片中的苗线上的苗点的坐标,这样,苗线上的苗点的坐标能够更加接近真实值。之后,可以根据第一图片中的第一苗线和第二苗线中的苗点的坐标值生成并输出导航线。
[0070]
可选地,在本技术一实施例中,训练神经网络模型前,还包括:获取第三图片;对所述第三图片添加标签,将添加标签后的所述第三图片转化为第四图片,所述第四图片为添加标签后的所述第三图片的灰度图,其中,标签与苗线在第三图片中的空间位置对应。
[0071]
第三图片可以为用来通过神经网络模型进行训练的原始图片,例如,第三图片的大小为720*1280*3,使用labelme工具对第三图片添加标签,并将添加标签后的第三图片转化为第四图片,第四图片为灰度图,大小为720*1280*1。
[0072]
图8是本技术一实施例的添加标签后的图片的示意图。如图8所示,沿x方向,从左到右,苗线的标签值依次为1,2,3,4,5,6,图中的黑色背景数值为0。也就是说,第四图片,即图8中,存在苗线时,会给苗线标注标签值,若不存在苗线,则此处值为0。
[0073]
本技术实施例中的神经网络模型将苗线识别表示成一个n*h*m的分类问题,其中,n表示苗线的数量,h表示苗线上的苗点的纵坐标,即y方向的位置,m表示苗线上的苗点的横坐标,即x方向的位置。例如,在苗线识别过程中,可以将大小为720*1280的图片在纵坐标方向上等间隔地选取36个点,在横坐标方向上有100个可取的坐标值,当此处苗点不存在时,横坐标值为0。基于此,该神经网络模型最多可以识别6条苗线,其输出结果是一个6*36*101的矩阵。该模型的分类结果可以根据以下公式(1)得到:
[0074]
p
i,j
=f
ij
(x),i∈[1,n],j∈[1,h]
[0075]
其中,一个(i,j)对应公式(1)的输出结果为1*101的矩阵,在1*101个数值中取值最大的值所对应的横坐标即为最终的分类结果。
[0076]
根据i的取值判断各条苗线的空间关系,从而可以找出识别的苗线中的最中心的两条苗线,对该最中心的两条苗线的横坐标求均值,得到36个点的坐标值,可以生成导航线。
[0077]
可选地,在本技术实施例中,也可以在纵坐标方向上选取更多的点,具体设置可以根据实际需求设置,本技术实施例对此不作限制。
[0078]
可选地,在本技术一实施例中,在使用预先训练的神经网络模型处理第二图片以生成苗线之前,苗线识别的方法还包括:对神经网络模型进行训练以得到预先训练的神经网络模型。
[0079]
图9为本技术一实施例的对神经网络模型进行训练的示意图,如图9所示,可以包括以下步骤。
[0080]
s310,获取第三图片,根据第一比例将第三图片缩小至第五图片。
[0081]
可以根据第一比例将大小为720*1280的第三图片缩小为大小为288*400的第五图
片,第五图片的比例与第三图片的比例接近,并且相对于第三图片,第五图片可以使计算量缩小为原来的大约1/9。
[0082]
第三图片可以为预先存储的包含作业地块的图片,可以用于神经网络模型的训练过程。
[0083]
s320,使用骨干网络提取第五图片的特征,得到第一特征图。
[0084]
骨干网络,也可以称为backbone网络,该骨干网络用于特征的提取,具体用于提取第五图片的特征。
[0085]
可选地,骨干网络可以包括:第一输入层input1,第一中间层stage1,第一输出层out1,第二中间层stage2,第二输出层out2,第三中间层stage3,第三输出层out3。
[0086]
第一输入层input1被配置为采用卷积模块conv-block对第五图片进行处理,得到第二特征图。例如,第五图片的大小为288*400*3,input1的输入为288*400*3,经过卷积运算后,得到第二特征图,第二特征图的大小为144*200*16。
[0087]
第一中间层stage1被配置为采用深度可分离卷积模块deepwise-block对所述第二特征图进行处理,得到第三特征图。例如,第二特征图的大小144*200*16,第三特征图的大小为36*100*8,其中,第一中间层stage1可以包括三个深度可分离卷积模块deepwise-block。
[0088]
第一输出层out1被配置为采用卷积模块conv-block对第三特征图进行处理,得到第一特征图。例如,第三特征图的大小为36*100*8,第一特征图的大小为36*52*44。
[0089]
可选地,第一输入层input1,第一中间层stage1,第一输出层out1用于苗线的推理,也就是说,第二中间层stage2,第二输出层out2,第三中间层stage3和第三输出层out3不用于苗线的推理,但第二中间层stage2,第二输出层out2,第三中间层stage3和第三输出层out3参与苗线识别过程的辅助训练。
[0090]
第二中间层stage2被配置为采用深度可分离卷积模块deepwise-block对第四特征图进行处理,得到第五特征图。例如,第四特征图的大小为36*100*12,第五特征图的大小为18*50*36,其中,第二中间层stage2可以包括两个深度可分离卷积模块deepwise-block。
[0091]
第二输出层out2被配置为采用卷积模块conv-block对第五特征图进行处理,得到第六特征图。例如,第五特征图的大小为18*50*36,第六特征图的大小为18*26*89。
[0092]
第三中间层stage3被配置为采用深度可分离卷积模块deepwise-block对第七特征图进行处理,得到第八特征图。例如,第七特征图的大小为9*25*56,第八特征图的大小为9*25*112,其中,第三中间层stage3可以包括两个深度可分离卷积模块deepwise-block。
[0093]
第三输出层out3被配置为采用卷积模块conv-block对第八特征图进行处理,得到第九特征图。例如,第八特征图的大小为9*25*112,第九特征图的大小为9*13*448。
[0094]
可选地,骨干网络结构包括5次下采样,也就是说,通过采用5次下采样,进一步加快了该神经网络模型的运行速度。
[0095]
通过设置将第一输出层out1的输出用于苗线的推理,第二输出层out2和第三输出层out3的输出用于辅助训练,可以提高模型的精度,同时也能加快模型的运算速度。表1示出了使用骨干网络结构进行特征提取的具体参数。
[0096]
表1骨干网络的参数
[0097][0098]
表1中,input代表输入的特征图的大小,operator代表使用的卷积模块的名称,t表示对应的卷积模块所运算的次数,c为通道的数量,n为卷积核的大小,s为初始的滑动距离,其中,从第二次开始,滑动距离均为1。
[0099]
图10是本技术一实施例的深度可分离卷积模块的示意图。如图10所示,深度可分离卷积模块,也可称为deepwise-block,包括特征扩充层,逐深度卷积层,逐点卷积层,直连层。
[0100]
特征扩充层被配置为使用1*1卷积核将特征图数量扩充为原来的6倍,以获得更多的细节。
[0101]
逐深度卷积层也可以称为deepwise卷积层,逐深度卷积层被配置为在单一通道上进行卷积,可以在提取特征的同时将计算量减小为普通卷积运算的1/c倍,c为通道的数量。
[0102]
逐点卷积层也可以称为pointwise卷积层,逐点卷积层被配置为通过1*1的卷积核在所有通道上遍历,可以将特征图的全局信息联系起来,弥补在单一通道进行卷积造成的损失。
[0103]
直连层也可以称为shortcut层,直连层被配置为使用残差结构连接输入与输出,以达到更深的网络结构,使神经网络模型获得更强的表征能力。
[0104]
s330,将第一特征图转化为苗线的坐标。
[0105]
图11是本技术一实施例的将特征图转化为苗线坐标的示意图,图12是本技术一实施例的将第一特征图转化为苗线坐标的流程图。可选地,在本技术一实施例中,如图12所示,将第一特征图转化为苗线的坐标包括以下步骤。
[0106]
s610,使用1*1卷积核,将第一特征图进行降维,得到第十特征图。
[0107]
经过第一输出层out1后,第一特征图的大小为,例如36*52*44。第一特征图可以降维得到第十特征图,第十特征图的大小为36*52*8。这样,将特征图的个数减少,可以提高模型的推理速度,同时将特征图个数由44降为8,可以不损失模型的明显精度。
[0108]
s620,使用第一路线,第二路线,第三路线分别从第十特征图提取三组特征点。
[0109]
图13是本技术一实施例的提取特征点的路线的示意图。如图13所示,可以通过三
种不同路线进行特征点的提取。
[0110]
在第一路线conv1中,先从纵坐标方向提取特征,再从横坐标方向提取特征。在第一路线conv1中,卷积核具体可以表现为:kernel_size=(36,1),strides=(36,1),filters=32,加上kernel_size=(1,52),strides=(1,52),filters=32。通过第一路线conv1,可以从36*52*8大小的特征图得到32个特征点。
[0111]
在第二路线conv2中,先从横坐标方向提取特征,再从纵坐标方向提取特征。在第二路线conv2中,卷积核具体可以表现为:kernel_size=(1,52),strides=(1,52),filters=32,加上kernel_size=(36,1),strides=(36,1),filters=32。通过第二路线conv2,可以从36*52*8大小的特征图得到32个特征点。
[0112]
在第三路线conv3中,使用全卷积的方式提取特征。在第三路线conv3中,卷积核具体可以表现为:kernel_size=(36,52),strides=(36,52),filters=32。通过第三路线conv3,可以从36*52*8大小的特征图得到32个特征点。
[0113]
将从三种路线得到的特征点连接,最后得到96个特征点。这种提取特征点的方式可以获得更丰富的特征,同时还能获得较快的模型运行速度。
[0114]
s630,将三组特征点与n个全连接层拼接,得到n个中间层。
[0115]
可选地,n为6,n与苗线的数量对应。可选地,将96个特征点分别与6个全连接层拼接,每个全连接层包括12个点,即可以得到96*12*6的矩阵。其中,每一个中间层负责一条苗线的推理预测。
[0116]
s640,将n个中间层与n个输出层一一对应连接,得到n*h*(m 1)的输出矩阵。
[0117]
可选地,n为6,h为36,m为100,将6个中间层与6个输出层连接,每个输出层包括36*101个点,将6个输出层连接到一起,可以得到6*36*101的矩阵。
[0118]
s340,使用损失函数l_total对神经网络模型进行修正。
[0119]
可选地,在本技术一实施例中,损失函数l
total
满足:
[0120]
l
total
=l
cls
αl
str
βl
seg

[0121][0122]
l
str
=l
sim
l
shp

[0123][0124][0125]
其中,l
cls
为分类损失函数,l
str
为结构损失函数,l
seg
为分割损失函数,l
sim
为相邻损失函数,l
shp
为形状损失函数,α为l
str
的放缩参数,β为l
seg
的放缩参数,p
i,j
对应苗线坐标的预测值,t
i,j
对应苗线坐标的实际值,l
ce
为交叉熵损失函数,loc
i,j
为苗线中苗点的坐标。
[0126]
分类损失函数l
cls
表示第i条苗线的第j个坐标点的横坐标分类损失。p
i,j
对应苗线坐标的预测值,将预测地苗点的坐标与实际苗点的坐标进行对比,若二者相符,则t
i,j
为1,不相符,t
i,j
为0。实际苗点的坐标可以从具有标签的第四图片获得,也就是说,第四图片可以用来作为苗点预测是否正确的依据。
[0127]
相邻损失函数l
sim
可以约束相邻苗点的位置,使苗线保持相对连续,避免出现散点的情况。p
i,j
和p
i,j 1
分别对应同一条苗线上,纵坐标相邻的两个苗点。
[0128]
形状损失函数l
shp
可以约束苗线的形状,这样,可以保证苗线大部分都为直线,避免或减少苗线拐弯的情况。
[0129]
分割损失函数l
seg
用于对模型进行辅助训练,可以实现全局信息与局部信息的聚合。
[0130]
在采用上述方法对神经网络模型训练之后,可以得到预先训练的神经网络模型并在作业过程中进行苗线的识别。上述将第一特征图转化为苗线的坐标的过程可以统称为后处理,前述提到的后处理过程运用到的模型为dense层,在其他实施例中,还可以使用conv层,deepwise conv层等。
[0131]
为了得到最优的神经网络模型,在神经网络模型中的后处理过程中分别采用了不同模型,即dense层,conv层,deepwise conv层进行测试。该测试将backbone网络与不同后处理模型结合并在嵌入式设备上进行测试,测试结果如表2所示。嵌入式设备可以为hd400b,lpc540。
[0132]
表2backbone网络与不同后处理模型在嵌入式设备的测试结果
[0133][0134]
由表2可以得到,随着网络深度的提高,也就是说,随着从stage1到stage2再到stage3的应用,模型的top1的准确率逐渐上升,其中在stage3中的conv层中,模型的top1的准确率为78.3%,但此模型需要消耗更多的计算机资源,与stage1相比,stage3阶段的模型的运算速度也明显降低。
[0135]
综合考虑模型整体的运行速度与精度,stage1-dense作为最终模型被应用在该神经网络模型中,stage1-dense在pc端达到了7.5ms的推理速度,在701设备cpu上达到67.8ms,在701设备gpu上达到72.8ms,只比单独的backbone网络结构慢了约1-2ms,并且其
top1精度可达到75.5%。相比准确率最高的stage3-conv,stage1-dense仅损失了2.8%的精度,在cpu和gpu上的运行速度分别提升了大约1倍和3倍。
[0136]
本技术实施例的神经网络模型可以在嵌入式设备,例如低算力平台,上运行或实时运行,而普通的模型难以实现嵌入式运行。
[0137]
本技术实施例还提供了一种苗线识别的装置,包括用于执行本技术的技术方案或者部分技术方案的模块。
[0138]
本技术实施例还提供了一种农机,该农机至少包括:摄像头,用于拍摄农机行驶过程中作业地块的图像;处理器,用于控制所述摄像头并执行本技术的技术方案或部分技术方案。
[0139]
本技术实施例还提供了一种计算机可读存储介质,用于存储计算机程序。
[0140]
应理解,本技术实施例的处理器可能是一种集成电路图像处理系统,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0141]
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0142]
还应理解,上文对本技术实施例的描述着重于强调各个实施例之间的不同之处,未提到的相同或相似之处可以互相参考,为了简洁,这里不再赘述。
[0143]
应理解,在本技术实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0144]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0145]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0146]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0147]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术实施例方案的目的。
[0148]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0149]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0150]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献