APP下载

基于YOLOv5 算法的无人机伤员搜救系统设计

2024-01-08廖骏明徐逸晖郑善豪卓伟豪廖绍成

科技创新与应用 2024年1期
关键词:图像识别伤员螺旋桨

廖骏明,徐逸晖,郑 潞,郑善豪,卓伟豪,廖绍成

(中国矿业大学,江苏 徐州 221116)

伤员搜救是指对灾害现场处于危险中的人员进行搜寻和救援行动,其目标是减少人员伤亡。伤员搜救面临着搜救环境危险、时间紧迫、光线昏暗等困难。近年来,无人机(Unmanned Aerial Vehicle,UAV)越来越多地被用作辅助救援工具。无人机可以穿越人类难以到达的地区,如山区、岛屿等,无人机的携带能力可以在救援人员到达前运送药品和救援设备。与直升机相比,多旋翼无人机具有操作简单、无跑道起降、体积小和可靠性高等优点,适合在搜救工作中应用[1-3]。

在传统的搜救工作中,救援人员可能错过被搜救的人员。随着嵌入式GPU 性能提升和成本下降,在无人机平台运行图像识别和神经网络模型的门槛大大降低。使用算法自动检测图像中可能存在的人类,可提高救援工作的效率。本文研究近年流行的YOLO 目标检测算法,此算法平衡了识别的准确率和性能,适用于无人机平台,并且在开源社区的努力下仍在迭代优化[4]。

1 无人机系统

1.1 无人机硬件组成

四旋翼无人机系统的硬件模块可以划分为飞行控制系统、动力系统和视觉识别系统3 个子系统,各个硬件模块的关系图如图1 所示。

图1 无人机硬件关系图

3 个子系统的介绍如下。

1)飞行控制系统负责无人机的姿态控制、导航等功能,是无人机的核心部分。飞行控制系统由PX4 飞控、树莓派4B 计算机和GPS 模块等组成。

2)飞行动力系统负责提供无人机的电力,是无人机飞行的基础。动力系统由电机、电调、桨叶、电池和分电板等硬件组成。

3)视觉识别系统负责对无人机周围的环境进行感知,是无人机实现伤员搜救任务的关键。视觉识别系统由摄像头、数据传输线、激光雷达等硬件,以及图像处理软件组成。

实验无人机的硬件参数见表1,本平台选用常见硬件,并保留后续升级其他模块的裕量。

表1 无人机硬件参数

组装完成的无人机实物照片如图2 所示。

图2 组装完成的无人机实物

1.2 无人机飞行原理

四旋翼无人机的组装结构可分为“+”型和“×”型2种类型,二者飞行原理相似。本文采用更为常见的“×”型,其4 个电机在对角线位置。四旋翼无人机的运动是通过控制4 个螺旋桨的速度,改变力和扭矩来实现的,示意图如图3 所示。

图3 “×”型四旋翼无人机示意图

无人机的飞行姿态可以由以下公式归纳[5]

式中:ψ、θ、ϕ分别表示偏航角、俯仰角和翻滚角,°;Ix、Iy、Iz是四旋翼三轴的转动惯量,kg·m2;U1是4 个螺旋桨产生的总力,N;U2、U3、U4是翻滚、俯仰和偏航三轴的力矩,N·m。

四旋翼无人机通常由2 个PID 控制回路控制。一个是用于姿态控制的内环;另一个是用于位置控制的外环。为了求解真正的控制量,即螺旋桨的速度,需要建立螺旋桨与U1、U2、U3、U4之间的关系。在图3 所示的结构中,关系如下

式中:ω1(i=1,2,3,4)是对应电机的角速度,rad/s;CT是螺旋桨拉力系数;CM是螺旋桨转矩系数;d是无人机中心到电机的距离,m。

四旋翼无人机组装完成后,需要进行测试,测试过程需要注意人身和设备安全。首先,检查接线是否正确、各部件连接点是否牢固、飞控是否报警。如果一切正常,可以安装螺旋桨后进行室外飞行。

2 基于YOLOv5 算法的伤员图像识别

2.1 YOLOv5 介绍

YOLO 算法是一种基于深度学习的单阶段目标检测算法。YOLO 算法的特点是速度快、通用性强,近年在无人机目标检测领域越来越受欢迎。本文采用的YOLOv5 由3 部分组成:特征提取层(Backbone)、特征融合层(Neck)和预测层(Head)。根据网络的深度和宽度差异,YOLOv5 提供了5 个不同尺寸的版本。对于无人机平台,考虑计算机的性能较弱,推荐使用YOLOv5s 模型。

