基于深度卷积神经网络的奶牛个体识别方法与流程

文档序号:12468888阅读:650来源:国知局
基于深度卷积神经网络的奶牛个体识别方法与流程

本发明的技术方案涉及图像数据处理中的图像识别方法,具体地说是基于深度卷积神经网络的奶牛个体识别方法。



背景技术:

当前,我国已基本形成高密度和集中化的奶牛养殖体系,但是仍然存在着牛奶质量不高、生产效率低以及成本居高不下等诸多问题。其主要原因在于过分依赖劳动密集型的粗放型经营,生产过程自动化水平低,各生产环节中处置的精准性和针对性明显不足。例如,当前我国的奶牛业仍普遍采用人工观察饲养方法,该方法受限于饲养员的数量和技术专业素质,不仅严重制约了牛奶生产的效率,提升了牛奶生产的成本,而且由于不能有效地察觉奶牛在养殖过程中的生理和心理需求的变化,导致奶牛福利下降、牛奶营养成分不高和养殖资源大量浪费等问题的产生。所以,奶牛饲养的信息化和智能化管理显得尤为重要,而奶牛个体识别作为奶牛管理的基础,是一项不容忽视的环节。

传统的奶牛个体识别的方法是采用人工识别方法辨别每头奶牛,该方法费时费力而且人为因素比较大,准确率不能够保证。目前,大多数奶牛饲养场采用的方法是为每头奶牛佩戴具有唯一标识的标签,该方法虽然在一定程度上提高了奶牛识别的准确率,但是仍然存在耗时耗力的缺点,而且对奶牛的身体健康也造成了一定的影响,从而导致出现产奶量下降和产崽过程生病等一系列问题。所以智能识别奶牛个体逐渐成为一个研究课题。2005年南京农业大学管峰等人提出了一种基于STR基因座的奶牛个体识别的方法,该方法通过分析2份冷冻精液样本和4头可疑种公牛血样的BM1862、BM2113、BM720和TGLA122STR基因座遗传多样性,旨在判断该2份冷冻精液的种公牛来源,为建立奶牛个识别方法奠定基础,但是该方法涉及微观领域,对仪器和技术要求比较高,代价比较大;2010年河北农业大学何金凤等人提出了一种基于RFID技术的奶牛个体识别系统,系统选用Tag-i t耳标为每头奶牛建立一个永久性的数码档案,实行一畜一标,通过搭建读写器的硬件电路和进行软件编程实现对存储奶牛个体信息的耳标进行非接触的快速准确的识别,从而建立奶牛的个体识别系统,但是该方法采用的射频技术射频范围比较小,采取的是硬件系统仍是为每头奶牛佩戴标签的方式,与完全的信息化管理还存在一定的差距;2015年华南农业大学的陈娟娟等人提出了一种基于改进的特征袋模型的奶牛个体识别算法,引入优化方向梯度直方图(HOG)特征对图像进行特征提取和描述,然后利用空间金字塔匹配原理(SPM)生成图像基于视觉词典的直方图表示,最后自定义直方图交叉核作为分类器核函数,对奶牛个体进行身份识别;CN105260750A公开了一种奶牛个体识别方法,该方法通过将获取的奶牛实时图像与事先建立好的模板库进行比对匹配,将匹配成功的模板库中的奶牛个体的标签作为待测试奶牛的类别,但是该方法对于差异比较大的同一头奶牛图像的匹配准确率并不高。2013年刘俊在上海师范大学学报上发表的基于多特征融合的奶牛图像识别系统研究论文中,作者使用了SIFT特征,该方法效率低,误识别率较高,该研究中奶牛养殖环境复杂,在有前景遮挡的情况下,SIFT方法的鲁棒性下降。由于SIFT方法的计算量大,当奶牛群体较大时,难以实现实时识别。

目前,奶牛个体识别的方法存在的主要问题是大多数采用硬件系统的方式,奶牛信息化程度还不够高;另外,虽然有一部分研究人员采用图像处理技术对奶牛图像进行处理,但是算法比较单一,没有充分利用奶牛本身所具有的条纹特点来与当前比较流行的图像处理和模式识别技术进行很好的结合,导致奶牛识别的准确率有很大的提升空间。



技术实现要素:

本发明所要解决的技术问题是:提供基于深度卷积神经网络的奶牛个体识别方法,是一种采用深度学习当中卷积神经网络提取特征,结合对奶牛纹理特征实现对奶牛个体有效识别的方法,克服了采用图像处理技术对奶牛图像进行处理的现有算法单一,没有充分利用奶牛本身所具有的条纹特点来与图像处理和模式识别技术进行很好的结合,导致奶牛识别准确率低的缺陷。

本发明解决该技术问题所采用的技术方案是:基于深度卷积神经网络的奶牛个体识别方法,是一种采用深度学习当中卷积神经网络提取特征,结合对奶牛纹理特征实现对奶牛个体有效识别的方法,步骤如下:

第一步,奶牛数据的采集:

使用摄像设备,分别采集20头行走奶牛的奶牛视频,作为实验数据,使用光流法或帧间差分法对输入的奶牛视频数据进行奶牛躯干图像提取,形成图像数据集,每一头奶牛都有自身的图像数据集,对得到的所有图像数据集进行随机分类,形成训练集和测试集,至此完成奶牛数据的采集;

第二步,对训练集和测试集的预处理:

通过caffe框架,使用事先已经写好的生成leveldb数据库的脚本文件,分别对上述第一步得到的训练集和测试集进行处理,生成对卷积神经网络进行训练所需的数据格式,再对已经处理好的训练集和测试集在做均值计算,形成训练集均值文件和测试集均值文件,至此完成对训练集和测试集的预处理;

第三步,设计卷积神经网络:

所设计的卷积神经网络由输入层、第一层~第七层和输出层构成,各层的结构如下:

输入层是数据的入口,在输入层需要选择每一次训练数据的大小,每一次训练数据的大小是根据GPU的计算能力以及显存的大小而设定,此外,还需要对leveldb数据库的路径和均值文件路径进行设置,设置规则根据生成文件的路径设计即可;

第一层包含一个真正的卷积层和一个采样层,该卷积层的卷积核设计为11×11,步长为默认值2,该卷积核的个数为96,扩充边缘默认为0,不扩充,即pad设为0,使用高斯算法进行权值初始化,每个神经元与输入特征图像指定一个11×11邻域进行卷积,特征图的计算公式如公式(1)和(2):

W1=(W0+2×pad-kenerl_size)/2+1 (1)

H1=(H0+2×pad-kenerl_size)/2+1 (2)

其中W0和H0为上一层输出特征图的大小,W1和H1为通过当前卷积层所求出的特征图的大小,pad为对边缘进行扩充的值,kenerl_size为卷积和大小,输入特征图的大小为W0×H0=256×256,输入的特征图在经过卷积核卷积后大小变为(256-11)/2+1=123,共包含96个不同的特征图,因此经过卷积后得到的特征图映射的大小为123×123×96,次抽样层是对由上一步卷积结果用3×3的邻域和跳跃间隔为2进行最大值进行下采样得到,计算公式如公式(1)和公式(2)所示,经过采样后特征图的大小变为61×61,由于次抽样不改变特征图的数目,即特征图映射的大小为61×61×96,该神经网络支持单通道和三通道输入,对于三通道图像,该卷积层的卷积核也是三通道,卷积核分别去卷积每一个通道,在进行卷积运算后,需要对特征图映射的局部区域进行归一化,达到“侧抑制”的效果,即对每一个输入值都除以J,如计算公式(3)所示:

其中α、β为默认值,α=0.0001、β=0.75,n为局部尺寸的大小,设置为5,xi为输入值,求和将在当前值处于中间位置的局部区域内进行,最后在经过Relu函数进行激活处理,如计算公式(4)所示:

其中x为输入数据;

第二层同样包含一个真正的卷积层和一个采样层,该层的卷积核大小为11,步长为默认值1,卷积核个数为128,扩充边缘默认为2,需要进行扩充,每个神经元与输入特征图像指定的一个11×11邻域进行卷积,由公式(1)和公式(2)计算可得特征图的大小为(61+2×2-11)/1+1=55,特征图映射的大小为55×55×128,次抽样层的卷积核大小为3,步长为2,是对由上一步卷积结果用3×3的邻域和跳跃间隔为2进行最大值进行下采样得到,计算公式如公式(1)和公式(2)所示,采样后的特征图的大小为(55-3)/2=27,由于次抽样不改变特征图的数目,通过采样后的特征图映射图的大小为27×27×128,在进行卷积运算后,需要对特征图映射的局部区域进行归一化,达到“侧抑制”的效果,即对每一个输入值都除以J,如计算公式(3)所示,最后再经过Relu函数的处理,如上述计算公式(4)所示;

第三层只包含一个真正的卷积层,这层没有进行采样操作,该层的卷积核大小也为11,步长为默认值1,卷积核个数为256;扩充边缘默认为2,需要进行扩充,每个神经元与输入特征图像指定的一个11×11邻域进行卷积,由公式(1)和公式(2)计算可得特征图的大小变为(27-11+2×2)/1+1=21,因此特征图映射的大小为21×21×256,即包含256个不同的特征图,该层没有对特征图进行采样,直接通过ReLu激活函数进行处理,如上述计算公式(4)所示;

第四层只包含一个真正的卷积层,这层没有进行采样操作,邻域进行卷积,该层的卷积核大小也为11,步长为默认值1,卷积核个数为256;扩充边缘默认为2,需要进行扩充,每个神经元与输入特征图像指定的一个11×11邻域进行卷积,特征图的大小为(21-11+4)/1+1=15,因此特征图映射的大小为15×15×256,即有256个不同的特征图,该层没有对特征图进行采样,直接通过ReLu激活函数上公式(4)进行处理,如上述计算公式(4)所示;

第五层包含一个真正的卷积层和一个采样层,邻域进行卷积,该层的卷积核大小为11,步长为默认值1,卷积核个数为256,扩充边缘默认为2,需要进行扩充,每个神经元与输入特征图像指定的一个11×11邻域进行卷积,由公式(1)和公式(2)计算出特征图的大小为(15-11+4)/2+1=9,特征图的大小为9×9,特征图映射的大小为9×9×256,包含256个不同的特征图,次抽样是对由上一步卷积结果用3×3的邻域和跳跃间隔为1进行最大值进行下采样得到,同样地由公式(1)和公式(2)计算得到特征图的大小为(9-3)/1+1=7,即特征图的大小为7×7,特征图映射的大小为7×7×256,次抽样不改变特征图的数目;

第六层是全连接层,该层设置了4096个神经元,神经元激活函数为ReLu激活函数,输入到第六层全连接层的特征图映射的大小为7×7×256,输出神经元个数为4096;

第七层是全连接层,神经元个数与第六层一样设定为4096个神经元,神经元激活函数为ReLu函数,该层的输入是第六层全连接层的输出,即输入神经元为4096个,输出神经元个数为4096;

输出层是数据的出口,输出层神经元的个数为待识别奶牛个体的头数,输出层神经元由径向基函数单元即RBF组成,RBF的输出yi的计算公式为(5):

公式为(5)中,yi为输出的类别,xj为输入数据,wij为上一层i节点与输出层j节点之间的权值,实验数据为20头奶牛,故j=1,2,…20;

第四步,训练卷积神经网络:

在上述第三步设计好的卷积神经网络结构中,用上述第二步生成的对卷积神经网络进行训练所需的数据格式,对卷积神经网络进行训练,训练改进后的卷积神经网络的学习参数,训练具体步骤如下:

(4.1)使用高斯分布初始化网络权值,偏置值设定为常量;

(4.2)从第一步的训练集中选择一个小的训练样本,输入到上述卷积神经网络中;

(4.3)训练集通过卷积神经网络进行前向传播,层层计算得到卷积神经网络的输出;

(4.4)计算卷积神经网络的实际输出与预测输出之间的误差值,当误差值小于一个预定设定的阈值或者迭代次数达到预定阈值,停止卷积神经网络训练,否则重新回到上述(4.2)步,继续进行卷积神经网络训练;

(4.5)按照极小化方式将误差进行反向传播,逐步更新卷积神经网络的权值;

(4.6)将训练好的权重参数矩阵和偏移量赋值给该卷积神经网络的各层,则具有特征提取和分类功能;

由此完成训练卷积神经网络,利用上述卷积神经网络中的卷积层和次抽样层提取奶牛的纹理特征;

第五步,生成识别模型:

依据上述第四步提取到的奶牛的纹理特征,使用softmax作为识别分类器,用多分类公式(6),生成识别模型,

其中属于不同奶牛个体的概率,j为奶牛的个体,i为第i张测试图片,K为实验数据奶牛的头数,W=[W1,W2,W3,…,Wk]为输出层神经元的权值,a=[a1,a2,a3…a20]为分类器的参数,exp为指数e,x(i)输入数据。

第六步,利用识别模型识别奶牛个体:

利用上述第五步生成好的识别模型,使用测试集进行测试,以识别每一头奶牛的个体,测试步骤如下:

(6.1)对卷积神经网络进行权值初始化即训练;

(6.2)在测试集中选择一个小测试样本,输入到卷积神经网络中;

(6.3)测试数据通过卷积神经网络进行前向传播,层层计算得到卷积神经网络的输出;

(6.4)把卷积神经网络的输出与(6.2)步中的测试样本的标签进行比较,判断输出是否正确,统计分类结果;

(6.5)重新回到上述(4.2)步,直到完成所有奶牛测试样本中个体的判断;

由此完成实现对奶牛个体的有效识别。

上述基于深度卷积神经网络的奶牛个体识别方法,其中,光流法、帧间差分法、caffe框架、leveldb数据库、GPU(图形处理器)、ReLu激活函数和softmax分类器是本技术领域公知的。

本发明的有益效果是:与现有技术相比,本发明具有如下突出的实质性特点:

(1)手写字符的识别是卷积神经网络(LeNet-5)的最早应用,该模型是Yann LeCun最早提出的,并应用到邮政编码识别中,这种经典卷积神经网络共有5层,这种网络的卷积核大小为5×5。本发明中,发明人在LeNet-5的基础上做出改进,针对奶牛躯干纹理的特征(黑白花纹)设计一个基于CNN(即卷积神经网络)的奶牛识别系统。该系统的核心部分就是卷积神经网络的构建,这是经过大量的实验而得以改进的一种卷积神经网络结构。

(2)本发明对现有的卷积神经网络的深度和卷积核大小等进行了修改,并结合图像网络(ImageNet-k)架构的思想,最终确定该卷积神经网络共有7层﹙不包括输入层和输出层﹚,卷积核大小为11×11,全连接层神经元个数为4000左右,输出层神经元的个数为待识别奶牛个体的个数。

与现有技术相比,本发明具有以下显著的进步:

(1)本发明是一种采用深度学习当中卷积神经网络提取特征,结合对奶牛纹理特征实现对奶牛个体有效识别的方法,这种卷积神经网络能准确的提取到奶牛的纹理信息,真实的反应奶牛个体的独特信息,克服了采用图像处理技术对奶牛图像进行处理的现有技术的算法比较单一,没有充分利用奶牛本身所具有的条纹特点来与当前比较流行的图像处理和模式识别技术进行很好的结合,导致奶牛识别的准确率低的缺陷。

(2)本发明方法在输入图像的不同条件下识别率准确较高,对奶牛识别问题鲁棒性好,学习能力较强,具有相当的可行性和实用价值。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明方法的流程示意图。

图2是以一头奶牛为例的特征提取过程图:

图2a是训练集中选取的一张奶牛躯干图像的示例图。

图2b是卷积神经网络层层计算处理之后输出的数据特征图经可视化后的示例图。

图2c是经过卷积神经网络的卷积层之后输出的特征图映射可视化后的示例图。

图2d是与图2c对应的卷积神经网络的卷积层的卷积核的权值的可视化图。

具体实施方式

图1所示实施例表明,本发明方法的流程是:奶牛数据的采集→对训练集和测试集的预处理→设计卷积神经网络→训练卷积神经网络→生成识别模型→利用识别模型识别奶牛个体。

图2a显示从训练集中选取的一张奶牛躯干图像,作为原始图片。

