CN111967527B - 一种基于人工智能牡丹品种识别方法及识别*** - Google Patents
一种基于人工智能牡丹品种识别方法及识别*** Download PDFInfo
- Publication number
- CN111967527B CN111967527B CN202010854869.8A CN202010854869A CN111967527B CN 111967527 B CN111967527 B CN 111967527B CN 202010854869 A CN202010854869 A CN 202010854869A CN 111967527 B CN111967527 B CN 111967527B
- Authority
- CN
- China
- Prior art keywords
- peony
- image
- classification
- output
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Biology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
一种基于人工智能牡丹品种识别方法,使用强弱监督结合的算法思路对牡丹花细粒度进行识别,与纯弱监督方法相比,在训练数据中对识别对象进行了位置标注,与强监督细粒度识别算法相比,本发明除待识别物体本身位置之外不再进行任何其他信息的标注,在测试阶段除了待识别图像之外也不需要额外的信息。本发明提出了融合强若监督信息的显著区域注意力机制分类模型,结合数据增广和基于数据池的训练方式,克服了数据量少和数据不均衡带来的问题,融合了强弱监督模型的优点,在牡丹花识别任务中,获得了较高的精度。
Description
技术领域
本发明公开一种基于人工智能牡丹品种识别方法及识别***,属于利用人工智能对花卉种类识别的技术领域。
背景技术
随着计算机视觉领域的研究越来越深入,针对细粒度图像的分析应用也越来越受到关注,利用该技术对被测物体进行自动分类识别将成为主要研究方向。
与此同时,本申请人的研究方向是对牡丹花卉进行图像分类自动识别,并达到识别率准确的目标。然而,在花卉识别领域多采用对花型进行识别,但是由于植物生长的多变性,导致花型在不同时期可能会存在植物造型相似等情况,从而影响对花卉种类的准确判断。为此,本申请人开始结合细粒度对牡丹花卉进行自动准确识别的研究。
其中,所述细粒度分类算法主要有两种:基于强监督信息的细粒度图像分类模型和基于弱监督信息的细粒度图像分类模型。
首先利用Selective Search等算法在细粒度图像中产生物体或物体部位可能出现的候选框。之后类似于R-CNN做物体检测的流程,借助细粒度图像中的object boundingbox和part annotation可以训练出若干检测模型,对应检测物体不同区域。然后,对多个检测模型得到的检测框加上位置几何约束。这样便可得到较理想的物体/部位检测结果。接下来将得到的图像块作为输入,分别训练一个CNN,则该CNN可以学习到针对该物体/部位的特征。最终将三者的全连接层特征级联作为整张细粒度图像的特征表示。显然,这样的特征表示既包含全部特征,又包含具有更强判别性的局部特征,因此分类精度较理想。但在Part-based R-CNN中,不仅在训练时需要借助bounding box和part annotation,为了取得满意的分类精度,在测试时甚至还要求测试图像提供bounding box。这便限制了Part-based R-CNN在实际场景中的应用。
在Part-based R-CNN的基础上,S.Branson等人提出在用DPM算法得到partannotation的预测点后同样可以获得物体级别和部位级别的检测框。与之前工作不同的是,Pose Normalized CNN对部位级别图像块做了姿态对齐操作。此外,由于CNN不同层的特征具有不同的表示特性,该工作还提出应针对细粒度图像不同级别的图像块,提取不同层的卷积特征。针对全局信息,提取FC8特征;基于局部信息则提取最后一层卷积层特征作为特征表示。最终,还是将不同级别特征级联作为整张图像的表示。如此的姿态对齐操作和不同层特征融合方式,使得Pose Normalized CNN在使用同样多标记信息时取得了相比Part-based R-CNN高2%的分类精度。
基于强监督信息的分类模型虽然取得了较满意的分类精度,但由于标注信息的获取代价十分昂贵,在一定程度上限制了这类算法的实际应用。因此,目前细粒度图像分类的一个明显趋势是,希望在模型训练时仅使用图像级别标注信息,而不再使用额外的partannotation信息时,也能取得与强监督分类模型可比的分类精度。这便是“基于弱监督信息的细粒度分类模型”。思路同强监督分类模型类似,也需要借助全局和局部信息来做细粒度级别的分类。而区别在于,弱监督细粒度分类希望在不借助part annotation的情况下,也可以做到较好的局部信息的捕捉。当然,在分类精度方面,目前最好的弱监督分类模型仍与最好的强监督分类模型存在差距(分类准确度相差约1~2%)。
基于弱监督信息的细粒度分类模型中具有代表性的有Two Level AttentionModel和Constellations,Two Level Attention Model主要关注两个不同层次的特征,分别是物体级别和部件级别信息。当然,该模型并不需要数据集提供这些标注信息,完全依赖于本身的算法来完成物体和局部区域的检测。该模型主要分为三个阶段。预处理模型:从输入图像中产生大量的候选区域,对这些区域进行过滤,保留包含前景物体的候选区域;物体级模型:训练一个网络实现对对象级图像进行分类。
由于预处理模型选择出来的这些候选区域大小不一,为了选出这些局部区域,首先利用物体级模型训练的网络来对每一个候选区域提取特征。接下来,对这些特征进行谱聚类,得到k个不同的聚类簇。如此,则每个簇可视为代表一类局部信息,每个簇都可以被看做一个区域检测器,从而达到对测试样本局部区域检测的目的。
Constellations的方案是利用卷积网络特征本身产生一些关键点,再利用这些关键点来提取局部区域信息。对卷积特征进行可视化分析可发现一些响应比较强烈的区域恰好对应于原图中一些潜在的局部区域点。因此,卷积特征还可以被视为一种检测分数,响应值高的区域代表着原图中检测到的局部区域。不过,特征输出的分辨率与原图相差较大,很难对原图中的区域进行精确定位。受到前人工作的启发,作者采用的方法是通过计算梯度图来产生区域位置。
具体而言,卷积特征的输出是一个W×H×P维的张量,P表示通道的个数,每一维通道可以表示成一个W×H维的矩阵。通过计算每一维通道p对每一个输入像素的平均梯度值,可以得到与原输入图像大小相同的特征梯度图。这样,每个通道的输入都可以转换成与原图同样大小的特征梯度图。在特征梯度图中响应比较强烈的区域,即可代表原图中的一个局部区域。于是每一张梯度图中响应最强烈的位置即作为原图中的关键点。卷积层的输出共有P维通道,可分别对应于P个关键点位置。后续对这些关键点或通过随机选择或通过ranking来选择出重要的M个。
综上,基于强监督信息的方法准确率普遍更高,但人工成本较高,基于弱监督信息的方法人工成本低,但精度逊于强监督方法。基于此,在牡丹花识别任务中,为了获得更好精度同时不过多地增加人力成本,本发明使用了基于卷积神经网络的强弱监督结合的方法对牡丹花进行识别。
中国专利文献CN109117879A公开了一种图像分类方法、装置及***能够通过分类主网络提取目标图像的关键特征,并基于该关键特征进行细粒度分类,得到目标图像的分类结果,关键特征与目标图像中待分类的目标物有关,而与所述目标图像中的场景无关,因此,分类主网络在对目标图像中的目标物进行细粒度分类时不会受到场景干扰,从而得到较为准确的分类结果,这种方式适用于对多个场景下的图像进行准确分类,具有一定的普遍适用性。该专利文献是采用了弱监督方法,无法直接对非目标区域图像进行抑制。
中国专利文献CN110826629A公开了一种基于细粒度分类的耳镜图像辅助诊断方法,仅要求训练集中的图像有类别标签的标注,不要求有定位信息的标注,如关键位置的边界框,关键点,蒙版,相比强监督的细粒度分类方法简化了数据收集与标注过程;本发明同时融合了全局信息与局部信息,能够处理更细粒度的特征,相对直接使用通用卷积神经网络而言,对耳镜图像有更好的分类性能;本发明图像提取时使用双线性插值算法对图片进行缩放,利用卷积核对图像进行卷积处理,确定处理后图像各特征图大小,提高了图像特征提取的准确度。该专利文献根据分类网络输出反推图上对结果贡献最大的区域,再对此区域进行分类,这其中存在一个问题,分类模型输出结果不一定正确,因此由当前结果推出的区域也可能是错误的,因此全局分类结果和局部分类结果可能不仅无法相互促进,可能还会相互抑制,得到更差的结果,本专利文献通过强监督的方式训练了一个目标区域提取器,因此可以得到准确的目标区域,因此可以保证局部分类模型和全局分类模型的分类结果是相互增强的。
中国专利文献CN111178432A公开了一种多分支神经网络模型的弱监督细粒度图像分类方法,首先,通过轻量级定位网络定位图像中有潜在语义信息的局部区域用作新的输入,将原图和经过局部区残差网络和方向响应网络进行训练,分别提取混淆少、对象形变适应和旋转不变的判别特征。有效减少因姿态、视角和背景干扰等诸多变化对分类结果造成的负面影响。最后,通过组合分支内损失和分支间损失优域定位网络后获得的局部区域分别输入到可变形卷积的。该专利文献中所用方法通过SE注意力模块对全局特征进行了筛选,强化了有利于分类的特征,这个过程是对整张图象所有位置的特征进行的,无法针对处于不同空间位置背景区域特征进行抑制,强化的特征中可能包含背景特征而导致分类结果错误,本专利通过先验知识,在更加根本的层面去除了无关特征对分类的影响。
发明内容
针对现有技术的不足,本发明公开一种基于人工智能牡丹品种识别方法。
本发明还公开了一种记载上述识别方法,并能对牡丹花卉种类进行准确识别的识别***。本发明通过一种基于检测思想的注意力机制对超过200种牡丹花进行细粒度识别,实现对照片中牡丹花的种类进行识别。本算法是牡丹花自动识别***的核心模块,实现牡丹花自动识别***的核心功能。
本发明的技术方案如下:
一种基于人工智能牡丹品种识别方法,其特征在于,对包含有牡丹花卉的图像进入行如下识别方法,包括:
S1:数据处理,形成用于模型训练的完整标签
对牡丹花卉的图像添加:常规的牡丹花种类分类标签,以及还有牡丹花位置信息的标签,经数据处理后,对牡丹花卉的花瓣主体处形成边框;
每个边框对应产生一个响应区域,对于某一表示为(X,Y,H,W)的边框,X,Y为边框左上角坐标,H,W分别为边框的高和宽,生成响应区域标签过程如下:
在以边框中心为中心的区域内,产生高斯分布的响应区域;
由该方差,根据二维高斯分布公式,计算出边框中心点半径r范围内的响应值;进一步,通过对所有边框的计算,得到牡丹花卉图像的关键区域响应图;所述响应图和牡丹花卉类别标签构成了用于模型训练的完整标签;
S2:模型学习
损失函数用来计算统计学习模型的预测值与真实值的差距,根据损失函数调整模型参数,使得损失函数变小;卷积神经网络通常使用梯度下降法进行参数的优化,通过梯度下降法计算模型中各参数对损失函数值的梯度,将模型参数沿着使得损失函数减小的方向移动一定步长即为完成了一次优化;
S3:模型训练
对数据增广和训练数据池策略增加训练数据量;其原因在于:可用的样本数量有限,且各品种牡丹花样本数量非常不均匀,对于不均衡小样本的模型训练,使用数据增广过程对所有带标签图片,进行镜像翻转并在负六十到六十度角之间以十度为步长进行旋转,最终可生成26倍于原数量的样本。在训练过程中,所有训练数据构成训练数据池,每轮训练仅使用百分之七十的数据对模型进行训练,每轮训练之后,统计训练数据池中的每个样本的训练损失,取损失较大的前百分之七十样本作为下一轮训练的训练数据,通过这两种方式的结合,缓解了小样本数据样本不足的问题和样本数量不均衡的问题;
S4:前向计算过程
模型训练之后,在实际使用过程中,其流程如下:
对于一张输入图像,两分支输出向量的均值为模型最终的输出结果,全局分支(图中Feature Extractor 1+Classification Block 1)输出特征经过全局池化层和全连接层变为N维输出向量,Feature Extractor 1输出特征图经过区域检测模块(RagionDetector)产生对应目标区域的热力图,热力图与原图叠加,削弱背景区域,经过局部分类分支(图中Feature Extractor 2+Classification Block 2)输出特征经过全局池化层和全连接层变为N维输出向量,两分支的N维向量计算均值得到最终的N维输出对于N类牡丹花的识别任务,输出向量最大值对应的维度n即为模型对当前输入图像的预测结果;模型训练后,最终输出的N维向量即表示对应N中花卉的可能性大小,N维向量最大元素对应的种类即为当前输入图像中牡丹花的种类。
根据本发明优选的,在所述S2的模型学习中,使用了三个损失函数,包括:全局分类分支的分类损失函数、局部分类分支的分类损失函数和注意力模块响应位置的损失函数;其中,全局分类分支(图中Feature Extractor 1+Classification Block 1)和局部分类分支(图中Feature Extractor 2+Classification Block 2)输出均为N维向量,其中N为所有牡丹花种类数,向量的每个维度分别对应当前输入图像在该分支上预测为对应种类牡丹花的概率;全局分类分支和局部分类分支输出分别记为和每个分支对应的标签相同,记为Y,Y为N维独热向量,对于第n类牡丹花样本,Y的第n维yn为1;其余维度均为0;
两个分类分支均使用交叉熵损失函数,表达式如下:
所述注意力模块的输出为二维数组,每个像素值均在0-1范围内;注意力模块输出接近边框生成的响应图标签,损失函数由响应图与注意力模块输出逐像素计算差异得到。
根据本发明优选的,所述注意力模块使用center loss进行训练,由于不同大小的边框生成的响应区域高斯分布的方差不同,模用过回归的方式很难通过学习得到相同分布的输出,因此,根据中心点信息对其进行优化。
根据本发明优选的,所述center loss定义如下:
其中,K表示当前图像上目标区域数量,即存在标注物体的数量,是标注/输出图中像素点的坐标,c是输出图的通道数,其中,输出和标签为单通道图,即c=1,为注意力模块在xy位置上的输出值,Yxy为标签图在xy位置上的值;该损失函数的逻辑是,对于一张图片,注意力模块的总损失是该图片上每个物体区域的损失之和;对于物体中心,其输出值应尽可能接近于1,对于非中心点,其输出值应尽可能接近0,距离中心点越近的点,其损失权重越小。
一种记载上述识别方法,并能对牡丹花卉种类进行准确识别的识别***,其特征在于,包括:图像采集设备和运算设备;
所述图像采集设备用于在模型训练阶段,对牡丹花卉图像通过由尼康单反相机采集,相机型号NIKON D5300,光圈f/5.6,曝光时间1/1000秒,ISO速度ISO-100,焦距140毫米,图像尺寸2992*2000;
所述运算设备为能记载运行本发明所述训练方法及识别方法的设备,优选的,所述运算设备为云端服务器,所述前向计算在英伟达特斯拉V100计算卡上进行。
根据本发明优选的,所述识别***包括用户层、表示层、业务层、数据访问层以及在层间传递数据的数据传输对象,其中:
(1)用户层
用户层作为客户端程序,用来与用户交互,并把来自***的信息显示给用户,优选的,***的用户层采用的是谷歌浏览器作为交互方式;
(2)表示层
表示层用于控制页面外观,产生页面逻辑以及对用户输入的数据进行合法性验证;优选的,***中主要包括基于Bootstrap框架的JavaScript脚本及基于CI框架的表单验证,其中JavaScript脚本增强用户体验,JAVA负责视图的功能,由HTML、JAVA程序片断和JSON数据构成;
(3)业务层
业务逻辑对象把业务规则、约束、活动和数据结合在一起,Controller负责对这些业务对象的管理;
(4)数据访问层数据访问对象把底层的数据访问操作和上层的商务逻辑分开。
根据本发明优选的,所述识别***采用以下平台搭建环境:
采用JAVA作为开发语言;
软件开发技术栈为:Springboot+SpringMvc+redis+mysql
服务器操作***:CentOS 7.3.1611;
数据库***:MySQL 5.7.27。
根据本发明优选的,***平台基于MS SQL2008数据库构建数据表,所有表的建立与操作以标准SQL语句为准,所述数据库表设计包括用户信息库、牡丹花信息库。
根据本发明优选的,所述用户信息库涵盖用户基本信息,实现对用户信息、身份的鉴定与管理,其表结构如下:
字段 | 类型 | 说明 | 是否允许为空 | 是否主键 |
id | varchar(64) | 主键 | NO | PRI |
user_id | varchar(255) | 用户id | NO | |
create_time | datetime | YES | ||
create_user_id | varchar(32) | YES | ||
last_update_time | datetime | YES | ||
last_update_user_id | varchar(32) | YES |
用户信息数据库为用户信息***服务,用户登录支持站内登录和站外授权登录。站内登录方式为用户信息+密码,支持用户名+密码和手机号+密码两种方式,站外授权登录支持第三方***ID登录,目前支持微信登录;
牡丹花数据库包含至少300种牡丹花的信息,包含花名信息,图片信息和品种介绍信息,并为用户提供牡丹花品种查询服务和为识别模块提供索引,其表结构如下:
核心源码示例
牡丹花图片增删改查接口:
代码位置:
com.deeperception.mudan.controller.templatecontroller;
代码简要说明:
算法任务相关接口:
代码位置:
com.deeperception.mudan.controller.ParamController;
代码简要说明:
算法服务器异步通知回调,任务运算结果(从返回的参数Res获取结果)
@RequestMapping("/callback")
public String setTypeNum(Res result){
……
}
客户端轮询获取计算结果
@RequestMapping("/getTypeNum")
public ResponseParameter getTypeNum(@RequestBody ParamVO paramVO){
……
}
目前微信小程序首页如下,默认首页为牡丹花图片选择界面,点击选择图片可以选择或直接拍摄待识别牡丹花图片。
本发明的技术优势在于:
本发明提出了融合强若监督信息的显著区域注意力机制分类模型,结合数据增广和基于数据池的训练方式,克服了数据量少和数据不均衡带来的问题,融合了强弱监督模型的优点,在牡丹花识别任务中,获得了较高的精度。
1.本发明使用强弱监督结合的算法思路对牡丹花细粒度进行识别,与纯弱监督方法相比,本发明在训练数据中对识别对象进行了位置标注,与强监督细粒度识别算法相比,本发明除待识别物体本身位置之外不再进行任何其他信息的标注,在测试阶段除了待识别图像之外也不需要额外的信息。
2.现有技术的训练和识别思路是通过注意力机制突出主体区域,对于牡丹花识别任务,训练样本和测试样本都无法保证牡丹花主体在画面中占据显著位置和较大区域,这就导致模型注意力模块很难学习到细粒度区域位置,进而导致模型优化困难,模型优化结果较差,依靠弱监督方法优化的注意力模块无法保证处理后的突出区域是待识别物体,一旦注意力模块产生的区域出错,后续分类算法一定会出错。为此,本发明在使用双分支卷积神经网络作为基本模型,其中一个分支进行全局预测和识别,从该分支引出注意力模块对牡丹花位置进行检测,检测结果与输入图像叠加作为第二个分支的输入,该分支对牡丹花主体部分进行局部预测和识别。
3.本发明在训练过程中通过三个损失函数对模型进行优化;在注意力模块的训练中使用强监督信息对该模块参数进行优化,上述优化方法是与其他弱监督方法的区别所在,通过强监督信息训练的注意力模块性能远强于弱监督信息训练的注意力模块。
附图说明
图1是本发明对牡丹花卉图像的经过S1步骤处理后的示意图;
图2是步骤S1处理后所形成的边框示意图;
图3是本发明对牡丹花卉主体以边框中心为中心的区域内,产生高斯分布的响应区域图;
图4是本发明所述识别方法的模型训练图;
图5是本发明利用训练好的模型对实际牡丹花卉进行具体识别的流程图;
图6是利用本发明开发的微信小程序所呈现的用户操作界面;
图7是利用本发明所述识别方法开发的微信小程序的个人信息界面:显示了当前用户的登录信息和查询记录。
具体实施方式
下面结合实施例对本发明做详细的说明,但不限于此。
实施例1、
一种基于人工智能牡丹品种识别方法,对包含有牡丹花卉的图像进入行如下识别方法,包括:
S1:数据处理,形成用于模型训练的完整标签
如图1、2、3所示,对牡丹花卉的图像添加:常规的牡丹花种类分类标签,以及还有牡丹花位置信息的标签,经数据处理后,对牡丹花卉的花瓣主体处形成边框;
每个边框对应产生一个响应区域,对于某一表示为(X,Y,H,W)的边框,X,Y为边框左上角坐标,H,W分别为边框的高和宽,生成响应区域标签过程如下:
在以边框中心为中心的区域内,产生高斯分布的响应区域;
由该方差,根据二维高斯分布公式,计算出边框中心点半径r范围内的响应值;进一步,通过对所有边框的计算,得到牡丹花卉图像的关键区域响应图;所述响应图和牡丹花卉类别标签构成了用于模型训练的完整标签;
S2:模型学习
损失函数用来计算统计学习模型的预测值与真实值的差距,根据损失函数调整模型参数,使得损失函数变小;卷积神经网络通常使用梯度下降法进行参数的优化,通过梯度下降法计算模型中各参数对损失函数值的梯度,将模型参数沿着使得损失函数减小的方向移动一定步长即为完成了一次优化;
S3:模型训练
对数据增广和训练数据池策略增加训练数据量;
S4:前向计算过程
如图5所示。模型训练之后,在实际使用过程中,其流程如下:
对于一张输入图像,两分支输出向量的均值为模型最终的输出结果,全局分支(图中Feature Extractor 1+Classification Block 1)输出特征经过全局池化层和全连接层变为N维输出向量,Feature Extractor 1输出特征图经过区域检测模块(RagionDetector)产生对应目标区域的热力图,热力图与原图叠加,削弱背景区域,经过局部分类分支(图中Feature Extractor 2+Classification Block 2)输出特征经过全局池化层和全连接层变为N维输出向量,两分支的N维向量计算均值得到最终的N维输出对于N类牡丹花的识别任务,输出向量最大值对应的维度n即为模型对当前输入图像的预测结果;模型训练后,最终输出的N维向量即表示对应N中花卉的可能性大小,N维向量最大元素对应的种类即为当前输入图像中牡丹花的种类。
如图4所示,在所述S2的模型学习中,使用了三个损失函数,包括:全局分类分支的分类损失函数、局部分类分支的分类损失函数和注意力模块响应位置的损失函数;其中,全局分类分支(图中Feature Extractor 1+Classification Block 1)和局部分类分支(图中Feature Extractor 2+Classification Block 2)输出均为N维向量,其中N为所有牡丹花种类数,向量的每个维度分别对应当前输入图像在该分支上预测为对应种类牡丹花的概率;全局分类分支和局部分类分支输出分别记为和每个分支对应的标签相同,记为Y,Y为N维独热向量,对于第n类牡丹花样本,Y的第n维ym为1;其余维度均为0;
两个分类分支均使用交叉熵损失函数,表达式如下:
所述注意力模块的输出为二维数组,每个像素值均在0-1范围内;注意力模块输出接近边框生成的响应图标签,损失函数由响应图与注意力模块输出逐像素计算差异得到。
所述注意力模块使用center loss进行训练,由于不同大小的边框生成的响应区域高斯分布的方差不同,模用过回归的方式很难通过学习得到相同分布的输出,因此,根据中心点信息对其进行优化。
所述center loss定义如下:
其中,K表示当前图像上目标区域数量,即存在标注物体的数量,是标注/输出图中像素点的坐标,c是输出图的通道数,其中,输出和标签为单通道图,即c=1,为注意力模块在xy位置上的输出值,Yxy为标签图在xy位置上的值;该损失函数的逻辑是,对于一张图片,注意力模块的总损失是该图片上每个物体区域的损失之和;对于物体中心,其输出值应尽可能接近于1,对于非中心点,其输出值应尽可能接近0,距离中心点越近的点,其损失权重越小。
实施例2、
一种记载上述识别方法,并能对牡丹花卉种类进行准确识别的识别***,其特征在于,包括:图像采集设备和运算设备;
所述图像采集设备用于在模型训练阶段,对牡丹花卉图像通过由尼康单反相机采集,相机型号NIKON D5300,光圈f/5.6,曝光时间1/1000秒,ISO速度ISO-100,焦距140毫米,图像尺寸2992*2000;
所述运算设备为能记载运行本发明所述训练方法及识别方法的设备,优选的,所述运算设备为云端服务器,所述前向计算在英伟达特斯拉V100计算卡上进行。
实施例3、
所述识别***包括用户层、表示层、业务层、数据访问层以及在层间传递数据的数据传输对象,其中:
(1)用户层
用户层作为客户端程序,用来与用户交互,并把来自***的信息显示给用户,优选的,***的用户层采用的是谷歌浏览器作为交互方式;
(2)表示层
表示层用于控制页面外观,产生页面逻辑以及对用户输入的数据进行合法性验证;优选的,***中主要包括基于Bootstrap框架的JavaScript脚本及基于CI框架的表单验证,其中JavaScript脚本增强用户体验,JAVA负责视图的功能,由HTML、JAVA程序片断和JSON数据构成;
(3)业务层
业务逻辑对象把业务规则、约束、活动和数据结合在一起,Controller负责对这些业务对象的管理;
(4)数据访问层数据访问对象把底层的数据访问操作和上层的商务逻辑分开。
实施例4、
如图6、7所示。所述识别***采用以下平台搭建环境:
采用JAVA作为开发语言;
软件开发技术栈为:Springboot+SpringMvc+redis+mysql
服务器操作***:CentOS 7.3.1611;
数据库***:MySQL 5.7.27。
根据本发明优选的,***平台基于MS SQL2008数据库构建数据表,所有表的建立与操作以标准SQL语句为准,所述数据库表设计包括用户信息库、牡丹花信息库。
根据本发明优选的,所述用户信息库涵盖用户基本信息,实现对用户信息、身份的鉴定与管理,其表结构如下:
字段 | 类型 | 说明 | 是否允许为空 | 是否主键 |
id | varchar(64) | 主键 | NO | PRI |
user_id | varchar(255) | 用户id | NO | |
create_time | datetime | YES | ||
create_user_id | varchar(32) | YES | ||
last_update_time | datetime | YES | ||
last_update_user_id | varchar(32) | YES |
用户信息数据库为用户信息***服务,用户登录支持站内登录和站外授权登录。站内登录方式为用户信息+密码,支持用户名+密码和手机号+密码两种方式,站外授权登录支持第三方***ID登录,目前支持微信登录;
牡丹花数据库包含至少300种牡丹花的信息,包含花名信息,图片信息和品种介绍信息,并为用户提供牡丹花品种查询服务和为识别模块提供索引,其表结构如下:
字段 | 类型 | 说明 | 是否允许为空 | 是否主键 |
id | varchar(64) | 主键 | NO | PRI |
flower_id | varchar(255) | 品种id | NO |
如图6、7所示的核心源码示例:
牡丹花图片增删改查接口:
代码位置:
com.deeperception.mudan.controller.templatecontroller;
代码简要说明:
算法任务相关接口:
代码位置:
com.deeperception.mudan.controller.ParamController;
代码简要说明:
算法服务器异步通知回调,任务运算结果(从返回的参数Res获取结果)
@RequestMapping("/callback")
public String setTypeNum(Res result){
……
}
客户端轮询获取计算结果
@RequestMapping("/getTypeNum")
public ResponseParameter getTypeNum(@RequestBody ParamVO paramVO){
……
}
目前微信小程序首页如下,默认首页为牡丹花图片选择界面,点击选择图片可以选择或直接拍摄待识别牡丹花图片。
应用例、
一种基于人工智能牡丹品种识别方法,利用该识别方法对70000张图片对模型进行训练,测试阶段,使用约25000张牡丹花图像对算法准确度进行了评估,共涉及206个牡丹花种类,综合准确率达到88%以上,各类别精度指标参见表1:
表1
Claims (6)
1.一种基于人工智能牡丹品种识别方法,其特征在于,对包含有牡丹花卉的图像进行如下识别方法,包括:
S1:数据处理,形成用于模型训练的完整标签
对牡丹花卉的图像添加:常规的牡丹花种类分类标签,以及牡丹花位置信息的标签,经数据处理后,对牡丹花卉的花瓣主体处形成边框;
每个边框对应产生一个响应区域,对于某一表示为(X,Y,H,W)的边框,X,Y为边框左上角坐标,H,W分别为边框的高和宽,生成响应区域标签过程如下:
在以边框中心为中心的区域内,产生高斯分布的响应区域;
由该方差,根据二维高斯分布公式,计算出边框中心点半径r范围内的响应值;进一步,通过对所有边框的计算,得到牡丹花卉图像的关键区域响应图;所述响应图和牡丹花卉类别标签构成了用于模型训练的完整标签;
S2:模型训练和学习
使用数据增广和训练数据池策略以增加训练数据量;
损失函数用来计算统计学习模型的预测值与真实值的差距,根据损失函数调整模型参数,使得损失函数变小;通过梯度下降法计算模型中各参数对损失函数值的梯度,将模型参数沿着使得损失函数减小的方向移动一定步长即为完成了一次优化;
S3:前向计算过程
模型训练之后,在实际使用过程中,其流程如下:
网络包括全局分支以及局部分类分支,全局分支包括Feature Extractor 1以及Classification Block 1,局部分类分支包括Feature Extractor 2以及ClassificationBlock 2,两个分支都连接有全局池化层和全连接层;
首先,对于一张输入图像,全局分支针对该图像输出特征经过全局池化层和全连接层直接输出N维输出向量;
然后,全局分支把该图像的特征输出至区域检测模块Ragion detector,区域检测模块Ragion detector产生对应目标区域的热力图,热力图与原图叠加,削弱背景区域,接着区域检测模块Ragion detector叠加后的热力图以及原图输出至局部分类分支FeatureExtractor2以及Classification Block 2;
接着,局部分类分支再输出特征经过全局池化层和全连接层变为N维输出向量;
最后,根据全局分支以及局部分类分支生成的两分支的N维向量计算均值得到最终的N维输出对于N类牡丹花的识别任务,所述识别任务用于输出向量最大值对应的维度n即为模型对当前输入图像的预测结果。
2.根据权利要求1所述的一种基于人工智能牡丹品种识别方法,其特征在于,在所述S2的模型学习中,使用了三个损失函数,包括:全局分类分支的分类损失函数、局部分类分支的分类损失函数和注意力模块响应位置的损失函数;其中,全局分类分支和局部分类分支输出均为N维向量,其中N为所有牡丹花种类数,向量的每个维度分别对应当前输入图像在该分支上预测为对应种类牡丹花的概率;全局分类分支和局部分类分支输出分别记为和每个分支对应的标签相同,记为Y,Y为N维独热向量,对于第n类牡丹花样本,Y的第n维yn为1;其余维度均为0;
两个分类分支均使用交叉熵损失函数,表达式如下:
所述注意力模块的输出为二维数组,每个像素值均在0-1范围内;注意力模块输出接近边框生成的响应图标签,损失函数由响应图与注意力模块输出逐像素计算差异得到。
3.根据权利要求2所述的一种基于人工智能牡丹品种识别方法,其特征在于,所述注意力模块使用center loss损失函数进行训练,根据中心点信息对其进行优化;
所述center loss损失函数定义如下:
4.一种记载如权利要求1-3任意一项所述识别方法,并能对牡丹花卉种类进行准确识别的识别***,其特征在于,包括:图像采集设备和运算设备;
所述图像采集设备用于在模型训练阶段,对牡丹花卉图像通过由尼康单反相机采集,相机型号NIKON D5300,光圈f/5.6,曝光时间1/1000秒,ISO速度ISO-100,焦距140毫米,图像尺寸2992*2000;
所述运算设备为能记载运行本发明所述训练方法及识别方法的设备,所述运算设备为云端服务器,所述前向计算在英伟达特斯拉V100计算卡上进行。
5.如权利要求4所述的识别***包括用户层、表示层、业务层、数据访问层以及在层间传递数据的数据传输对象,其中:
(1)用户层
用户层作为客户端程序,用来与用户交互,并把来自***的信息显示给用户;
(2)表示层
表示层用于控制页面外观,产生页面逻辑以及对用户输入的数据进行合法性验证;***中主要包括基于Bootstrap框架的JavaScript脚本及基于CI框架的表单验证;
(3)业务层
业务逻辑对象把业务规则、约束、活动和数据结合在一起,Controller负责对这些业务对象的管理;
(4)数据访问层数据访问对象把底层的数据访问操作和上层的商务逻辑分开。
6.如权利要求4所述的识别***,其特征在于,采用以下平台搭建环境:
采用JAVA作为开发语言;
软件开发技术栈为:Springboot+SpringMvc+redis+mysql
服务器操作***:CentOS 7.3.1611;
数据库***:MySQL 5.7.27。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010854869.8A CN111967527B (zh) | 2020-08-21 | 2020-08-21 | 一种基于人工智能牡丹品种识别方法及识别*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010854869.8A CN111967527B (zh) | 2020-08-21 | 2020-08-21 | 一种基于人工智能牡丹品种识别方法及识别*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111967527A CN111967527A (zh) | 2020-11-20 |
CN111967527B true CN111967527B (zh) | 2022-09-06 |
Family
ID=73390124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010854869.8A Active CN111967527B (zh) | 2020-08-21 | 2020-08-21 | 一种基于人工智能牡丹品种识别方法及识别*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111967527B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112785582B (zh) * | 2021-01-29 | 2024-03-22 | 北京百度网讯科技有限公司 | 热力图生成模型的训练方法、装置、电子设备和存储介质 |
CN112990045A (zh) * | 2021-03-25 | 2021-06-18 | 北京百度网讯科技有限公司 | 用于生成图像变化检测模型和图像变化检测的方法和装置 |
CN113103256A (zh) * | 2021-04-22 | 2021-07-13 | 达斯琪(重庆)数字科技有限公司 | 一种服务机器人视觉*** |
CN117911875A (zh) * | 2024-02-20 | 2024-04-19 | 菏泽市科学技术信息研究所(菏泽市科技成果转化中心) | 一种基于人工智能的牡丹品种识别方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110738247A (zh) * | 2019-09-30 | 2020-01-31 | 中国科学院大学 | 一种基于选择性稀疏采样的细粒度图像分类方法 |
CN110807808A (zh) * | 2019-10-14 | 2020-02-18 | 浙江理工大学 | 一种基于物理引擎和深度全卷积网络的商品识别方法 |
CN111046858A (zh) * | 2020-03-18 | 2020-04-21 | 成都大熊猫繁育研究基地 | 一种基于图像的动物物种细分类方法、***及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287882A (zh) * | 2019-06-26 | 2019-09-27 | 北京林业大学 | 一种基于深度学习的大菊品种图像识别方法 |
CN111178432B (zh) * | 2019-12-30 | 2023-06-06 | 武汉科技大学 | 多分支神经网络模型的弱监督细粒度图像分类方法 |
CN111209962B (zh) * | 2020-01-06 | 2023-02-03 | 电子科技大学 | 一种联合热图特征回归的基于cnn特征提取网络的联合图像分类方法 |
CN111553949B (zh) * | 2020-04-30 | 2023-05-19 | 张辉 | 基于单帧rgb-d图像深度学习对不规则工件的定位抓取方法 |
-
2020
- 2020-08-21 CN CN202010854869.8A patent/CN111967527B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110738247A (zh) * | 2019-09-30 | 2020-01-31 | 中国科学院大学 | 一种基于选择性稀疏采样的细粒度图像分类方法 |
CN110807808A (zh) * | 2019-10-14 | 2020-02-18 | 浙江理工大学 | 一种基于物理引擎和深度全卷积网络的商品识别方法 |
CN111046858A (zh) * | 2020-03-18 | 2020-04-21 | 成都大熊猫繁育研究基地 | 一种基于图像的动物物种细分类方法、***及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111967527A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111967527B (zh) | 一种基于人工智能牡丹品种识别方法及识别*** | |
CN110717534B (zh) | 一种基于网络监督的目标分类和定位方法 | |
US10650508B2 (en) | Automatic defect classification without sampling and feature selection | |
Chen et al. | Faster region-based hotspot detection | |
CN109993102B (zh) | 相似人脸检索方法、装置及存储介质 | |
CN108288051B (zh) | 行人再识别模型训练方法及装置、电子设备和存储介质 | |
CA3066029A1 (en) | Image feature acquisition | |
CN111582409A (zh) | 图像标签分类网络的训练方法、图像标签分类方法及设备 | |
CN107256017B (zh) | 路线规划方法及*** | |
JP2016018538A (ja) | 画像認識装置、方法及びプログラム | |
CN112634369A (zh) | 空间与或图模型生成方法、装置、电子设备和存储介质 | |
CN112927776A (zh) | 一种面向医学检验报告的人工智能自动解读*** | |
Geng et al. | An improved helmet detection method for YOLOv3 on an unbalanced dataset | |
CN115115825B (zh) | 图像中的对象检测方法、装置、计算机设备和存储介质 | |
CN113780145A (zh) | ***形态检测方法、装置、计算机设备和存储介质 | |
CN111241326B (zh) | 基于注意力金字塔图网络的图像视觉关系指代定位方法 | |
CN111340051A (zh) | 图片处理方法、装置及存储介质 | |
Galiyawala et al. | Person retrieval in surveillance videos using deep soft biometrics | |
Li et al. | An automatic plant leaf stoma detection method based on YOLOv5 | |
CN114118303A (zh) | 基于先验约束的人脸关键点检测方法及装置 | |
CN117829243A (zh) | 模型训练方法、目标检测方法、装置、电子设备及介质 | |
CN113674205A (zh) | 一种基于单目深度摄像头的人体测量的方法及*** | |
CN110287970B (zh) | 一种基于cam与掩盖的弱监督物体定位方法 | |
CN112465821A (zh) | 一种基于边界关键点感知的多尺度害虫图像检测方法 | |
CN115953584A (zh) | 一种具有可学习稀疏性的端到端目标检测方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |