邵延华, 张得沛, 楚红雨, 常志远, 展华益, 饶云波
(1.西南科技大学 信息工程学院,四川 绵阳 621000;2.西北大学 电子工程和计算机系,美国 伊利诺斯州 埃文斯顿 60208;3.电子科技大学 信息与软件工程学院,四川 成都 610054)
野外人员失踪事件每年都时有发生,事件发生后,在48h内对失踪人员进行搜救并给予必要的医疗救助是救援人员面临的紧迫任务。由于野外环境的通信、医疗、气候和地形等条件较差,若同时伴随自然地质灾害发生,通常将会使得救援人员无法在救援现场开展及时有效的搜救[1]。2008年四川汶川地震和2010年玉树地震,因地震而导致的塌方和泥石流等自然地质灾害均给搜救工作带来了极大的困难。因此,寻找一种便捷快速以及低廉的搜救方式对野外救援工作具有重要的意义。
本文设计了一种可以24 h作业的基于红外视觉的野外自主搜救无人机。通过机载红外热像仪采集红外人体图像并提取方向梯度直方图(histogram of oriented gradient,HOG)特征,结合线性支持向量机(support vector machine,SVM)分类器实现对待救援人员的人体检测。
在油菜花田、森林及道路等多种实际场景中测试表明,该系统工作稳定,能够满足实际使用需求。
搜救飞行机器人采用四旋翼架构,为了保证顺利完成搜救任务,四旋翼飞行器在具有一定负载能力的基础上需要尽可能提高其续航时间。在四旋翼飞行器设计过程中,机架、电机、螺旋桨以及电池都决定了飞行器的负载能力以及续航时间。本文设计的四旋翼飞行器重量1.5 kg,电池5 200 mA[2]。
当有人员遇险后,搜救无人机将飞到事故发生区域上空,救援人员可通过地面站软件对搜救无人机的飞行航迹进行螺旋式规划,之后搜救无人机将依预定航迹进行搜寻。一旦检测到待救援人员,便立刻将待救援人员的地理坐标发送回地面站以指导救援人员开展救援工作,给现场决策提供帮助,具体流程如图1所示。
图1 搜救无人机搜救方案
传统的空中搜救方式多通过无人机搭载高清摄像头,但是高清摄像头在夜晚或光照较暗的环境中局限性十分明显[3]。而红外热像仪不依赖可见光,可在一定程度上打破受光线影响的局限。本文主要从样本获取、HOG特征提取、SVM训练分类及目标定位4部分介绍红外视觉人体检测的技术路线。
HOG+SVM是一种十分经典有效的人体目标检测方法[4],速度和检出效果的综合平衡性能较好。OpenCV提供的行人检测器模型是根据普通相机拍摄的图像训练而来,鉴于红外成像与可见光成像的区别,该模型并不适合红外人体目标检测。为了提高HOG算法对红外人体目标检测的准确性,需标记相应的红外数据来训练SVM。
为实现在复杂环境下的正确分类,合理选择训练集对实现正确分类至关重要。本文在自建训练集时遵循了以下原则:1) 避免不平衡样本集 ;2) 人体目标样本具有代表性;3) 背景样本类型丰富。具体训练集构建方法为:通过搜救无人机机载的红外热像仪分别在道路、森林、灌木丛、油菜地等典型野外环境采集了大量的人体红外图像。以手动标定的方式标出了图像中人体目标,并将其缩放到64像素×128像素作为SVM的正样本;在不含人体目标的图像中随机截取64像素×128像素的图片作为负样本。最终完成正样本数2 200,负样本数2 200。部分正负样本如图2。
图2 自建数据集中部分正负样本实例
HOG特征对光照变化和梯度特征的少量变化具有稳定性,能够较准确地表达图像中的人体目标的特征,因而被广泛应用于人体目标检测[6,7]。
Dalal N[8]对比分析了不同检测窗口对于人体目标检测效果的影响,分析结果表明,当检测窗口为64像素×128像素时对人体目标检测具有最佳效果,因此本文采用样本尺寸为64像素×128像素的人体尺寸来提取HOG特征,并以8像素×8像素个像素点为单位将图像划分为若干个小cell,然后将4个cell组成一个块(block),如图3所示。
图3 HOG特征提取
对原图像进行实际运算时,对图像采用[-1 0 1]和[-1 0 1]T梯度算子进行卷积运算,可得到在水平方向和垂直方向的梯度分量[9],然后再利用式(1)和式(2)得到该像素点的梯度大小和方向
(1)
(2)
式中Gx(x,y)和Gy(x,y)分别为图像中像素点(x,y)处的水平和垂直方向梯度与该像素灰度值H(x,y)的关系
Gx(x,y)=H(x+1,y)-H(x-1,y)
(3)
Gy(x,y)=H(x,y+1)-H(x,y-1)
(4)
对每个cell的梯度信息进行统计,本文采用9个bin的直方图来统计表示,即将其梯度方向360°分成9个方向块来表示该cell的梯度方向直方图。最终将block内所有cell归一化之后的特征向量串联起来便可得到该block的HOG特征。
目标识别是红外人体目标检测的核心,主要验证候选区域是否包含红外人体目标。目前,在人体检测中最常用的方法之一为SVM对图像HOG特征进行分类识别[10]。
前期获得正负样本后,分别计算正负样本图像的HOG描述子特征向量,并指定正负样本所属的类别,训练SVM检测模型,并保存为XML文件。
然后根据其中的支持向量和参数生成OpenCV中的HOG描述子可用的检测子参数,再使用多尺度检测对负样本原图进行行人检测,将所有检测到的目标截取并保存为图片,将其加入负样本集合中作为难例(hard example)重新训练SVM,获得最终检测子,以提高SVM分类器的准确性[11]。其识别过程如图4所示。
图4 人体目标识别过程
目前民用GPS的位置更新速率通常为10 Hz,水平圆概率误差一般能够达到2 m,而垂直方向的误差通常较大。全球定位系统(global positioning system,GPS)位置信息跳变大,更新速率较低,但静态特性较好;气压计测得的高度信息连续,但存在漂移现象;惯导系统对加速度进行双重积分求出位移,数据更新速率较快,动态性能较好,但容易出现发散现象。因此,本文采用互补滤波对GPS、气压计以及惯导数据进行融合。
遇险人员位置信息可以通过搜救无人机自身位置与救援目标相对于飞行机器人的相对位置进行精确计算,如图5。
图5 遇险地定位示意
由图可知,无人机的坐标(xb,yb,zb)可由GPS数据获得,无人机高度即为zb,有
R=zb×tanθ
(5)
当红外热像仪安装时θ角已经确定,因此搜寻范围即为以GPS坐标(xb,yb,zb)为中心,以当前电子罗盘的指向同时以距离R进行搜救。
为测试野外自主搜救无人机在野外搜寻遇险人员的性能,进行了实际模拟测试。测试场地包括:油菜花田、森林及道路等。无人机飞控系统采用STM32F427处理器和μC/OS—Ⅲ操作系统;图像处理系统采用英伟达TK1处理器、Ubuntu16.04和OpenCV 2.4.13。部分检测效果如图6。
图6 不同环境下的检测结果
从图6可知,该野外自主搜救无人机能够较好实现人体目标的红外图像检测,可以完成野外复杂环境下遇险人员的搜寻工作。规避了森林等具有高遮挡性的环境对检测的影响。测试表明,红外人体检测算法具有较好的检测效果。多场景检测效果如表1所示。
表1 多场景目标检测效果
由测试结果可以看出,当环境越复杂、遮挡率越高,漏检率和误检率越大以及平均每帧运行时间越长,这也与理论上的分析结果一致,说明了测试结果具有可信性。
为了测试目标定位的可靠性和准确性,指定一个目标人员在固定位置静止不动,且佩戴GPS定位设备对自身位置进行定位;手动控制搜救飞行机器人使其在目标人员附近50 m高空巡飞。搜救飞行机器人对地面人员目标进行检测并计算其地理位置。多次实际场景实验可知,本文的搜救飞行机器人对地面人员目标位置的计算结果与地面目标人员佩戴的GPS定位器给出的位置的误差不超过3 m,一般能够满足对野外遇险人员搜救的定位精度。
本文从搜救无人机方案设计、红外视觉人体检测及定位和实验结果分析等三个方面对野外自主搜救无人机的进行了研究与实现。识别算法采用了HOG+SVM相结合的方法实现了红外人体目标的检测。测试结果表明:所设计的基于红外视觉的野外自主搜救无人机可依据地面站所预设的航迹进行自主搜寻,在人体目标检测及定位方面具有较高的识别率和定位准确性,能够完成野外环境下的自主搜救任务。