图2b所示实施例表明,在通过对实验奶牛数据的采集,对实验奶牛数据的预处理,生成卷积神经网络进行训练所需的数据格式,对设计好的卷积神经网络结构用实验数据大量的训练后,提取奶牛的纹理特征,生成识别模型,将图2a原始图片输入识别模型,经过卷积神经网络层层计算处理之后,得到卷积神经网络的输出的数据特征图,图2b为该数据特征图经过可视化后的示例图。

图2c所示实施例显示,通过仔细观察图2c发现相邻奶牛的轮廓图像的观察角度很相近,相距较远的奶牛的轮廓图像的观察角度相差稍微大,说明卷积神经网络的卷积核的数量越多,代表的是从更多不同的角度去看物体,因此提取到奶牛的特征信息也会更多,对分类结果更有利,为此,卷积神经网络的卷积核的数量应该尽可能多。但是,对于特定的数据集,卷积神经网络的卷积核的数目存在一个上限值。卷积神经网络的卷积核的数量超过了上限值,就会变得冗余,即存在不同的卷积神经网络的卷积核提取到同一角度的图像特征信息,卷积神经网络的卷积核的数量越多,需要学习的网络参数越多,对深度网络的训练速度是一个极大的挑战。因此,在经过大量试验后,本发明设计的卷积神经网络结构的模型满足奶牛个体识别的要求。由图2c的可视化特征图映射可知大部分图像都可以清晰认出是奶牛的轮廓。

图2d显示了与图2c对应的卷积神经网络的卷积层的卷积核的权值的可视化图。由于不能将高维的卷积神经网络所对应的卷积神经网络的卷积层的卷积核的权值可视化,因此需要转化为低维的卷积神经网络的卷积层的卷积核的权值再可视化出来,如图2d所示。图2d表明,卷积神经网络的卷积层不但具有提取输入数据特征的能力,还具有一定的增强特征信息及过滤噪声的能力。通过可视化分析可知增加卷积神经网络的卷积层有助于提高特征信息的质量。

实施例1

第一步,奶牛数据的采集:

使用摄像设备,分别采集来自河北省定州易县小型奶牛场在无雾无霾的7:00-18:00时段的20头行走奶牛的奶牛视频,奶牛个体全部出现在视野左侧时开始采集,持续采集到奶牛行走至视野右侧边缘作为一个视频段,并剔除包含奶牛停顿和异常行为的视频,每头奶牛8段视频,每段视频约14s,帧率为60fps,以此作为实验数据,使用光流法对输入的奶牛视频数据进行奶牛躯干图像提取,形成图像数据集,每一头奶牛都有自身的图像数据集,对得到的所有图像数据集进行随机分类,形成训练集和测试集,至此完成奶牛数据的采集;

第二步,对训练集和测试集的预处理:

通过caffe框架,使用事先已经写好的生成leveldb数据库的脚本文件,分别对上述第一步得到的训练集和测试集进行处理,生成对卷积神经网络进行训练所需的数据格式,再对已经处理好的训练集和测试集在做均值计算,形成训练集均值文件和测试集均值文件,至此完成对训练集和测试集的预处理;

第三步,设计卷积神经网络:

所设计的卷积神经网络由输入层、第一层~第七层和输出层构成,各层的结构如下:

输入层是数据的入口,在输入层需要选择每一次训练数据的大小,每一次训练数据的大小是根据GPU的计算能力以及显存的大小而设定,此外,还需要对leveldb数据库的路径和均值文件路径进行设置,设置规则根据生成文件的路径设计即可;

第一层包含一个真正的卷积层和一个采样层,该卷积层的卷积核设计为11×11,步长为默认值2,该卷积核的个数为96,扩充边缘默认为0,不扩充,即pad设为0,使用高斯算法进行权值初始化,每个神经元与输入特征图像指定一个11×11邻域进行卷积,特征图的计算公式如公式(1)和(2):

W1=(W0+2×pad-kenerl_size)/2+1 (1)

H1=(H0+2×pad-kenerl_size)/2+1 (2)

