一种植物叶片的图像识别方法

文档序号:6606944阅读:389来源:国知局
专利名称:一种植物叶片的图像识别方法
技术领域
本发明涉及植物自动分类技术领域,具体涉及植物叶片图像识别方法。
背景技术
千百年来植物与人类息息相关、紧密相连。随着人类文明的进步,植物却遭到了越 来越严重的破坏。因此,对植物进行识别归类,建立植物数字化资源库,以助于植物的保护, 具有重要的意义。而植物叶片数字化图像机器识别算法无疑会大大加快植物的分类工作。由于花、果、茎、枝存在复杂的立体几何特征,对于机器而言,叶片的识别相对简 单有效。St印hen Gang Wu等人采用概率神经网络(PNN,全称Probabilistic Neural Network)对植物叶片进行分类识别。实验表明,对32种植物叶片的识别率为90%。同时, 作者在篇末展望中指出如果能在识别后提供可能性排序结果列表而不仅仅是单一结果, 那将会大大改善识别效果。而Xiao-Feng Wang等人从植物叶片中提取了 “纵横轴比”、“面 积凹凸比”等特征,并运用自行设计的超球分类器对其进行分类。在对20种植物叶片的分 类实验中,识别率为92%。Xiao Gu等人结合小波变换和高斯插值法,提取出叶片的轮廓 特征和叶脉特征,并分别运用1最近邻分类器(1-NN,全称I-Nearest Neighbor)、k最近邻 分类器(k-NN,全称k-Nearest Neighbor)、概率神经网络等三种方法进行了分析识别。在 20种植物叶片的分类实验中,采用1-NN、k-NN和PNN的识别率分别是93%、85%和91%。 Qing-Kui Man等人则提取植物叶片的颜色特征和纹理特征,并用支持向量机分类算法对植 物叶片进行分类识别。在结合这两种特征对24种植物叶片进行的分类实验中,识别率为 92%。上述提到的众多现有的方法只提供单一的识别结果。与此同时,这些算法都是在 二三十种植物叶片的情况下,达到92%左右的正确率。那么,当涵盖的植物叶片种类达到几 百上千种甚至更多的时候,这些算法得出的唯一的结果,与真实结果一致的概率(也就是 识别的正确率)就会大大减少。这也是诸如google、baidu等所有的搜索引擎要提供多个 候选结果的原因。在搜索引擎中,用户输入关键字,系统进行搜索匹配,由于系统涵盖着海 量的信息,如果它仅仅把与用户输入的关键字最匹配的那个结果显示,那么用户很可能得 不到想要的信息。因此,搜索引擎按与用户输入的关键字匹配程度从高到低,把大量结果排 序输出。用户就可以按顺序逐一确认,从而较快地找到真正想要的信息。尽管按可能性从大到小排列的识别结果列表可大大方便用户确定最终的植 物种类,此方面的研究罕见报道。唯有香港理工大学Yanhua Ye等人在他们在国际 会 议“International Symposium on Intelligent Multimedia,Video and Speech Processing,2004,,发表的题为《A computerized plant species recognition system》学 术论文中,介绍了他们的计算机植物种类识别系统。该系统提供了基于文本和基于内容两 种检索方式。其中,基于内容检索是实现叶片图片的识别并提供按可能性从大到小排序的 结果列表。该系统提取了叶片的叶基点角度、叶尖点角度和长宽比三个特征。对于任意的 两片叶片,按如下方法计算它们之间的差别叶基点角度、叶尖点角度和长宽比三个特征对应相减并求绝对值,进行归一化后,乘以三个权值,得到两片叶片的差别值。用户提交叶片 图像进行识别时,系统逐一计算提交的叶片与每一种类的叶片的差别值。从数据库中检索 得到按差别值从小到大排序的植物种类列表。但上述的计算机植物种类识别系统仍然存在 一些不足之处首先,该系统提取的叶片特征较少和过于简单。其叶基点角的定义是在距离叶基 点四分之一叶片长度的位置,垂直于中心叶脉线,作一直线,与叶片轮廓相交于两点,以叶 基点为顶点,分别穿过这两点作两条射线所形成的角就是叶基点角。其叶尖点角的定义是 在距离叶尖点四分之三叶片长度的位置,垂直于中心叶脉线,作一直线,与叶片轮廓相交于 两点,以叶尖点为顶点,分别穿过这两点作两条射线所形成的角就是叶尖点角。然而,文献 中并没有明确阐述叶基点和叶尖点是自动确定还是人工选择。现有的叶基点和叶尖点自动 确定方法常出现错误。例如,其中一种方法是寻找叶片上距离最远的两点作为叶基点和叶 尖点。倘若叶片宽度大于长度,则该方法得到错误的结果。而人工选择存在一定的主观性, 不同的人对同一张叶片的叶基点和叶尖点的标定都会有一定的误差,甚至同一个人对同一 张叶片的叶基点和叶尖点的两次标定之间都会有误差。这些误差将会导致距离叶基点四分 之一叶片长度的位置或距离叶尖点四分之三叶片长度的位置存在一定的摆动性。使得叶基 角和叶尖角的大小有摆动性。最终削弱这两个特征与植物叶片种类的相关性。总的来说, 提取的三个特征并不是最好的三个特征,不足以完成叶片识别。例如,经过实验,叶片的轮 廓周长平方与叶片的面积之比与植物叶片的种类具有更高的相关性。因此,该方法采取的 特征的在质量和数量上有待改善。第二,没有提到数据库中每种植物叶片的标准样本的选择或计算。该方法的核心 思想是把待识别的叶片与数据库中已知种类的叶片进行匹配。然而,同一种类的植物的叶 片间仍存在一定程度的差异。缺乏有代表性的标准样本,匹配效果必然大受影响。第三,分类方法缺乏权值取定策略。文献中仅仅提到可由实证仿真确定或者由用 户调整。由于每个特征与分类结果的相关性不同,权值的确定大大影响了分类的性能。因 此,务必要有完善的权值取定策略。第四,该系统的识别率未能适应叶片识别应用的要求。正确种类落在识别结果前 五位的概率仅为71%。

