可左右滑动选省市

基于卷积神经网络的动物识别模型建立方法及其应用系统

更新时间:2024-07-01
基于卷积神经网络的动物识别模型建立方法及其应用系统 专利申请类型:发明专利;
地区:陕西-西安;
源自:西安高价值专利检索信息库;

专利名称:基于卷积神经网络的动物识别模型建立方法及其应用系统

专利类型:发明专利

专利申请号:CN202111080000.3

专利申请(专利权)人:向前
权利人地址:陕西省西安市灞桥区长乐东路甲字一号

专利发明(设计)人:向前,王晓丹,王紫娇,王硕,宋亚飞,王坚

专利摘要:本发明公开了基于卷积神经网络的动物识别模型建立方法及其应用系统,所述卷积神经网络的动物识别模型建立方法先将分组卷积引入到基于标准卷积的卷积神经网络中,构建动物识别初始模型,并对动物识别初始模型进行训练,得到动物识别预训练模型;然后对动物识别预训练模型依次进行迁移学习、剪枝、稀疏和量化处理,得到最终的动物识别模型;利用本发明中的方法建立的动物识别模型识别正确率更高,模型计算量降低,将建立的动物识别模型应用到低功耗的嵌入式动物识别系统中,模型在嵌入式设备中的识别速度和准确率都较高,模型的实时性较强,能够完成快速精准的动物识别任务,可识别321种动物,在一定程度上实现了动物种类的细粒度识别。

