基于助老机器人的行人检测与跟踪算法研究

2019-03-31 09:54胡姗姗
关键词:助老行人样本

李 丹,胡姗姗,夏 冰

(1.安徽工业大学电气与信息工程学院,安徽马鞍山243032;2.马钢股份有限公司设备管理部,安徽马鞍山243000)

随着人口老龄化社会的到来及城市化进程的加快,到2020年我国空巢老人将增长至1.18亿[1],到2025年日本将有100万的护理员短缺[2],老年护理的总体趋势需求大于供给,到2050年美国65岁及65岁以上的人口将上升至26%[3],由此产生的更复杂的问题是老年护理费用变得难以控制。助老服务机器人作为当前社会进步的标志性产品,可实现对老人的检测与跟踪,对老年护理将发挥越来越大的作用。

一直以来,国内外很多高校和公司都开展了运动目标检测与跟踪的相关研究。Gavrila等[4]提出了一种基于行人模板匹配的目标检测算法,但该算法仅建立了约2 500个行人模板,远不能满足要求且运算量过大、实时性不强;Dalal 等[5]提出了基于方向梯度直方图(HOG)的行人检测算法,该算法很好地描述了行人的形状、外观信息,但同样存在实时性不强等缺点。视觉目标跟踪根据观测模型可分为生成式和判别式两种方法,近年来判别式跟踪方法逐渐占据主流,其中包括效果较好的相关滤波[6-7]和深度学习的判别式方法。Kalal等[8]结合光流法提出了一种单目标长时间的跟踪算法,该算法主要用于解决跟踪过程中目标发生形变、部分遮挡等问题,但目标遮挡后易出现漂移;Henriques等[9]提出了核相关滤波(KCF)算法,该算法最大优点是将目标区域形成循环矩阵,并成功利用循环矩阵在傅里叶空间可对角化的性质将矩阵运算转化为向量的Hadamad积,大大降低运算量,满足实时性要求。但KCF算法需要人工给定搜索窗口来对目标进行跟踪,无法实现自主检测跟踪,并且KCF算法没有重定位模块,在目标漂移或丢失时,无法重新定位目标导致跟踪失败。为了解决上述问题,并满足精度与鲁棒性的要求,文中提出一种针对行人的自动检测与跟踪算法,结合HOG和SVM方法进行行人检测,KCF自动跟踪,以期实现在复杂环境中对目标的准确搜索与跟踪。

1 行人检测与跟踪算法

本算法通过提取行人的HOG特征,使用SVM分类器训练特征集,生成行人检测模型。然后,通过滑动窗口搜索匹配方法遍历摄像头采集的图像。最后,将检测到的行人作为初始跟踪目标,使用KCF算法预测下一帧行人位置进行目标跟踪,当目标突然消失时,利用行人检测模型重新检测行人再进行跟踪。

1.1 基于HOG和SVM的行人检测

行人检测的主要任务是找出图像或视频中的行人,包括位置和大小,并用矩形框表示。考虑到复杂环境行人的检测,采用基于全局特征中的HOG 特征算法,创建图像梯度方向分布直方图来构成特征,并结合Cortes等[10]提出的SVM进行分类,具体实现流程如下。

首先为减少光照影响,采用Gamma矫正法[11]对图像进行归一化,通过压缩处理将其转化为灰度图,有效降低图像的局部阴影和光照变化,其中像素点(x,y)压缩公式为

通过计算图像横坐标与纵坐标方向的梯度来计算每个像素位置的梯度方向值,梯度计算公式为

式中Gx(x,y),Gy(x,y),H(x,y)分别表示输入图像中像素点(x,y)处的横坐标方向梯度、纵坐标方向梯度和像素值。则像素点(x,y)处的梯度幅值和梯度方向分别为:

