基于区块链和深度神经网络的畜牧用水检测系统的制作方法

文档序号:21836754发布日期:2020-08-14 16:05阅读:176来源:国知局
基于区块链和深度神经网络的畜牧用水检测系统的制作方法

本发明涉及区块链、深度学习领域,特别是关于一种基于区块链和深度神经网络的畜牧用水检测系统。



背景技术:

从20世纪80年代后期至今,我国畜禽养殖业得到了迅速发展,畜禽养殖业的养殖规模、养殖方式和分布区域发生了巨大的变化。从当前畜牧业发展的现状看,牲畜饮用水直接关系到动物的生长、发育、繁殖,进而影响出栏率,因此,畜牧业离不开洁净、优质的水源供应。然而,实际养殖过程中,畜牧业往往将牧场建于河湖附近直接取用河湖水,或者直接钻井取用地下水。面对日益严重的地表水、地下水污染,畜牧用水检测已经迫在眉睫。畜牧用水检测可以保证畜牧业用水洁净,确保畜牧业安全高效的发展,使畜牧业的肉类产品、乳质产品、蛋类产品等质量达到国际平均水平。

原有的畜牧用水检测方式还停留在人工检测的传统方法上,这种方式不仅效率低下,而且检测的准确性较低,操作复杂。有些研究采用传感器测量的方式,来获取水源的酸碱度、硬度、浑浊度等指标。但针对浑浊度,目前大多使用光电传感器进行检测,得到的数据为读数值,信息量较少。并且由于受环境光照影响,其准确性并不高。另外,传感器感知的数据易受外界攻击和篡改,这些原因都导致现有的畜牧用水检测系统无法大规模应用。

本发明针对现有技术存在的问题提出改进方案,通过建立基于区块链技术的畜牧用水检测系统,对浑浊度检测模块进行改进,在提升检测效果的同时,利用区块链技术和加密机制对系统中数据的传递进行加、解密,实现对检测数据的保护,以此保证整个系统稳定、高效的运行,为畜牧用水的安全提供坚实保障。



技术实现要素:

为了解决现有检测技术存在的问题,本发明提出了一种基于区块链和深度神经网络的畜牧用水检测系统,在解决现有技术存在问题的同时提升系统的安全性能。

本发明的技术方案如下:

一种基于区块链和深度神经网络的畜牧用水检测系统包括:

酸碱度检测模块,用于检测畜牧用水的酸碱度;水硬度检测模块,用于检测畜牧用水的硬度;导电率检测模块,用于检测畜牧用水的导电率;浑浊度检测模块,基于深度神经网络检测畜牧用水的浑浊度;数据处理模块,用于接收各检测模块得到的检测指标以综合判断畜牧用水水质;震荡装置,用于让沉于水底的杂质漂浮于水中;

所述浑浊度检测模块包括图像获取和处理单元、密度检测单元、浑浊度分级单元;其中,密度检测单元、浑浊度分级单元基于深度神经网络实现,由任务块组成,任务块包括编码器、解码器或全连接层;

密度检测单元、浑浊度分级单元基于公有云进行计算,公有云中包括多个节点,组成密度检测单元、浑浊度分级单元的每个任务块分别对应一个区块,所述区块依据生成的随机数序列随机选择公有云中的节点进行运算;同时图像获取和处理单元、酸碱度检测模块、水硬度检测模块、导电率检测模块、数据处理模块分别作为区块链中的区块;按照深度神经网络以及该检测系统的推理顺序生成区块链私链。

系统使用加密算法对区块间传输的数据进行加密,加密后的数据在流入下一区块前,对其按照加密机制的逆方向进行解密,执行上述加密解密过程,直至完成检测。

所述图像获取和处理单元通过普通面阵相机完成图像的拍摄,并对采集到的图像数据进行归一化处理,输出为归一化的图像数据。

所述密度检测单元包括密度检测编码器和密度检测解码器,其输入为归一化的图像数据,输出为水中大型悬浮物密度图;其中,密度检测编码器的输入为归一化的图像数据,对图像特征进行提取,输出为特征图;密度检测解码器的输入为特征图,对特征图进行上采样与特征提取,最终输出为水中大型悬浮物密度图;使用归一化的图像数据与水中大型悬浮物的密度图训练该单元,选取l2损失函数进行训练。

所述浑浊度分级单元包括浑浊度分级编码器和全连接层,其输入为归一化的图像数据,输出为水的浑浊度等级;其中,浑浊度分级编码器对输入的归一化的图像数据进行特征提取,输出为特征图;密度检测编码器输出的特征图与浑浊度分级编码器输出的特征图联合以后得到的新的特征图经过整平操作得到的一维的特征向量是全连接层的输入,全连接层将特征映射到样本标记空间,输出为水的各个浑浊度等级的概率;后处理使用argmax算法得到具体的浑浊等级;使用归一化的图像数据与标注浑浊度等级的图像训练该单元,选取交叉熵函数作为损失函数进行训练。

