基于物联网的观赏鱼智能喂养系统设计与实现

2022-03-18 05:01梁景普傅卓军
计算机应用与软件 2022年3期
关键词:观赏鱼鱼缸水体

梁景普 傅卓军

(湖南农业大学信息与智能科学技术学院 湖南 长沙 410128)

0 引 言

近年来,全球各地的观赏鱼市场快速发展,逐步建立了一个又一个完善的观赏鱼市场[1]。而当前家中饲养观赏鱼所使用的传统鱼缸需要人为地进行换水以及调节水温等,饲主可能会由于缺乏经验、没有时间等原因无法及时照顾鱼儿,使鱼儿生活环境无法满足自身需求,导致鱼死草枯[2]。目前随着生活数字化建设的快速发展,智能物联已经逐步走进了人们的生活。实时检测鱼缸的相关数据并自动进行决策的观赏鱼智能喂养系统悄然诞生。该系统的应时而生,不仅解决了鱼儿饲养照料困难等问题,而且还增加了观赏鱼喂养的趣味性。

1 鱼缸环境数据与特点

观赏鱼喂养环境因子主要包括鱼缸水温、水体浊度、溶氧量、TDS值、pH值、NH3浓度等[3]。传统观赏鱼喂养无法实时监测鱼缸环境数据,只能通过饲主经验来维持鱼缸中水体参数的稳定。而针对不同的种类的观赏鱼,随着季节的不同、生长期的不同,对水体环境参数的要求也不同,这对于饲主来说无疑是个巨大的难题,不仅耗时耗力,而且还容易出现疏忽。而采用物联网结合机器视觉技术,运用信息管理模式,使得鱼缸水体参数可通过各类设备智能调控,能保证观赏鱼在合适的环境下生存,不仅省时省力,还解决了观赏鱼喂养困难等问题,增加了养鱼的趣味性[4]。

2 方案设计

2.1 系统功能

2.1.1环境监测

系统可在线实时监测鱼缸内外环境数据。包括鱼缸内部温度、水体浊度、溶氧量、TDS值、pH值、NH3含量以及鱼缸外部温湿度、烟雾浓度、人体红外监测等环境因子数据,以及各类连接设备的状态信息,也可以通过视频实时观察鱼缸中观赏鱼的生长发育状态。鱼缸环境参数和辅助设备状态的相关信息,既可以在现场控制系统界面显示,也可以在app端与Web端获取。

2.1.2自动养鱼

自动养鱼功能包含自动投食、水体自净以及自动温控。自动投食分为自定义自动投食与默认自动投食两种模式,自定义自动投食是用户提前设定好投食时间,系统自动进行投食,默认自动投食是系统利用鱼态监测识别鱼的种类,根据鱼的习性进行投食操作。水体自净是指观赏鱼智能喂养系统利用TDS水质传感器、pH传感器以及浊度传感器实时对缸内水体的信息进行收集分析,判断当前水体是否危害到鱼儿,并自动控制具有物理过滤、化学过滤以及生物过滤的三重过滤系统对水体进行清洁。除了可以过滤掉缸内的残饵粪便以外,还能过滤掉在水中溶解的钙、镁等重金属离子和氨、氮、亚硝酸盐等对观赏鱼有毒有害的物质。自动控温是利用温度传感器实时对水中的温度值进行收集分析,从而控制加热棒和水循环控制缸内温度。

2.1.3鱼态监测

本系统使用摄像头、树莓派结合机器视觉并构建相应的知识库与规则库来实现鱼态监测的功能。利用卷积神经网络结合迁移学习对观赏鱼的分类模型进行训练,并利用该模型对实时的视频图像进行处理与分析,判断鱼儿的种类并识别鱼儿的位置,就可以实现对鱼儿的定位与追踪[5-7]。最后利用相关决策算法,根据鱼的行为状态推断其生命状态并及时给予反馈与合理建议。

2.1.4家庭安防

家庭安防包括智能防盗与危险气体报警功能。智能防盗是指观赏鱼智能喂养系统利用人体红外传感器结合摄像头进行人脸检测,当发现坏人入侵时会通过树莓派或GPRS远程发出报警信息到用户手机。危险气体报警是指观赏鱼智能喂养系统利用MQ2烟雾传感器,实时监测室内易燃有害气体浓度,当易燃有害气体浓度超出安全阈值时系统会发出警报并通过树莓派或GPRS远程发送报警信息到用户手机。

2.2 系统总体方案

该系统包括前端硬件感知系统和后台软件两个部分。前端硬件感知系统部分使用STM32F407ZGT6作为控制中枢,Raspberry Pi 3B+作为服务器。STM32F4

07ZGT6主要负责对下位机各个传感器数据的采集与对相关硬件的控制。树莓派主要负责对所收集的数据进行初步计算分析、数据的传递、摄像头的控制以及图片的初步灰度处理。后台软件部分由App和Web构成。App在AndroidStudio集成开发环境下采用Native App开发模式进行开发,主要负责与系统远程通信,实现对鱼缸各种环境参数显示与控制以及家庭安防等功能。Web采用B/S结构结合主流的SpringMVC进行开发,除了提供App的功能外还提供了鱼友社交(鱼友圈)、鱼缸实时视频监控、养鱼宝典、鱼族商店、在线医生等功能[8-9]。观赏鱼智能喂养系统框架如图1所示。

图1 观赏鱼智能喂养系统框架

2.3 数据采集模块

数据采集模块主要负责鱼缸内外环境数据的采集。包括鱼缸内部温度、水体浊度、溶氧量、TDS值、pH值、NH3含量以及鱼缸外部温湿度、烟雾浓度、人体红外监测等数据的收集、融合与分析。该模块主要包括ADC模块、UART、SPI通信接口和环境因子传感器,如DHT11温湿度传感器、TDS水质传感器、DS18B20温度传感器、pH传感器、浊度传感器等。数据采集模块结构如图2所示。

图2 观赏鱼智能喂养系统数据采集模块结构图

2.4 硬件控制模块

硬件控制模块主要负责控制系统的各硬件模块。使用STM32F407ZGT6作为控制中枢,分别与定时器、外部SRAM以及其他外部硬件设备连接。外部硬件设备包括系统中的水泵、投食器、加热棒、增氧泵、蜂鸣器、灯光、显示屏、TF卡槽和WM8978音乐模块等。在控制中枢运行基于保证通信的实时和提高处理观赏鱼喂养环境数据处理效率的嵌入式软件程序。嵌入式软件程序分为操作系统和应用软件。其中操作系统选择了实时性高、稳定可靠的多任务μC/OS-II操作系统。应用软件建立在操作系统基础上,主要完成数据存储、分析、传输和硬件设备控制等。该软件采用模块化、多任务的设计思路,极大提高了实时监控程序执行的并发性。观赏鱼智能喂养系统硬件控制模块结构如图3所示。

图3 观赏鱼智能喂养系统硬件控制模块结构图

2.5 鱼态监测模块

鱼态监测模块针对人为地对观赏鱼的生命状态进行判断需要耗费大量的知识与经验且不能及时准确诊断观赏鱼生命状态并及时做出反馈这一难题,选择使用摄像头、树莓派结合机器视觉并构建相应的知识库与规则库实现对观赏鱼行为状态的判断,进而利用观赏鱼的行为状态实现对其生命状态的推断与预测,并及时反馈与预警。

此模块选择基于卷积神经网络的观赏鱼分类模型,并结合迁移学习实现对观赏鱼分类模型的训练[10-12]。整个卷积神经网络模型主要构成有输入层、多层卷积层、多层采样层、多层连接层、输出层。模型的训练实质上就是全连接层的权重和卷积滤波器的权重自主学习的过程[13]。本模块选择了被广泛应用在图像特征提取中的VGG16模型的滤波器的权重,并在其模型上来实现本次研究的目的[14]。

观赏鱼智能喂养系统采集了常见观赏鱼样本数据集和测式数据集。样本数据集利用Tensorflow训练出能够供识别分类使用的观赏鱼神经网络模型,测试数据集被用来测试观赏鱼神经网络模型对目标观赏鱼的分类准确度[15]。若被训练出的神经网络模型达到预期分类准确度,则可以采用该神经网络模型实现对最终的目标观赏鱼的定位与分类。

将获得的训练模型应用到实际中,由于观赏鱼实时视频拍摄于鱼缸外部,拍摄环境亮度波动较大,而且水中杂质对光的散射作用也会使图像较为模糊,这些因素都会影响观赏鱼神经网络模型对观赏鱼识别的准确度,所以本系统将通过将亮度以及清晰度提高的方法尽可能减少亮度低和模糊对观赏鱼识别造成的影响[16]。

本系统选择伽马校正法来提高图像的亮度[17],公式如下:

Yout=(Yin)g

(1)

式中:Yin为原图像像素值;Yout为校正后图像像素值;g为伽马值。

对于提高清晰度的方法,本系统参考的是基于暗通道先验算法去雾的研究,该研究认为雾天拍摄图片的模糊是由空气中的杂质对光的散射造成的[18]。本文中,水下拍摄图片的模糊也恰好是由水中的杂质对光的散射造成的,于是选择利用此算法来提高图片清晰度,计算公式如下:

(2)

式中:J(x)是待求的无雾图像;I(x)表示雾图像;t(x)表示光的透射率;A表示环境的亮度;t0为一个接近于0的正数,用来限制分母的大小,使得t(x)不能太小,因为过小会导致图片亮的区域特别亮,暗的区域特别暗。

之后利用观赏鱼分类模型对经处理后的多帧图像中的观赏鱼进行识别与定位,进行对观赏鱼行为的判断,进而利用其行为状态结合事先导入的知识库与规则库并基于模糊推理机实现对其生命状态进行推断与预测。模糊证据推理在推理逻辑以及判断时的隶属函数上都有区别于经典证据推理。模糊逻辑推理将结果映射到[0,1]区间内,不同于经典逻辑推理的非真即假的二值逻辑,其反映了事物的真假程度。隶属函数用于描述前项属于推理结果的模糊集合的隶属度,取值范围在[0,1]之间,值越大,其隶属度越高。在本模块中,采用观赏鱼症状与疾病知识库中症状之间的相似性作为隶属函数,利用两者间的欧氏距离作为相似性度量。设定与知识库症状的相关性阈值为60%,用来判定观赏鱼患病的可能性。部分规则产生式如下:

规则1:若鱼为蓝宝石鱼,则温度范围为20~28 ℃。

规则2:若鱼为巴卡雷龙,则pH值范围为6.5~7.5。

规则3:若鱼在活跃度高于98%且单位分钟跃水次数大于两次,则发出鱼虱病警报。

规则4:若鱼连续浮于水面时间大于10 min,则发出气泡病警报。

……

模型训练与实验效果如图4所示。

图4 模型训练与实验效果图

2.6 决策模块

系统通过决策模块实现系统的智能调控功能,实现对观赏鱼生长环境的稳定、安全、高效的管理。主要负责有环境调控、数据收集、状态推断、数据传输、指令输出等。其中,环境调控实现根据观赏鱼的种类自动对环境因子进行阈值设定、目标值设定与调控;数据收集实现对数据采集模块的数据的接收与保存;状态推断实现利用采集的数据对观赏鱼生命状态、鱼缸环境与设备状态进行分析与判断;数据传输实现数据采集和反馈信息与控制中枢之间的双向传输;指令输出实现将决策指令的反馈与响应。

该模块主要由用户接口、知识获取机构、解释机构、数据库、模糊推理机与模糊知识库构成。

本模块采用框架与模糊产生式相结合的方法来实现知识表示。下面用观赏鱼状态来简单说明:

Rule{S1(N1,C1),S2(N2,C2),…,Sn(Nn,Cn),R(a1,a2)}

Result{R1(M1),R2(M2),…,Rm(Mm)}