接着将图像分成若干个单元格,对单元格内每个像素用梯度方向在直方图中进行加权投影,得到该单元格的梯度方向直方图,即该单元格的特征向量,这样能够保持图像中人体对象的姿势和外观的弱敏感性。为了减小局部光照变化及前景-背景对比度变化导致梯度强度变化范围变大的影响,需对梯度强度做归一化,通过将各单元格组合成大的、空间上连通的区间,形成HOG描述符。该算法可视化图像如图1。最后将检测窗口中重叠的块进行HOG特征向量收集,分别提取正负样本的HOG特征,正样本HOG特征标记为1,负样本HOG特征标记为0。然后使用线性SVM分类器进行初始训练,生成最初检测器,再使用负样本进行行人检测,生成分类错误的负样本HOG特征,结合上一步的特征进行重训练,生成最终的检测器。二次训练能够有效降低每个窗口5%的误报率[5]。

图1 HOG算法的可视化图像Fig.1 Visualize images of HOG algorithm

1.2 基于KCF的目标跟踪

KCF跟踪算法每一帧可分为训练、检测、更新三个阶段。首先训练初始线性岭回归(linear regression)模型,然后通过该模型检测下一帧预测位置是否为目标,再使用新的检测结果更新训练集从而更新模型,主要步骤如下。

1)训练阶段 通过行人检测算法检测距离机器人系统最近的行人作为目标,对框出的目标图像块z进行循环移位,从而得到更多的训练样本xi,通过训练线性岭回归模型,找到式(4)。式中ω为列向量,表示权重系数。

使训练样本xi与回归目标yi之间的误差函数值最小

其中λ 为控制过拟合的正则参数。写成矩阵形式

式中:X=[x1,x2,…,xn]T的每一行表示一个向量;y 是列向量,每个元素对应一个样本的标签,由此可获得线性回归的最小二乘解

考虑实际应用中非线性问题中的误差会很大,引入核函数

式中φ(x)和φ(z)为映射函数,根据Representer定理[12]可得,ω 是样本x 的线性组合,即

得到

式中:K为所有训练样本的相关矩阵,Kij=k(xi,yj),且为循环矩阵,根据其性质,对上式进行对角化,得kxx表示循环矩阵的第一行向量。

2)检测阶段 通过训练得到α,即得到线性回归方程中的ω,提取候选目标的特征为z,循环移位后得到模型对z 的输出响应,经过离散傅里叶变换得

响应最大的z 即为检测到的当前帧的中心位置。

3)更新阶段 滤波器模型表示组成(α,δ0),通过式(13)更新滤波器系数α 和跟踪模型参数δ

式中:t为帧数;γ 为学习率,介于0~1之间,γ 太大易跟丢,太小鲁棒性差,根据实际情况进行调节。

如图2所示,系统框架可分为训练过程、检测过程和跟踪过程三部分。训练分为行人样本图片收集,正负样本的特征提取及使用分类器训练;检测部分包括待检测行人的特征提取及使用已训练好的SVM分类器进行判别;跟踪部分主要通过循环移位跟踪目标区域,获取大量训练分类器样本,使用核函数计算候选区域与跟踪目标的相似度,选取响应最大的候选区域作为新的跟踪目标。当目标突然消失时,暂停跟踪,使用行人检测模型重新检测定位目标再跟踪。

图2 行人检测与跟踪流程图Fig.2 Pedestrian detection and tracking flowchart

2 实验结果与分析

为验证文中提出的基于助老机器人行人检测与跟踪算法,在Ubuntu16.04环境下,基于ROS平台设计并完成行人检测与跟踪系统,在Turtlebot移动平台上搭载处理器为Intel Core i5、主频1.7 GHz、内存4 GB的笔记本电脑和Kinect2摄像头,该摄像头不仅价格低廉、具有普通相机的二维信息,还有深度信息,可保证对非平面物体3D轮廓的必要鲁棒性[13]。根据摄像头获取周围环境的视觉和深度信息,检测并跟踪行人。移动平台在跟踪过程中要保持机器人与摄像头的坐标系统统一,因此需将摄像头获得的3D坐标通过TF(TransForm)变换为与机器人一致的坐标系统,转换关系如图3(a)。其中:O点为摄像头所在位置;Z轴正方向为Kinect2摄像头正前方;x0,y0为机器人坐标系。同时以变换后的坐标中心为原点计算行人的世界坐标xw,yw,计算原理如图3(b)。其中:xv,yv为目标在图像上的坐标,f 为摄像头的焦距;zw为深度距离;cx,cy分别为图像的长度和宽度,可得式(14)中的世界坐标。