生成所述随机数序列的随机数生成机制具体为:将图像获取和处理单元获取到的图像转化为灰度图,并利用双线性插值算法采样到固定的大小,经过整平操作得到一维序列数据,将序列里的所有值进行相加作为随机数的种子,利用随机数种子通过算法产生随机数序列。

本发明的有益效果在于:

1.浑浊度检测模块中深度神经网络采用的双路设计,可以缩短网络的训练时间,加速网络的收敛,可以同时得到畜牧用水的浑浊度等级和水中大型悬浮物的密度图,解决了使用光电传感器检测时信息量少这一问题;

2.浑浊度检测模块采用神经网络对采集到的图像进行分析运算,其结果客观准确,解决了现有技术使用光电传感器检测畜牧用水浑浊度时易被外界因素所影响这一问题,提高了检测结果的准确性;

3.该系统采用区块链技术和加密机制,保障了检测数据的安全,使数据不被外界攻击篡改,提升了整个系统的安全性能;

4.该检测系统解决了畜牧用水传统检测方法效率低下,准确度不高且操作复杂的问题,实现了畜牧用水浑浊度的在线检测,大大提升了检测速度,减少了人力的浪费,可以更好的被推广应用,保障畜牧用水的洁净,从而确保畜牧业安全高效的发展,使畜牧业的各种产品的质量达到更高的水平。

附图说明

图1为检测系统整体框架图。

图2为浑浊度检测模块中深度神经网络框架图。

具体实施方式

下面结合附图和优选实施例对本发明展开更进一步的描述,参见图1和图2。

本发明所述的基于区块链和深度神经网络的畜牧用水检测系统,其整体框架图如图1所示,包括:

酸碱度检测模块,用于检测畜牧用水的酸碱度;水硬度检测模块,用于检测畜牧用水的硬度;导电率检测模块,用于检测畜牧用水的导电率;浑浊度检测模块,基于深度神经网络检测畜牧用水的浑浊度;数据处理模块,用于接收各检测模块得到的检测指标以综合判断畜牧用水水质;震荡装置,用于让沉于水底的杂质漂浮于水中;

所述浑浊度检测模块包括图像获取和处理单元、密度检测单元、浑浊度分级单元;其深度神经网络架构图如图2所示;采用基于热力图密度估计的深度学习方法,通过对大量的数据样本进行拟合,来判断当前水的浑浊程度,并得到水中大型悬浮物的密度估计图。其中:

图像获取和处理单元,通过普通面阵相机完成图像的拍摄,并对采集到的图像数据进行归一化处理,输出为归一化的图像数据。

密度检测单元,包括密度检测编码器和密度检测解码器,其输入为归一化的图像数据,输出为水中大型悬浮物密度图;使用归一化的图像数据与水中大型悬浮物的密度图训练该单元,选取l2损失函数进行训练。

浑浊度分级单元,包括浑浊度分级编码器和全连接层,其输入为归一化的图像数据,输出为水的浑浊度等级;使用归一化的图像数据与标注浑浊度等级的图像训练该单元,选取交叉熵函数作为损失函数进行训练。

其中,密度检测单元、浑浊度分级单元基于公有云进行计算,公有云中包括多个节点,组成密度检测单元、浑浊度分级单元的每个任务块分别对应一个区块,所述区块依据生成的随机数序列随机选择公有云中的节点进行运算;同时图像获取和处理单元、酸碱度检测模块、水硬度检测模块、导电率检测模块、数据处理模块分别作为区块链中的区块;按照深度神经网络以及该检测系统的推理顺序生成区块链私链。

系统使用加密算法对区块间传输的数据进行加密,加密后的数据在流入下一区块前,对其按照加密机制的逆方向进行解密,执行上述加密解密过程,直至完成检测。

生成所述随机数序列的随机数生成机制具体为:将图像获取和处理单元获取到的图像转化为灰度图,并利用双线性插值算法采样到固定的大小,经过整平操作得到一维序列数据,将序列里的所有值进行相加作为随机数的种子,利用随机数种子通过算法产生随机数序列。

下面结合实施例对该检测系统进行更详细的说明:

基于深度神经网络的浑浊度检测模块的推理顺序如下:

图像获取和处理单元通过普通面阵相机获取样本图像,并对获取的图像进行归一化处理,即将图片矩阵变为[0,1]之间的浮点数,得到归一化的图像数据;由于水中密度高的杂质会沉于水底,因此在拍摄图像时需要采用震荡装置,让沉于水底的杂质漂浮于水中;该杂质主要指悬浮物即悬浮在水中的固体物质,可用滤纸分离,包括不溶于水中的无机物、有机物及泥砂、黏土等。具体震荡装置和相机,实施者可根据具体场景自行选择。

神经网络采用双路设计,存在并行部分:密度检测单元和浑浊度分级单元。

密度检测单元,包括密度检测编码器和密度检测解码器,其输入为归一化的图像数据,输出为水中大型悬浮物密度图;密度检测编码器用于对归一化的图像数据进行特征提取得到特征图;密度检测解码器用于对密度检测编码器输出的特征图进行上采样与特征提取,由于图像在运算过程中进行了归一化处理,所以需要对图像数据进行可视化操作,将图像数据乘255得到水中大型悬浮物密度图。使用归一化的图像数据与标签数据,即水中大型悬浮物的密度图训练该单元,选取l2损失函数进行训练。

可视化是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术;可以把数据以更加直观的方式展现出来。

标签数据的标注分为两步,第一步,标记悬浮物的位置,即x,y的坐标;第二步,将标注的悬浮物散点图与高斯核卷积得到密度图。

l2损失函数,又叫“权值衰减函数”,其作用是改善过拟合;过拟合是指模型训练时的误差很小,但是测试误差很大,也就是说模型复杂到可以拟合所有训练数据,但在预测新的数据的时候,结果很差。l2损失函数数学公式如下:

其中,yi为目标值,f(xi)为模型输出估计值。

浑浊度分级单元,包括浑浊度分级编码器和全连接层,其输入为归一化的图像数据,输出为水的浑浊度等级;其中,浑浊度分级编码器用于对图像获取和处理单元输出的归一化的图像进行特征提取得到特征图;全连接层用于将特征映射到样本标记空间,其输入为密度检测编码器与浑浊度分级编码器分别产生的特征图联合后得到的新特征图再经过整平操作的结果,即一维的特征向量,输出为水的各个浑浊度等级的概率;后处理运用argmax算法得到具体的浑浊等级;使用归一化的图像数据与标签数据,即标注浑浊度等级的图像训练该单元,选取交叉熵函数作为损失函数进行训练。

标注浑浊度等级的图像,即标签数据的标注:依据采集图像中水的浑浊程度,基于独热编码分为多个等级,并分别用顺序的阿拉伯数字代替,越高等级代表水越浑浊。

独热编码,主要是采用n位状态寄存器来对n个状态进行编码,每个状态都有其独立的寄存器位,并且在任意时候只有一位有效。

交叉熵损失函数,是目前卷积神经网络中最常用的分类目标函数。交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。

交叉熵函数公式为:

其中m为类别的数量;yic为指示变量,如果该类别和样本i的类别相同就是1,否则是0;pic是对于样本i属于类别c的预测概率。

实施者也可根据实际情况选取focalloss等损失函数。

考虑到水的特点,网络的训练建议采用数据增广方式以提高网络的泛化能力,数据增广的方式包括但不限于翻转,随机旋转等方法,每个样例图像通过数据增广来生成更多的图像数据与标签数据。

至此,即可得到水中大型悬浮物密度图和水的浑浊度等级。

编码器、解码器的特点在于编码器对特征图的通道扩增,而图像大小减少,即降低了空域的精度而提升了特征强度的类型数,反之,解码器降低通道数并提高特征图的空域精度。实现方式有多种,包括cnnblock、resblock等。为了兼顾网络的速度与精度,优选地,密度检测编码器可以采用shufflenet、mobilenet等轻量级网络的模块设计;浑浊度分级编码器可以套用efficientnet图像分类网络来提取特征;解码器可以采用cnn模块;实施者也可根据实际情况选用合适的编码器、解码器。

本发明考虑到牧场所处的位置与其周边环境,不适合对得出的浑浊度的检测数据进行计算,所以采用公有云进行计算。而考虑到公有云的隐私保护问题,系统使用区块链私链的形式:密度检测单元、浑浊度分级单元基于公有云进行计算,公有云中包括多个节点,组成密度检测单元、浑浊度分级单元的每个任务块分别对应一个区块,所述区块依据生成的随机数序列随机选择公有云中的节点进行运算;同时图像获取和处理单元、酸碱度检测模块、水硬度检测模块、导电率检测模块、数据处理模块分别作为区块链中的区块;按照深度神经网络以及该检测系统的推理顺序生成区块链私链。