其中W0和H0为上一层输出特征图的大小,W1和H1为通过当前卷积层所求出的特征图的大小,pad为对边缘进行扩充的值,kenerl_size为卷积和大小,输入特征图的大小为W0×H0=256×256,输入的特征图在经过卷积核卷积后大小变为(256-11)/2+1=123,共包含96个不同的特征图,因此经过卷积后得到的特征图映射的大小为123×123×96,次抽样层是对由上一步卷积结果用3×3的邻域和跳跃间隔为2进行最大值进行下采样得到,计算公式如公式(1)和公式(2)所示,经过采样后特征图的大小变为61×61,由于次抽样不改变特征图的数目,即特征图映射的大小为61×61×96,该神经网络支持单通道和三通道输入,对于三通道图像,该卷积层的卷积核也是三通道,卷积核分别去卷积每一个通道,在进行卷积运算后,需要对特征图映射的局部区域进行归一化,达到“侧抑制”的效果,即对每一个输入值都除以J,如计算公式(3)所示:

其中α、β为默认值,α=0.0001、β=0.75,n为局部尺寸的大小,设置为5,xi为输入值,求和将在当前值处于中间位置的局部区域内进行,最后在经过Relu函数进行激活处理,如计算公式(4)所示:

其中x为输入数据;

第二层同样包含一个真正的卷积层和一个采样层,该层的卷积核大小为11,步长为默认值1,卷积核个数为128,扩充边缘默认为2,需要进行扩充,每个神经元与输入特征图像指定的一个11×11邻域进行卷积,由公式(1)和公式(2)计算可得特征图的大小为(61+2×2-11)/1+1=55,特征图映射的大小为55×55×128,次抽样层的卷积核大小为3,步长为2,是对由上一步卷积结果用3×3的邻域和跳跃间隔为2进行最大值进行下采样得到,计算公式如公式(1)和公式(2)所示,采样后的特征图的大小为(55-3)/2=27,由于次抽样不改变特征图的数目,通过采样后的特征图映射图的大小为27×27×128,在进行卷积运算后,需要对特征图映射的局部区域进行归一化,达到“侧抑制”的效果,即对每一个输入值都除以J,如计算公式(3)所示,最后再经过Relu函数的处理,如上述计算公式(4)所示;

第三层只包含一个真正的卷积层,这层没有进行采样操作,该层的卷积核大小也为11,步长为默认值1,卷积核个数为256;扩充边缘默认为2,需要进行扩充,每个神经元与输入特征图像指定的一个11×11邻域进行卷积,由公式(1)和公式(2)计算可得特征图的大小变为(27-11+2×2)/1+1=21,因此特征图映射的大小为21×21×256,即包含256个不同的特征图,该层没有对特征图进行采样,直接通过ReLu激活函数进行处理,如上述计算公式(4)所示;

第四层只包含一个真正的卷积层,这层没有进行采样操作,邻域进行卷积,该层的卷积核大小也为11,步长为默认值1,卷积核个数为256;扩充边缘默认为2,需要进行扩充,每个神经元与输入特征图像指定的一个11×11邻域进行卷积,特征图的大小为(21-11+4)/1+1=15,因此特征图映射的大小为15×15×256,即有256个不同的特征图,该层没有对特征图进行采样,直接通过ReLu激活函数上公式(4)进行处理,如上述计算公式(4)所示;

第五层包含一个真正的卷积层和一个采样层,邻域进行卷积,该层的卷积核大小为11,步长为默认值1,卷积核个数为256,扩充边缘默认为2,需要进行扩充,每个神经元与输入特征图像指定的一个11×11邻域进行卷积,由公式(1)和公式(2)计算出特征图的大小为(15-11+4)/2+1=9,特征图的大小为9×9,特征图映射的大小为9×9×256,包含256个不同的特征图,次抽样是对由上一步卷积结果用3×3的邻域和跳跃间隔为1进行最大值进行下采样得到,同样地由公式(1)和公式(2)计算得到特征图的大小为(9-3)/1+1=7,即特征图的大小为7×7,特征图映射的大小为7×7×256,次抽样不改变特征图的数目;

第六层是全连接层,该层设置了4096个神经元,神经元激活函数为ReLu激活函数,输入到第六层全连接层的特征图映射的大小为7×7×256,输出神经元个数为4096;

