畜牧养殖业是农业发展的重要组成部分, 近年来, 畜牧养殖业正在向大规模、集约化的模式快速发展, 智慧养殖正在成为主流模式. 在当前国内外智慧养殖研究中, 往往采取为养殖动物个体安装电子设备、在养殖场建立监控视频等方式, 由此带来设备材料成本高、设备维护费用高、设备断电导致跟踪中断、监控视频难以覆盖大场景, 以及影响动物福利等问题. 因此, 产生了许多“互联网 + 人工智能”的新创意[1–3].
无人机具有巡航覆盖面宽、拍摄大场景视频方便快捷等优势, 随着无人机技术的快速发展, 通过飞行航线规划和航点摄像头参数设置, 无人机已能实现自动巡航和智能拍摄[4,5], 这为养殖场尤其大型养殖场便捷获取动物视频, 更高效地开展养殖动物识别提供了强有力支持. 同时, 无人机拍摄方式也存在因拍摄距离和角度不佳, 易产生小目标和遮挡的问题.
目前, 计算机视觉算法已被广泛应用于自动化畜牧业中, 如监控动物奔跑、站立、身体状况及攻击性行为等[6–10]. 基于计算机视觉的动物行为识别方法研究主要有基于图像分类、目标检测和图像分割3类[11], 其中, 目标检测的YOLO系列算法通过定位动物的特征部位在图像中的位置, 构建动物特征部位的空间关系向量, 利用全连接神经网络对空间关系向量分类, 实现动物的站立、卧躺和采食行为以及数量的识别[12–14].
综上, 提升无人机拍摄效果和优化视觉算法模型, 是今后建设养殖动物识别系统的着力点, 需兼顾场景适应性和运行高效性, 以便为后续开展各类精准养殖提供快捷、统一的数据支持.
1 系统框架体系构建根据养殖场尤其大型养殖场的实际场景需求, 按照将无人机动态采集视频和视觉算法优化、轻量化相结合的原则, 搭建系统框架和设计运行流程.
1.1 体系结构如图1所示, 系统体系结构由以下4个部分的相关模块构成.
(1)无人机直播联动部分
无人机直播联动部分由无人机地面控制端和联动移动终端组成, 主要处理无人机航线规划飞行、移动终端查看视频和反向控制摄像头、视频上传云服务器存储.
(2)视频存储处理部分
视频存储处理部分主要由云存储服务器和视频处理模块组成. 主要处理拍摄视频接收存储、切帧转换图片和图像标注.
(3)动物识别算法部分
动物识别算法部分由识别算法模块构成, 主要通过识别算法对养殖动物的奔跑、站立、卧倒和饮食等行为, 以及数量进行识别.
(4)数据应用接口部分
该部分主要是将行为识别算法模块识别的数据进行归拢, 建立数据调用标准接口, 为各类精准养殖应用提供便捷调用.
1.2 运行流程如图2所示, 系统的运行流程主要包含以下4个环节.
(1)无人机直播采集视频
为无人机规划航线, 实现对养殖场的自动航行和拍摄. 管理人员通过移动终端实时查看视频, 并反向控制无人机摄像头拍摄. 将所拍摄视频实时上传云服务器存储.
(2)视频处理建立数据集
通过视频解码、图像裁剪、大小调整、帧率设定, 将视频转换为后续算法所需图片格式, 建立动物识别数据集. 其中, 选定一定数量的图片进行图像标注, 以供后续算法模型进行训练.
(3)视觉算法模型进行识别
针对无人机拍摄图片特点, 对算法模型进行针对性优化, 将训练样本输入算法模型不断训练, 得到模型合适的参数. 将无人机巡检视频图片输入算法模型, 进行动物行为及数量识别.
(4)识别数据输出应用接口
将识别的动物行为和数量数据分类整理, 建立标准数据接口供各类应用便捷调用, 为养殖场开展各类精准养殖应用提供数据支持.
1.3 关键技术为更好满足养殖场动物识别的应用场景, 系统从以下几个方面解决涉及的关键技术问题.
(1)无人机航线规划及跟踪定位
基于GIS, 利用 ArcGISEngine设计无人机航线规划控制软件, 并将其嵌入无人机地面控制端, 实现无人机自动飞行和跟踪定位. 具体为:
电子地图: 采用NASA提供的DEM (digital enhanced model, 数字高程模型), 在Arcgis平台上进行格式转换、截取和合成, 在飞行区域构建对应三维地理信息模型, 通过设计地图处理控件, 对电子地图的放大、缩小、平移、测距和图层进行管理, 并利用GPS定位信息获取无人机经纬度、高程信息, 实现对无人机的跟踪定位.
航线规划: 在电子地图基础上, 首先进行航路点(经纬度、飞行高度、速度)规划, 再通过航路点连接形成飞行航线; 飞行航线生成后, 进行航路信息校验, 通过对规划航线模拟飞行, 检验航线的闭合完整性、飞行畅通性和机动合理性; 最后, 将无人机实际飞行数据进行保存, 以提供历史航迹显示.
(2)无人机摄像动态反向控制
通常情况下, 无人机摄像控制由地面操纵人员通过操作控制面板完成, 但在本系统应用中, 由于需识别专业人员根据识别需要远程控制, 因此, 专门设计直播手机端反向控制机制. 具体为:
手机联动直播APP: 基于Android/iOS, 重点针对视频拉流和反向控制摄像进行设计. 设计视频拉流来源切换按钮, 实现视频服务器对无人机拍摄视频的拉流, 并将视频推流给手机联动直播APP显示. 同时, 在手机屏幕上, 提供摄像头方向、焦距控制按钮.
无人机摄像控制接口: 在无人机飞行过程中, 根据手机联动直播APP发送的反向控制指令, 实时通过云台摄像头控制接口传送相应参数, 控制云台和摄像头动态拍摄不同角度和不同距离的视频.
(3)识别算法动态问题解决
物体的位置和大小在不同的图像中发生变化, 会使得识别算法难以准确预测物体的位置和大小. YOLO算法的动态问题主要表现为: 对初始化的网络参数敏感、对训练数据集的大小和多样性要求较高、对小目标和遮挡目标的检测效果不佳等几个方面, 对此, 可使用更先进的初始化方法、通过数据增强技术增加数据集的大小和多样性、引入多尺度特征融合、使用膨胀卷积等方法关注小目标、使用背景减除等方法处理遮挡问题等许多改进方法, 以有效提高YOLO算法的性能和鲁棒性. 除算法改进外, 提高数据源质量也是提高识别算法精确度的基本方法, 其中, 使用高质量数据集、持续监控和更新模型是有效手段.
因此, 本系统一是针对动态检测问题对算法模型进行优化, 二是采用“无人机直播联动”方式, 通过直播画面实时反向控制无人机摄像, 有效降低小目标率、遮挡率, 促进高质量数据集的建立, 并日常性地实地飞行拍摄以更新模型, 从源头为提高识别算法精度提供支持.
2 系统直播联动设计无人机通过规划飞行航线和预置航点摄像头参数可实现智能拍摄, 借助无线网络和直播推流服务器, 还可实现实时视频直播[15], 但此类方法更适合获取电力设施等地面静态物体视频, 为获取高质量的移动动物视频, 需建立可进行动态直播的无人机直播联动子系统[16].
2.1 直播联动模块无人机直播联动子系统设计如图3所示, 主要由无人机终端与手机等移动终端的相应联动功能模块构成.
(1)航线生成模块
基于GIS系统生成无人机航线, 并将无人机航线通过地面控制端发送至无人机终端.
(2)视频采集模块
通过无人机控制端和移动终端的推/拉流, 移动终端通过配置的端口接收无人机视频流数据.
(3)视频标定模块
将视频流标定为播放视频流, 并通过网络直播体系上传至云服务器.
(4)反向控制模块
用于在标定播放视频流后触发摄像头反向控制组件, 并将反向控制参数传输至无人机终端.
(5)直播显示模块
用于将播放视频流在手机等移动终端窗口进行实时播放, 查看视频拍摄效果.
2.2 直播联动作用无人机直播联动的主要目的是进一步适应养殖场实际场景需求, 针对无人机拍摄特点, 发挥以下作用.
(1)提高系统运行效率
通过将无人机与手机等移动直播终端联动, 将无人机拍摄视频流推/拉入成熟的网络直播体系, 快速上传云服务器, 提高系统运行效率.
(2)减轻管理操作难度
通过将无人机自动飞行和摄像头反向控制相结合, 管理人员可减轻操作无人机拍摄的负担, 借助手机等移动终端即可查看视频和控制拍摄.
(3)降低后续算法压力
通过反向控制无人机摄像头焦距和角度, 改善小目标率和遮挡率, 提高视频拍摄质量, 降低后续视觉算法的训练成本和运算压力.
2.3 直播联动运行按照直播联动子系统的结构和作用, 对直播联动子系统进行软硬件部署和运行测试, 具体为:
(1)直播联动部署
无人机选用操控性能高、飞行稳定性强的DJI Air2S, 搭载DJI O3 Air Unit图传系统, 允许用户对屏幕显示的OSD信息进行自定义设置、自行调整PID参数. 直播手机选用华为Mate40 pro 8 GB+256 GB 5G版, 装载运行直播联动APP. 在阿里云部署视频存储及处理中心, 配置如表1所示.
(2)直播联动效果
无人机拍摄视频采用如下参数进行编解码: 编码格式为H.265, 传输协议为WebRTC, 图传画面解析度为1080p, 编码码率为3 Mb/s, 编码传输帧率采用60 f/s. 经实际运行测试, 编码效率达到2–3 Mb/s, 手机端视频显示的延时约1.2 s.
运行效果表明, 直播联动子系统较好地满足了无人机拍摄视频实时上传更新的需要, 达到了建立识别数据集所需图像清晰度和解码帧率的要求, 并且在无人机飞行速度有限的情况下, 手机端显示延迟时间对反向控制影响有限.
3 系统数据集建立将无人机拍摄视频通过数据预处理转换建立为动物识别数据集, 抽取一定数量图片进行图像标注, 以不断为算法模型提供训练样本.
3.1 数据预处理系统通过对无人机拍摄视频进行视频解码、图像调整、帧率调整等数据预处理, 获得视频切帧后的图片, 如图4所示.
(1)视频解码
在视频解码软件模块播放视频文件时, 调用Online Video Converter等在线视频转换工具, 将视频转换成图片.
(2)图像调整
调用图像处理工具, 将视频转换的图片统一按设定的维度进行裁剪, 并按设定的清晰度进行大小调整, 例如按640×640的分辨率.
(3)帧率调整
根据后续识别算法处理的需要, 软件模块可设置视频转换为图片的间隔帧率, 例如按每15帧截取1张图片.
3.2 图像标注如图5所示, 从建立的动物识别数据集中抽取一定数量的图片进行图像标注, 为后续算法模块提供训练样本.
LabelImg 是一款高效率的图形图像标注工具, 使用 Python 编写, 并使用 Qt 作为其图形界面, 注释以 PASCAL VOC 格式保存为 XML 文件, 此外, 它还支持 YOLO 和 CreateML 格式. 经数据预处理后的图像, 采用LabelImg进行动物行为及数量的标注, 并用YOLO格式保存.
为降低标注难度和提高标注效率, 系统在后续应用中, 可利用迁移学习等技术手段替代人工标注, 并采用软件设计实现标注自动化.
4 系统识别算法实现根据无人机直播联动拍摄特点和养殖动物识别需求, 系统选用YOLOv7算法模型进行识别, 并进行优化和轻量化.
4.1 YOLOv7算法模型应用YOLOv7作为目前YOLO系列最先进的算法之一, 在准确率和反应速度上超越了以往的单阶段目标检测算法[17]. YOLOv7网络由3个部分构建: input、backbone、head. backbone部分用于对无人机拍摄目标的特征提取, head部分包括特征融合和分类定位预测. 系统应用YOLOv7算法模型进行识别的机制如下.
(1) MP-1与MP-2同时采样
如图6所示, 同时采用MP-1与MP-2两种采样方案, 均衡考虑局部小区域的最大值信息和所有值信息, MP层在整个网络中被多次使用, 以逐渐降低特征图的空间分辨率. MP层的输出被传递到网络中的后续层进行进一步处理和细化, 得到最终的目标检测结果.
(2)启用YOLOv7高效层聚合网络
利用YOLOv7的高效层聚合网络(efficient layer aggregation network, ELAN)进一步提高目标检测算法的效率. 通过使用 ELAN, YOLOv7在COCO数据集上实现 44.3%的平均精度(mean average precision, mAP). ELAN有两个分支结构, 上层分支通过1×1卷积改变通道数, 下层分支首先经过1×1卷积变换通道数, 在经过4个CBS结构完成特征提取, 最终将两个分支进行特征融合.
(3)添加时间尺度判断标准
在养殖场实际场景下, 由于养殖动物离无人机摄像头的距离不同, 导致动物在图像上的尺度差异较大, 且动物聚集在一起时会产生遮挡. 因此通过为YOLOv7目标监测算法添加时间尺度判断标准[18], 实现动物数量的精准监测, 采取在30 min内多次识别动物的数量, 如果其中动物数量符合预期就不发出警报, 如果30 min内都出现动物数量不符合预期的情况则发出警报.
4.2 模型优化及识别效果无人机直播联动方式对建立高质量数据集有促进作用, 但实验结果表明, 针对无人机拍摄特点, 对算法模型进行优化仍是必要的.
(1) YOLOv7模型优化
根据无人机拍摄的特点, 系统从适应动态检测、提高识别精度、改善运行效率等方面综合考虑, 采用了YOLOv7+CBAM+CNeB的模型优化机制.
一是在backbone部分, 在主干网络的每个C2f模块之后接一个CBAM (convolutional block attention module)混合注意力机制层, 使网络可以更容易的捕获到目标的空间位置信息、削弱无关的背景干扰从而提高检测精度. 二是在head部分, 添加基于ConvNeXt模型的CNeB模块, 通过引入交叉通道连接和组合卷积核来增强网络的表达能力, 可以帮助网络更好地理解图像中的复杂特征, 以提高网络性能和检测效率.
(2)模型优化实验结果
实验操作系统为64位Windows 11; 硬件环境主要包括: AMD Ryzen 7 5800H CPU @ 3.20 GHz、内存16 GB、训练环境中显卡型号为NVIDIA GeForce RTX 3060 Laptop GPU 6 GB、深度学习框架为PyTorch, 并使用NVIDIA CUDA 11.6并行运算驱动加速训练.
为验证优化后的YOLOv7模型的有效性, 将优化模型与YOLOv7、YOLOv7-tiny、YOLOv5m、YOLOv5n等模型进行定量对比. 采用无人机拍摄及网络搜集的共4000张训练图像的牛数据集, 训练批次(batch_size)设置为16, 训练轮数(epochs)设置为50. 实验结果如表2所示, 优化后的YOLOv7模型的准确率最高, 达到了86.3%, 且优化模型的检测速度最快, 每秒处理的帧数(FPS)为294, 超过了同级的其他YOLO版本模型, 模型优化后检测精度显著提高.
4.3 识别算法轻量化
为提高系统运行效率以满足精准养殖应用快捷调用, 并着眼于今后将识别算法模块移植到无人机终端, 系统以加快运算时间、降低内存占用为目标, 对识别算法进行轻量化设计.
使用深度可分离卷积代替普通卷积层, 可以使YOLO轻量化[19]. 因为深度可分离卷积的参数量和计算量均比普通卷积层大幅降低, 而参数量决定网络的大小, 即占用内存或者显存的大小, 计算量决定网络运行的快慢.
如图7所示, 普通卷积每1个通道都有1个三维卷积核对应图像的RGB, 3个通道同时进行特征提取; 而深度可分离卷积在每 1个通道中, 由3个二维卷积核分别对R、G、B 这3个通道特征提取, 最终将每个通道所提取到的3种特征运用1个三维卷积核进行特征叠加.
因此, 按照普通卷积和深度可分离卷积的计算公式[20], 以无人机采集图片的尺寸为: 640×640, 卷积核为3×3, 使用NVIDIA显卡运行测试, 轻量化前后对比结果如表3所示.
可见, 采用深度可分离卷积代替普通卷积层后, YOLOv7算法模型的参数量、计算量均大幅下降, 对内存的占用也显著降低, 识别算法轻量化效果明显.
4.4 软件模块设计为通过方便快捷的人机环境进行识别操作, 将识别算法进行软件模块化设计.
如图8所示, 软件使用Python语言结合pyQT5 模块开发, 管理人员可以设定待识别养殖动物数据集的文件路径和识别结果输出路径, 开始识别后软件实时显示识别进度, 完成识别后结果输出到指定路径.
最后, 为便于各类精准养殖应用调用, 识别结果按养殖动物行为和数量分类汇聚数据, 形成数据调用标准接口.
5 总结与展望本文针对养殖场尤其是大型放养类养殖场的实际场景需求, 提出一种基于无人机直播联动的养殖动物视觉识别系统, 既改善了无人机普通拍摄采集样本存在的不足, 又针对应用场景对识别算法模型进行了优化和轻量化, 具有适应性强、便捷度高、运行高效的特点.
系统可为养殖动物的放养时间科学调配、饲料资源动态匹配、健康档案跟踪管理等精准养殖应用提供统一的数据支撑, 降低各类精准养殖系统重复设计成本和分散管理成本. 系统今后需进一步优化视频转换效率、样本标注效率和算法模型识别精度, 并加强各软件模块的无缝衔接和整体集成, 形成智能化、一体化程度更高的识别系统.
[1] |
石芳权, 王辉, 罗清尧, 等. 智慧养殖管理模式在养猪生产中的应用(下). 猪业科学, 2021, 38(10): 88-92. DOI:10.3969/j.issn.1673-5358.2021.10.021 |
[2] |
钟卫乔, 刘志丽. 基于人脸识别智慧养殖安防系统的设计与实现. 农家参谋, 2020(15): 236. |
[3] |
王滨, 邓昌顺. 生物安全智慧监管平台在生猪养殖领域的应用分析. 中国猪业, 2019, 14(7): 21-24. DOI:10.3969/j.issn.1673-4645.2019.07.007 |
[4] |
邱福生, 杨建平, 邵绪威. 基于GIS的无人机航迹规划软件的开发. 沈阳航空航天大学学报, 2014, 31(2): 1-4. DOI:10.3969/j.issn.2095-1248.2014.02.001 |
[5] |
曾懿辉, 何通, 郭圣, 等. 基于差分定位的输电线路多旋翼无人机智能巡检. 中国电力, 2019, 52(7): 24-30. |
[6] |
宋一凡, 王娟, 李建丽, 等. 精准化养殖模式下牛只个体识别方法综述. 黑龙江畜牧兽医, 2021, (22): 48–53, 148–149.
|
[7] |
许贝贝, 王文生, 郭雷风, 等. 基于非接触式的牛只身份识别研究进展与展望. 中国农业科技导报, 2020, 22(7): 79-89. |
[8] |
吴宇峰, 李一鸣, 赵远洋, 等. 基于计算机视觉的奶牛体况评分研究综述. 农业机械学报, 2021, 52(S1): 268-275. DOI:10.6041/j.issn.1000-1298.2021.S0.033 |
[9] |
Yin XQ, Wu DH, Shang YY, et al. Using an EfficientNet-LSTM for the recognition of single Cow’s motion behaviours in a complicated environment. Computers and Electronics in Agriculture, 2020, 177: 105707. DOI:10.1016/j.compag.2020.105707 |
[10] |
杨威. 基于视频分析的圈养豪猪检测及基本行为识别 [硕士学位论文]. 广州: 华南农业大学, 2017.
|
[11] |
秦箐, 刘志红, 赵存, 等. 机器视觉技术在畜牧业中的应用. 农业工程, 2021, 11(7): 27-33. DOI:10.3969/j.issn.2095-1795.2021.07.006 |
[12] |
Wu DH, Wu Q, Yin XQ, et al. Lameness detection of dairy cows based on the YOLOv3 deep learning algorithm and a relative step size characteristic vector. Biosystems Engineering, 2020, 189: 150-163. DOI:10.1016/j.biosystemseng.2019.11.017 |
[13] |
白强, 高荣华, 赵春江, 等. 基于改进YOLOV5s网络的奶牛多尺度行为识别方法. 农业工程学报, 2022, 38(12): 163-172. DOI:10.11975/j.issn.1002-6819.2022.12.019 |
[14] |
刘琪伟, 郭小燕, 李纯斌, 等. 基于改进YOLOv5的牛个体图像识别方法. 软件工程, 2023, 26(9): 42-47, 58. |
[15] |
郑维玮, 邓国顺, 裴亚南. 无人机直播系统、无人机直播方法和直播推流服务器: 中国, CN110493607A. 2019-11-22.
|
[16] |
叶扬, 徐精文, 杨德久, 等. 基于无人机的直播联动控制方法、系统、终端及介质: 中国, CN116389783B. 2023-08-11.
|
[17] |
石镇岳, 侯婷, 苏勇东. 改进YOLOv7的交通标志检测算法. 计算机系统应用, 2023, 32(10): 157-165. DOI:10.15888/j.cnki.csa.009227 |
[18] |
王宏乐, 叶全洲, 王兴林, 等. 基于YOLOv7的无人机影像稻穗计数方法研究. 广东农业科学, 2023, 50(7): 74-82. |
[19] |
甄然, 刘颖, 孟凡华, 等. 基于YOLOV5的轻量化目标检测算法. 无线电工程, 2023, 53(6): 1242-1250. DOI:10.3969/j.issn.1003-3106.2023.06.002 |
[20] |
Syamala Rao P, SaradhiVarma GP, Mutukuri R. Effective and high computing algorithms for convolution neural networks. International Journal of Engineering & Technology, 2018, 7(3): 66-71. |