一种基于深度学习的甘蔗蔗芽特征识别装置的制作方法

文档序号:16037045发布日期:2018-11-24 10:09阅读:209来源:国知局

本发明涉及一种基于深度学习的甘蔗蔗芽特征识别装置,涉及深度学习、人工神经网络、图像处理、图像识别,以及涉甘蔗特征的识别和串口通信。

背景技术

目前我国研制及使用的甘蔗种植机机型均为实时切种式甘蔗种植机,种植机能顺序完成开沟、施肥、切种、覆土、铺膜等工序。但该种植机需人工将蔗种喂入切种器,实时切种并覆土种植,所以喂入工人劳动强度大、喂入不均匀、用蔗种多、容易造成漏播等情况,每亩用种量需1.3吨左右,且该种植机机箱较小,作业时补充蔗种麻烦,种植效率较低,种植密度不均匀。采用预切种式的甘蔗种植机械,每亩用种量仅需0.3-0.5吨,可以大幅节约蔗种,增加榨糖量,降低成本价格,并且有助于在排种阶段实现均匀排种,提高种植效率。因此相对于实时切种式,采用预切种式的甘蔗种植机械具有更明显的优点。

甘蔗切种的一个关键问题,一是要避开节的位置切割,避免切到蔗芽;二是保证一到两个完整节,如果没有节那就没有芽,白白浪费蔗种,如果节过多那么种植过密,并且也浪费了蔗芽。解决这两个问题的关键技术就是蔗节识别,然后再进行智能化切种。

蔗芽特征识别的研究,目前有少数的研究,黄亦其等基于matlab的甘蔗茎节特征分布定位与试验[1]。目前还没有见到有关深度学习应用于蔗芽特征识别方面的研究。

目前市场上还没有专门的甘蔗蔗芽特征识别装置,特别是还没有可以实现快速识别甘蔗蔗节芽方法、装置。

本发明针对以上问题,提供一种基于深度学习的甘蔗蔗芽特征识别装置,通过摄像头拍摄甘蔗图像,然后通过计算机或者arm嵌入式开发板进行图像处理与图像识别,识别出甘蔗位置,最后生成甘蔗位置数据,通过计算机或者arm嵌入式开发板的串口输出甘蔗位置数据。



技术实现要素:

为实现上述目的,本发明提供如下技术方案:一种基于深度学习的甘蔗蔗芽特征识别装置,其特征在于,其包括依次连接的预处理模块、预学习模块、浅层学习模块、深度学习模块、蔗芽特征输出模块和云服务器与监测终端模块;其中,

所述预处理模块包括摄像头、图像采集单元和图像滤波单元三个部分;

所述预学习模块包括快速蔗节识别模块、快速甘蔗位置识别模块两个部分;

所述浅层学习模块采用浅层神经网络结构,进行快速的特征识别;

所述深度学习模块采用深度神经网络结构,进行精确的特征识别,其包括深度训练模块、深度识别模块。深度训练模块用于样本的训练,深度识别模块用于采用已经训练好的参数,在正常工作时进行精确的特征识别;

蔗芽特征输出模块包括生成蔗芽位置信息、生成输出字符串;

云服务器与监测终端模块包括tcp云服务器,用于保存系统的参数,保存甘蔗种的数据库信息。

进一步,作为优选,快速甘蔗位置识别模块包括y方向梯度计算,其采用rbg三基色单独计算梯度的方法,然后进行y方向梯度投影,计算每一行(x轴)的值总合,相当于把整个梯度图像投影到y轴上,获得一个一维的x方向梯度投影数组(波形),y方向第一级滤波、y方向第一级整形、y方向第二级滤波、y方向第二级整形、确定甘蔗所在区域。

进一步,作为优选,快速蔗节识别模块包括x方向梯度计算、y方向梯度投影、投影波形限幅,x方向梯度计算包括x方向第一路滤波、x方向第一路整形、x方向第二路滤波、x方向第二路整形、两路波形合成、蔗节位置识别,其中x方向第一路滤波、x方向第一路整形、x方向第二路滤波、x方向第二路整形,分别进行两路的滤波和整形,然后进行两路数据进行或运算;最后进行蔗节位置识别,输出数据(波形)上升沿处为某一蔗节的开始位置,输出数据(波形)下降沿处为某一蔗节的结束位置;依次把所有蔗节位置都标定;对于过密的两个蔗节位置进行合并,合并近邻区域,如果两个近邻区域小于经验值,则对该两个近邻区域进行合并。生成蔗节位置数据,其中,经验值默认取总数据长度的2%。

进一步,作为优选,浅层学习模块包括浅层训练模块、浅层识别模块;浅层训练模块用于样本的训练,浅层识别模块用于采用已经训练好的参数,在正常工作时进行特征识别;