第七层是全连接层,神经元个数与第六层一样设定为4096个神经元,神经元激活函数为ReLu函数,该层的输入是第六层全连接层的输出,即输入神经元为4096个,输出神经元个数为4096;

输出层是数据的出口,输出层神经元的个数为待识别奶牛个体的头数,输出层神经元由径向基函数单元即RBF组成,RBF的输出yi的计算公式为(5):

公式为(5)中,yi为输出的类别,xj为输入数据,wij为上一层i节点与输出层j节点之间的权值,j=1,2,…20;

第四步,训练卷积神经网络:

在上述第三步设计好的卷积神经网络结构中,用上述第二步生成的对卷积神经网络进行训练所需的数据格式,对卷积神经网络进行训练,训练改进后的卷积神经网络的学习参数,训练具体步骤如下:

(4.1)使用高斯分布初始化网络权值,偏置值设定为常量;

(4.2)从第一步的训练集中选择一个小的训练样本,输入到上述卷积神经网络中;

(4.3)训练集通过卷积神经网络进行前向传播,层层计算得到卷积神经网络的输出;

(4.4)计算卷积神经网络的实际输出与预测输出之间的误差值,如果误差值小于一个预定设定的阈值或者迭代次数达到预定阈值,停止卷积神经网络训练,否则重新回到上述(4.2)步,继续进行卷积神经网络训练;

(4.5)按照极小化方式将误差进行反向传播,逐步更新卷积神经网络的权值;

(4.6)将训练好的权重参数矩阵和偏移量赋值给该卷积神经网络的各层,则具有特征提取和分类功能;

由此完成训练卷积神经网络,利用上述卷积神经网络中的卷积层和次抽样层提取奶牛的纹理特征;

第五步,生成识别模型:

依据上述第四步提取到的奶牛的纹理特征,使用softmax作为识别分类器,用多分类公式(6),生成识别模型,

其中属于不同奶牛个体的概率,j为奶牛的个体,i为第i张测试图片,K为实验数据奶牛的头数,W=[W1,W2,W3,…,Wk]为输出层神经元的权值,a=[a1,a2,a3…a20]为分类器的参数,exp为指数e,x(i)输入数据。

第六步,利用识别模型识别奶牛个体:

利用上述第五步生成好的识别模型,使用测试集进行测试,以识别每一头奶牛的个体,测试步骤如下:

(6.1)对卷积神经网络进行权值初始化即训练;

(6.2)在测试集中选择一个小测试样本,输入到卷积神经网络中;

(6.3)测试数据通过卷积神经网络进行前向传播,层层计算得到卷积神经网络的输出;

(6.4)把卷积神经网络的输出与(6.2)步中的测试样本的标签进行比较,判断输出是否正确,统计分类结果;

(6.5)重新回到上述(4.2)步,直到完成所有奶牛测试样本中个体的判断;

由此完成实现对奶牛个体的有效识别。

实施例2

除使用帧间差分法对输入的奶牛视频数据进行奶牛躯干图像提取之外,其他同实施例1。

实施例3

测试卷积神经网络的性能:

使用测试图片测试网络,采用计算公式(6)计算奶牛属于不同个体的概率,

其中,i为个体数序数,i=1,…,20,选择其中的最大值cm,则该奶牛属于第m头个体。

对第10头、第15头和第20头奶牛的数据集进行算法实验,实验结果如表1所示,

表1.两种算法的识别准确率(%)

表1的数据显示,本实施例分别对第10头、第15头和第20头奶牛数据集进行识别准确率的测试,本发明方法识别结果分别为94.3%、97.1%、95.6%,平均结果为95.7%,这些结果均高于SIFT算法,比SIFT算法平均识别率分别高约6.7%。实验结果表明:本发明提出的基于深度卷积神经网络的奶牛个体识别方法在输入图像的不同条件下识别率较高,对奶牛识别问题鲁棒性好,证明本发明方法的学习能力较强,具有很好的可行性和实用价值。

上述实施例中,所述SIFT算法、光流法、帧间差分法、caffe框架、leveldb数据库、GPU(图形处理器)、ReLu激活函数和softmax分类器是本技术领域公知的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1