CN109858521B - 一种基于人工智能深度学习的竹子种类识别方法 - Google Patents
一种基于人工智能深度学习的竹子种类识别方法 Download PDFInfo
- Publication number
- CN109858521B CN109858521B CN201811636914.1A CN201811636914A CN109858521B CN 109858521 B CN109858521 B CN 109858521B CN 201811636914 A CN201811636914 A CN 201811636914A CN 109858521 B CN109858521 B CN 109858521B
- Authority
- CN
- China
- Prior art keywords
- bamboo
- rectangular frame
- training
- model
- sampling
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例提供一种基于人工智能深度学习的竹子种类识别方法,包括:获取待分类竹子的横截面图片;在横截面图片中用矩形框标注出竹子的最大横截面区域;采用滑动窗口对矩形框中的图片进行多次取样,获得多个样本图像;将每个样本图像输入到预先训练好的模型中,获得每个样本图像对应的竹子所属种类的概率分布,重复此步骤,直到获得所有样本图像对应的竹子所属种类的概率分布;将所有样本图像对应的竹子所属种类的概率分布进行平均值计算,获得竹子所属种类的最终概率分布;根据最终概率分布中最大概率值对应的竹种,识别所述待分类竹子的所属种类。本发明采用训练好的算法模型,通过多处采样和独立判断,进一步提升了竹种识别的精度。
Description
技术领域
本发明实施例涉及植物分类技术领域,尤其涉及一种基于人工智能深度学习的竹子种类识别方法。
背景技术
目前,对竹子等植物进行分类的方法主要包括经典形态学分类、解剖特征分类、分子生物技术分类和计算机辅助识别分类。
经典形态学分类,是以植物生殖器官,如花、果实、种子和以植物体营养器官,如根、茎、叶形态和结构特征作为分类依据。耿伯介等人于1996年编著的《中国植物志》第9卷第1分册“被子植物门-双子叶植物纲-禾本目-禾本科-竹亚科”中详细记载了我国原产及少数引入的竹类,共500多种的形态学特征。
然而,形态学分类主要以花的器官形态与结构作为分类的主要依据,并辅以其他性状。但竹类植物以无性繁殖为主,只有在生长条件发生重大改变或者自身的某些原因才会导致开花,且开花周期可能很长,花期持续时间很短。因此,实践操作中主要依靠竹鞭、竹笋、竹竿、竹叶等营养器官的特征作为分类依据,但营养器官的发育和特征易受外界环境影响,具有不可持续性,这些都给竹子的分类研究带来不确定性。
解剖特征分类,是以显微观察的微观构特征作为分类依据。Grosser和Liese(1971)对竹材维管束的分类进行了详细研究,为竹秆解剖特征作为竹子分类依据提供了思路。李正理等人(1960)发现竹秆中段的维管束类型比较稳定,可作为解剖分类的主要依据,但由于定义的类型过细,没有广泛的代表性。腰希申等人所著的《中国竹材结构图谱》(科学出版社,2002)基于我国35属75种4变种1栽培种竹子的梢、中、基三段的各个切面解剖结构,包括表面、表皮层、皮层、维管束、髓腔外围组织的显微结构等,建立了竹亚科各属的特征检索表。
然而,解剖特征分类需要对竹子进行切片,且对操作人员的竹子解剖技术要求较高,并且由于切片区域小,所获得的横切面结构信息很少,需要大量的重复性劳动。
分子生物技术分类,是通过分子标记、基因测试等技术提取植物体内的遗传信息,为物种亲缘关系和系统分类提供强有力的手段。赵韩生等人于2015年在《科学报告》上发表了从竹类植物多态性的微卫星标记中选择23对引物,对刚竹属内的78个竹种进行了扩增,对扩增结果的多态性统计分析发现,23对引物在78个竹种中发现64个多态性位点,平均每对引物有2.78个多态性位点,表明大多数竹种的分类地位与目前的分类地位保持一致,为解决现有刚竹属同名异物、同物异名的现象提供了佐证。
然而,分子生物技术分类对竹子样品的采集与保存有着严格的要求,并且提取分类信息和分析过程繁琐,费用昂贵,不易大范围推广。
计算机辅助识别分类,是通过视觉技术和数字图像处理技术提取植物体表的本质特征,进行智能化识别和分类。晁晓菲等人于2018年发表的论文(晁晓菲等,“基于多特征提取和选择的木材分类与识别”,《现代农业科技》2018)中提出,使用K-means聚类算法对木材表面纹理图像采用SPPD(导管分布的统计特性)及BGLAM(基本灰度级氛围矩阵)特征进行预分类,实现对木材数据库的降维,使用GA(遗传算法)挑选出对木材纹理具有较强区分度的LBP(局部二值模式)特征,再用KNN(K最近邻)分类器根据挑选出的LBP特征对木材图像进行最终的分类识别。
计算机智能辅助识别技术是未来发展的方向。近几年,也有部分专家采用神经网络对木材进行分类,例如在日本举行的SWST国际会议(2018)上有专家提出此想法,其使用的源程序为ILSVRC图片分类大赛(2014)冠军模型VGG,在ImageNet测试集上TOP5错误率为7.3%,精度较低。近些年人工智能发展飞速,2017年ILSVRC图片分类大赛冠军模型SENet在ImageNet测试集上将TOP5的错误率下降到2.251%,有了巨大的提升,但目前尚未有人将此模型应用于竹种的分类。
发明内容
针对现有技术存在的问题,本发明实施例提供一种基于人工智能深度学习的竹子种类识别方法,采用计算机辅助识别技术对竹种进行识别。
本发明实施例提供一种基于人工智能深度学习的竹子种类识别方法,包括:
获取待分类竹子的横截面图片;
在所述图片中,用矩形框标注出所述竹子的最大横截面区域;
采用滑动窗口对所述矩形框中的图片进行多次取样,获得多个样本图像;
将每个样本图像输入到预先训练好的模型中,获得每个样本图像对应的竹子所属种类的概率分布,重复此步骤,直到获得所有样本图像对应的竹子所属种类的概率分布;
将所有样本图像对应的竹子所属种类的概率分布进行平均值计算,获得竹子所属种类的最终概率分布;
根据所述最终概率分布中最大概率值对应的竹种,识别所述待分类竹子的所属种类。
进一步,在获取待分类竹子的横截面图片之前,采用如下方式获得所述预先训练好的模型:
针对多个已知竹种的竹子,获取每个竹子的横截面图片;
对每个图片,用矩形框标注出所述竹子的最大横截面区域;
针对其中一个图片,用滑动窗口在矩形框中进行多次取样,获得多个训练样本,重复此步骤,对所有图片进行取样,获得训练样本集;
从所述训练样本集中随机抽取一部分输入到所述模型中进行训练,获得所述预先训练好的模型
进一步,在获得所述多个训练样本的过程中,所述滑动窗口在所述矩形框中每次移动一个步长进行取样。
进一步,将所述滑动窗口取样出的图片的分辨率转换为64×64,作为一个训练样本。
进一步,将所述训练样本对应的竹种名称进行独热编码,作为所述训练样本的标签。
进一步,所述滑动窗口在所述矩形框中取样的过程包括:
所述滑动窗口从所述矩形框的左上顶点开始向右水平滑动,每次滑动一个步长进行取样;
当所述滑动窗口超过所述矩形框的右侧边界时,所述滑动窗口平移到所述矩形框的最左端,并向下平移一个步长,再次从左向右滑动进行取样,直到所述滑动窗口到达所述矩形框的右下角,从而获得一个矩形框内所有的训练样本。
进一步,所述步长是在保证所述训练样本均衡的前提下通过算法确定的。
进一步,所述训练样本均衡是指,训练样本数量大且不同竹种的样本数量基本一致。
进一步,所述模型在训练时采用辅助手段,以提高模型的泛化能力和精度,所述辅助手段包括:
将每个训练样本补零4个像素,并随机切割为分辨率是64×64的图像;
对每个像素的颜色值进行标准化;以及
采用镜像平移增加所述训练样本的丰富性和可变性。
进一步,所述模型为挤压激发网络SENet模型。
本发明实施例提供的方法,采用了辅助加强的SENet模型,通过样本均衡、多处采样和独立判断,并对判断结果进行算术平均,进而识别竹子的种类,避免了采样误差,进一步提升了竹种识别的精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于人工智能深度学习的竹子种类识别方法流程图;
图2为本发明SENet模型训练过程框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出本发明实施例提供的基于人工智能深度学习的竹子种类方法。
如图1所示,该方法包括:
步骤101:获取待分类竹子的横截面图片;
步骤102:在图片中,用矩形框标注出竹子的最大横截面区域;
步骤103:采用滑动窗口对矩形框中的图片进行多次取样,获得多个样本图像;
步骤104:将每个样本图像输入到预先训练好的模型中,获得每个样本图像对应的竹子所属种类的概率分布,重复此步骤,直到获得所有样本图像对应的竹子所属种类的概率分布;
步骤105:将所有样本图像对应的竹子所属种类的概率分布进行平均值计算,获得竹子所属种类的最终概率分布;
步骤106:根据最终概率分布中最大概率值对应的竹种,识别待分类竹子的所属种类。
本发明实施例提供的方法,采用训练好的算法模型,通过多处采样和独立判断,并对判断结果进行算术平均,进而识别竹子的种类,尽量避免了采样误差,进一步提升了竹种识别的精度。
为了获得精确的竹种识别结果,选择合适的算法模型非常重要。本发明实施例采用的是挤压激发网络(Squeeze-and-Excitation Networks,SENet)模型,是在ResNeXt-152模型基础上嵌入了SE模块。
本发明实施例中,首先对已知竹子种类的竹横截面进行抛光,使用高清扫描仪或显微镜等图像采集工具,采集竹横截面的高清图片,然后对图片进行局部采样,形成训练样本集,使用训练样本集对SENet模型进行训练,并用训练得到的模型对任一竹子横截面样本进行种类归属识别。
图2示出了本发明实施例提供的SENeT模型的训练过程,该过程包括训练样本的获取、SENet模型的训练,以及训练结果评估。
训练样本的获取过程包括训练图片的准备201和训练集的生成202,下面分别进行描述。
1、训练图片的准备
以竹子为研究对象,截取测试部位。样品截取时应注意,选取结构完整、无加工缺陷的样品,放置于室温环境下气干,用砂光机或切片机或其他方式进行表面抛光处理,保证抛光精度,使纤维鞘和薄壁细胞分界处清晰可辨,样品加工好后置于显微镜下检查,符合要求的样品表面进行高清图片采集。
2、训练集的生成
训练集的生成包括人工标注训练图片、通过样本均衡算法获取采样步长、对人工标注的图片进行自动采样、训练集和验证集的切分。
首先是人工标注训练图片。对获得的已知竹种横截面高清图片进行标注,通过Labelimg软件,对横截面中较大区域的竹子部分进行矩形标记(标注矩形框),矩形标记区域应在不包含或少包含图片背底的前提下尽量大一些(目的是排除图片背底对样本的干扰),最好涵盖竹子从竹青至竹黄的全部区域。标记好的XML文件与原始图片保持相同的名称,以竹种命名文件夹分类存放。
然后是获得采样步长参数。本发明实施例中,通过Python编程,获得一个高(HEIGHT)、宽(WIDTH)相对合适的滑动窗口,高和宽是按照竹种壁厚确定,该滑动窗口每次移动一个步长,对每个竹种图片的每个标注矩形框中的图片进行取样。
为了保证模型的训练和识别精度,需要保证训练样本的均衡,即每个竹种的训练样本的数量要足够多,并且样本的数量基本一致。为了保证样本的均衡,针对不同竹种,根据竹种横截面的大小以及标注矩形框的大小和数量,在滑动窗口大小选定的情况下(即滑动窗口的高和宽固定),选择适合于该竹种的步长(STRIDE)参数,这对于训练样本的均衡至关重要。具体的STRIDE参数选取算法如下:
(a)确定每个竹种的预期样本数target_samples(例如target_samples=5000);
(b)选定竹种[i],初始化STRIDE=WIDTH//2(“//”表示整除,下面相同);
(c)遍历该竹种[i]的每个图片[j];
(d)遍历该图片[j]的每个标注矩形框[k],针对每个标记矩形框,利用如下公式计算该矩形框的预期采样数:
((rect[k].ymax–rect[k].ymin)//STRIDE)*((rect[k].xmax–rect[k].xmin)//STRIDE)
其中,xmin表示标注矩形框的最左侧边界、xmax表示标注矩形框的最右侧边界、ymin表示标注矩形框的最上侧边界、ymax表示标注矩形框的最下侧边界;rect表示创建一个矩形。
(e)累计图片[j]的预期采样数;
(f)累计竹种[i]的预期采样数expected_samples,然后计算采样完成率:
(expected_samples-target_samples)/target_samples
(g)根据如下规则调整STRIDE参数:
如果采样完成率为<95%,则把STRIDE减少5,然后回到步骤c
如果采样完成率为>105%,则把STRIDE增加6,然后回到步骤c
如果采样完成率为95%-105%,则返回STRIDE,开始正式采样。
第三步是进行自动采样。利用滑动窗口在矩形框中进行采样,具体过程是:滑动窗口从标注矩形框的左上顶点开始向右进行水平滑动,每次滑动一个步长(STRIDE),每滑动一次窗口,将窗口内的图片取出,将图片分辨率缩放到64×64,作为训练样本。同时,将该图片对应竹种名称进行独热(One-hot)编码,作为标签。当窗口滑动到超过矩形框右侧边界时,将窗口平移到最左端,并向下平移一个步长(STRIDE),再次从矩形框的左侧向右滑动,并按照上述同样的方式来生成训练样本和标签,循环该过程,直到滑动窗口到达标注矩形框的右下角。
对各个竹种的所有图片中的所有标注矩形框,都进行上述采样过程,即可获得大量的原始训练样本集。
第四步是进行训练集和验证集的切分。将第三步中获得的原始训练样本集打散,随机抽取其中一部分作为训练集,剩余的部分作为验证集。
随后,将所述训练集输入到SENet模型中,对SENet模型进行训练203。为了提高SENet模型的泛化能力和精度,采用了如下辅助技术手段:
首先,对数据进行增强。将每个训练样本先补零(ZERO PADDING)4个像素,然后再将训练样本切割到分辨率为64*64。此外,采用镜像平移的方式增加样本的丰富性和可变性,从而增加模型的泛化能力。
其次,进行数据标准化。对每个像素的颜色值进行标准化,算法公式如下:
X=(X–X均值)/X标准差
其中,X表示64*64*1的矩阵。
由于竹种分类属于多分类的问题,所以模型的最后一层采用归一化指数函数(Softmax)分类器,并采用Softmax交叉熵作为损失函数,而模型的训练就是将训练样本分批输入模型,并采用动量(momentum)梯度下降法,迭代寻找最优的模型参数使得损失函数达到全局或者局部最小值的过程。当模型的训练损失和验证损失均较小且不再下降,可以认为模型基本收敛从而结束训练。
在SENet模型进行训练的过程中,使用的核心参数及其含义如表1所示。
表1
SENet模型进行训练后,需要对训练结果进行评估204。本发明实施例中,已知竹种的训练样本总数大于10000,切分后的训练集样本数:验证集样本数大于2,对SENet模型的训练次数大于100,得到的训练集精度大于95%,验证集精度大于95%。
SENet模型经过训练后,可采用图1所示的方法对待分类的竹子进行竹种识别。首先,像图2中的过程201那样,获取待分类竹子的横截面图片,然后像过程202那样,对横截面图片用矩形框进行人工标注,并采用滑动窗口获得多个样本图像。之后,将所有样本图像输入训练好的SENet模型中,获得所有样本图像对应的竹种概率分布。将所有样本图像对应的竹种概率分布进行平均值计算,获得竹种最终概率分布,并根据最终概率分布中最大概率值对应的竹种,识别待分类竹子的所属种类。
本发明实施例提供的方法,采用了辅助加强的SENet模型,配合自动化采样及样本均衡算法,可以极大提高竹种的识别精度。
下面,利用本发明实施例提供的方法对十属十种竹子的类别进行识别,从而证明本发明实施例方法的有效性。
十属十种竹采自福建,包括:1、梨竹属,梨竹;2、思劳竹属,沙罗单竹;3、泡竹属,泡竹;4、泰竹属,泰竹;5、勒竹属,吊罗坭竹;6、慈竹属,慈竹;7、绿竹属,大头典竹;8、牡竹属,麻竹;9、巨竹属,阿帕斯竹;10、刚竹属,毛竹。
【例1】
对竹子取胸高处节间部位完整竹环,抛光扫描后采用本发明实施例提供的方法对SENet模型进行训练,然后用训练完成的SENet模型对待分类的竹子图片进行处理。模型训练为24小时,每个图片的识别时间约为1秒钟,结果表明本发明实施例提供的方法可以对待分类的竹子图片进行竹种的准确识别。采用SENeT模型获得竹种的概率分布如下:
吊罗坭竹:吊罗坭竹99.96%、慈竹0.02%、泡竹0.01%、大头典竹0.01%、毛竹0.01%、麻竹0.0%、泰竹0.0%、阿帕斯竹0.0%、沙罗单竹0.0%,梨竹0.0%;
大头典竹:大头典竹100.0%、沙罗单竹0.0%、毛竹0.0%、阿帕斯竹0.0%、吊罗坭竹0.0%、麻竹0.0%、泰竹0.0%、泡竹0.0%、梨竹0.0%、慈竹0.0%;
慈竹:慈竹99.18%、吊罗坭竹0.32%、沙罗单竹0.26%、泡竹0.09%、泰竹0.05%、阿帕斯竹0.04%、大头典竹0.02%、梨竹0.02%、毛竹0.01%、麻竹0.0%;
梨竹:梨竹99.86%、泰竹0.03%、阿帕斯竹0.02%、麻竹0.02%、泡竹0.02%、慈竹0.02%、沙罗单竹0.01%、吊罗坭竹0.01%、毛竹0.01%、大头典竹0.01%;
毛竹:毛竹97.77%,慈竹1.75%,泡竹0.15%,梨竹0.12%,沙罗单竹0.06%,阿帕斯竹0.06%,泰竹0.04%,大头典竹0.02%,吊罗坭竹0.02%,麻竹0.01%;
沙罗单竹:沙罗单竹99.56%,泡竹0.17%,泰竹0.12%,阿帕斯竹0.06%,大头典竹0.04%,吊罗坭竹0.02%,麻竹0.01%,梨竹0.0%,慈竹0.0%,毛竹0.0%;
泡竹:泡竹99.83%,阿帕斯竹0.1%,沙罗单竹0.02%,毛竹0.02%,泰竹0.01%,吊罗坭竹0.01%,梨竹0.01%,大头典竹0.0%,麻竹0.0%,慈竹:0.0%;
泰竹:泰竹:99.87%,阿帕斯竹:0.05%,泡竹0.04%,慈竹0.01%,梨竹0.01%,沙罗单竹0.0%,毛竹0.0%,麻竹0.0%,大头典竹0.0%,吊罗坭竹0.0%;
阿帕斯竹:阿帕斯竹99.99%,沙罗单竹0.01%,泡竹0.0%,泰竹0.0%,毛竹0.0%,麻竹0.0%,梨竹0.0%,慈竹0.0%,吊罗坭竹0.0%,大头典竹:0.0%;
麻竹:麻竹76.71%,泰竹13.74%,沙罗单竹3.25%,阿帕斯竹2.86%,慈竹2.07%,梨竹0.41%,毛竹0.27%,大头典竹0.26%,吊罗坭竹0.25%,泡竹0.18%。
可以看出,采用本发明实施例提供的方法获得竹种的概率分布中,最大概率值所表示的竹种与实际竹种完全一致,从而证明本发明实施例所提供的方法在识别竹子所属种类上是十分有效的。
【例2】
例2证明了采用训练好的SENet模型,对新加工的十属十种竹子样本进行竹种识别,同样能获得好的效果。
首先,对十属十种的竹子进行新加工,采集竹子的横切面图片,然后利用例1中训练好的SENet模型进行识别,结果如下:
吊罗坭竹:吊罗坭竹99.97%,大头典竹0.0%,泡竹0.0%,泰竹0.0%,阿帕斯竹0.0%,慈竹0.0%,毛竹0.0%,麻竹0.0%,梨竹0.0%,沙罗单竹0.0%;
大头典竹:大头典竹98.62%、沙罗单竹0.97%、毛竹0.22%、吊罗坭竹0.1%、麻竹0.05%、梨竹0.02%、泡竹0.01%、阿帕斯竹0.0%、慈竹0.0%、泰竹0.0%;
慈竹:慈竹99.91%,吊罗坭竹0.02%,沙罗单竹0.02%,阿帕斯竹0.02%,泡竹:0.01%,大头典竹0.01%,泰竹0.0%,梨竹0.0%,麻竹0.0%,毛竹0.0%;
梨竹:梨竹93.6%,沙罗单竹2.54%,麻竹1.92%,毛竹0.9%,慈竹0.3%,泰竹0.3%,吊罗坭竹0.16%,大头典竹0.14%,泡竹0.1%,阿帕斯竹0.04%;
毛竹:毛竹48.97%,大头典竹42.36%,沙罗单竹5.85%,梨竹1.41%,吊罗坭竹0.55%,泡竹0.36%,慈竹0.22%,泰竹0.19%,阿帕斯竹0.05%,麻竹0.05%;
沙罗单竹:沙罗单竹99.81%,大头典竹0.1%,毛竹0.05%,梨竹0.01%,麻竹0.01%,吊罗坭竹0.01%,泡竹0.0%,泰竹0.0%,阿帕斯竹0.0%,慈竹0.0%;
泡竹:泡竹99.87%,吊罗坭竹0.05%,梨竹0.03%,麻竹0.01%,毛竹0.01%,沙罗单竹0.01%,慈竹0.01%,泰竹0.01%,大头典竹0.0%,阿帕斯竹0.0%;
泰竹:泰竹99.99%,泡竹0.0%,梨竹0.0%,阿帕斯竹0.0%,麻竹0.0%,毛竹0.0%,慈竹0.0%,大头典竹0.0%,沙罗单竹0.0%,吊罗坭竹0.0%;
阿帕斯竹:阿帕斯竹99.96%,毛竹0.01%,泰竹0.01%,麻竹0.01%,慈竹0.0%,泡竹0.0%,大头典竹0.0%,沙罗单竹0.0%,吊罗坭竹0.0%,梨竹0.0%;
麻竹:麻竹66.02%,沙罗单竹30.44%,慈竹1.57%,吊罗坭竹0.71%,泡竹0.54%,大头典竹0.3%,阿帕斯竹0.28%,毛竹0.06%,泰竹0.06%,梨竹:0.03%。
可以看出,采用训练好的SENet模型对竹子的新样品进行竹种识别,其识别的竹子品种与实际竹种完全一致,也就是说本发明实施例方法对新样品进行识别,也能获得准确的识别结果。
【例3】
例3是对争议竹种进行识别。小泰竹,属于引入种植的竹种,目前分类上归属为泰竹,但小泰竹的叶子与泰竹的叶子相比略小。采用例1中训练好的SENet模型对3张小泰竹样品图片分别进行竹种识别,结果如下:
小泰竹图片1:泰竹57.98%,阿帕斯竹23.37%,毛竹7.32%,泡竹3.54%,沙罗单竹3.5%,麻竹2.27%,吊罗坭竹0.72%,大头典竹0.52%,慈竹0.41%,梨竹0.37%;
小泰竹图片2:泰竹40.82%,阿帕斯竹28.12%,沙罗单竹12.32%,毛竹7.07%,泡竹4.43%,麻竹3.64%,吊罗坭竹1.11%,大头典竹1.07%,慈竹0.87%,梨竹0.55%;
小泰竹图片3:泰竹97.44%,阿帕斯竹0.79%,泡竹0.6%,沙罗单竹0.4%,毛竹0.25%,麻竹0.2%,慈竹0.12%,吊罗坭竹0.08%,梨竹0.07%,大头典竹0.05%。
可以看出,对竹种有争议的小泰竹进行识别,识别结果与目前小泰竹的竹种分类是一致的。
【例4】
例4是对未知竹种的竹子进行识别。在例4中,取4个竹子,其中两个竹子属于上述十属十种,编号为未知1-阿帕斯竹、未知2-毛竹。另外两个竹子不属于上述十属十种,编号为未知3-大泰竹,未知4-硬头黄竹。采用上述例1中训练好的SENet模型,对四个竹子的种类进行识别,结果如下
未知1:阿帕斯竹100.0%,泰竹0.0%,沙罗单竹0.0%,慈竹0.0%,泡竹0.0%,毛竹0.0%,麻竹0.0%,大头典竹0.0%,吊罗坭竹0.0%,梨竹:0.0%;
未知2:毛竹71.41%,大头典竹11.42%,梨竹9.55%,沙罗单竹2.35%,慈竹2.04%,麻竹1.5%,吊罗坭竹0.91%,阿帕斯竹0.4%,泡竹0.24%,泰竹0.2%;
未知3:慈竹60.87%,麻竹28.06%,梨竹6.29%,大头典竹2.36%,吊罗坭竹0.87%,泰竹0.43%,泡竹0.43%,阿帕斯竹0.32%,毛竹0.27%,沙罗单竹0.12%;
未知4:慈竹68.48%,麻竹18.44%,阿帕斯竹8.31%,沙罗单竹1.21%,大头典竹1.08%,毛竹0.63%,吊罗坭竹0.6%,泡竹0.56%,梨竹0.44%,泰竹0.25%。
可以看出,采用本发明实施例提供的方法可以准确识别未知1是阿帕斯竹,未知2是毛竹,由于未知3和未知4的竹子未在SENet模型中训练过,所以SENet模型将其识别为最接近的竹种,即慈竹。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (3)
1.一种基于人工智能深度学习的竹子种类识别方法,其特征在于,包括:
获得预先训练好的模型,包括:针对多个已知竹种的竹子,获取每个竹子的横截面图片;对每个图片,用矩形框标注出所述竹子的最大横截面区域;针对其中一个图片,用滑动窗口在矩形框中进行多次取样,获得多个训练样本,重复此步骤,对所有图片进行取样,获得训练样本集;从所述训练样本集中随机抽取一部分输入到所述模型中进行训练,获得所述预先训练好的模型;且所述模型为挤压激发网络SENet模型;
滑动窗口在矩形框中取样的过程包括:所述滑动窗口从所述矩形框的左上顶点开始向右水平滑动,每次滑动一个步长进行取样;当所述滑动窗口超过所述矩形框的右侧边界时,所述滑动窗口平移到所述矩形框的最左端,并向下平移一个步长,再次从左向右滑动进行取样,直到所述滑动窗口到达所述矩形框的右下角,从而获得一个矩形框内所有的训练样本;其中,所述步长是在保证所述训练样本均衡的前提下通过算法来确定的,所述训练样本均衡是指训练样本数量大且不同竹种的样本数量基本一致,所述算法是指基于采样完成率判断的步长参数选取算法,步长用STRIDE表示,算法具体如下:
a.确定每个竹种的预期样本数target_samples;
b.选定竹种[i],初始化STRIDE=WIDTH//2,WIDTH表示滑动窗口的宽度,//表示整除;
c.遍历所述竹种[i]的每个图片[j];
d.遍历各所述图片[j]的每个标注矩形框[k],针对每个标注矩形框,利用如下公式计算各所述标注矩形框的预期采样数:
((rect[k].ymax–rect[k].ymin)//STRIDE)*((rect[k].xmax–rect[k].xmin)//STRIDE)
其中,xmin表示标注矩形框的最左侧边界、xmax表示标注矩形框的最右侧边界、ymin表示标注矩形框的最上侧边界、ymax表示标注矩形框的最下侧边界;rect表示创建一个矩形框;
e.累计图片[j]的预期采样数;
f.累计竹种[i]的预期采样数expected_samples,然后计算采样完成率;
expected_samples/target_samples
g.根据如下规则调整STRIDE参数:若采样完成率小于95%,则将STRIDE减少5,再回到步骤c;若采样完成率大于105%,则将STRIDE增加6,再回到步骤c;若采样完成率为95%-105%之间,则直接返回STRIDE参数,开始滑动窗口在矩形框中的取样;
所述模型在训练时采用辅助手段,以提高模型的泛化能力和精度,所述辅助手段包括:将每个训练样本补零4个像素,并随机切割为分辨率是64×64的图像;对每个像素的颜色值进行标准化;以及采用镜像平移增加所述训练样本的丰富性和可变性;
所述模型的最后一层采用归一化指数函数Softmax分类器,并采用Softmax交叉熵作为损失函数,而模型的训练是将训练样本分批输入模型,并采用动量momentum梯度下降法,迭代寻找最优的模型参数使得损失函数达到全局或者局部最小值,当模型的训练损失和验证损失均较小且不再下降,则认为模型基本收敛从而结束训练;
获取待分类竹子的横截面图片;
在所述图片中,用矩形框标注出所述待分类竹子的最大横截面区域;
采用滑动窗口对所述矩形框中的图片进行多次取样,获得多个样本图像;
将每个样本图像输入到预先训练好的模型中,获得每个样本图像对应的竹子所属种类的概率分布,重复此步骤,直到获得所有样本图像对应的竹子所属种类的概率分布;
将所有样本图像对应的竹子所属种类的概率分布进行平均值计算,获得竹子所属种类的最终概率分布;
根据所述最终概率分布中最大概率值对应的竹种,识别所述待分类竹子的所属种类。
2.根据权利要求1所述的方法,其特征在于,将所述滑动窗口取样出的图片的分辨率转换为64×64,作为一个训练样本。
3.根据权利要求2所述的方法,其特征在于,将所述训练样本对应的竹种名称进行独热编码,作为所述训练样本的标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811636914.1A CN109858521B (zh) | 2018-12-29 | 2018-12-29 | 一种基于人工智能深度学习的竹子种类识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811636914.1A CN109858521B (zh) | 2018-12-29 | 2018-12-29 | 一种基于人工智能深度学习的竹子种类识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109858521A CN109858521A (zh) | 2019-06-07 |
CN109858521B true CN109858521B (zh) | 2021-01-01 |
Family
ID=66893186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811636914.1A Active CN109858521B (zh) | 2018-12-29 | 2018-12-29 | 一种基于人工智能深度学习的竹子种类识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109858521B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563536B (zh) * | 2020-04-17 | 2023-04-14 | 福建帝视信息科技有限公司 | 一种基于机器学习的竹条颜色自适应分类方法 |
CN112507890A (zh) * | 2020-12-14 | 2021-03-16 | 南京林业大学 | 一种基于svm分类器的竹子叶片分类识别方法 |
CN114219049B (zh) * | 2022-02-22 | 2022-05-10 | 天津大学 | 一种基于层级约束的细粒度笔石图像分类方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107862695A (zh) * | 2017-12-06 | 2018-03-30 | 电子科技大学 | 一种基于全卷积神经网络的改进型图像分割训练方法 |
CN108921825A (zh) * | 2018-06-12 | 2018-11-30 | 北京羽医甘蓝信息技术有限公司 | 基于深度学习的检测面部皮肤点状缺陷的方法及装置 |
CN108960257A (zh) * | 2018-07-06 | 2018-12-07 | 东北大学 | 一种基于深度学习的糖尿病视网膜病变等级分级方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702196B (zh) * | 2009-11-16 | 2012-08-29 | 浙江林学院 | 基于木材显微图像的针叶材树种自动识别方法 |
CN104951794A (zh) * | 2015-05-15 | 2015-09-30 | 江南大学 | 基于颜色与纹理的竹条自动识别方法与系统开发 |
CN107220655A (zh) * | 2016-03-22 | 2017-09-29 | 华南理工大学 | 一种基于深度学习的手写、印刷文本的分类方法 |
CN107527337B (zh) * | 2017-08-07 | 2019-07-09 | 杭州电子科技大学 | 一种基于深度学习的视频对象移除篡改检测方法 |
CN109063713A (zh) * | 2018-07-20 | 2018-12-21 | 中国林业科学研究院木材工业研究所 | 一种基于构造特征图像深度学习的木材鉴别方法和系统 |
-
2018
- 2018-12-29 CN CN201811636914.1A patent/CN109858521B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107862695A (zh) * | 2017-12-06 | 2018-03-30 | 电子科技大学 | 一种基于全卷积神经网络的改进型图像分割训练方法 |
CN108921825A (zh) * | 2018-06-12 | 2018-11-30 | 北京羽医甘蓝信息技术有限公司 | 基于深度学习的检测面部皮肤点状缺陷的方法及装置 |
CN108960257A (zh) * | 2018-07-06 | 2018-12-07 | 东北大学 | 一种基于深度学习的糖尿病视网膜病变等级分级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109858521A (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109858521B (zh) | 一种基于人工智能深度学习的竹子种类识别方法 | |
CN109509187B (zh) | 一种针对大分辨率布匹图像中的小瑕疵的高效检验算法 | |
CN110245657B (zh) | 病理图像相似性检测方法及检测装置 | |
CN108288506A (zh) | 一种基于人工智能技术的癌症病理辅助诊断方法 | |
CN108288271A (zh) | 基于三维残差网络的图像检测系统及方法 | |
CN106570505A (zh) | 对组织病理图像进行分析的方法和系统 | |
Rudolph et al. | Efficient identification, localization and quantification of grapevine inflorescences and flowers in unprepared field images using Fully Convolutional Networks | |
CN110633758A (zh) | 针对小样本或样本不平衡的癌症区域检测定位的方法 | |
CN114038037B (zh) | 基于可分离残差注意力网络的表情标签修正和识别方法 | |
CN110781889B (zh) | 一种基于深度学习的蓝莓果实中总糖含量的无损检测方法 | |
CN111784721A (zh) | 基于深度学习的超声内窥图像智能分割与量化方法及系统 | |
CN112396619B (zh) | 一种基于语义分割的内部复杂组成的小型颗粒分割方法 | |
CN115099297B (zh) | 一种基于改进型YOLO v5模型的大豆植株表型数据统计方法 | |
CN115049952A (zh) | 一种基于多尺度级联感知深度学习网络的幼鱼肢体识别方法 | |
CN111476287A (zh) | 一种高光谱影像小样本分类方法及装置 | |
Kovalev et al. | Deep learning in big image data: Histology image classification for breast cancer diagnosis | |
CN116229265A (zh) | 一种自动无损提取大豆植株表型的方法 | |
CN116434206A (zh) | 一种基于机器视觉技术的棉花质量性状检测方法 | |
CN106326914B (zh) | 一种基于svm的珍珠多分类方法 | |
CN114937266A (zh) | 一种基于yolox-s的硬壳蛤生物体征识别方法 | |
CN114241309A (zh) | 一种基于ShuffleNetV2-Unet的水稻纹枯病识别方法和系统 | |
Mei et al. | Cross-stained segmentation from renal biopsy images using multi-level adversarial learning | |
CN112966698A (zh) | 基于轻量化卷积网络的淡水鱼图像实时识别方法 | |
CN116524279A (zh) | 一种数字农业的人工智能图像识别作物长势分析方法 | |
Anushya | Herbal leaves image clustering via K-Means |
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 |