所述的浅层训练模块的具体步骤包括:

(1)把蔗芽图片分成两大类别,第1类为蔗芽图片,第2类为非蔗芽图片;

(2)两类图片采用40x40的大小;

(3)构建5层结构的mlp神经网络,5层的节点数,默认值分别为:1600,300,150,50,1。节点数可以通过设置进行改变;

(4)激活函数设置为sigmoid函数;

(5)训练方法为反向传播,学习率默认为0.01,可以通过设置进行改变;

(6)算法的中止条件:最大迭代次数默认采用300000次,容许误差默认采用1e-6,可以通过设置进行改变;

(7)训练用特征向量以列向量存储;

(8)进行训练,并保存mlp网络及参数数据。

进一步,作为优选,浅层识别模块包括以下步骤:

(1)根据权利要求5生成的蔗节位置数据,提取每一个蔗节的位置。

(2)根据提取的蔗节位置,在蔗节位置以及附近进行扫描,抽取40x40大小的图片块。

(3)根据权利要求7生成的mlp网络及参数数据,构建识别网络,对40x40大小的图片块进行识别,判断是蔗芽的可能性。

(4)提取该节最有可能是蔗芽的位置。

进一步,作为优选,所述深度学习模块采用深度神经网络结构,进行精确的特征识别,其包括深度训练模块、深度识别模块。深度训练模块用于样本的训练,深度识别模块用于采用已经训练好的参数,在正常工作时进行精确的特征识别;

深度神经网络结构采用alexnet模型,共有5个卷积层,3个全连接层,前两个卷积层和第五个卷积层有pool池化层,其他两个卷积层没有池化。

进一步,作为优选,所述深度训练模块具体要求如下:

(1)把蔗芽图片分成两大类别,第1类为蔗芽图片,第2类为非蔗芽图片;

(2)两类图片采用227x227的大小;

(3)基础学习率采用0.001,基础学习率在迭代的过程中,对基础学习率进行调整。表示基础学习率,在参数梯度下降优化的过程中,学习率会有所调整;

(4)最大迭代次数采用5000,这个数设置太小,会导致没有收敛,精确度很低;设置太大,会导致震荡,浪费时间;

(5)学习率变化指数采用0.1;

(6)动量采用0.9,上一次梯度更新的权重。

进一步,作为优选,所述深度识别模块确定蔗芽位置的方法如下:

(1)根据深度训练模块获取的深度神经网络结构和参数,构建深度神经网络;

(2)根据浅层识别模块获取的最有可能是蔗芽的位置,提取60x60大小的图像块;

(3)通过插值方式,构造227x227大小的图像块;

(4)采用深度神经网络,对227x227大小的图像块进行精确的识别,确定蔗芽位置。

进一步,作为优选,蔗芽特征输出模块包括生成蔗芽位置信息、生成输出字符串;步骤如下:

(1)根据深度识别模块生成的蔗芽位置信息。

(2)生成蔗芽位置信息输出字符,字符串的格式如下:

{bud:{1:x,y,w,h,r},{2:x,y,w,h,r},{3:x,y,w,h,r},}

(x,y)代表蔗芽位置左上角坐标,w代表蔗芽图像模块宽度,h代表蔗芽图像模块高度,r代表识别的可信度。

进一步,作为优选,所述的云服务器与监测终端模块包括tcp云服务器和监测终端,其中,tcp云服务器用于保存系统的参数,保存甘蔗种的数据库信息;监测终端用于远程检测该设置的数据。

与现有技术相比,本发明的有益效果是:

本发明通过摄像头拍摄甘蔗图像,然后通过计算机或者arm嵌入式开发板进行图像处理与图像识别,识别出甘蔗位置,最后生成甘蔗位置数据,通过计算机或者arm嵌入式开发板的串口输出甘蔗位置数据。

本发明实现了甘蔗蔗芽的快速检测。在inteli7-3770处理器环境下测试(采用cpu模式,没有使用cuda的情况下进行测试);

(1)完成一次浅度识别需要的时间平均为:

time:0.31ms

(2)完成一次深度识别的时间平均为:

time:341.09ms。

附图说明

图1是本甘蔗蔗芽特征识别装置软件结构

图2是本甘蔗蔗芽特征识别装置硬件结构

图3是快速甘蔗位置识别模块效果图

图4是快速蔗节识别模块效果图

图5是第1类为蔗芽部分样图示例

图6是第2类为非蔗芽部分样图示例

图7是训练过程

图8是浅层识别模块效果图