由Rule框架和Result框架构成上述知识表示,Rule是规则框架,Result是结果框架。其中Si(i=1,2,…,n)表示与观赏鱼某事件有关的条件;Ni(i=1,2,…,n)表示该条件是否为造成该事件的必要条件,是必要条件时为1,其他时为0;Ci(i=1,2,…,n)是模糊量词,取值在[0,1]之间,表示相应条件发生的程度;R表示事件判断的结果;a1和a2分别是规则的阈值和规则在必要条件下的阈值,取值在[0,1]之间;Ri(i=1,2,…,m)和Mi(i=1,2,…,m)分别表示造成事件的缘由和处理该事件的办法。

本模块采用模糊推理,在模糊推理中,因为观赏鱼某事件的条件S与证据S′不一定完全相同,因此在进行知识推理时应首先考虑知识的S和S′的相似程度。针对知识的模糊表示,本模块使用隶属度来判断两个对象的相似度,隶属度越大对应的两者也就越相似,两者的隶属度超过系统设定的阈值时,就判定两者是模糊匹配的。在本模块中,采用观赏鱼事件的条件与证据间的欧氏距离作为两者的隶属度。使用如下公式进行对欧氏距离的计算:

(3)

欧氏距离可用来衡量对象之间的相似程度,两对象越相似对应的欧氏距离也就越小[19-20]。因此可选用欧氏距离来实现对观赏鱼的分类,即通过观赏鱼当前状态的特征向量与观赏鱼状态标准状态的特征向量的欧氏距离来对观赏鱼进行分类。分类结束后根据模块分类结果,模块输出相关指令进行预警或反馈。

2.7 可视化显示模块

可视化显示模块主要负责用户对系统的可视化监控。系统通过鱼缸触摸屏或远程控制App或Web实现用户对系统远程控制。用户操作包括了环境数据可视化、鱼缸实时监控、鱼缸设备控制、环境参数设置、远程直播和实时调控等。系统采用AJAX(Web端)图表实时显示技术和AngularJS+ionic+H5移动应用(App)端)技术对系统数据库中所采集、分析后的数据直观地展示。采用树莓派推流工具FFmpeg和流媒体数据库可选及时展示摄像头画面。用户可在任何地方使用用户名和密码或者扫描二维码进入各自系统,实时对鱼缸进行监控,不仅解决了鱼儿饲养照料的困难等问题,而且也增加了养鱼的趣味性[21]。

3 硬件设计

实现观赏鱼智能喂养系统的首要条件是要拥有一个前端硬件感知系统。本系统需通过多种传感器实时监测鱼缸内外环境数据。包括鱼缸内部温度、水体浊度、溶氧量、TDS值、pH值、NH3含量以及鱼缸外部温湿度、烟雾浓度、人体红外监测等环境因子数据。为了调控鱼缸内外环境数据,该系统还应控制外部硬件设备。所以,观赏鱼智能喂养系统应主要包括系统控制中枢与环境监控模块等。

3.1 控制中枢

前端硬件感知系统的核心功能是鱼缸内外环境数据的监控与数据的传输,此次设计我们将选择使用μC/OS-II操作系统的STM32F407ZGT6芯片作为该系统的MCU,它是基于ARM Cortex-M4内核的32位高性能微控制器,最高工作频率可达168 MHz,供电电压是1.8~3.6 V。系统中ADC模块负责烟雾传感器与水体浊度传感器的数据采集,利用单总线实现水温传感器与室内温湿度数据采集,利用串口实现pH传感器与TDS水质传感器的数据采集。而与上位机通信是通过STM32F407ZGT6芯片的串口分别连接树莓派以及GPRS完成的,其中起通信主要作用的为树莓派,GPRS鉴于其成本低与覆盖范围广等特点,选其做通信备用模块。

3.2 环境监控模块

前端硬件感知系统主要功能是对鱼缸内外环境数据实时监测与控制。此次设计根据测量对象、测量环境、测量范围以及传感器的动静态特性综合考虑选取了空气温湿度传感器、烟雾传感器、人体红外传感器、水温传感器、浊度传感器、溶氧量传感器、TDS水质传感器、NH3传感器、pH传感器以及荧光法溶氧量传感器,使得鱼缸环境数据采集准确率高于96.538%,使用效果远优于直观感知[22]。为了提升观赏鱼喂养系统的自动化水平与养鱼趣味性,系统使用自动化控制设备,主要包括投食装置、温控装置、增氧装置、水体自净装置、灯光以及背景音乐装置。