发明内容
针对上述现有技术的缺陷,本发明的目的是提供一种植物叶片的图像识别方法, 该方法能够提供较高准确率的多个候选结果输出,从而便于用户结合候选结果列表中每一 种植物详细的图文信息进行最终的选择确认,大大提高识别的可信性;此外,该方法不但支 持标量的叶片特征,还支持复杂形式(如矩阵形式)的叶片特征,从而提高了植物叶片的识 别率。为了达到以上目的,本发明采取以下技术方案本植物叶片的图像识别方法,包括 以下步骤Si、先判断当前是向系统输入已知种类的训练集,还是输入待识别的叶片;如果是 前者,转向步骤S2,如果是后者,转向步骤S6 ;S2、向系统输入扫描或拍摄的各类植物叶片的RGB彩色图像及其种类名,并逐一
4标定叶基点、叶尖点;S3、对步骤S2所输入的训练集中的批量图像逐一进行预处理,得到批量二值图 像;S4、对预处理后的批量二值图像逐一进行特征提取;S5、在面向叶片识别的神经网络分类器中,进行训练学习,并存储训练学习结果;S6、向系统输入单张扫描或拍摄的某类植物叶片的RGB彩色图像,并标定其叶基 占、叶尖占.S7、对步骤S6中所输入的单张图像进行预处理,得到单张二值图像;S8、对预处理后的单张二值图像进行特征提取;S9、在面向叶片识别的神经网络分类器中进行分类;S10、输出按可能性从大到小排序的植物种类列表。在上述植物叶片的图像识别方法中,步骤S3或步骤S7所述预处理,包括如下步 骤S31)把RGB彩色图像转化为灰度图像;S32)把灰度图像进行中值滤波;S33)对图像进行动态阀值分割,把图像前景和背景分离出来,得到二值图像;S34)用连通区域选择的方法,在分割得到的二值图像中选择该叶片的叶基点所在 的那个连通区域,其他区域的点的值均更改为“0”。所述动态阈值分割采用图像直方图分析法,选取图像直方图中双峰间的波谷作为 阀值。步骤S4所述特征包括对每片叶片的二值图像采用旋转、按比例缩放、平移基本 变换后,所转换成的标准化二值矩阵;其中,叶基点和叶尖点分别处于纵坐标值相等的两个 固定点上,且叶尖点的横坐标大于叶基点的横坐标。步骤S5包括以下步骤S51)首先统计步骤S2中所输入的植物种类数;然后按顺序为每个不同的植物种 类名编号,种类名和编号的对应关系以二维数组的形式存储在存储器中;最后把步骤S4提 取的特征,附加了其植物种类编号之后,存储在存储器中;S52)对输入的各类的植物叶片样本,计算出每类的特征值的中心;S53)采用优先进化迭代逼近的原则,对权值向量斤进行调整,使得神经网络的损 失尽可能小。所述面向叶片识别的神经网络分类器包括依次连接的输入层、隐层和输出层;输 入层有M个节点,M等于对二值图像所提取特征的数量;隐层有N个节点,N等于植物种类 数;输出层是一个排列比较器。与现有技术相比,本发明具有如下有益效果和优点1、可提供较高准确率的多个候选结果输出(即叶片分类的多个可能性排序结 果),而并非单一的分类结果,并为每类植物附上详细的图文说明的链接;这让用户能在显 示的多个候选结果中根据详细信息逐一辨认,排除不可能的植物种类,确定最终的植物种 类。从而这大大提高了最终分类结果的可信性。2、由于植物叶片识别难度较大,为了提高植物叶片的识别率,就需要寻找与其种
5类相关性更大的有效特征;而这些有效特征可能是标量,但是也可能是矩阵形式并不可转 化为标量的。本发明除了支持标量的叶片特征外,还支持矩阵形式的叶片特征,因而对植物 叶片进行识别时,可以采用与其种类最为相关的有效特征,以实现更高的识别率。