按照上述说明将本发明浑浊度检测模块中的网络拆分为区块,在此实施例中按照该系统的推理顺序为区块标记不同的编号[1-5],其中,区块[1]为图像获取和处理单元,区块[2]为浑浊度分级编码器,区块[3]为全连接层,区块[4]为密度检测编码器,区块[5]为密度检测解码器;其中[2-5]为计算区块。

首先要说明的是,按照前向传播的规则,描述先后顺序不代表计算顺序。

考虑到本系统只需要浑浊度检测模块中的浑浊度信息,所以区块[4-5]可以舍掉,即只使用图像获取和处理单元以及浑浊度分级单元,即[1-3]。实施者也可以根据需要运行区块[4-5]。

具体的推理流程可以按照链式逻辑进行,在此简称链式推理。

在链式推理[1-3]中,区块[1]在本地设备端完成,即采集图像,进行归一化处理并传递给后续区块进行计算;通过区块[2]对数据进行推理,得到特征图,将区块[2]得到的第一特征图与区块[4]得到的第二特征图进行联合得到的新的第三特征图进行整平操作,得到一维的特征向量并传送给区块[3];区块[3]将特征映射到样本标记空间,输出为水的各个浑浊度等级的概率,后处理使用argmax算法得到具体的浑浊等级。

至此,完成浑浊度检测模块的推理流程,得到畜牧用水的浑浊度等级。

将酸碱度检测模块、水硬度检测模块、导电率检测模块、数据处理模块分别作为区块链中的区块,神经网络与各个检测模块整体的区块划分如图1所示。在此按照该系统的推理顺序依次标记序号[6-9]。

区块[6-8]分别使用对应的仪器仪表得到相应的畜牧用水的检测数据,通过其显示的数值与设定的阈值进行逻辑判断,得出水质相应指标是否达标。上述仪表的数据采集和读取方式近似于公知,实施者可根据实际情况自行选择对应的传感器。

区块[3]与区块[6-8]用于在基于互联网的基础设施上存储,显示,传输畜牧用水的各项指标。将区块[3、6、7、8]得到的检测结果送至区块[9]数据处理模块,对水的各种检测数据进行综合判断,以此来鉴定畜牧用水的水质情况。

由此可知,检测系统的推理顺序为:按照浑浊度检测模块的推理顺序在区块[3]中得到水的浑浊度等级,将区块[3、6、7、8]中的各项检测指标送至区块[9]来综合判断畜牧用水的水质。

随机数序列生成机制具体为:首先对摄像头采集的图像转换为灰度图并进行采样,利用双线性插值算法采样到固定的大小,然后进行整平操作变成一维序列数据,并将里面的所有值以队列方式进行相加来作为随机数的种子,利用随机数种子通过算法产生随机数序列。

如采集到的rgb图像其长宽通道数为[512,512,3],先转换为灰度图,得到[512,512,1]的图像,再通过双线性插值算法下采样到[12,12,1]大小,进行整平操作后得到[144]大小的序列数据,即144个数,再将这144个数以队列方式相加,将其结果作为随机数的种子,利用随机数种子通过一定的计算方法产生随机数序列。

节点的随机选择:对生成的随机数序列中的每个数字按照大小进行顺序,将序列中每个数字对应的大小顺序作为区块的序号,并预先设置好节点索引,每个区块选择与该区块序号相同的节点,之后按照系统推理顺序来排序节点的索引,进一步增加被解密的难度,更好的保障检测数据的安全。在此举例说明:

如生成的随机序列为(6,3,5,2,9),对该随机序列按照数字大小进行排序,每个数字对应的大小顺序为(4,2,3,1,5),则将区块链中的区块的序号依次标记为(4,2,3,1,5),提前为节点设置索引①②③④⑤,序号与索引相同的区块与节点一一对应,比如序号为(4)的区块选择索引为④的节点进行计算。

区块到区块之间的数据传输是需要使用加密手段的,在此使用aes128加解密算法,aes算法实现模式有多种,实施者可自行选取。

由于接收畜牧用水各项指标数据的数据处理模块是可信的,因此以数据处理模块这一区块定期广播的128位字节作为数据传输的密钥,在此举例说明:

即假设中间数据的一个字节为0b11001100,将其与128位字节密钥输入到aes加密函数中,得到密文,当下一区块接收时,对其解密,即将密文与128位字节密钥输入到aes解密函数中,就得到了0b11001100,即复原了原来的数据。

在此继续说明,所有区块之间的数据都基于此加解密算法进行传输。且实施者应当知道,具体何时更新密钥,即128位字节密钥的值为何值。

至此,完成整个检测系统的推理。

以上所述旨在让相关技术领域人员更好的理解本发明,并不用于限制本发明。

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