投食装置:通过控制步进电机带动投食器螺旋杆旋转实现投食操作。

温控装置:通过控制加热棒与水循环系统对鱼缸温度进行调控。

增氧装置:通过控制增氧泵抽取空气进行对鱼缸充氧保证鱼缸含氧量。

水体自净装置:通过水泵结合物理过滤、化学过滤和生物过滤实现对鱼缸水体质量的保证。

灯光控制装置:一种照明设备,用于为鱼缸照明。

背景音乐装置:通过WM8978音乐模块实现背景音乐功能。

4 软件设计

4.1 数据库设计

系统上位机与下位机的正常运行离不开系统的数据库,安全可靠的系统数据库对整个系统的运作会产生良性的影响。因此观赏鱼智能喂养系统数据库选择基于SQLServer设计,利用SQL程序做好优化,保证数据库具备超前性,为后期系统优化预留功能。根据既定的功能设计包括传感器数据库、系统数据库和知识数据库三个部分。观赏鱼智能喂养系统数据库结构如表1所示。

表1 观赏鱼智能喂养系统数据库结构表

4.1.1传感器数据库

系统要对鱼缸内环境因子进行监控,随时了解观赏鱼环境状态,提高设备管理效率。为此设计了传感器数据库,传感器数据库包含9个子库,为室内温湿度数;水温数据传感器;pH值数据;TDS数据;水体浊度数据;人体红外数据;烟雾数据;NH3数据;溶氧量数据,用于收集前端硬件感知系统所采集的数据。

4.1.2系统数据库

系统数据库必须从系统实际需求出发,合理整理数据信息,避免数据冗余或遗漏。为此设计了系统数据库,系统数据库包含系统中的用户信息、传感器信息、设备信息、各设备的运行状态、系统日志以及历史数据等。它关系到系统的性能、稳定性以及扩展能力。

4.1.3知识数据库

通过查阅文献和咨询专家,获得观赏鱼喂养方面的知识和相关问题的解决方案并构建相关规则库,将规则选用产生式进行表示。建立观赏鱼喂养预测及决策的数学决策模型。

4.2 Web与Android设计

采用了注解式的SpringMVC进行网站的搭建,制作浏览器使用和客户端使用的两套界面[9]。

Web部分采用JQuery+Ajax异步请求实现数据,采用心跳定时请求获取数据的方式,保证用户得到及时的数据。界面使用BootStrap+ECharts组合以适应不同屏幕同时实现美观效果以确保用户的舒适体验。

Android客户端部分采用ionic编写界面,采用AngularJs获取服务端数据,使用Javascript对应Service编写不同脚本。

5 结 语

随着物联网和机器视觉等新型技术的不断发展,新型物联网已成为传统农业养殖向信息数据化农业养殖的助推器[23]。本文针对观赏鱼传统鱼缸喂养模式过程繁琐以及环境信息难以调控问题,提出了一种观赏鱼智能喂养系统。该系统运用物联网与机器视觉等技术,不仅实现了对观赏鱼环境的温度、水体浊度、溶氧量、TDS值、pH值等环境因子的远程实时监测与调控,还利用摄像头实现对观赏鱼的定位与分类,实现根据鱼儿运动状态进而推断出鱼儿的生命状态,通过事先构建知识数据库实现观赏鱼智能喂养系统智能化决策与预警等功能。通过在长沙两家水族公司的示范与应用,初步实现了标准化生产作业的管理要求,验证了该系统观赏鱼养殖方法的可靠性,证明其具有较高的实际应用价值,有着良好的应用前景及提升空间。

猜你喜欢
观赏鱼鱼缸水体
清洗鱼缸
农村黑臭水体治理和污水处理浅探
农村黑臭水体治理与农村污水处理程度探讨
观赏鱼喂食须知
本市达到黑臭水体治理目标
《观赏鱼养殖》课程教学创新
观赏鱼水族箱中白色“蛋白虫”的初步探究
鱼与鱼缸
冰立方鱼缸
观赏鱼游出滚滚财源