图9是深度识别模块效果图

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-9,本发明提供一种技术方案:一种基于深度学习的甘蔗蔗芽特征识别装置,其特征在于,其包括依次连接的预处理模块、预学习模块、浅层学习模块、深度学习模块、蔗芽特征输出模块和云服务器与监测终端模块;其中,

所述预处理模块包括摄像头、图像采集单元和图像滤波单元三个部分;

所述预学习模块包括快速蔗节识别模块、快速甘蔗位置识别模块两个部分;

所述浅层学习模块采用浅层神经网络结构,进行快速的特征识别;

所述深度学习模块采用深度神经网络结构,进行精确的特征识别,其包括深度训练模块、深度识别模块。深度训练模块用于样本的训练,深度识别模块用于采用已经训练好的参数,在正常工作时进行精确的特征识别;

蔗芽特征输出模块包括生成蔗芽位置信息、生成输出字符串;

云服务器与监测终端模块包括tcp云服务器,用于保存系统的参数,保存甘蔗种的数据库信息。

下面具体对各个模块进行介绍:

1.预处理模块

预处理模块包括摄像头、图像采集和图像滤波三个部分。其中图像滤波采用高斯滤波器,高斯内核的大小采用(3,3)。甘蔗图像第i行第j列的数据表示为x(i,j)和y(i,j),则使用窗口大小为(2w+1)×(2w+1),标准差为σ的高斯核计算后的结果为

{i|0<=i<=w,j|0<=j<=h}

根据这个表达式,为了得到位置(i,j)上的输出,需要将高斯核的中心置于输入图片的位置(i,j)处,让高斯核的每一个值和输入图片对应位置上的值相乘,进行(2w+1)×(2w+1)次乘法计算,然后再进行(2w+1)×(2w+1)-1次加法计算,所以时间复杂度是o(w2)的。

为了获得最终的高斯滤波的结果,可以先用横向一维高斯核g2与输入图片x进行计算,得到中间结果z。再用纵向一维高斯核g1与中间结果z进行计算,得到输出y。时间复杂度仅为o(w),比直接采用(1)式的计算方法快了很多。但是该算法需要使用和输入图片尺寸一致的内存保存中间结果。

2.预学习模块

预学习模块包括快速蔗节识别模块、快速甘蔗位置识别模块两个部分。

2.1快速甘蔗位置识别模块

快速甘蔗位置识别模块包括y方向梯度计算,采用通常的灰度梯度算法,而是采用rbg三基色单独计算梯度的方法,然后进行y方向梯度投影,计算每一行(x轴)的值总合,相当于把整个梯度图像投影到y轴上。获得一个一维的x方向梯度投影数组(波形)。y方向第一级滤波、y方向第一级整形、y方向第二级滤波、y方向第二级整形、确定甘蔗所在区域。快速甘蔗位置识别模块行动效果如图3所示。

2.2快速蔗节识别模块

快速蔗节识别模块包括x方向梯度计算、y方向梯度投影、投影波形限幅。包括x方向第一路滤波、x方向第一路整形、x方向第二路滤波、x方向第二路整形、两路波形合成、蔗节位置识别。其中x方向第一路滤波、x方向第一路整形、x方向第二路滤波、x方向第二路整形,分别进行两路的滤波和整形,然后进行两路数据进行或运算。最后进行蔗节位置识别,输出数据(波形)上升沿处为某一蔗节的开始位置,输出数据(波形)下降沿处为某一蔗节的结束位置;依次把所有蔗节位置都标定;对于过密的两个蔗节位置进行合并。合并近邻区域,如果两个近邻区域小于经验值(经验值默认取总数据长度的2%),则对该两个近邻区域进行合并。生成蔗节位置数据。快速蔗节识别模块运行效果如图4所示。

3浅层学习模块

浅层学习模块采用浅层神经网络结构,进行快速的特征识别。包括浅层训练模块、浅层识别模块。浅层训练模块用于样本的训练,浅层识别模块用于采用已经训练好的参数,在正常工作时进行特征识别。

浅层神经网络结构多层感知器(multi-layerperceptrons,mlp)模型,它使用输入与输出之间的多层加权连接.mlp的结构基本类似于一套级联的感知器,其中每一格处理单元都有一格相对复杂的输出函数,从而增强网络的性能。

训练过程采用误差反向传播算法(bp算法)。bp算法就是采用这样的思想设计出来的算法,它的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。基本bp算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。

3.1浅层训练模块

(1)把蔗芽图片分成两大类别,第1类为蔗芽图,如图5所示;第2类为非蔗芽图片,如图6所示。

(2)两类图片采用40x40的大小。

(3)构建5层结构的mlp神经网络,5层的节点数,默认值分别为:1600,300,150,50,1。节点数可以通过设置进行改变。

(4)激活函数设置为sigmoid函数。