主权利要求:
1.基于卷积神经网络的动物识别模型建立方法,其特征在于,包括以下步骤,S1:将分组卷积引入到基于标准卷积的卷积神经网络中,构建动物识别初始模型,并使用ImageNet数据集对动物识别初始模型进行训练,得到动物识别预训练模型;
S2:使用扩增数据集对步骤S1中得到的动物识别预训练模型中的可训练参数进行训练更新,实现动物识别预训练模型的迁移学习,得到动物识别迁移模型;
S3:建立以动物识别迁移模型中各个卷积层的通道数为变量,模型在测试集上的识别率为目标的优化模型,并利用全局最优引导人工蜂群算法,对动物识别迁移模型进行剪枝,降低模型的参数量,得到动物识别剪枝模型;
S4:结合多重正则化技术,对步骤S3中得到的动物识别剪枝模型进行稀疏训练,得到动物识别稀疏模型;
S5:对步骤S4中的动物识别稀疏模型进行量化,得到最终的动物识别模型;
其中,步骤S3中建立以动物识别迁移模型中各个卷积层的通道数为变量,模型在测试集上的识别率为目标的优化模型的具体操作包括以下步骤,S301:令动物识别迁移模型 中各个卷积层的卷积核组成的集合为(l) (l) (l) (l) (l)
W ={W ,b },其中,W 和b 分别是卷积核的权重和偏置参数,对应通道个数组成的集合为 为动物识别迁移模型的卷积层数量;
S302:将 的子网络 包含的卷积核和通道个数组成的集合分别表示为和 且
S303:对于特定的训练集 和测试集 以确定最优的通道个数集合 为目标,使对应的子网络 在 上微调之后对 具有较高的识别正确率,从而将以动物识别迁移模型中各个卷积层的通道数为变量,模型在测试集上的识别率为目标的优化目标描述为以下规划问题:式中,acc(·)表示子网络 在测试集 上的整体识别正确率,α∈(0.100%]为给定的百分比超参数,表示在剪枝的过程中子网络每个卷积层最多只保留模型 中对应卷积层百分比为α的通道个数;当 时,取 表示子网络的权重参数继承自原始网络;
步骤S3中利用全局最优引导人工蜂群算法,对动物识别迁移模型进行剪枝的具体操作包括以下步骤,S304、初始化阶段:将剪枝模型各层的通道数视为人工蜂群的蜜源,对于第j个蜜源,在(l)闭区间[1,aC /ρ]之间随机选取一个正整数作为第l个卷积层的通道个数 其中ρ∈(l)(1,+∞];各个蜜源先初始化为较小的范围[1,aC /ρ],然后在搜索过程中将搜索空间扩展(l)到[1,αC ],设置最大搜索周期数为
S305、雇佣蜂阶段:使用差分进化算法的搜索公式 进行搜索,式中,a≠b≠c≠j,Fl是一个与卷积层相关的缩放因子,各自独立地从期望为0.5,标准差为0.1的正太分布中随机取值,即Fl~N(0.5,0.1);根据步骤S303中建立的目标规划问题,计算蜜源的适应度值S306、跟随蜂阶段:利用公式 通过轮盘赌选择法选择一个蜜源,使用公式 根据选择的蜜源产生新蜜源,
再根据其各自的适应度值对新旧蜜源进行贪婪选择;式中, β∈(l)
(0,1),用于避免 时,Pj=0;e≠f≠j,gbestj 是当前最优蜜源的取值,缩放因子服从正太分布,即F′j~N(0.0,2.0);
S307、侦察蜂阶段:若蜜源 经过Ψ次搜索之后仍未在邻域内找到比它更优的蜜源,则按照初始化阶段的方法随机生成一个蜜源代替S308、重复步骤S305~S307直至完成 个周期的搜索,根据步骤S303中建立的目标规划问题,计算所有蜜源的适应度值,并将适应度最大的蜜源对应的子网络作为最终的动物识别剪枝模型。
2.根据权利要求1所述的基于卷积神经网络的动物识别模型建立方法,其特征在于:步骤S1中所述的动物识别初始模型包括输入层、隐含层和输出层;
所述隐含层包含10个卷积层,每个卷积层的输出都采用批量归一化进行处理,之后采用ReLU函数进行激活;每两个卷积层之间使用最大池化作为上采样层,最后一个卷积层后使用平均池化作为上采样;隐含层的末尾连接一个基于全连接层的Softmax分类器。
3.根据权利要求2所述的基于卷积神经网络的动物识别模型建立方法,其特征在于:步骤S2中所述的扩增数据集包括对原始动物图像进行缩放、裁剪、翻转、旋转、移位、添加高斯噪声和色彩抖动后形成的图像集。
4.根据权利要求2所述的基于卷积神经网络的动物识别模型建立方法,其特征在于,步骤S2的具体操作包括以下步骤,S201:将扩增数据集分为训练集和测试集;
S202:优化器参数配置;设置训练周期、每批次输入模型的样本数以及初始学习率α0,学习率上下界参数αf、梯度一阶矩估计的指数移动加权平均超参数β1,梯度二阶矩估计的指数移动加权平均超参数β2,学习率上下界调整步幅γ,常数ε;
S203:动物识别预训练模型初始化;对模型的参数θ进行初始化,将模型参数设置成近于0的随机值;
S204:使用自适应梯度下降算法对参数θ进行更新;
S205:参数每更新一次,计算当前模型在训练集和测试集上的损失函数值和准确率,以测试集准确率为性能度量,检验当前模型性能是否提升,如果提升,则将当前模型参数保存,记录测试集的最佳识别率,并将测试集最佳识别率对应的模型即为动物识别迁移模型。
5.根据权利要求4所述的基于卷积神经网络的动物识别模型建立方法,其特征在于,步骤S204的具体操作包括以下步骤,S2041:初始化梯度的一阶矩估计m0=0和二阶矩估计v0=0;
S2042:对于第t次迭代,按照损失函数计算前向传播误差L(θt‑1);
S2043:计算第t次迭代时损失函数的梯度
S2044:更新第t次迭代时的学习率
S2045:计算第t次迭代时,学习率的下界
S2046:计算第t次迭代时,学习率的上界
S2047:更新第t次迭代时梯度的一阶矩估计mt=βi·mt‑1+(1‑β1)·gt;
S2048:更新第t次迭代时梯度的二阶矩估计
S2049:更新参数
6.根据权利要求5所述的基于卷积神经网络的动物识别模型建立方法,其特征在于,步骤S302中子网络 的卷积核组成的集合 的计算方法包括以下步骤,S3021:令 子网络 各一维卷积层的通道数为
(l)
S3022:获取原始网络中第l个一维卷积层的通道数n1=len(W );
S3023:随机产生一个一维数组A=[a1,a2,…,az],其中第i个元素ai为从区间[1,n1]内随机选取的一个正整数,同时a1≠a2≠…≠az;
S3024:将数组A中的元素从小到大排列;
S3025:令j=ai,则
7.根据权利要求6所述的基于卷积神经网络的动物识别模型建立方法,其特征在于,步骤S5的具体操作包括以下步骤,S501:采用动态8位量化方法对动物识别稀疏模型的32位浮点型参数值进行量化;
S502:在网络训练时,使用指数滑动平均计算各参数取值的最大值Rmax和最小值Rmin,判断参数的取值是有符号还是无符号的浮点型;
S503:对于有符号的浮点型,将其量化到整型区间[‑128,+127],对于无符号浮点型,则量化到整数区间[0,255];
S504:对于无符号浮点型参数值,其对应的整型数长度为Il=log2(|Rmax|);对于有符号浮点型参数值,其对应的整型数长度为Il=log2(max(|Rmin|,|Rmax|))+1;
S505:计算分子长度Fl=8‑Il,则该浮点数的量化乘积因子为S506:将浮点型参数值W与量化乘积因子Mq相乘,再将其值裁剪到合适的无符号或有符号的整型范围内,对于无符号浮点型,其量化值为Wq=clip(round(W*Mq),0,255),对于有符号浮点型,其量化值为Wq=clip(round(W*Mq),‑128,+127)。
8.一种基于卷积神经网络的动物识别模型的应用系统,其特征在于:所述应用系统包括处理器、视频采集模块、识别处理模块、触控屏显示控制模块和网络通信模块;所述动物识别模型嵌入式设置在所述识别处理模块中,所述视频采集模块、识别处理模块、触控屏显示控制模块和网络通信模块均与所述处理器连接;
所述视频采集模块主要负责实时视频采集;
所述识别处理模块基于权利要求1‑7中任一项所述的动物识别模型建立方法对所述视频采集模块提供的视频流进行动物种类的实时识别;
所述触控屏显示控制模块主要负责人机交互,其功能包括实现触摸控制程序打开和关闭,显示实时识别结果;
所述网络通信模块提供所述动物识别系统与其他外接设备之间的通信。 说明书 : 基于卷积神经网络的动物识别模型建立方法及其应用系统技术领域[0001] 本发明涉及动物识别技术领域,尤其涉及基于卷积神经网络的动物识别模型建立方法及其应用系统。背景技术[0002] 现实世界动物种类繁多,如何有效地识别动物的种类是科学家亟待研究的课题。研究快速精准地识别动物的装置,可以帮助科学家在野外研究时快速地对物种的归属进行判别,细粒度的动物识别有助于动物保护基地进行实时精准的物种多样性监测和实施有效的保护。另外,近年来,不断有野生动物闯入人类生活区域影响人类正常生活的事件发生,如2021年4月发生的东北虎进村伤人事件、2021年5月的云南大象北迁事件等,如果有动物识别监测装置提前做出危险动物离开栖息地的预警,则人类可以提前做好防范措施,避免人与动物的正面冲突,实现人与大自然的和谐相处。[0003] 由于野外环境复杂,动物种类繁多,且行踪不定,同时网络环境较差,因此开发基于嵌入式的动物识别系统有助于灵活方便地部署系统。卷积神经网络(ConvolutionalNeuralNetwork,CNN)作为当前主要的深度学习技术,在多项计算机视觉任务中都取得了较好的效果,但往往具有较高的计算复杂度从而限制了其在边缘设备上的部署,无法达到“快速精准”的效果。[0004] 现有情况下在开发快速精准的嵌入式智能动物识别系统时存在如下问题:1、动物种类众多,背景复杂,完备的数据集不易获取,难以实现复杂背景下的细粒度识别;2、标准卷积模块计算量大,对嵌入式设备的存储和运算资源需求较高;3、传统卷积神经网络模型参数量大,难以部署到计算资源受限的嵌入式平台中,模型的实时性较差;4、数据量大,模型训练难以快速收敛。发明内容[0005] 针对上述存在的问题,本发明旨在提供一种基于卷积神经网络的动物识别模型建立方法及其应用,利用该动物识别模型建立方法建立起来的动物识别模型能够快速精准的对动物种类进行识别,且从网络结构层面降低了计算量,提高了嵌入式系统的计算效率。[0006] 为了实现上述目的,本发明所采用的技术方案如下:[0007] 基于卷积神经网络的动物识别模型建立方法,其特征在于,包括以下步骤,[0008] S1:将分组卷积引入到基于标准卷积的卷积神经网络中,构建动物识别初始模型,并使用ImageNet数据集对动物识别初始模型进行训练,得到动物识别预训练模型;[0009] S2:使用扩增数据集对步骤S1中得到的动物识别预训练模型中的可训练参数进行训练更新,实现动物识别预训练模型的迁移学习,得到动物识别迁移模型;[0010] S3:建立以动物识别迁移模型中各个卷积层的通道数为变量,模型在测试集上的识别率为目标的优化模型,并利用全局最优引导人工蜂群算法,对动物识别迁移模型进行剪枝,降低模型的参数量,得到动物识别剪枝模型;[0011] S4:结合多重正则化技术,对步骤S3中得到的动物识别剪枝模型进行稀疏训练,得到动物识别稀疏模型;[0012] S5:对步骤S4中的动物识别稀疏模型进行量化,得到最终的动物识别模型。[0013] 进一步的,步骤S1中所述的动物识别初始模型包括输入层、隐含层和输出层;[0014] 所述隐含层包含10个卷积层,每个卷积层的输出都采用批量归一化进行处理,之后采用ReLU函数进行激活;每两个卷积层之间使用最大池化作为上采样层,最后一个卷积层后使用平均池化作为上采样;隐含层的末尾连接一个基于全连接层的Softmax分类器。[0015] 进一步的,步骤S2中所述的扩增数据集包括对原始动物图像进行缩放、裁剪、翻转、旋转、移位、添加高斯噪声和色彩抖动后形成的图像集。[0016] 进一步的,步骤S2的具体操作包括以下步骤,[0017] S201:将扩增数据集分为训练集和测试集;[0018] S202:优化器参数配置;设置训练周期、每批次输入模型的样本数以及初始学习率α0,学习率上下界参数αf、梯度一阶矩估计的指数移动加权平均超参数β1,梯度二阶矩估计的指数移动加权平均超参数β2,学习率上下界调整步幅γ,常数ε;[0019] S203:动物识别预训练模型初始化;对模型的参数θ进行初始化,将模型参数设置成近于0的随机值;[0020] S204:使用自适应梯度下降算法对参数θ进行更新;[0021] S205:参数每更新一次,计算当前模型在训练集和测试集上的损失函数值和准确率,以测试集准确率为性能度量,检验当前模型性能是否提升,如果提升,则将当前模型参数保存,记录测试集的最佳识别率,并将测试集最佳识别率对应的模型即为动物识别迁移模型。[0022] 进一步的,步骤S204的具体操作包括以下步骤,[0023] S2041:初始化梯度的一阶矩估计m0=0和二阶矩估计v0=0;[0024] S2042:对于第t次迭代,按照损失函数计算前向传播误差L(θt‑1);[0025] S2043:计算第t次迭代时损失函数的梯度[0026] S2044:更新第t次迭代时的学习率[0027] S2045:计算第t次迭代时,学习率的下界[0028] S2046:计算第t次迭代时,学习率的上界[0029] S2047:更新第t次迭代时梯度的一阶矩估计mt=βt·mt‑1+(1‑β1)·gt;[0030] S2048:更新第t次迭代时梯度的二阶矩估计[0031] S2049:更新参数[0032] 进一步的,步骤S3中建立以动物识别迁移模型中各个卷积层的通道数为变量,模型在测试集上的识别率为目标的优化模型的具体操作包括以下步骤,[0033] S301:令动物识别迁移模型 中各个卷积层的卷积核组成的集合为(l) (l)其中,W 和b 分别是卷积核的权重和偏置参数,对应通道个数组成的集合为 为动物识别迁移模型的卷积层数量;[0034] S302:将 的子网络 包含的卷积核和通道个数组成的集合分别表示为和 且[0035] S303:对于特定的训练集 和测试集 以确定最优的通道个数集合为目标,使对应的子网络 在 上微调之后对 具有较高的识别正确率,从而将以动物识别迁移模型中各个卷积层的通道数为变量,模型在测试集上的识别率为目标的优化目标描述为以下规划问题:[0036][0037][0038][0039] 式中,acc(·)表示子网络 在测试集 上的整体识别正确率,α∈(0.100%]为给定的百分比超参数,表示在剪枝的过程中子网络每个卷积层最多只保留模型 中对应卷积层百分比为α的通道个数;当 时,取 表示子网络的权重参数继承自原始网络。[0040] 进一步的,步骤S302中子网络 的卷积核组成的集合 的计算方法包括以下步骤,[0041] S3021:令 子网络 各一维卷积层的通道数为[0042] 3022:获取原始网络中第l个一维卷积层的通道数nj=len(W(i));[0043] S3023:随机产生一个一维数组A=[a1,a2,…,az]其中第i个元素ai为从区间[1,n1]内随机选取的一个正整数,同时a1≠a2≠…≠az;[0044] S3024:将数组A中的元素从小到大排列;[0045] S3025:令j=ai,则[0046] 进一步的,步骤S3中利用全局最优引导人工蜂群算法,对动物识别迁移模型进行剪枝的具体操作包括以下步骤,[0047] S304、初始化阶段:将剪枝模型各层的通道数视为人工蜂群的蜜源,对于第j个蜜(l)源,在闭区间[1,αC /ρ]之间随机选取一个正整数作为第l个卷积层的通道个数 其(l)中ρ∈(1,+∞];各个蜜源先初始化为较小的范围[1,αC /ρ],然后在搜索过程中将搜索空(l)间扩展到[1,αC ],设置最大搜索周期数为[0048] S305、雇佣蜂阶段:使用差分进化算法的搜索公式进行搜索,式中,a≠b≠c≠j,Fl是一个与卷积层相关的缩放因子,各自独立地从期望为0.5,标准差为0.1的正太分布中随机取值,即Fl~N(0 .5,0.1);根据步骤S303中建立的目标规划问题,计算蜜源的适应度值[0049] S306、跟随蜂阶段:利用公式 通过轮盘赌选择法选择一个蜜源,使用公式 根据选择的蜜源产生新蜜源,再根据其各自的适应度值对新旧蜜源进行贪婪选择;式中,用于避免 时,Pj=0;e≠f≠j,是当前最优蜜源的取值,缩放因子服从正太分布,即F′j~N(0.0,2.0);[0050] S307、侦察蜂阶段:若蜜源 经过Ψ次搜索之后仍未在邻域内找到比它更优的蜜源,则按照初始化阶段的方法随机生成一个蜜源代替[0051] S308、重复步骤S305~S307直至完成 个周期的搜索,根据步骤S303中建立的目标规划问题,计算所有蜜源的适应度值,并将适应度最大的蜜源对应的子网络作为最终的动物识别剪枝模型。[0052] 进一步的,步骤S5的具体操作包括以下步骤,[0053] S501:采用动态8位量化方法对动物识别稀疏模型的32位浮点型参数值进行量化;[0054] S502:在网络训练时,使用指数滑动平均计算各参数取值的最大值Rmax和最小值Rmin,判断参数的取值是有符号还是无符号的浮点型;[0055] S503:对于有符号的浮点型,将其量化到整型区间[‑128,+127],对于无符号浮点型,则量化到整数区间[0,255];[0056] S504:对于无符号浮点型参数值,其对应的整型数长度为Il=log2(|Rmax|);对于有符号浮点型参数值,其对应的整型数长度为Il=log2(max(|Rmin|,|Rmax|))+1;[0057] S505:计算分子长度Fl=8‑Il,则该浮点数的量化乘积因子为[0058] S506:将浮点型参数值W与量化乘积因子Mq相乘,再将其值裁剪到合适的无符号或有符号的整型范围内,对于无符号浮点型,其量化值为Wq=clip(round(W*Mq),0,255),对于有符号浮点型,其量化值为Wq=cllip(round(W*Mq),‑128,+127)。[0059] 进一步的,一种基于卷积神经网络的动物识别模型的应用系统,其特征在于:所述应用系统包括处理器、视频采集模块、识别处理模块、触控屏显示控制模块和网络通信模块;所述动物识别模型嵌入式设置在所述识别处理模块中,所述视频采集模块、识别处理模块、触控屏显示控制模块和网络通信模块均与所述处理器连接;[0060] 所述视频采集模块主要负责实时视频采集;[0061] 所述识别处理模块对所述视频采集模块提供的视频流进行动物种类的实时识别;[0062] 所述触控屏显示控制模块主要负责人机交互,其功能包括实现触摸控制程序打开和关闭,显示实时识别结果;[0063] 所述网络通信模块提供所述动物识别系统与其他外接设备之间的通信。[0064] 本发明的有益效果是:与现有技术相比,本发明的改进之处在于,[0065] 1、本发明中基于卷积神经网络的动物识别模型建立方法能够大大提高模型识别正确率,且降低了模型的计算量;在提高识别正确率方面,通过数据增强方案和迁移学习方案,并结合AdaBound训练优化算法,实现了动物的高准确率和细粒度的识别;在降低计算量方面,首先,针对通道冗余问题,提出了基于改进人工蜂群算法的网络通道剪枝方案,以网络结构搜索的方式搜索网络最优的通道子集,降低了网络通道数;其次,针对参数冗余问题,设计了稀疏训练方案,降低了参数量;最后,设计了模型量化方案,将网络参数的32位浮点型值转为8位整型值,进一步降低了网络对存储和计算资源的需求。[0066] 2、本发明中基于卷积神经网络的动物识别模型建立方法建立的动物识别模型能够部署在低功耗的嵌入式设备中,且模型在嵌入式设备中的识别速度和准确率都较高,模型的实时性较强,能够完成快速精准的动物识别任务,可识别321种动物,在一定程度上实现了动物种类的细粒度识别。附图说明[0067] 图1为本发明基于卷积神经网络的动物识别模型建立方法流程图。[0068] 图2为本发明中分组卷积示意图。[0069] 图3为本发明样本数据增强前后对比示意图。[0070] 图4为本发明迁移学习流程图。[0071] 图5为本发明基于全局最优引导人工蜂群算法的动物识别模型剪枝算法的整体流程。[0072] 图6为本发明稀疏训练流程图。[0073] 图7为本发明中应用系统硬件设计框图。[0074] 图8为本发明实施例中系统启动时Matrix‑GUI桌面。[0075] 图9为本发明实施例中系统启动时智能动物识别系统应用图标。[0076] 图10为本发明实施例中系统启动时智能动物识别系统界面。[0077] 图11为本发明实施例中不同亮度条件下的动物图像识别测试结果。[0078] 图12为本发明实施例中不同品种动物图像识别测试结果。[0079] 图13为本发明实施例中不同角度下的动物图像识别测试结果。[0080] 图14为本发明实施例中不同噪声条件下的动物图像识别测试结果。[0081] 图15为本发明实施例中不同色彩抖动条件下的动物图像识别测试结果。[0082] 图16为本发明实施例中不同遮挡条件动物识别测试结果。具体实施方式[0083] 为了使本领域的普通技术人员能更好的理解本发明的技术方案,下面结合附图和实施例对本发明的技术方案做进一步的描述。[0084] 如附图1所示,基于卷积神经网络的动物识别模型建立方法,包括以下步骤,[0085] S1:将分组卷积引入到基于标准卷积的卷积神经网络中,构建动物识别初始模型,并使用ImageNet数据集对动物识别初始模型进行训练,得到动物识别预训练模型;[0086] 在CNN模型中,卷积层的计算量最大,并决定了推理运行的速度,因此降低卷积层的复杂度很重要。如附图2所示,标准卷积实质上是分组数G=1时的分组卷积,当G增大时,输入特征图与卷积核之间的连线显著减少,意味着它们之间的计算减少,因此分组卷积有助于减少卷积层的计算成本。[0087] 具体的,本申请中的动物识别初始模型包括输入层、隐含层和输出层;所述隐含层的结构设置如下表1所示,包含10个卷积(Conv)层,每个卷积层的输出都采用批量归一化(BatchNormalization,BN)进行处理,之后采用ReLU函数进行激活;每两个卷积层之间使用最大池化(MaxPool)作为上采样层,最后一个卷积层后使用平均池化(AvgPool)作为上采样;隐含层的末尾连接一个基于全连接层(FC)的Softmax分类器,动物识别初始模型输入图像为尺寸为224×224。此处需要说明的是,在构建动物识别初始模型时需要对动物识别初始模型进行预训练,采用现有的预训练方法,使用ImageNet数据集对动物识别初始模型进行预训练,得到动物识别预训练模型,该预训练操作采用现有的方法进行,本申请中不做赘述。[0088] 表1隐含层结构设置[0089][0090] 进一步的,S2:使用扩增数据集对步骤S1中得到的动物识别预训练模型中的可训练参数进行训练更新,实现动物识别预训练模型的迁移学习,得到动物识别迁移模型;[0091] 具体的,所述扩增数据集包括对原始动物图像进行缩放、裁剪、翻转、镜像、旋转、移位、添加高斯噪声和色彩抖动后形成的图像集。由于收集到的带标签的动物图像数据极其有限,使用缩放、裁剪、翻转、旋转、移位、添加高斯噪声和色彩抖动等数据增强技术对训练数据进行扩充,提高训练样本的多样性。[0092] 缩放:图主要包括向外或向内缩放。向外缩放时为了保持原始图像的大小,从缩放后的图像中裁剪出和原始图像大小一样的图像。向内缩放将图像缩小到预设的大小。[0093] 裁剪:做裁剪操作主要是考虑原始图像的宽高扰动,在大多数图像分类网络中,样本在输入网络前必须要统一大小,所以通过调整图像的尺寸可以大量的扩展数据。本设计首先将随机裁剪固定尺寸大小的图片,然后再将图像通过插值算法调整到网络需要的尺寸大小。[0094] 翻转:图像的翻转是将原始的图像进行镜像操作,主要包括水平镜像翻转,垂直镜像翻转和原点镜像翻转。[0095] 旋转:角度旋转操作和图像镜像相对,它主要是沿着画面的中心进行任意角度的变换,该变换是通过将原图像和仿射变换矩阵相乘实现的。[0096] 移位:移位只涉及沿X或Y方向(或两者)移动图像,该方法可以有效增加样本的数量。[0097] 添加高斯噪声:神经网络倾向于学习可能无用的高频特征(即图像中大量出现的模式)时,通常会发生过度拟合。具有零均值的高斯噪声基本上在所有频率中具有数据点,从而有效地扭曲高频特征,增加网络的泛化能力。[0098] 色彩抖动:色彩抖动主要是在图像的颜色方面做增强,主要调整的是图像的亮度,饱和度和对比度。为了模拟不同环境背景、光照条件下的动物图像,本设计对数据进行不同程度的色彩抖动。[0099] 样本数据增强前后对比情况如附图3所示,在图3中的镜像处理方式包含在上述所述的翻转操作内,因此,本申请中未对镜像操作进行具体说明。[0100] 进一步的,迁移学习(TransferLearning)是一种机器学习方法,是把一个领域(即源领域)的知识,迁移到另外一个领域(即目标领域),使得目标领域能够取得更好的学习效果。源领域由于具有大量数据和对应的标签,可以充分地对模型进行有监督学习,然后将该模型在源领域上学习到的知识或模式应用到不同但相关的目标领域中,改进目标领域的学习效果。为了提高模型的训练速度和识别效果,如附图4所示,将动物识别初始模型(此处的动物识别初始模型指的是经过预训练之后的预训练模型)作为初始模型,使用扩增数据集对初始模型中的可训练参数进行进行训练,避免模型从头开始训练,减少了模型的训练次数,同时在训练过程中引入改进的随机梯度下降算法AdaBound,加速模型的收敛。[0101] 网络的训练是模型参数值根据损失函数和输入数据动态调整的过程,由于计算机内存的限制,一般不将整个训练数据集同时进行训练,而是采用分批的方法将小批量数据逐次送入网络更新参数。随机梯度下降算法(Stochasticgradientdescent,SGD)每次从训练集中分批次随机抽取n个训练样本送入网络,对于第t次迭代,参数θ更新的表达式为[0102] θt+1=θt‑αt·gt(I‑1)[0103] 式中,αt为学习率,gt为损失函数的梯度,对于损失函数L(θt;x(i:i+n);y(i:i+n))有[0104][0105] 在网络的训练中,SGD使用固定的学习率进行参数更新,这种参数更新方式对选择合适的学习率αt提出挑战,如果选取过大,则训练难以收敛,反之则降低了收敛的速度,同时还有陷入局部最小值和鞍点的风险。因此,使用改进后的梯度下降算法(自适应梯度下降法AdaBound)对参数更新过程进行优化来缓解上述问题。在每次更新过程中,AdaBound考虑之前梯度的影响,利用梯度一阶和二阶矩估计分别更新公式θt+1=θt‑αt·gt中的αt和gt,同时对αt施加动态边界,αt在每次迭代中都会有一个确定的范围,且这个范围会随着迭代次数的增加越来越小,这使得参数更新更为平稳。[0106] 具体的,使用扩增数据集对动物识别预训练模型中的可训练参数进行训练更新的目的是通过输入训练集和测试集数据,输出当测试集识别率达到最高时的模型,其具体操作包括以下步骤,[0107] S201:将扩增数据集分为训练集和测试集;[0108] S202:优化器参数配置;将训练周期epoch设置为200,每批次输入模型的样本数B为32,也即每个批次随机选取32个样本输入网络;同时设置参数α0=0.001αf=0.1,β1=0.9‑3 ‑7β2=0.999,γ=10 ε=10 ,其中α0为初始学习率,αf为学习率上下界参数、β1为梯度一阶矩估计的指数移动加权平均超参数,β2为梯度二阶矩估计的指数移动加权平均超参数,γ为学习率上下界调整步幅,ε为一常数,且为小数。[0109] S203:动物识别预训练模型初始化;对模型的参数θ进行初始化,将模型参数设置成近于0的随机值;[0110] S204:使用自适应梯度下降算法对参数θ进行更新;具体按照以下步骤进行更新:[0111] S2041:初始化梯度的一阶矩估计m0=0和二阶矩估计v0=0;[0112] S2042:对于第t次迭代,按照损失函数计算前向传播误差L(θt‑1);[0113] S2043:计算第t次迭代时损失函数的梯度[0114] S2044:更新第t次迭代时的学习率[0115] S2045:计算第t次迭代时,学习率的下界[0116] S2046:计算第t次迭代时,学习率的上界[0117] S2047:更新第t次迭代时梯度的一阶矩估计mt=βt·mt‑1+(1‑βt)·g;[0118] S2048:更新第t次迭代时梯度的二阶矩估计[0119] S2049:更新参数[0120] S205:参数每更新一次,计算当前模型在训练集和测试集上的损失函数值和准确率,以测试集准确率为性能度量,检验当前模型性能是否提升,如果提升,则将当前模型参数保存,记录测试集的最佳识别率,并将测试集最佳识别率对应的模型即为动物识别迁移模型。[0121] 进一步的,S3:建立以动物识别迁移模型中各个卷积层的通道数为变量,模型在测试集上的识别率为目标的优化模型,并利用全局最优引导人工蜂群算法,对动物识别迁移模型进行剪枝,降低模型的参数量,得到动物识别剪枝模型;[0122] 具体的,以动物识别迁移模型中各个卷积层的通道数为变量,模型在测试集上的识别率为目标的优化模型的具体操作包括以下步骤,[0123] S301:令动物识别迁移模型 中各个卷积层的卷积核组成的集合为(l) (l)其中,W 和b 分别是卷积核的权重和偏置参数,对应通道个数组成的集合为 为动物识别迁移模型的卷积层数量;[0124] S302:将 的子网络 包含的卷积核和通道个数组成的集合分别表示为和 且 表示子网络的权重参数继承自原始网络[0125] 在已知子网络的各个一维卷积层通道数的情况下从预训练的原始网络 中随机选取一个子网络 其卷积核组成的集合 的计算方法包括以下步骤,[0126] S3021:令 子网络 各一维卷积层的通道数为[0127] S3022:获取原始网络中第l个一维卷积层的通道数nl=len(W(l));[0128] S3023:随机产生一个一维数组A=[a1,a2,…,az]其中第i个元素ai为从区间[1,n1]内随机选取的一个正整数,同时a1≠a2≠…≠az;[0129] S3024:将数组A中的元素从小到大排列;[0130] S3025:令j=ai,则[0131] S303:对于特定的训练集 和测试集 以确定最优的通道个数集合为目标,使对应的子网络 在 上微调之后对 具有较高的识别正确率,从而将以动物识别迁移模型中各个卷积层的通道数为变量,模型在测试集上的识别率为目标的优化目标描述为以下规划问题:[0132][0133][0134][0135] 式中,acc(·)表示子网络 在测试集 上的整体识别正确率,α∈(0.100%]为给定的百分比超参数,表示在剪枝的过程中子网络每个卷积层最多只保留模型 中对应卷积层百分比为α的通道个数,因此起到了限定子网络通道个数的上界以达到剪枝效果和缩小搜索空间的作用。由于每个一维卷积层的通道数目不为0;因此,在公式(1‑3)中,当时,取[0136] 进一步的,利用全局最优引导人工蜂群算法,对动物识别迁移模型进行剪枝的整体流程如附图5所示,具体操作包括以下步骤,[0137] S304、初始化阶段:将剪枝模型各层的通道数视为人工蜂群的蜜源,对于第j个蜜(l)源,在闭区间[1,αC /ρ]之间随机选取一个正整数作为第l个卷积层的通道个数 其(l)中ρ∈(1,+∞];各个蜜源先初始化为较小的范围[1,αC /ρ],根据式(1‑3)可知,(l)因此,蜜源在搜索过程中搜索空间会扩展到[1,αC ],实现了优先选择通道数较小的网络再根据适应度值逐渐选择较大的网络目的,设置最大搜索周期数为[0138] S305、雇佣蜂阶段:使用差分进化算法的搜索公式替换标准人工蜂群算法的搜索公式,以提高算法的收敛速度,差分进化算法的搜索公式为[0139][0140] 式中,a≠b≠c≠j,Fl是一个与卷积层相关的缩放因子,各自独立地从期望为0.5,标准差为0.1的正太分布中随机取值,即Fl~N(0.5,0.1);根据步骤S303中式(1‑3)建立的目标规划问题,计算蜜源的适应度值[0141][0142] S306、跟随蜂阶段:跟随蜂利用公式(1‑6)通过轮盘赌选择法选择一个蜜源,使用公式(1‑7)根据选择的蜜源产生新蜜源,再根据其各自的适应度值对新旧蜜源进行贪婪选择;[0143][0144][0145] 式(1‑6)中, 用于避免 时,Pj=0;[0146] 式(1‑7)中,e≠f≠j, 是当前最优蜜源的取值,缩放因子服从正太分布,即F′j~N(0.0,2.0);与公式(1‑4)相比,公式(1‑7)引入了当前最优蜜源到搜索公式中,使得算法在当前最优值附近寻找更优的蜜源。[0147] S307、侦察蜂阶段:若蜜源 经过Ψ次搜索之后仍未在邻域内找到比它更优的蜜源,则按照初始化阶段的方法随机生成一个蜜源代替[0148] S308、重复步骤S305~S307直至完成 个周期的搜索,根据步骤S303中建立的目标规划问题,计算所有蜜源的适应度值,并将适应度最大的蜜源对应的子网络作为最终的动物识别剪枝模型。[0149] 在雇佣蜂阶段和跟随蜂阶段都用到了公式(1‑5)对给定蜜源 的适应度进行计算,但是从头开始训练 对应的子网络 再通过公式(1‑5)求得 的识别正确率是非常耗时的。因此,本发明中按照 中各个卷积层的具体通道个数,首先从经过预训练的原始网络 中对应的卷积层随机挑选相应数目的卷积核作为 的卷积核,因此 中各个卷积层参数完全继承自 再对 训练少量的周期计算适应度。[0150] 在网络剪枝过程中的四个阶段中,每个子网络使用公式(1‑5)计算网络的适应度时都需要训练Θ个周期,为了估计本发明中剪枝算法的复杂度,可计算剪枝算法总的周期数。因为每个蜜源对应一个子网络,在剪枝算法的每个搜索周期中,初始化阶段、雇佣蜂阶段和跟随蜂阶段分别产生Ω个子网络,因此每个阶段都要训练Ω×Θ个周期。侦察蜂阶段产生的子网络数量具有较大的随机性,很难精确的估算,将该阶段的训练周期总数记为总之,本发明中剪枝算法所需的子网络训练周期总数为即除去网络在预训练阶段和微调阶段的训练周期数,网络在剪枝过程中额外所需的训练周期数至少为[0151] 因此本发明的剪枝算法的引入相对增加了模型在训练过程中的计算量,导致网络在训练阶段非常耗时,但是对于实际应用而言,降低网络在测试过程中的模型复杂度和提高识别正确率比减少训练过程中的时间消耗更重要,尤其是将动物识别模型部署在低功耗的嵌入式设备上更加明显。本发明的剪枝算法引入了超参数α用于控制子网络各个卷积层的通道数上限,再根据彩票假设优先选择通道数目较小的子网络,与原始网络相比,网络的参数相应降低,进而减少了网络在测试阶段的计算复杂度。[0152] 进一步的,S4:结合多重正则化技术,对步骤S3中得到的动物识别剪枝模型进行稀疏训练,得到动物识别稀疏模型;[0153] 使用剪枝算法减少了动物识别模型的卷积层通道数量,从减少参数量的角度减少了模型复杂度,但另一方面,参数值过大也会增加网络的计算量。为了从参数值的角度降低计算量,本发明结合多重正则化技术对剪枝后的动物识别剪枝模型进行稀疏化训练,其过程如附图6所示。首先将剪枝模型的稠密参数向后进行L2和L1正则化,使参数的绝对值接近于0,阈值稀疏化将一定比例的最小参数直接置为零,这样可以使得参数的数量减少。由于直接将部分参数置为0会降低AnimalNets的识别正确率,因此需再使用训练数据集对稀疏参数进行微调,最终得到稀疏模型。[0154] 进一步的,S5:对步骤S4中的动物识别稀疏模型进行量化,得到最终的动物识别模型。[0155] 上述得到的动物识别稀疏模型的参数是32位浮点数,浮点数在进行计算时相比整型数有两大缺点:一是浮点数在运算时需要占用较大的存储空间和内存空间,如果将32位的浮点数转化为8位的整型,则可缩小75%的存储空间;二是浮点数在运算时会降低运算速度,增加设备能耗,读取32位浮点数所需的带宽可以同时读入4个8位整型,并且整型运算相比浮点型运算更快,自然可以降低设备的功耗。[0156] 本申请中对动物识别稀疏模型进行量化的具体操作包括以下步骤,[0157] S501:采用动态8位量化方法对动物识别稀疏模型的32位浮点型参数值进行量化;[0158] S502:在网络训练时,使用指数滑动平均计算各参数取值的最大值Rmax和最小值Rmin,判断参数的取值是有符号还是无符号的浮点型;[0159] S503:对于有符号的浮点型,将其量化到整型区间[‑128,+127],对于无符号浮点型,则量化到整数区间[0,255];[0160] S504:对于无符号浮点型参数值,其对应的整型数长度为[0161] Il=log2(|Rmax|)(1‑8)[0162] 对于有符号浮点型参数值,其对应的整型数长度为[0163] Il=log2(max(|Rmin,Rmax|))+1(1‑9)[0164] S505:计算分子长度Fl=8‑Il(1‑10)[0165] 则该浮点数的量化乘积因子为[0166] S506:将浮点型参数值W与量化乘积因子Mq相乘,再将其值裁剪到合适的无符号或有符号的整型范围内,对于无符号浮点型,其量化值为[0167] Wq=clip(round(W*Mq),0,255)(1‑12)[0168] 对于有符号浮点型,其量化值为[0169] Wq=clip(round(W*Mq),‑128,+127)(1‑13)[0170] 进一步的,本申请中还提供一种基于卷积神经网络的动物识别模型的应用系统,所述应用系统包括处理器、视频采集模块、识别处理模块、触控屏显示控制模块和网络通信模块;所述动物识别模型嵌入式设置在所述识别处理模块中,所述视频采集模块、识别处理模块、触控屏显示控制模块和网络通信模块均与所述处理器连接;系统整体硬件设计框图如附图7所示。[0171] 所述嵌入式动物识别系统选取工业派作为硬件平台。工业派(IndustriPi)是一款基于美国德州仪器公司(TI)Sitara系列产品AM5708异构多核处理器设计的开源智能硬件开发平台,是一款基于AM5708的最小系统。工业派是一款低功耗产品,具有丰富的外设接口。也即,本发明中的处理器采用TISitaraAM5708SoC异构多核处理器,其采用工业派作为载体,视频采集模块、识别处理模块、触控屏显示控制模块和网络通信模块通过工业派的外设接口与其处理器通讯连接。所述工业派的功能特点如下表2所示。[0172] 表2工业派功能特点[0173][0174] 所述视频采集模块主要负责实时视频采集,采用镜头焦距为3mm,感光原件尺寸为2.7英寸的USB2.0相机模组CTLYLH2MV1.1,采集视频的尺寸为640×480像素,采集速度为20FPS。[0175] 所述识别处理模块对所述视频采集模块提供的视频流,并通过调用TIDLAPI对视频流中动物种类的实时识别,该模块主要使用C66xDSP,工作频率为750MHz。[0176] 所述触控屏显示控制模块主要负责人机交互,可实现触摸控制程序打开和关闭,显示实时识别结果等,该模块采用7英寸HDMI接口的LCD显示屏,支持1024×600像素。[0177] 所述网络通信模块提供所述动物识别系统与其他外接设备之间的通信,主要通过自带网络接口实现,也可使用UART串口实现对开发板的控制。[0178] 实施例:[0179] 为了检验系统在工业派上的进行动物识别的功能完整性,将本发明中的动物识别模型和相应的软件程序部署到工业派系统中,按照如下步骤进行启动:[0180] 步骤1:给工业派连接电源,带板子启动后出现附图8所示的Matrix‑GUI桌面,选择“IntelligentStormApplications”;[0181] 步骤2:经过第一步选择之后,出现附图9所示的智能动物识别系统应用图标,点击进入“AnimalRecognitionSystemV0.1”;[0182] 步骤3:在软件介绍页面点击“run”按钮,弹出智能动物识别系统界面,如附图10所示。[0183] 按照上述步骤启动之后,可以开展不同亮度条件、不同品种动物、不同角度、不同噪声条件、不同色彩抖动条件、不同遮挡条件下的识别测试测试实验。[0184] 对不同亮度条件下的动物图像进行识别,结果如附图11所示,其中,(a)亮度条件为暗,(b)亮度条件为亮,可见系统在图中所示的不同亮度条件下能正确识别动物。[0185] 对同一类但不同品种动物图像进行识别,检验系统对动物的细粒度识别效果,以犬类为例,结果如附图12所示,其中,(a)为澳洲梗(Australianterrier),(b)为吉娃娃犬(Chihuahua),(c)为杜宾犬(doberman),(d)为金毛猎犬(goldenretriever),(e)为挪威猎麋犬(NorwegianElkhound),可见系统能正确识别图中不同品种的动物。[0186] 对不同角度下的动物图像进行识别,结果如附图13所示,其中,(a)为正立,(b)为倒立,(c)为侧立,可见系统在图中所示的不同角度下能正确识别动物。[0187] 对不同噪声条件下的动物图像进行识别,噪声选用高斯白噪声,结果如附图14所示,其中,(a)为高噪声,(b)为低噪声,可见系统在图中所示的不同噪声条件下能正确识别动物。[0188] 对不同色彩抖动条件下的动物图像进行识别,结果如附图15所示,其中,(a)为调整饱和度条件下的结果,(b)为调整对比度条件下的结果,(c)为调整锐度条件下的结果,(d)为调整上述所有项条件下的结果,可见系统在图中所示的不同色彩抖动条件下能正确识别动物。[0189] 对动物图像进行不同程度的遮挡,识别结果如附图16所示,其中,(a)、(b)、(c)为三种不同遮挡方式,可见系统在图中所示的不同遮挡条件下能正确识别动物。[0190] 以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

专利地区:陕西

专利申请日期:2021-09-15

专利公开日期:2024-06-18

专利公告号:CN113836804B

电话咨询
读内容
搜本页
回顶部