图1是本发明方法的流程图;图2是图像预处理的流程图;图3是面向叶片识别的神经网络结构图;图4是访的训练过程示意图;图5是对係进行调整时训练一轮的过程示意图。
具体实施例方式下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。实施例如图1所示,本发明植物叶片的图像识别方法包括以下步骤1)启动系统,然后转向步骤2)。2)在本方法的使用过程中,分为“用已知种类的训练集对系统(按本方法编程实 现的软件系统)进行训练”和“使用系统对未知植物进行分类”两种情形。因此,本步骤具 体为先判断当前是专业人员需要向系统输入已知种类的训练集,还是普通用户输入待识 别的叶片;如果是前者,转向步骤3),如果是后者,转向步骤7)。其中,步骤3)至步骤6)称为系统的学习阶段;步骤7)至步骤12)称为系统的工 作阶段。需要补充说明的是,在系统启用之初,务必要经过专业人员向系统输入已知种类的 训练集,并按后续步骤对系统进行训练;否则,普通用户输入待识别的叶片进行识别,将会 得到毫无参考价值的识别结果。当然,在系统运行一段时间后也可输入更新后的训练集再 次对系统进行训练。3)专业人员向系统输入扫描或拍摄的各类植物叶片的样本图像(RGB彩色图像) 及其种类名,并逐一标定叶基点、叶尖点。每片叶片的样本图像、每片叶片对应的种类名、每 片叶片的叶基点、叶尖点坐标均存储在存储器中。需要说明的是,叶尖点指的是叶片的顶端;连接叶片和枝干的,常呈圆柱形的部分 称为叶柄;叶柄与叶片轮廓线的交界处称为叶基点。与通常的计算机图像坐标系一致,每张 图像的坐标原点是图像的左上角,其纵坐标的正方向是垂直向下,单位长度是每个像素点 垂直方向的长度;横坐标的正方向是自左向右,单位长度是每个像素点水平方向的长度。4)对步骤3)所输入的训练集中的批量图像逐一进行预处理,得到批量二值图像; 预处理是从原始图像中提取目标对象的过程,是算法的核心步骤之一。需要说明的是,本发 明中的叶片图像预处理算法允许多片叶片同在一张图像中。图像预处理步骤又细分为若干 环节,如图2所示,具体的过程如下4-1)由于RGB图像所含信息较为复杂,难以实现分割。因此,先把RGB图像转化为 灰度(Gray)图像。把RGB图像中的每一点转换为灰度图像中对应的一点,所采用的公式如下Gray = 0.299*Red + 0.587*Green + 0.114*Blue (式1)其中,Red、Green、Blue分别表示RGB图像中任一点的红、绿、蓝的值,Gray表示该 点转换后的灰度值。4-2)把灰度图像进行中值滤波;从而消除灰度图像中的噪声,而又能清晰保留叶 尖、叶边缘等局部细节。4-3)接着,就需要对图像进行动态阀值分割,把图像前景(叶片)和背景分离出 来,得到二值图像。图像分割有许多种方法。在此,由于叶片与背景灰度差异明显,采用动 态阀值分割法。阀值的选定对于分割的效果起着重要的影响。阀值过于接近前景灰度,就 会把部分前景消掉,反之,阀值过于接近背景,就会把部分背景误当作前景。而不同种类的 叶片的颜色有所不同,产生的灰度前景自然也不同。因此,无法统一设定一个唯一的阀值。 在此,我们采用图像直方图分析法,巧妙地选取图像直方图中双峰间的波谷作为阀值;图像 直方图分析法对于各种不同的叶片均达到较好的分割效果;分割后得到只有前景点(标记 为“1”)和背景点(标记为“0”)的二值图像。4-4)用连通区域(按八连通)选择的方法,在分割得到的二值图像中选择该叶片 的叶基点所在的那个连通区域,其他区域的点的值均更改为“0”。5)对预处理后的批量二值图像逐一进行特征提取。特征是模式识别的依据,选取具有代表性的叶片特征是获得高识别率的基础。经 过反复实验验证,我们选取了八个叶片特征。本步骤以步骤4)处理后的所有的二值图像为 输入;对每张二值图像,均提取如下八个特征,并存储在存储器中,然后转向步骤6)(1)标准化矩阵。这是一个非常有效的特征。对每片叶片的二值图像,采用旋转、 按比例缩放、平移等基本变换,转换成一个[RnUm*CnUm]的标准化二值矩阵(也是一个二值 图像,Rnum和Cnum是二值矩阵的行数和列数,以大于10小于10000为宜),并使得叶基点和 叶尖点分别处于纵坐标值相等的两个固定点上,且叶尖点的横坐标大于叶基点的横坐标。而两个标准化二值矩阵的差(Dstandard)定义为Dstandard = area (PI xor P2),其中,Pl和P2分别表示两个标准化二值矩阵,xor 是求异或;area是求标准化二值矩阵的面积,也就是所有单元的和。也就是
Rnum CnumDstandard = [ J^PKi, j)十 P2(i’j)(式 2)
/=1 j=l若对于其他的每个单元非二值的矩阵,其差(DisMatrix)可定义为先求每个矩阵 所对应的单元的差的绝对值,然后再把这些绝对值求和。
Rnum CnumDisMatrix = Σ Σ丨 pD ~ F2(U)丨(式 3)
i=l j=l(2)叶基点角。叶基点角指的是,在叶片轮廓线上纵坐标最小、最大的两点(记为 “最低点”、“最高点”)分别与叶基点连线后,所形成的夹角。(3)叶尖点角。叶尖点角指的是,在叶片轮廓线上纵坐标最小、最大的两点分别与 叶尖点连线后,所形成的夹角。
(4)最低点角。最低点角指的是,以叶片轮廓线上纵坐标最小的点为顶点,该顶点 分别与叶基点、叶尖点的连线后,所形成的夹角。(5)长宽比以叶基点和叶尖点的距离为长(记为length),以叶片轮廓线上纵坐 标最小、最大的两点的纵坐标的差的绝对值为宽(记为width);求长与宽的比值。(6)类圆率。先求出叶片的面积,接着求叶片轮廓周长;最后按如下公式求类圆 率类圆率=4* Π *叶片面积/轮廓周长平方。(7)微分基角。在连接叶基点与叶尖点的线段上,离叶基点距离为 length^ratiol (ratiol是大于O小于1的小数,以0. 01至0. 2为宜)的位置,垂直作一条 直线,该直线与叶片轮廓相交于两点(分别记为“低邻近叶基点”、“高邻近叶基点”)。这两 点与叶基点的连线所形成的夹角就是微分基角。(8)微分尖角。在连接叶基点与叶尖点的线段上,离叶尖点距离为 length*ratio2 (ratio2是大于0小于1的小数,以0. 01至0. 2为宜)的位置,垂直作一条 直线,该直线与叶片轮廓相交于两点(分别记为“低邻近叶尖点”、“高邻近叶尖点”)。这两 点与叶尖点的连线所形成的夹角就是微分尖角。6)在面向叶片识别的神经网络分类器中,进行训练学习,并存储训练学习结果。面向叶片识别的神经网络分类器如图4所示,是一个包括输入层、隐层和输出层 的三层神经网络。输入层有M个节点,M是输入向量 的维度;本实施例中,由于每片叶片提 取了 8个特征,也就是特征向量的维度为8,故M = 8,以后可根据实际的特征数量修改M的 值。隐层只有一层,具有N个节点(N可手工设定);N等于植物种类数(speciesNum)。输 出层只有一个节点,是一个排列比较器;输出的是一个种类号列表。输入层和隐层的转换关 系、排列比较器的工作原理、SingleLoss的含义和计算方法,将在步骤6_3)中详细说明。本步骤6)具体分为以下环节6-1)训练数据准备。本神经网络的训练学习属于有师学习方式。首先,统计步骤 3)中专业人员所输入的植物种类数(speciesNum)。然后按顺序为每个不同的植物种类名 编号,编号从1开始;种类名和编号的对应关系以二维数组的形式存储在存储器中。最后把 步骤5)中存储的每片叶片的8个特征,附加了其植物种类编号之后,存储在存储器中。6-2)神经网络分类器的第一阶段训练学习对输入的各类的植物叶片样本,计算 出每类的8个特征值的中心。第j类植物叶片的第i个特征值的中心 计算方法如下不妨先令训练集Train中,第j类样本所组成的集合为Trainj,
(式 4)当Cij是标量时
(Xi是输入样本第i维的值,Size(Trainj)是Trainj的样本总当Cij是二值矩阵时
本步骤6-2)就是标准样本的计算方法。6-3)神经网络分类器的第二阶段训练学习对权值向量係进行调整,其目的就是 要使神经网络的损失(Loss)尽可能小。调整时,采用的是优先进化迭代逼近的原则。本步 骤6-3)是权值取定方法。在本实施例中,求两个叶片的距离时,用8个特征值的差值,对应 相乘8个权值;而权值向量斤指的就是这8个权值组成的向量。神经网络的损失(Loss)计算方法如下(这里要注明的是,是Loss的计算方法,即 步骤6-3)中经常要调用的一个子函数;不是步骤6-3)中对斤的调整。)I、读入步骤6-1)中存储的每片叶片的8个特征及其植物种类编号(记为y),并按 顺序把每片叶片的8个特征组成一个特征向量 (xi; X2……X8);然后把所有叶片的特征向 量 和植物种类编号y都存储在内存中,并以循环的形式对每片叶片的特征向量和植物种 类编号y,执行下述的分环节II到V,待处理完所有叶片后,转向分环节VI。II、特征向量 输入到神经网络分类器的输入层中。如图4所示,输入层有Μ(Μ =
8)个节点,输入层的第i个节点的输入为Xi,输出为%,按如下数学关系转换Bi = Xi(式 7)III、输入层的每个节点的值均输入到隐层的每个节点中。隐层共有speciesNum 个节点。对于隐层,第j个节点的输入为(^, … …彻),输出为bp按如下数学关系转换
(式 8)在此,diss(Xi,Cij)定义为特征Xi与中心值Cij之间的距离。一般地,当 Xi 是标量时,Cij 也是标量。diss (xi; Cij) = I Xi-Cij |(式
9)然而,由于我们需要隐层节点能接受一个矩阵特征值的输入。Xi也可能是一个矩 阵(Xi是一个二值图像)。在这种情况下,Cij也是一个矩阵(Cij也是一个二值图像)。贝IJ diss (Xi, Cij) = area (Xi Cij),即是
(Rn·、Cnum 分别是矩阵的行数和列数)(式
10)即把Xi与 做异或操作后,再求其面积。IV、每个隐层节点的输出结果附加隐层节点的序号,输入到输出层的唯一一个节 点(即排列比较器)中。具体而言,隐层共有speciesNum个节点,依次输入到排列比较器的 是二元组序列(b1;l),(b2,2)…(b」,j)··· (bspeciesNum, speciesNum)。排列比较器依据二元组 的第一个值h从小到大的顺序把二元组序列重新排列,然后再顺序提取二元组的第二个值(隐层节点的序号),得到的这个由隐层节点的序号组成的长度为speciesNum的向量(以 数组形式存储),就是输出向量F。V、分环节I中已经读入了特征向量.3 及其植物种类编号y。在此,在F (数组形式) 中顺序查找y,找到后记录其位置序号(F是一个向量,位置序号从0开始算起,F的第1维 的位置序号就是0,第η维的位置序号是η-1);该位置序号的数值就是SingleLoss(^y)。每 个向量对应的SingleLoss( ^,y)都存储在存储器中。VI、计算所有训练样本的损失总和Loss,具体如下 Loss的计算过程只是访训练过程的一个子过程。从软件工程的角度看,Loss的计 算过程只是 训练过程中常要调用的一个子函数。访的训练过程如图4所示。对斤进行调整的步骤如下6-3-1)把斤归一化。係= (Wl5MVWrHWjli),可根据特征向量 中Xi的大致数量级,
给以一个适当的Wi的初值,其目标是使得Xi和对应的Wi的乘积的结果处于接近的数量级 中。然后对兑= O15W2…W,的每个Wi同时除以W1,完成归一化后,W1 = 1。这时,W1固 定无需训练,训练时仅需要调整W2…Wi…wM。6-3-2)生成象限矩阵。M(在本实施例中M具体为8)个特征值,就有^,WfWi 练。则有生长方向如下
wM共(M-I)个权值要训
1 1 -1 -1
2行;
元素1代表乘,
-1代表除
M-I列
派生出2M_i个象限(向量形式)
10 每个象限对应唯一一个象限矩阵,生成方法是象限矩阵对角线上第i行第i列的 值就是象限向量第i列的值,象限矩阵其他单元的值全为0。如第3象限的矩阵如下
第3象限矩阵 M-I 行;
M-I列所有的2s1-1个象限矩阵均存储在存储器中。6-3-3)训练一轮;过程如图5所示。(注rec印t表示研究人员可以忍受的最大的Loss值。parentLoss表示生出本 向量的那个向量的Loss。)训练一轮的过程如下6-3-3-1)根生孩子。读入当前的 …力…wM值,作为根,并计算根的Loss。当第 一次执行“训练一轮”这个子过程时, …^…^的值是由用户指定再经归一化步骤后的 值;当第N次执行时, …&…^的值是第N-I次执行这个子过程后所存储的值。特别地, 根节点同属于2M_i个生长象限,在任意第k个象限生孩子时,需要先算出第k个象限的计算矩阵由6-3-2)中算出的每一个象限矩阵,可算出对应的计算矩阵T。例如,对于第3象 限,由第3象限的象限矩阵得到其计算矩阵T3 T3的计算方法由第3象限矩阵,上加一行(全0),然后再把矩阵的每个元素作为 step的指数,得到的幂就是新矩阵T3的每一个元素。这里,step是控制逼近步长的值。 MaxLoss是当每一个SingleLoss均取得最大值时的Loss值。由于SingleLoss得 最大值为SZze(F)-1,所以MaxLoss = (speciesNum-1) *Size (Train)(注Size(Train)是训练样本总数。) (式 13)spread是训练步长系数。默认为1。当spread > 1时,表示加大步长;当O < spread < 1时,表示缩小步长。特别地,当设spread = O时,表示步长为0,原地不动,训
练无效。round是当前的轮数,表示当前的训练处于第几轮。接着,利用计算矩阵Tk计算出孩子把根的列向量W = WfWi…Wm复制膨胀为M-I列的矩阵P。即Ρ=[ ^··。…。J,
P的每一列都是一个。。把Tk和P对应的元素相乘,得到孩子矩阵Bk,
B = Tt · P
(式 14)Bk是一个M行,M-I列的矩阵。Bk的每一列都是一个新的孩子■^咖。对于根而言,由第1至第2M_i个计算矩阵算出的B1. B2. -Bk, "·Β…的每一列都是 它的一个新的孩子礼~。因此,根一次过共生出ZshMM-I)个孩子。根的Loss就是它的每个孩子的parentLoss (每个孩子都是由其双亲▽计算而来, parentLoss就是指生出它的那个双亲的Loss。双亲。和只是一个相对的概念,同-
V,对于生出它的。而言,就是%_;对于它所生出的。而言,就是双亲W’。)。对于每个孩子, 记录其parentLoss,同时,还要记录每个孩子所属的象限,存储在存储器中。
12
6-3-3-2)进优先队列。每个。baby附上它的parentLoss组成二元组(, parentLoss),进优先队列。该优先队列是parentLoss越大就越早出队,parentLoss相等 的情况下先进先出。6-3-3-3)从优先队列中取出一个口。6-3-3-4)做判断。如果队列空,报错返回;否则转向6_3_3_5)。6-3-3-5)计算这个。的 Loss。6-3-3-6)判断Loss < = rec印t ?如果是,成功返回,整个训练过程都会随即结 束;否则转向6-3-3-7)。rec印t表示研究人员可以忍受的最大的Loss值。以手工方式设 定,其设定的方法为先人工设定一个可容忍的损失百分率(LossPercent),等于0的时候 表示,一点损失也无法容忍。然后根据下式计算recept recept = MaxLoss氺LossPercent(式 15)6-3-3-7)判断 Loss < = parentLoss ?如果是,转向 6-3_3_8);否则转向 6-3-3-3)。6-3-3-8)当前的。生孩子。判定当前。所属的向量,假定属于象限k。则按照 6-3-3-1)所述的由象限矩阵算出计算矩阵的方法,得到计算矩阵用Tk。然后依如下过程计 算其孩子把当前的列向量。= >ν··>ν···Μ^复制膨胀为M-I列的矩阵P。即 ?=[W…。…。],P的每一列都是一个。。把Tk和P对应的元素相乘,得到孩子矩阵Bk,B = Tk · *PBk是一个M行,M-I列的矩阵。Bk的每一列都是一个新的孩子。完成后转向 6-3-3-2)。6-3-4)判断“训练一轮”是否成功返回,如果是,转向6-3-5);否则,转向6_3_6)。6-3-5)输出斤,并把胥存储在存储器中。训练得到的巧就是 …力…^,而 = (1, W2 …Wi …Ww )。结束。6-3-6)把当前的训练轮数(round)加1。round是训练的轮数(当第1轮时,round =1)。转向 6-3-7)。6-3-7)判断是否已达到最大的训练轮数?也就是round >MaXR0und 如果是,转 向6-3-5);否则,转向6-3-3)。MaxRoimd是最大的训练轮数是一个自然数,大小由研究人 员给定,通常设定在5到15之间。至此,系统的学习阶段完成,下述步骤7)至步骤12)为系统的叶片识别阶段7)用户向系统输入单张扫描或拍摄的某类植物叶片的RGB彩色图像,并标定其叶 基点、叶尖点。8)对步骤7)中所输入的单张图像(即单片叶片图像)进行预处理,得到二值图 像。具体方法和步骤4)中对每一张样本图像的预处理过程相同。也是要通过分步骤4-1) 至4-4)。只不过本步骤仅是处理一张图像。单片叶片的彩色图像经过本步骤处理后得到一 张分割完毕的二值图像,存储在存储器中。9)对预处理后的单张图像进行特征提取。具体而言也是提取如步骤5)所述的8个特征。提取得到的该叶片的8个特征存储在存储器中。10)在面向叶片识别的神经网络分类器中进行分类。把步骤9)得到的该叶片的8 个特征值,组合成向量^X1, XfXi…X8),再经过与步骤6-3)的子函数“Loss的计算”的细 分步骤II、III、IV 一样的处理过程,得到输出向量F。11)输出按可能性从大到小排序的植物种类列表。具体是把F里的植物编号逐一 转换成植物名称。转换方法是根据步骤6-1)中已存储的种类名和编号的对应关系的二维 数组,由编号查询,得到相应的种类名;再为每类植物附上详细的图文说明的链接;最后输
出ο12)用户按顺序查看结果列表的植物名和查阅对应的图文链接,最终选择确认他 所输入的植物叶片的种类。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的 限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化, 均应为等效的置换方式,都包含在本发明的保护范围之内。
权利要求
一种植物叶片的图像识别方法,其特征在于,包括以下步骤S1、先判断当前是向系统输入已知种类的训练集,还是输入待识别的叶片;如果是前者,转向步骤S2,如果是后者,转向步骤S6;S2、向系统输入扫描或拍摄的各类植物叶片的RGB彩色图像及其种类名,并逐一标定叶基点、叶尖点;S3、对步骤S2所输入的训练集中的批量图像逐一进行预处理,得到批量二值图像;S4、对预处理后的批量二值图像逐一进行特征提取;S5、在面向叶片识别的神经网络分类器中,进行训练学习,并存储训练学习结果;S6、向系统输入单张扫描或拍摄的某类植物叶片的RGB彩色图像,并标定其叶基点、叶尖点;S7、对步骤S6中所输入的单张图像进行预处理,得到单张二值图像;S8、对预处理后的单张二值图像进行特征提取;S9、在面向叶片识别的神经网络分类器中进行分类;S10、输出按可能性从大到小排序的植物种类列表。
2.根据权利要求1所述的植物叶片的图像识别方法,其特征在于,步骤S3或步骤S7所 述预处理,包括如下步骤531)把RGB彩色图像转化为灰度图像;532)把灰度图像进行中值滤波;533)对图像进行动态阀值分割,把图像前景和背景分离出来,得到二值图像;534)用连通区域选择的方法,在分割得到的二值图像中选择该叶片的叶基点所在的那 个连通区域,其他区域的点的值均更改为“0”。
3.根据权利要求2所述的植物叶片的图像识别方法,其特征在于,所述动态阈值分割 采用图像直方图分析法,选取图像直方图中双峰间的波谷作为阀值。
4.根据权利要求1所述的植物叶片的图像识别方法,其特征在于,步骤S4所述特征包 括对每片叶片的二值图像采用旋转、按比例缩放、平移基本变换后,所转换成的标准化二 值矩阵;其中,叶基点和叶尖点分别处于纵坐标值相等的两个固定点上,且叶尖点的横坐标 大于叶基点的横坐标。
5.根据权利要求1所述的植物叶片的图像识别方法,其特征在于,步骤S5包括以下步骤551)首先统计步骤S2中所输入的植物种类数;然后按顺序为每个不同的植物种类名 编号,种类名和编号的对应关系以二维数组的形式存储在存储器中;最后把步骤S4提取的 特征,附加了其植物种类编号之后,存储在存储器中;552)对输入的各类的植物叶片样本,计算出每类的特征值的中心;553)采用优先进化迭代逼近的原则,对权值向量係进行调整,使得神经网络的损失尽 可能小。
6.根据权利要求1所述的植物叶片的图像识别方法,其特征在于,所述面向叶片识别 的神经网络分类器包括依次连接的输入层、隐层和输出层;输入层有M个节点,M等于对二 值图像所提取特征的数量;隐层有N个节点,N等于植物种类数;输出层是一个排列比较器。
全文摘要
本发明公开一种植物叶片的图像识别方法,分为训练和识别两个阶段。训练阶段,先向系统输入植物叶片图像训练集,系统经过批量预处理、批量特征提取、神经网络分类器训练后,把训练结果存储。识别阶段,用户向系统输入单张不认识种类的植物叶片图像,标定该叶片的叶基点坐标和叶尖点坐标;系统对该单张图像进行预处理、特征提取后;再用神经网络分类器进行分类,输出植物种类列表,同时为列表的每一项附上详细的图文信息。本发明能够提供较高准确率的多个候选结果输出,大大提高识别的可信性;不但支持标量的叶片特征,还支持复杂形式(如矩阵形式)的叶片特征,从而提高了植物叶片的识别率。
文档编号G06N3/08GK101916382SQ20101024270
公开日2010年12月15日 申请日期2010年7月30日 优先权日2010年7月30日
发明者林小桦, 高理文 申请人:广州中医药大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1