技术领域
[0001] 本
发明属于智能农业领域,更具体的说设计一种机遇深度学习的咖啡果实成熟度的识别方法。
背景技术
[0002] 随着
人工智能的快速发展以及在工业领域发挥的巨大效能,让农业看到了新的变革的机会,深度学习技术在农业领域的应用有着广阔的发展前景。
[0003] 传统的咖啡果实成熟度的识别方法,主要是通过肉眼进行观察,不仅费时又费
力,而且对农民在农业生产过程中积累的经验依赖度很高,同时还很有可能会产生错误,从而错过咖啡果实采收的最佳时间,要获得优质的咖啡豆,对农业生产者有着极高的专业知识要求。因此,目前迫切需要一种新的方法来对咖啡果实成熟度进行识别。因此基于深度学习的咖啡果实的识别的研究,对于提高准确率和生产力,降低人工成本,促进农民增收均具有最要的意义。
发明内容
[0004] 为了克服
现有技术的不足,本发明提出了一种基于深度学习的咖啡果实成熟度的识别方法。能够实现在无人工的参与下自动地识别出咖啡果实是否成熟,不仅提高了识别的准确率和效率而且还能降低人工成本。
[0005] 为了解决上述问题,本发明是通过以下技术方案实现的:一种基于深度学习的咖啡果实成熟度的识别方法:其特征在于:所述的方法具体步骤如下:
[0006] 步骤1,对咖啡果实图像进行采集,并进行预处理;
[0007] 步骤2,将所述第n张果实图像样本Xn作为输入图像,将所述第n张果实图像样本Xn所对应的果实成熟度Yn作为识别目标,训练
卷积神经网络模型Φ;
[0008] 步骤3,计算第t次
迭代的卷积神经网络Φt的代价损失Lt,并求解输入图像Xn在卷积神经网络Φt的滤波响应梯度;
[0009] 步骤4,将所述滤波响应梯度在卷积神经网络Φt进行反向传播,从而更新第t次迭代的卷积神经网络Φt的各层权值和偏置参数;
[0010] 步骤5,将t+1赋值给t,并判断Lt≥ε或t≤tmax是否成立,若成立,则返回步骤2-2;否则,表示完成卷积神经网络模型Φ的训练;
[0011] 步骤6,将所采集的咖啡果实图像作为识别图像并经过预处理之后输入到所述卷积神经网络模型Φ中,从而得到所述咖啡果实图像特征,再将该特征输入到分类器中以判别咖啡果实的成熟度。
[0012] 优选的,所述的步骤1,具体步骤如下:获取不同成熟度的咖啡果实图像的样本集,同时将图像裁剪为统一大小,并进行预处理。将处理后的咖啡果实图像,记为X={X1,X2,….Xn…XN},其中Xn表示第n张咖啡果实图像样本,并记第n张果实图像样本所对应的果实成熟度标签为Yn,n=1,2,…,N,其中Y的取值集合为{成熟、未成熟}。
[0013] 优选的,所述的步骤2,具体步骤如下:
[0014] 步骤2-1,定义所述卷积神经网络模型包括:两层的特征
感知层记为α1和α2,一层的第一激活函数层记为χ1,一层的第一维度收缩层记为β1,两层的精化层记为α3和α4,一层的第二激活函数层记为χ2,一层的第二维度收缩层记为β2,一层的全连接层记为λ;
[0015] 设置代价损失
阈值为ε。,最高迭代次数tmax;为则任意第t次迭代的卷积神经网络模型Φt中按如下过程建立:
[0016] 步骤2-2,在第t次迭代中,所述输入图像Xn分别经过所述特征感知层α1和α2的线性
滤波器卷积处理后,得到特征感知图像
[0017] 步骤2-3,将所述特征感知图像 送入第一激活函数层χ1,从而利用式(1)所示的稀疏层和Maxout层神经元进行激活,得到激活图像
[0018]
[0019] 式(1)中,k表示所述Maxout层的神经元个数,m表示所述第一维度收缩层β1的神经元个数,d表示特征感知层α2的神经元个数,Wij表示所述第一维度收缩层β1中第i个神经元对应的Maxout层中的任意第j个神经元的权值,bij表示权值Wij对应的偏置; 表示所述特征感知图像 在所述第一维度收缩层β1中第i个神经元对应的Maxout层中第j个神经元的输出; 表示所述第一维度收缩层β1中第i个神经元对应的Maxout层中最大神经元的输出值, 表示所述第一维度收缩层β1中所有神经元对应的Maxout层中最大神经元的输出值;
[0020] 步骤2-4,将所述激活图像 经过所述第一维度收缩层β1进行维度收缩处理,得到维度收缩图像
[0021] 步骤2-5,将所述维度收缩图像 分别经过精化层记为α3和α4的
线性滤波器进行卷积处理后,得到特征精化图像 后,再经过所述第二激活函数层χ2和第二维度收缩层β2的处理后,得到特征图像
[0022] 步骤2-6,将所述特征图像 中所有神经元与全连接层λ中所有神经元进行全连接处理,得到最终特征图像 并输入到分类器中,输出分类结果yn。
[0023] 优选的,在步骤1中,所述的咖啡果实图像的采集,主要是利用已有的摄像装置,在咖啡果实成长的各个阶段来进行拍摄,以便采集不同阶段的咖啡果实的成熟度图像。
[0024] 优选的,在步骤1中,所述的咖啡果实图像的预处理包括将样本集分成训练集和测试集,并且保证其其正负样本比例维持均衡。
[0025] 根据
权利要求1所述的一种基于深度学习的咖啡果实成熟度的识别方法,其特征在于:在步骤6中,所述的分类器是基于SVM的咖啡果实成熟度识别分类器,其中SVM的核函数为径向基(RBF)函数。
[0026] 本发明有益效果:
[0027] 1.为了提高网络的表达能力而非大规模增加尺寸,本发明针对咖啡果实图像存在的分界性、聚集性和不规则性,在传统非连续卷积神经网络模型
基础之上进行改进,专
门设计了连续卷积层+稀疏Maxout激活函数层的卷积神经网络模型,在控制网络规模的前提下提升了网络模型的表达能力,并通过大量实验进行参数和模型的优化,在
农作物病害识别中取得了很好的效果,并有效地解决了
图像识别方法中大量预处理带来的时间损耗导致的识别效率低,在少量预处理和大样本的条件下,无论是与传统识别方法,还是非连续卷积神经网络模型相比,都显著地减少了识别时间,提高了识别效率。
[0028] 2.本发明采用了连续卷积层的结构设计,使得整个卷积神经网络既具备了极强的特征提取和非线性表达能力,又保证了整个网络不至于太过臃肿,参数的数量得到一定程度限制,保证了较短的训练神经网络时间。
[0029] 3.本发明使用稀疏Maxout作为激活函数层,针对传统激活函数,如sigmoid函数,tanh函数,以及ReLU函数等在某些情况下出现无法激活的
缺陷,提出了稀疏Maxout激活函数,引入的稀疏性是可以调节,是具有动态变化的特征。另外,Maxout激活函数不仅可以有效避免上述激活函数存在的缺陷,其稀疏特征拟合能力很强,具有ReLU的所有优点,又能有效改善了卷积神经网络的学习效果。原始数据中通常缠绕高
密度的特征,稀疏性能够解开特征间缠绕的复杂关系。
[0030] 4、本发明由于采用深度学习方法,通过建立多层的神经网络,来模仿人类大脑处理信息的方式,逐层抽象、自动学习良好的特征,从而大大提升了效率和识别率,对于不同环境、光照强度、天气情况以及摄像头
角度,转换为稀疏特征,那么特征就均具有良好的鲁棒性(去掉无关的噪声)。
[0031] 5.本发明使用logistic分类器作为图像特征分类,将由特征图像 中所有神经元与全连接层λ中所有神经元进行全连接处理得到的特征图像 进行分类,识别结果符合伯努利分布模型,分为两种结果,这符合识别果实是否成熟的要求,与其它分类器相比,简化了结果,提高识别的效率。
附图说明
[0033] 图2为本发明卷积神经网络的结构示意图;
[0034] 图3为本发明卷积神经网络具有稀疏性的Maxout激活函数原理图;
具体实施方式
[0035] 为了更加详细的描述本发明提出的一种基于深度学习咖啡果实成熟度的方法,结合附图,举例对本发明作进一步详细的说明,如下所示。
[0036] 本
实施例中,如图1所示,一种基于深度学习咖啡果实成熟度的方法能对所拍摄的咖啡果实图像进行
采样,得到原始咖啡果实图像。将采样图像裁剪为统一大小的图像、并处理成为神经网络模型输入所要求的文件格式;将训练样本数据送入由连续卷积层+稀疏Maxout激活函数层构成的卷积神经网络模型中,离线训练得到最终模型。最终将待识别的咖啡果实图像输入到训练好的模型,得到咖啡果实是否成熟。具体的说,包括如下步骤:
[0037] 步骤1,对咖啡果实图像进行采集,并进行预处理,其中包括如下步骤:
[0038] 获取不同成熟度的咖啡果实图像的样本集,同时将图像裁剪为统一大小,并进行预处理。将处理后的咖啡果实图像,记为X={X1,X2,….Xn…XN},其中Xn表示第n张咖啡果实图像样本,并记第n张果实图像样本所对应的果实成熟度标签为Yn,n=1,2,…,N,其中Y的取值集合为{成熟、未成熟};本实例选择了“卡蒂莫7963”为实验对象,其中成熟度主要是
果皮颜色的红色深红色、红色、墨绿色、绿色(红色、深红色代表成熟,墨绿色和绿色代表不成熟)。随机选择600幅图片作为训练样本,200幅图像作为测试样本。考虑到卷积神经网络提取特征的过程以及农业生产实时性的要求,除了全部裁剪成固定大小64*64以外,并未对原始图形进行任何平滑、锐化、分割果实等预处理。裁剪完成后,使用CAFFE
框架提供的convert_imageset.cpp将咖啡果实图像进行数据转换。
[0039] 步骤2,将所述第n张果实图像样本Xn作为输入图像,将所述第n张果实图像样本Xn所对应的果实成熟度Yn作为识别目标,训练卷积神经网络模型Φ,其具体过程如下:
[0040] 步骤2-1,定义所述卷积神经网络模型包括:两层的特征感知层记为α1和α2,一层的第一激活函数层记为χ1,一层的第一维度收缩层记为β1,两层的精化层记为α3和α4,一层的第二激活函数层记为χ2,一层的第二维度收缩层记为β2,一层的全连接层记为λ;
[0041] 设置代价损失阈值为ε,最高迭代次数tmax;在本实例中,设置代价损失阈值为ε=6e-2,最高迭代次数λ=1×104,则任意第t次迭代的卷积神经网络模型Φt中按如下过程建立:
[0042] 步骤2-2,在第t次迭代中,所述输入图像Xn分别经过所述特征感知层α1和α2的线性滤波器卷积处理后,得到特征感知图像 本实例采用,64个3×3大小的线性滤波器对输入图像进行卷积。由于使用连续两个卷积层,前一卷积层得到的特征图作为输出再次进行卷积操作。这样做不仅可以减小网络学习时间和复杂性,而且能够在控制网络规模的前提下提升其表达能力。2个3×3卷积层和1个5×5的卷积层有着同样有效的感受野,且由于连续两次卷积,使得图像得到两次非线性激活函数计算,保证具有相同感知野的条件下,提升了网络的深度,在一定程度上提升了神经网络的效果;并且减少大约30%的参数数量。此外,对于生成C个特征图的卷积层来说,一个5×5卷积核产生的参数为(5×5+l)×C2=26C22
个(加上偏置项),而对于连续两个3×3的卷积层来说,生成的参数为2×(3×3+l)X C =
20C2个,因此该设计能起到降低网络复杂度的作用。
[0043] 步骤2-3,将所述特征感知图像 送入第一激活函数层χ1,从而利用式(1)所示的稀疏层和Maxout层神经元进行激活,得到激活图像
[0044]
[0045] 式(1)中,k表示所述Maxout层的神经元个数,m表示所述第一维度收缩层β1的神经元个数,d表示特征感知层α2的神经元个数,Wij表示所述第一维度收缩层β1中第i个神经元对应的Maxout层中的任意第j个神经元的权值,bij表示权值Wij对应的偏置; 表示所述特征感知图像 在所述第一维度收缩层β1中第i个神经元对应的Maxout层中第j个神经元的输出; 表示所述第一维度收缩层β1中第i个神经元对应的Maxout层中最大神经元的输出值, 表示所述第一维度收缩层β1中所有神经元对应的Maxout层中最大神经元的输出值;
[0046] 步骤2-4,将所述激活图像 经过所述第一维度收缩层β1进行维度收缩处理,得到维度收缩图像
[0047] 步骤2-5,将所述维度收缩图像 分别经过精化层记为α3和α4的线性滤波器进行卷积处理后,得到特征精化图像 后,再经过所述第二激活函数层χ2和第二维度收缩层β2的处理后,得到特征图像
[0048] 步骤2-6,将所述特征图像 中所有神经元与全连接层λ中所有神经元进行全连接处理,得到最终特征图像 并输入到分类器中,输出分类结果yn。。
[0049] 步骤3,计算第t次迭代的卷积神经网络Φt的代价损失Lt,并求解输入图像Xn在卷积神经网络Φt的滤波响应梯度;
[0050] 步骤4,将所述滤波响应梯度在卷积神经网络Φt进行反向传播,从而更新第t次迭代的卷积神经网络Φt的各层权值和偏置参数
[0051] 步骤5,将t+1赋值给t,并判断Lt≥ε或t≤tmax是否成立,若成立,则返回步骤2-2;否则,表示完成卷积神经网络模型Φ的训练;
[0052] 步骤6,将所采集的咖啡果实图像作为识别图像并经过预处理之后输入到所述卷积神经网络模型Φ中,从而得到所述咖啡果实图像特征,再将该特征输入到分类器中以判别咖啡果实的成熟度。
[0053] 上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解。本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,任何依本发明所做的技术延伸或再创造,均受本发明的保护。