基于监控视频的奶牛饲料消耗状态监测与预测系统
2024-05-18张博罗维平
张博罗维平
(1.武汉纺织大学机械工程与自动化学院,湖北 武汉 430200;2.武汉纺织大学数字化纺织装备重点实验室,湖北 武汉 430200)
引言
在奶牛饲养中,饲料至关重要,是奶牛获得营养的主要来源,直接影响着奶牛的健康和生产性能。监测与预测饲料消耗状态对于保障奶牛的健康和提高生产管理效率具有重要意义。
目前,饲料的监测主要依赖人工目测,存在着工作量大、人力成本高和效率低的问题。同时,由于人工观测的局限性,巡视频率和准确率难以保障。此外,人工难以科学预测未来一段时间的饲料消耗状态,难以保障饲料供给的及时性。随着畜牧业规模的不断扩大,规模化、集约化养殖日益成为趋势[1],给传统的依靠人工目测的巡视方式带来了更大的挑战。U-Net图像语义分割网络具有编码器-解码器结构、跳跃连接、适用于小样本学习等特点和优势,使其成为图像分割任务中广泛应用的有效模型架构之一,已广泛应用于农业领域。如,张欣等[2]基于U-Net的改进模型对淡水养殖区进行提取。此外,长短期记忆网络(Long Short-term Memory,LSTM)能够捕获序列数据中的长期依赖性[3-8],并被广泛用于处理时间序列数据的分类和回归问题。因此,本研究利用U-Net图像语义分割网络来实现对饲料消耗状态的自动监测,并通过LSTM时间序列预测网络来预测未来一段时间的饲料消耗状态。
本研究研发了一套基于监控视频的饲料消耗状态监测与预测系统,以提高生产管理效率。
1 系统架构
系统的整体框架如图1所示。该系统分为数据资源层、业务逻辑层和视图层。饲料监控视频获取的视频数据通过交换机传输到工控机,工控机对接入的视频数据进行实时处理,并根据业务的需求输出相应的结果。
图1 系统整体框架
1.1 数据资源层
数据资源层作为系统的核心组成部分,在满足用户管理、实时饲料消耗状态监测和历史视频管理等3大需求方面发挥着关键作用。为了有效地管理和处理数据,设计了用户信息表、历史饲料消耗状态数据表和饲料视频数据表。用户信息表用于存储系统中的用户信息,包括用户姓名、联系方式、权限等内容,以便系统能够进行用户身份验证和管理。历史饲料消耗状态数据表用于记录饲料的消耗状态历史数据,包括时间戳、站点位置、消耗状态值等信息,以便系统能够实时预测饲料消耗情况并生成相应的报表和统计信息。饲料视频数据表则用于存储历史视频数据,包括摄像头录制的饲料视频,以便用户可以随时回放和查看历史视频。为了保证数据的安全性和可靠性,选择了MySQL数据库作为数据存储方式,因其具有稳定性高、性能优越等优点,能够满足系统对数据存储和管理的需求。通过这些设计和选择,数据资源层能够有效支持系统的各项功能和业务需求,为用户提供稳定可靠的服务。
1.2 业务逻辑层
业务逻辑层是系统或应用程序中的一个核心组件,其主要功能在于从数据资源层获取数据并进行处理,将处理结果传输到视图层和数据资源层。在业务逻辑层中,涵盖了多个业务单元,包括并行检测、轮巡、饲料消耗状态监测以及饲料消耗状态预测等。具体而言,业务逻辑层负责执行并行检测任务,以同时处理多个数据源或数据流,提高系统的处理效率。同时,业务逻辑层还包括轮巡功能,用于周期性地轮巡展示监测与预测结果。另外,饲料消耗状态监测业务单元允许系统实时监测饲料的消耗状态,提供及时的数据反馈。而饲料消耗状态预测业务单元则利用历史数据和算法模型对未来一段时间的饲料消耗状态进行预测,帮助用户作出合理的管理决策。通过这些业务单元的组合,业务逻辑层实现了系统的功能和业务逻辑,为用户提供了更加完善和高效的服务。
1.3 视图层
视图层的功能在于提供交互式操作界面,以展示数据结果并接收用户的输入。具体来说,视图层包括饲料消耗状态监测画面、饲料消耗状态预测画面和用户信息管理界面等模块。在饲料消耗状态监测画面中,用户可以实时查看饲料的消耗状态,了解饲料的使用情况。而在饲料消耗状态预测画面中,系统则提供了对未来饲料消耗状态的预测,帮助用户作出合理的饲料管理决策。另外,用户信息管理界面则允许用户管理系统中的用户信息,包括添加、编辑和删除用户等功能。通过这些交互界面,用户可以方便地获取信息、进行预测和管理系统中的用户信息,实现了系统与用户之间的有效交互。
2 系统功能模块
根据实际业务需求,系统主要分为视频传输模块、饲料消耗状态监测模块、饲料消耗状态预测模块和饲料消耗状态可视化模块,各模块之间的协作过程如图2所示。
图2 系统各模块协作过程
2.1 视频传输模块
视频传输模块主要实现2个功能:将各监控站点的视频数据接入系统,自动截断并保存监控视频;提供监控站点轮巡的解决方案。
将饲料监控视频接入系统并展示结果需要经过多个处理步骤,其中视频流接入是至关重要的环节。视频接入:使用海康威视摄像头并采用RTSP(Real Time Streaming Protocol)协议,通过获取摄像头的URL(Uniform Resource Locator)地址即可接入对应的视频数据。为了处理多个站点的视频流数据,采用了多线程技术,为每个站点创建独立的线程。视频保存:系统根据摄像头的帧率和图像帧的计数,实现对指定视频时长的截取,从而达到自动截断保存的目的。具体来说,系统会根据预先设置的参数和需求,监控摄像头拍摄的视频流,并在达到指定的时长后自动截断并保存视频。保存后的视频数据可以用于后续的分析与研究,如对饲料消耗状态的趋势分析等。同时,也可以作为历史数据进行备份和存档,以便于未来的参考和回顾。通过视频保存功能,系统能够有效地记录和管理视频数据,为用户提供了丰富的信息和便捷的操作体验。
此外,自动轮巡时,每隔5s切换对应摄像头的基于RTSP的URL地址,获取相应的视频源,进而展示相应站点的监测预测结果。具体来说,系统会维护一个摄像头列表,其中包含每个摄像头对应的URL地址。在自动轮巡时,系统会按照预先设置的时间间隔,自动切换到下一个摄像头的URL地址,并通过URL地址获取相应的视频源。获取到视频源后,展示相应站点的监测预测结果。通过自动轮巡功能,系统能够高效地管理和展示多个站点的监测结果,为用户提供全面的监测信息。
2.2 饲料消耗状态监测模块
饲料消耗状态变化预测的基础是精确的实时饲料消耗状态监测,饲料消耗状态监测模块的主要作用是使用U-Net图像语义分割网络对饲料视频帧进行语义分割,分割出饲料消耗区域与饲料残余区域,通过计算饲料消耗区域的占比,达到监测饲料消耗状态的目的。具体来说,饲料的消耗状态=(饲料消耗区域的像素点总数/(饲料消耗区域的像素点总数+饲料残余区域的像素点总数))×100%。U-Net语义分割效果图如图3所示。
注:图3b中红色区域为饲料残余区域,绿色区域为饲料消耗区域。
2.3 饲料消耗状态预测模块
为了科学指导调度决策的制定,并提高生产管理效率,利用LSTM时间序列预测网络对监控站点未来一段时间的饲料消耗状态进行预测。具体而言,利用历史饲料消耗状态数据训练LSTM模型;使用训练好的LSTM模型对未来一段时间的饲料消耗状态进行预测,以获得对饲料消耗值的预估值。预测结果将作为参考,用于指导生产调度和决策,帮助优化生产计划、合理安排资源和减少生产成本。通过这种科学的预测方法,能够更加准确地了解未来的饲料消耗趋势,从而提高生产管理的效率,实现更加智能和可持续的生产管理。
2.4 饲料消耗状态可视化模块
饲料消耗状态可视化分为监测可视化与预测可视化2个方面。监测可视化通过在监控画面上将饲料残余区域与饲料消耗区域分别赋上不同的颜色来展示当前饲料的消耗情况。具体而言,使用不同的颜色来区分饲料残余区域和饲料消耗区域,以直观展示当前饲料的消耗状态。此外,监测可视化还将饲料消耗状态值、饲料消耗等级和监控站点位置等信息显示在监控画面上,以便用户快速了解监控站点的实时情况。预测可视化则采用一种直观的方式展示未来一段时间的饲料消耗状态值、饲料消耗等级和站点位置,以帮助用户掌握未来一段时间的饲料消耗情况。通过这种可视化方式,用户可以清晰地了解监控站点的饲料消耗情况,从而更好地进行生产管理和调度决策。
3 系统实际效果
系统运行在Ubuntu操作系统平台上,部署在一台配置为Intel Core i7-12700F 2.10 GHz处理器、16.0 GB RAM内存和NVIDIA GeForce RTX 3050显卡的计算机上。同时,系统采用MySQL数据库作为数据存储和管理系统,利用其强大的数据管理功能和高性能的数据处理能力,确保数据的安全性和可靠性。在用户界面开发方面,系统采用PyQt框架进行图形用户界面的开发。PyQt是一个功能强大的Python GUI工具包,提供了丰富的界面设计组件和易用的编程接口,使得开发人员能够快速构建出美观、交互性强的用户界面。
3.1 饲料消耗状态监测
饲料的消耗状态值分为5个等级,80%~100%为5级,60%~80%为4级,40%~60%为3级,20%~40%为2级,0%~20%为1级,并根据等级发出警报,其中,5级表示饲料消耗情况最严重。通过饲料消耗状态监测模块获得的饲料消耗状态值、监测时间和站点名称需要存储至MySQL数据库,以便后续研究与分析。同时,这些数据也将被传输至可视化模块,实时展示监测结果。此外,还需将数据传输至后续的预测模块,以支持预测任务。
由实测可知,系统的监测帧率可达FPS(Frames Per Second),可满足实时检测的要求。
为了更直观地展示饲料消耗情况,将监测的结果进行可视化。将饲料残余区域与饲料消耗区域分别赋上不同的颜色,并将站点的名称、饲料消耗值、饲料消耗等级显示在界面的左下方,如图4所示。
图4 饲料消耗状态实时监测画面
3.2 饲料消耗状态预测
饲料消耗状态预测的界面如图5所示。饲料消耗状态预测界面直观展示了未来一段时间的饲料消耗状态预测值,还展示了未来一段时间的饲料消耗等级及站点位置,当饲料消耗状态预测值达到预警水平时,系统会触发相应的警报,有良好的实用性。
图5 饲料消耗状态预测界面
4 结论
针对当前落后的饲料消耗状态监测手段,结合人工智能技术,研发了一套基于监控视频的饲料消耗状态监测与预测系统。该系统通过监控摄像头获取视频数据;使用图像语义分割网络U-Net监测饲料消耗状态;使用时间序列预测网络LSTM对饲料消耗状态进行预测。此外,系统支持多站点并行监测、轮巡、自动截断保存视频等功能。在内蒙古某牧场的试验结果表明,该系统运行稳定,对于保障奶牛的健康和提高生产管理效率具有重要意义。