图3 Kinect2与移动平台坐标系对应关系Fig.3 Correspondence between Kinect2 and mobile platform coordinate system

2.1 行人检测模型训练与检测

实验中,考虑到本系统主要用于室内对老人的检测与跟踪,选择INRIA数据集[5]和自制数据集,将数据集中部分含有行人的部分进行标记,采用2 456张已标记行人的目标作为正样本,16 000张不含行人图片作为负样本,组成行人检测的训练数据集。首次训练得到的行人模型分别对已标定和未标定的测试数据集进行检测,效果如图4。

图4 首次训练效果Fig.4 First time training effect

图4中的方框代表检测出的行人。从图4可看出,(a)~(d)为已标定的正负样本,(e)~(h)为未标定的正负样本,检测结果中方框的数量较多,与实际差距较大,首次训练的检测效果较差,误检率较高。为解决这一问题,文中通过自举法生成9 876张首次检测生成的难例(hard example)样本,进行二次训练得到最终的行人检测模型,检测效果如图5。

从图5可看出,(a)~(d)为已标定的正负样本,(e)~(h)为未标定的正负样本,检测结果中的方框数量显著减少,与实际相近,自举法二次训练后有效降低了误检率。随机采集300张测试样本(其中测试样本中不包含训练集),并采用检测率(detection rate,Dr)和误检率(false detection rate,Fr)作为最终检测模型测试的评价标准,其中

图5 自举法训练模型的检测结果Fig.5 Test results of bootstrap training model

式中:Tp为人工标记同时使用行人检测模型检测到行人目标的数量;Fn为人工标记同时使用行人检测模型但未检测到行人目标的数量;Fp为人工未标记同时使用行人检测模型但检测到行人目标的数量。检测实验结果如表1。由表1可知,使用行人检测模型检测行人的正确率为94.30%,误检率为2.75%,表明本文的检测算法取得了较好的检测效果。

2.2 基于行人检测和KCF的目标跟踪

根据目标在世界坐标系中的位置,驱动底盘向目标移动,同时不断跟踪目标,更新目标的世界坐标,并更新底盘的方向和速度。KCF算法中的相关参数如表2。

实验分3 组进行测试,每组实验中的目标都会移动、改变位姿或突然消失以检测跟踪算法的鲁棒性,其中一次实验结果如图6。

表3 为3 组实验测试统计结果,每组实验分别统计平均帧率、目标跟踪成功率,移动成功次数以及移动成功率。从表3可以看出,目标跟踪的实时性效果较好,机器人也能顺利地移动到目标附近。该方法可快速检测到目标并驱动机器人实时跟踪,具有一定的实用价值。将行人检测算法与KCF算法结合,无需人工标定起始跟踪帧,就可实现自动检测跟踪,当目标突然消失时,可重新检测并跟踪。

表1 行人目标检测的准确性Tab.1 Accuracy of pedestrian target detection

表2 KCF算法相关参数Tab.2 Related parameters of KCF algorithm

表3 跟踪测试结果Tab.3 Results of tracking test

图6 跟踪测试效果Fig.6 Effect of tracking test

3 结 论

研究助老机器人在模拟环境下行人检测与跟踪技术,机器人在搜索的过程中采用基于HOG 特征和SVM的行人检测算法自主识别行人,同时采用KCF算法实时驱动机器人跟踪行人到其附近,并且可重新检测跟踪对于目标短暂的消失。实验结果表明,基于助老机器人的行人检测与跟踪算法具有较高的准确性和鲁棒性。由于只是在模拟环境中进行测试,助老机器人在面对目标长时间消失、形变严重等特殊情况下鲁棒性仍存在一定不足,故关于助老机器人的避障和自主导航是下一步的研究重点。

猜你喜欢
助老行人样本
北京发放助老就医出行补贴
南京启用首批“助老车站”
毒舌出没,行人避让
用样本估计总体复习点拨
用“八心八促”方法做好助老工作
“买菜叔”的21年无偿助老爱心路
路不为寻找者而设
推动医改的“直销样本”
我是行人
随机微分方程的样本Lyapunov二次型估计