2.2 伤员图像识别

首先准备数据集,模拟伤员姿势在不同的角度、背景、光线下拍摄500 张照片,使用LabelImg 软件对图片进行标注。之后调用YOLO 程序训练神经网络。将500 张照片样本随机划分为300 张训练集,100 张验证集,100 张测试集。训练所用计算机的硬件配置见表2,训练耗时2.1 h。

表2 训练计算机硬件配置

使用训练好的权重模型对进行识别,原始图像和识别结果如图4 所示。

图4 原始图像和识别后的图像

经过100 张样本图片的测试,训练的模型识别出96 张图片中的人物。100 张样本的最长、最短、平均识别时间分别为1.21、0.31、0.54 s。

3 系统界面设计

3.1 PyQt5 介绍

Qt 是一个跨平台的C++应用程序开发框架,它为开发者提供了建立图形用户界面(Graphical User Interface,GUI)所需的基本功能,被广泛用于应用程序开发。而PyQt5 是Qt5 框架在Python 语言下的实现,PyQt5 提供了一个基本的窗口控件集合,具有面向对象、高性能、开发灵活等诸多优点。由于PyQt5 框架与YOLO 算法都是基于Python 编程语言开发的,所以可以很方便地将二者整合到一起。结合Python 大量第三方库可以开发出许多强大功能,例如图像识别、音视频数据分析等。

3.2 系统界面设计

在开发软件前,首先进行软件功能的规划,无人机伤员搜救系统应包括以下功能。

1)实时图像识别。本功能包含摄像头设备选择、摄像头实时图像显示、识别结果展示3 部分。可通过下拉列表切换多个摄像头设备,通过点击按钮切换是否读取摄像头的图像流,并将摄像头的识别结果显示在软件界面中。

2)无人机实时参数。本区域显示了无人机的高度、速度、电池电压和系统状态等关键信息。ROS 与PyQt5程序之间使用Socket 通信协议传输数据。

3)系统日志。本区域记录系统运行的关键信息,右侧2 个按钮可以实现日志清除和导出功能。

基于上述功能规划,在PyQt5 的Qt 设计师(QtDesigner)程序中设计无人机伤员搜救系统的软件界面,并保存窗口布局为.ui 文件,供后续程序代码调用。本程序使用了PyQt5 中的按钮(PushButton)、文本标签(Label)、组合框(ComboBox)和文本框(TextEdit)分组框(Group Box)等控件,软件运行的截图如图5 所示。

图5 软件运行截图

启动软件后,软件以2 s 为周期定时刷新无人机参数,数据的自动刷新使用PyQt5 中的QTimer 定时器组件实现。随后软件等待用户选择并打开摄像头,并读取图像流,调用YOLO 算法识别,并将识别结果显示在图片区域中。

软件响应用户的操作利用Qt 特有的“信号和槽”机制实现。当用户点击界面的按钮或在文本框中输入文字时,会产生一个“信号”,驱动执行对应“槽”函数中的代码,从而改变界面的显示效果。这是Qt 与其他GUI 框架相比的独特机制,可以简化程序开发的流程。

4 结束语

本文使用YOLOv5 算法展示了对模拟伤员图片的检测。实验结果表明,采用无人机救援和YOLO 目标检测算法设计的救援系统具有视角广、识别时间短、工作效率高等优点。对于模拟训练集,伤员平均识别率在95%以上,从而确保救援工作的快速开展,为搜救行动提供有效的支持。

但是本文的无人机救援系统还存在续航时间短、通信不稳定等问题,未来多机协同、自主飞行等技术的普遍应用,无人机将在更多领域为人类社会做出贡献。下一步工作可以将光学和热成像技术结合,以进一步减少伤员的漏检率。还可以扩充数据集和标注,分类坐、蹲、躺等不同的伤员姿态。

猜你喜欢

图像识别伤员螺旋桨
伤员呵护队
基于CFD的螺旋桨拉力确定方法
李克强 全力组织抢险救援和救治伤员
基于Resnet-50的猫狗图像识别
高速公路图像识别技术应用探讨
图像识别在物联网上的应用
图像识别在水质检测中的应用
烧伤伤员综合救治卫勤保障经验
自主研制生产我国第一的螺旋桨
亟待建立重大事件伤员救助基金