(5)训练方法为反向传播,学习率默认为0.01,可以通过设置进行改变。

(6)算法的中止条件:最大迭代次数默认采用300000次,容许误差默认采用1e-6,可以通过设置进行改变。

(7)训练用特征向量以列向量存储。

(8)进行训练,并保存mlp网络及参数数据。

训练过程过程采用bp算法实现,如图7所示。bp算法实现其有简单、易行、计算量小、并行性强等优点,实质是求解误差函数的最小值问题,由于它采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权值。

当采用前述的动量法时,bp算法可以找到全局最优解,而当采用自适应学习速率时,bp算法可以缩短训练时间,采用这两种方法也可以用来训练神经网络,该方法称为动量-自适应学习速率调整算法。学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值。所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。学习速率的选取范围在0.01-0.8之间。

3.2浅层识别模块

浅层识别模块:

(1)根据权利要求5生成的蔗节位置数据,提取每一个蔗节的位置。

(2)根据提取的蔗节位置,在蔗节位置以及附近进行扫描,抽取40x40大小的图片块。

(3)根据权利要求7生成的mlp网络及参数数据,构建识别网络,对40x40大小的图片块进行识别,判断是蔗芽的可能性。

(4)提取该节最有可能是蔗芽的位置。

4深度学习模块

4.1.1alexnet模型

深度学习模块采用深度神经网络结构,进行精确的特征识别。包括深度训练模块、深度识别模块。深度训练模块用于样本的训练,深度识别模块用于采用已经训练好的参数,在正常工作时进行精确的特征识别。

深度神经网络结构采用alexnet模型,共有5个卷积层,3个全连接层,前两个卷积层和第五个卷积层有pool池化层,其他两个卷积层没有池化。

4.2深度训练模块结构

深度训练模块:

(1)把蔗芽图片分成两大类别,第1类为蔗芽图片,第2类为非蔗芽图片。

(2)两类图片采用227x227的大小。

(3)基础学习率采用0.001。基础学习率在迭代的过程中,可以对基础学习率进行调整。表示基础学习率,在参数梯度下降优化的过程中,学习率会有所调整。

(4)最大迭代次数采用5000。这个数设置太小,会导致没有收敛,精确度很低;设置太大,会导致震荡,浪费时间。

(5)学习率变化指数采用0.1。

(6)动量采用0.9,上一次梯度更新的权重

4.3深度识别模块

深度识别模块:

(1)根据深度训练模块生成的深度神经网络结构和参数,构建深度神经网络。

(2)根据浅层识别模块获取的最有可能是蔗芽的位置,提取60x60大小的图像块。

(3)通过插值方式,构造227x227大小的图像块。

(4)采用深度神经网络,对227x227大小的图像块进行精确的识别,确定蔗芽位置。

5.蔗芽特征输出模块

蔗芽特征输出模块包括生成蔗芽位置信息、生成输出字符串。步骤如下:

(1)根深度识别模块,生成蔗芽位置信息。

(2)生成蔗芽位置信息输出字符,字符串的格式如下:

{bud:{1:x,y,w,h,r},{2:x,y,w,h,r},{3:x,y,w,h,r},}

(x,y)代表蔗芽位置左上角坐标,w代表蔗芽图像模块宽度,h代表蔗芽图像模块高度,r代表识别的可信度。例如:

{bud:{1:110,80,60,60,0.66},{2:200,150,60,60,0.74},}

6.云服务器与监测终端模块

云服务器与监测终端模块包括tcp云服务器,用于保存系统的参数,保存甘蔗种的数据库信息。还包括监测终端,用于远程检测该设置的数据。

本发明包括核心处理器模块、tcp服务器、监测终端,如图2所示。所述的核心处理器模块,主要是intel-i7处理器或者arm64位处理器系统,全志a64主要采用全志a64处理,全志a64处理是全志科技于2015年初发布的4核64位处理器,主要应用于入门级的平板电脑。全志a64采用64位四核cortex-a53cpu架构,mali400mp2gpu图形处理器,支持h.2654k视频硬件解码,支持linux、安卓等操作系统,具有反应速度/性能/功耗等优点,可实现9.9秒冷启动开机。a64芯片价格超低至5美金。

所述tcp服务器,是连接internet的电脑以及tcp服务器程序组成,tcp服务器程序采用c++语言进行开发,提供josn格式的数据请求。所述监测终端由硬件和软件组成,硬件是通用的手机、平板电脑或者pc机,也可以使用电柜自动监测装置专用的监测终端,专用监测终端由stm32f407+3.2寸触摸屏组成,监测终端软件是一套专用的测控软件。监测终端的功能包括硬件功能、软件功能、数据保存功能、数据分析与处理功能。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1