一种基于神经网络的防疫耳标识别方法与流程

文档序号:29440054发布日期:2022-03-30 09:59阅读:229来源:国知局
一种基于神经网络的防疫耳标识别方法与流程

1.本发明涉及耳标识别技术领域,尤其涉及一种基于神经网络的防疫耳标识别方法。


背景技术:

2.目前我国农业农村部《动物免疫标识管理办法》中规定的生猪免疫耳标广泛使用在生猪的饲养、调运、屠宰过程中的是一种塑料材质的耳标,该耳标具有成本低、创伤小、坚固耐用、无毒无害的诸多优点,但该耳标中的矩阵码不是标准的qr二维码,需要专用的设备才能进行读取,在日常的生产管理和政府监管工作中较为不利,增加了数据采集和管理的难度。随着数字化和信息化建设逐步推进,可自动且低成本地识别该耳标上的号码需求越来越强烈。


技术实现要素:

3.针对上述现有技术中的问题,本发明的目的在于提供一种基于神经网络的防疫耳标识别方法,通过基于卷积神经网络的算法实现对防疫耳标的识别算法,进而实现通过移动端如手机、平板等带摄像头的设备进行耳标号码的快速识别,降低耳标信息采集的难度。
4.本发明是通过如下技术方案实现的:一种基于神经网络的防疫耳标识别方法,包括如下步骤;
5.s1、获取基础数据集:获取a张耳标样本图片作为基础数据集;
6.s2、生成增量数据集:基于基础数据集,扩展生成增量数据集;
7.s3、生成训练数据集:对所述增量数据集进行增强处理,生成训练数据集;
8.s4、cnn网络设计:构建cnn卷积神经网络,对所述训练数据集进行模型训练;
9.s5、cnn网络调参:以设定的识别准确率为导向,在模型训练过程中进行网络调参,并不断优化超参数;其中超参数(卷积核数量、网络层数等)是不能通过训练过程获得的,必须人工来设定,经过参数调整后,本模型结构在样本集可达到准确率为93.4%。软件环境tensorflow作为模型训练工具,硬件环境使用配置2张8g显存的gpu卡的工作站,经过多轮迭代的方式,不断进行超参数优化,最终获取到本方法中描述的超参数。
10.s6,结果验证:训练完成后,对形成的模型进行保存,利用保存的模型对对所述基础数据集进行准确性验证;
11.s7、输出模型:当准确率达到要求后,将保存的模型打包成持久化的模型文件;
12.s8、模型移植:使用tensorflow提供的工具将模型文件编译为可在移动设备上使用的二进制文件(.so)。
13.考虑到所述基础数据集通常采用人工整理,在数量较小的情况下,为了提高样本的泛化效果,进一步,所述s2具体为:基于所述基础数据集,使用python的cv2库相关函数,使用不同的字体,不同的字间距和角度,最终获取增量数据集,其中增量数据集中的图片数量为基础数据集的b倍,且所述增量数据集中的图片均去除多余元素仅保留耳标号码,取a
=100,b=200,则增强数据量中的图片数量为20000张。
14.为了进一步增加样本的泛化能力,所述s3具体为:对所述增量数据集中的每个数据均进行如下增强操作:随机亮度(m张)、随机切边(n张)、随机旋转(i张)、随机增加噪点(j张)操作;每张图片经过增强后,形成k张图片,其中k=m+n+i+j,则训练数据集包括的图片数量为所述增量数据集的k倍;取m=5,n=4,i=5,j=5,则k=19,如此训练数据集中将包括380000张图片。
15.进一步,所述训练数据集中的图片均设置为256*256像素。
16.进一步,所述cnn卷积神经网络包括输入层、cov1层、maxpool1层、cov2层、maxpool2层、cov3层、cov4层、maxpool3层、fc全连接层、softmax层。卷积核类似神经元的感受野,过小无法提取有效的局部特征,过大提取的特征过于复杂度。设置合适大小的卷积核,对于cnn网络的的性能非常重要,所以调参过程中对于卷积核大小的调整也是关键的步骤。
17.进一步,所述cnn卷积神经网络的流程如下:
18.所述输入层:将所述训练数据集图片进行灰度化,且所述输入层图像大小设置为221*221像素;调整为灰度图后,图片的通道为1,降低网络的训练参数,所述输入层是将图片数据集输入到卷积神经网络,供后续层作特征提取;
19.所述cov1层:设置96个5*5大小的卷积核进行特征提取,产生96*55*55的张量;卷积运算的目的是提取输入的不同特征,第一层卷积层只能提取一些低级的特征如边缘、线条等;
20.所述maxpool1层:采用3*3大小的卷积核进行池化操作,产生96*27*27的张量;池化层不提取特征而用于减小数据的空间大小,从而参数的数量和计算量也会下降;
21.所述cov2层:设置256个3*3大小的卷积核进行特征提取,产生256*25*25的张量;从上层卷积层中抽取更复杂的特征;
22.所述maxpool2层:采用3*3大小的卷积核进行池化操作,产生256*12*12的张量;maxpool2相当于对特征进行了压缩,防止过拟合;
23.所述cov3层:设置256个2*2大小的卷积核进行特征提取,产生256*7*7的张量;从上层卷积层中抽取更复杂的特征;
24.所述cov4层:设置256个2*2大小的卷积核进行特征提取,产生256*10*10的张量;从上层卷积层中抽取更复杂的特征;
25.所述maxpool3层:采用3*3大小的卷积核进行池化操作,产生256*8*8的张量;
26.所述fc全连接层:对256*8*8特征图进行连接,即使用4096个256*8*8的卷积核,对256*8*8的张量,得到一个值,即为一个特征点,然后对应于4096个神经元中的一个点;该层中的每个神经元与其前一层的所有神经元进行连接。整合卷积层或者池化层中具有类别区分性的局部信息;
27.所述softmax层:采用softmax进行分类,从而将特征映射到对应的分类空间中。
28.进一步,在利用保存的模型对所述基础数据集进行准确性验证之前,先对所述增量数据集中按一定比例选取数据进行准确性验证。
29.本发明的有益效果为:本发明通过数据增强和自动生成技术,使用较少的耳标样本图片数据即可大量生成训练数据集,降低训练数据集构建的难度;基于卷积神经网络进
行模型训练,泛化能力强;实现通过移动终端(手机、平板电脑等设备)摄像头直接识别防疫耳标的功能,降低识别成本。
附图说明
30.图1为本发明整体流程示意图。
31.图2为耳标样本图片示意图。
32.图3为增量数据集中的图片效果图。
33.图4为训练数据集中的图片效果图。
34.图5为cnn卷积神经网络结构图。
具体实施方式
35.为能清楚说明本方案的技术特点,下面通过具体实施方式,对本方案进行阐述。
36.实施例一,参见图1-图5,本发明是通过如下技术方案实现的:一种基于神经网络的防疫耳标识别方法,包括如下步骤;
37.s1、获取基础数据集:获取100张耳标样本图片作为基础数据集,如图2所示,
38.s2、生成增量数据集:基于所述基础数据集,使用python的cv2库相关函数,,使用不同的字体,不同的字间距和角度,最终生成增量数据集,所述增量数据集中包括20000张图片且所述增量数据集中的图片均去除多余元素仅保留耳标号码;所述增量数据集中的图片的基本效果如图3所示;
39.s3、生成训练数据集:对所述增量数据集中的每个图片均进行如下增强操作:随机亮度(m张)、随机切边(n张)、随机旋转(i张)、随机增加噪点(j张)操作;每张图片经过增强后,形成k张图片,其中k=m+n+i+j,则训练数据集包括的图片数量为所述增量数据集的k倍;取m=5,n=4,i=5,j=5,则k=19,如此训练数据集中将包括380000张图片。所有的样本图片的大小均为256*256像素,所述训练数据集中的图片效果如图4所示;
40.s4、cnn网络设计:如图5所示,构建cnn卷积神经网络,对所述训练数据集进行模型训练;所述cnn卷积神经网络包括输入层、cov1层、maxpool1层、cov2层、maxpool2层、cov3层、cov4层、maxpool3层、fc全连接层、softmax层;卷积核类似神经元的感受野,过小无法提取有效的局部特征,过大提取的特征过于复杂度。设置合适大小的卷积核,对于cnn网络的的性能非常重要,所以调参过程中对于卷积核大小的调整也是关键的步骤;卷积层中神经元的感受野尺f,步长s,卷积核数量k和零填充的数量p计算输出出来,w为输出的张量宽度,h为张量高度,d为张量深度。公式如下:
41.w2=(w
1-f+2p)/s+1
42.h2=(h
1-f+2p)/s+1
43.d2=k
44.所述输入层:对训练数据集的图片不是灰度图像进行灰度化,调整为灰度图后,图片的通道为1,降低网络的训练参数,由于所有图片在数据集生成的时候大小已经设置为256*256像素,在输入层需要按照网络的参数进行输入图像的大小的调整,将所述输入层图像大小设置为221*221像素;所述输入层是将图片数据集输入到卷积神经网络,供后续层作特征提取;
45.所述cov1层:设置5*5大小的卷积核进行特征提取,对221*221的图像进行卷积操作,按照公式,最终获得[(221-5+2*0)/4+1]*[(221-5+2*0)/4+1]=55*55大小特征矩阵,共设置96个卷积核,最终将产生96*55*55的张量;卷积得到的55*55矩阵需要通过激活函数进行计算,将结果转换为非线性,增强网络泛化能力。该层采用激活函数为relu。同时还要加上一个偏置项y=relu(wx+b);卷积运算的目的是提取输入的不同特征,第一层卷积层只能提取一些低级的特征如边缘、线条等;
[0046]
所述maxpool1层:采用3*3大小的卷积核进行池化操作,最终获得[(55-3+2*0)/2+1]*[(55-3+2*0)/2+1]=27*27大小的特征矩阵,由于不在深度上操作,故最终产生96*27*27的张量;池化层不提取特征而用于减小数据的空间大小,从而参数的数量和计算量也会下降;
[0047]
所述cov2层:设置3*3大小的卷积核进行特征提取,相比5*5的卷积核,相当于感受野更小,更能观察到细节。对96*27*27的图像进行卷积操作,按照公式,最终获得[(27-3+2*0)/1+1]*[(27-3+2*0)/1+1]=25*25特征矩阵;该层设置256个卷积核,最终将产生256*25*25的张量;从上层卷积层中抽取更复杂的特征;
[0048]
所述maxpool2层:采用3*3大小的卷积核进行池化操作,最终获得[(25-3+2*0)/2+1]*[(25-3+2*0)/2+1]=12*12大小的特征矩阵。由于不在深度上操作,故最终产生256*12*12的张量;maxpool2相当于对特征进行了压缩,防止过拟合;
[0049]
所述cov3层:设置2*2大小的卷积核进行特征提取,对256*12*12的图像进行卷积操,最终获得[(12-2+2*0)/1+1]*[(12-2+2*0)/1+1]=7*7特征矩阵。该层设置256个卷积核,最终将产生256*7*7的张量;从上层卷积层中抽取更复杂的特征;
[0050]
所述cov4层:设置2*2大小的卷积核进行特征提取,对256*7*7的图像进行卷积操作,按照公式,最终获得[(11-2+2*0)/1+1]*[(11-2+2*0)/1+1]=10*10特征矩阵。该层设置256个卷积核,最终将产生256*10*10的张量;从上层卷积层中抽取更复杂的特征;
[0051]
所述maxpool3层:采用3*3大小的卷积核进行池化操作,最终获得[(10-3+2*0)/1+1]*[(10-3+2*0)/1+1]=8*8大小的特征矩阵。由于不在深度上操作,故最终产生256*8*8的张量;
[0052]
所述fc全连接层:对256*8*8特征图进行连接,即使用4096个256*8*8的卷积核,对256*8*8的张量,得到一个值,即为一个特征点,然后对应于4096个神经元中的一个点;该层中的每个神经元与其前一层的所有神经元进行连接。整合卷积层或者池化层中具有类别区分性的局部信息;
[0053]
所述softmax层:采用softmax进行分类,从而将特征映射到对应的分类空间中;
[0054]
s5、cnn网络调参:以设定的准确率为导向,在模型训练过程中进行网络调参,并不断优化超参数;其中超参数(卷积核数量、网络层数等)是不能通过训练过程获得的,必须人工来设定,经过参数调整后,本模型结构在样本集可达到准确率为93.4%;软件环境tensorflow作为模型训练工具,硬件环境使用配置2张8g显存的gpu卡的工作站,经过多轮迭代的方式,不断进行超参数优化,最终获取到本方法中描述的超参数;最终卷积神经网络结构参数如下表所示:
[0055][0056][0057]
s6,结果验证:训练完成后,对形成的模型进行保存,利用保存的模型对对所述基础数据集进行准确性验证;
[0058]
s7、输出模型:当准确率达到要求后,将保存的模型打包成持久化的模型文件;
[0059]
s8、模型移植:使用tensorflow提供的工具将模型文件编译为可在移动设备上使用的二进制文件(.so)。
[0060]
实施例二,实施例一的基础上,考虑到基础数据集的数据量较小,与增量数据集之间有数级差别,在利用保存的模型对所述基础数据集进行准确性验证之前,先对所述增量数据集中按一定比例选取数据进行准确性验证。
[0061]
首先针对增量数据集的准确性验证通过,若不通过则需要重新训练;通过后再针对基础数据集进行准确性验证,由于基础数据集是未经泛化和扩展的数据,能够防止过拟合;将会出现如下三种情况:1、两次验证准确率都很低,应重审查训练数据集中的数据,然后重新训练;2、第一次准确性验证准确率达到要求,而第二次较低,则说明出现过拟合现象,应根据情况调整训练数据集的数据量;3、两次准确性验证的准确率均达到要求,则当前保存的模型能够满足需求,可以继续进行后续操作。
[0062]
本方法使用python自动生成数据集的方式,为神经网络提供训练用数据集,不需要人工收集大量的数据集。最终的模型的准确率达到93.4%,达到实地使用要求,通过与移动设备集成,可以大大降低在畜牧养殖生产环节中对防疫耳标识别的成本,推动我国畜牧养殖信息化建设。
[0063]
本发明创造的描述中,前面的详细描述已经通过使用框图、流程图和/或示例阐述
了装置和/或过程的各种实施例。在这样的框图、流程图和/或示例包含一个或多个功能和/或操作的程度上,本领域技术人员将理解的是,这样的框图、流程图或示例内的每个功能和/或操作可通过许多各种不同的硬件、软件、固件或实际上它们的任何组合被单独地和/或集体地实现。
[0064]
在系统的各方面的硬件和软件实施方式之间几乎没有差别;硬件或软件的使用通常是(但并不总是,因为在某些情景中在硬件和软件之间的选择可能变得重要)代表成本与效率折衷的设计选择。存在本文中所述的过程和/或系统和/或其它技术可借以被实现的各种手段(例如,硬件、软件和/或固件),并且优选的手段将随着其中过程和/或系统和/或其它技术被部署的情景的不同而改变。例如,如果实施者确定速度和准确性是极为重要的,那么实施者可选择主要为硬件和/或固件的手段;如果灵活性是极为重要的,那么实施者可选择主要为软件的实施方式;或者,但同样可替换地,实施者可选择硬件、软件和/或固件的某组合。
[0065]
本发明未经描述的技术特征可以通过或采用现有技术实现,在此不再赘述,当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1