掌桥专利:专业的专利平台
掌桥专利
首页

一种多目标检测及跟踪方法、系统、存储介质及应用

文献发布时间:2023-06-19 11:19:16


一种多目标检测及跟踪方法、系统、存储介质及应用

技术领域

本发明属于目标检测和跟踪技术领域,尤其涉及一种多目标检测及跟踪方法、系统、存储介质及应用。

背景技术

目前:在计算机研究领域中,对目标的检测和跟踪是重要且基本的任务。目前,利用计算机相关技术在对检测目标的应用有很多,在各个行业均有应用范围,比如图像识别、车辆检测、智能监控等。对目标的跟踪也有不少解决方案,比较常用的有计算机视觉检测。基于视觉传感器的检测方案比较直观和精准,发展也比较成熟。但是它也有很多不足之处,比如受光线影响较大,难以分辨混杂在一起的多目标的物体,算法比较消耗资源等。激光雷达则是一种主动式的测距传感器,可以比较稳定的得到周围的物体的方位,不会受到环境和光线的影响。在现阶段,人口老龄化是一个对全世界严峻的挑战,而中国社会的快速老龄化更是一个沉重的社会负担,对养老服务方面的需求已经非常迫切。对老年人的行走监测有着非常重要的作用,通过对老人行走的监测,可以及时了解老人的状况,大大降低在居家过程中突发的一些风险。同时,也可以结合其他分析系统,对老人的行为、健康状态进行更全面的分析。

在计算机研究领域中,对目标的检测和跟踪是重要且基本的任务。人类的感官是与外界沟通的窗口和桥梁,它可以识别周围的物体,判断与这些物体的联系,建立人类思维与周围世界的某种对应关系。例如,视觉系统是人类感知的最重要来源,也是获取外部信息的最重要途径。然而,由于人的精力有限,人的视觉有限,人的视觉在各个领域的应用受到极大的限制,甚至效率低下。因此,随着计算机技术的飞速发展,使计算机能够处理这些信息,改善人类的诸多缺陷,已成为一个非常有吸引力的研究课题。随着计算机硬件和智能化的发展,对目标进行模式识别、目标提取等已广泛应用于本发明日常生活中,如车辆检测、人流统计、智能监控等。目标跟踪技术将深入改变本发明社会,方便人们的调查,提高社会的安全性。

现有的目标识别可以利用许多计算机手段进行,例如计算机视觉,可以使计算机能够感知环境中物体的几何信息,包括物体的形状、位置、姿态、运动等,并对其进行描述、存储、识别和理解。视觉感知可以处理比较复杂的颜色信息,是比较理想的传感器,而且价格并不昂贵。但是在算法的实时性方便会有一些缺陷,对复杂环境的感知也并不理想。

使用激光雷达进行目标检测有着它独一无二的优势。激光雷达不同于可见光和红外传感器,它是一种主动式的传感器,受外界干扰小,探测范围大,测距精度高,能够快速准确地获取目标表面在外界环境中的坐标信息,从而能够成功地对目标进行检测、识别和跟踪。相比计算机视觉的手段,激光雷达不受外界环境、光线的干扰,数据量更小,计算起来更加快捷,消耗资源更少,使用起来更方便。在目前,激光雷达跟踪的使用领域非常广泛,在军事、生产、生活等各个场景都有应用。在军事中,激光雷达作为一种高灵敏雷达,有着战场侦察、气体探测、精确跟踪等作用。在民用方面,激光雷达的应用以遍布社会服务与科研,如险情预报、气象观测、交通管制。激光雷达在交通领域有着重大市场,许多交通工具的导航都离不开激光雷达。激光雷达技术在医学方面也有很多应用,譬如,光学低相干断层扫描,这个技术起源于激光反射仪在眼科中研究眼睛结构的三维复原方面的广泛应用,实现对血管的三维内窥镜研究,扩展到多普勒三维测速仪。

在智能医疗养老领域,对行人的检测是一项很重要的研究,发挥着举足轻重的应用。通过人体行走过程中各项特征,可以发掘出很多人体的健康状态信息。同时,在社会发展现阶段,人口老龄化现象严重。据统计,全球60岁以上的老年人口现已超过6亿,老龄化问题已经成为普通性的社会问题。而中国社会的快速老龄化更是一个沉重的社会负担,据估计,2050年,老龄人口将达4.83亿,失能老人将4000万。这其中,独居老人占了相当一部分。对这些老人来说,在没有人照顾的情况下,他们的生活健康状态处于一种危险状态。如果发生了身体意外状况,没有第一时间的检测及救助,这对老人来说可能是致命的。因此,本发明考虑是否有一种基于计算机领域的目标跟踪的简单可行的方法,可以监测老人在室内的行动状况。

作为一种自主环境感知的主动传感器,激光雷达从上世纪90年代起得到了迅速的发展。激光雷达依靠自身发射的激光束直接获取环境的三维深度信息,具有不受光照影响、受外界干扰小和稳定可靠等优点,因此在汽车、移动机器人等领域中得到了广泛应用。在复杂的动态环境下,如何实现稳定可靠的运动目标跟踪一直以来是自主车动态环境感知的重要研究目标之一。在国外,有很多基于激光雷达进行目标检测的实验应用,将激光雷达安装在汽车、机器人上,可以较为准确的识别周围物体。在智能驾驶领域中,利用激光投射扫描得到的三维点云信息结合SVM支持向量机算法对动态的物体或行人进行实时行为分析,可以完成自动驾驶中路边环境目标的实时检测。这些研究是基于三维雷达进行的,数据信息处理相对会比较复杂。

而激光雷达用来检测行人的应用也已经有了先例,Shackleton J等人在研究中使用360°的激光雷达实现了监测系统,并且提出了新的解决方案来对付三大问题的:多个目标之间的分类和匹配,场景中人与固定目标之间的划分,以及距离非常近的目标之间的划分。北京大学的Huijing Zhao等人和日本东京大学合作于2005年利用基于激光雷达的跟踪方案在地铁车站等人流密集处进行人流统计和跟踪工作,这说明激光雷达在行人跟踪方面具有得天独厚的优势以及可行性。另外有其他很多关于object-tracking的研究,如埃朗根-纽伦堡大学Thomas Dieterle等人的研究项目中,综合激光雷达Lidar与RGB-D镜头,实现了多目标跟踪。该研究通过视觉辅助激光雷达进行研究验证,弥补了单一设备方法的不足。Karl

近年来,基于激光雷达进行的研究层出不穷,激光雷达涉及到的应用领域也越来越广。由于机器人领域研究的兴起,运动目标的检测与跟踪是移动机器人的研究难点问题之一。在机器人的移动导航方面,激光雷达是一个经常使用的传感器。同济大学的寿佳鑫等人提出了基于ROS和激光雷达的机器人定位导航系统,该系统采用树莓派控制器作为控制核心平台,利用激光雷达采集环境信息,在ROS分布式框架下进行软件算法的开发,实现基于扫描匹配算法的SLAM功能、基于粒子滤波算法的导航功能。类似的,于金霞等人对于移动机器人运动目标检测与跟踪问题,在基于二维激光雷达的性能分析与滤波设计的基础上,提出一种自主运动目标检测与跟踪的方法,主要通过k-近邻对激光雷达扫描的障碍进行聚类分析,基于栅格地图匹配的方法评估障碍的运动参数,并提出一种改进的粒子滤波算法对目标的运动状态进行评估。在对于行人跟踪的研究中,王灿等人在基于激光雷达机器人的目标人跟踪方法研究中使用了主流聚类和卡尔曼滤波算法实现了室内行人的实时跟踪。宋世阳提出了基于稀疏学习的激光雷达目标跟踪。

总而言之,基于激光雷达的行人跟踪具有很强的实用性和简单性。相比于基于计算机视觉的目标跟踪,基于激光雷达的跟踪算法简单,实时性强,更强调距离信息,受外界环境干扰小。特别是在目标检测的问题上,当环境复杂,多个目标融合在一起的时候,计算机视觉处理很难将人与人之间、人与物体之间一一辨别出来。不过激光雷达也有自己的不足,它只能单纯的获得环境点的距离信息,信息比较单调,很难做到多层次分析。因此,需要多个传感器联合运作,可以弥补不足,大幅提升目标识别跟踪效果。目前的发展方向趋于大视角、多场景、多目标、多传感器联合等。国内已有不少关于基于激光雷达的目标检测与跟踪的研究。在全球老龄化情况日益严峻的情况下,为老人提供健康养老服务显得非常有意义。利用计算机领域的目标跟踪方法,对室内的老年人进行目标跟踪和监测是本发明的目的。目标跟踪作为一项重要的研究方向,在各行各界都有许多应用领域,亦有着许多可实现的方案。而现有的目标跟踪系统有着各自的特点并都存在着或多或少的缺陷。基于视觉传感器可以察觉到细微的颜色、纹理,对环境会有一个细节的感知。基于激光雷达的目标识别跟踪则受环境影响小,数据可靠稳定,算法快捷方便,适合实时跟踪。

目前计算机领域的行人跟踪技术还存在很多待改进的方面,仍然面临着许多困难。在技术层面,如何处理复杂的监测环境,如何针对高频率的持续采取有效的检测算法,提高检测跟踪的可靠性和准确性等问题还函待解决。在社会方面,目前基于计算机视觉的监测识别,会造成隐私泄露等一系列社会问题;而实时监测的代价通常也很大,例如使用一套镜头传感器等需要很大的开销。

通过上述分析,现有技术存在的问题及缺陷为:

(1)目前计算机领域的行人跟踪技术存在如何处理复杂的监测环境,如何针对高频率的持续采取有效的检测算法,提高检测跟踪的可靠性和准确性等问题还函待解决。

(2)目前计算机领域的行人跟踪技术存在基于计算机视觉的监测识别,会造成隐私泄露等一系列社会问题;而实时监测的代价通常也很大,例如使用一套镜头传感器等需要很大的开销。

解决以上问题及缺陷的难度为:由于最终在真实场景下进行模拟试验,受生活场景的种种影响,得到的数据处理起来会有诸多方面的困难。一是室内环境点非常复杂,有许多障碍物的分散在房间各个地方。同时生活中场景内还会有许多其他动作。采取的对策首先是在聚类部分,在原来的聚类算法完成以后,删除集合中点数量过于少的点集合,这样可以避免一些分散的点的干扰。在跟踪部分,利用卡尔曼滤波器,保持一段时间的预测状态,当脚步被严重遮挡甚至消失时,会用预测结果的进行补全进行继续跟踪。二是检测目标受到遮挡的情况比较严重。由于激光雷达只能摆放于房间的边缘位置,本来视角就没有放置于环境中间那样开阔,因此受到各种环境的影响就非常严重。在很多场景中,有些脚步点非常短或是稀疏,这样就造成随机森林对人脚的判断错误大大提高了,这些聚类集合已经基本上失去了作为一个人脚步应当具有的一些特征,比如脚步的长度等。甚至更糟糕的情况,由于扫描到的脚步点组成个数小或是太稀疏,聚类都会将其忽略掉。因此,在对人脚的匹配上,改成如果单只脚没有合适的匹配,也可以形成行人轨道。以及在生活中经常出现长时间没有走动,或是坐下的情况。在扫描识别到行人脚步后会进行持续跟踪,如果脚步停止走动任然保持轨道的跟踪状态。同时,在匹配人脚轨道时候,也不要求两只脚均行进了一定距离,即可以判定为匹配人脚轨道。

解决以上问题及缺陷的意义为:又具有很大的社会意义,在目前严峻的人口老龄化形势的挑战下,利用计算机技术帮助老年人减少健康风险,减轻社会负担是一个很实用并具有前景的研究题目。本发明基于激光雷达,成本小,操作简单,轻便小巧,对日常生活影响较小;监测老人的行走状态,既可以便于了解老人的生活状态,避免日常生活可能发生的风险,又可以获得老人的行走数据,可以进一步对老人的健康状态进行进一步的综合分析。综合看来,本发明具有易操作性、实用性以及可扩展性,对老年人的行走分析健康领域具有更加深远的意义。

发明内容

针对现有技术存在的问题,本发明提供了一种多目标检测及跟踪方法、系统、存储介质及应用。

本发明是这样实现的,一种多目标检测及跟踪方法,所述多目标检测及跟踪方法包括:

激光雷达扫描得到点云数据,将采集到的数据传输到服务器端中,并上传到云存储;

获取到雷达数据之后,分别经过动点提取、点聚类、随机森林提取出脚步点;利用轨迹匹配进行脚步的跟踪;

在处理完数据,得到行人的脚步信息之后,以可视化形式,将处理结果对用户发布;同时,检测到行人的时候,输出相关行走信息并保存到文件,里面包括行走速度、脚步长度信息。

进一步,所述多目标检测及跟踪方法将激光雷达扫描得到的数据保存成文件上传到云端,使用者可直接从云端网关下载所需分析的数据文件。

进一步,所述多目标检测及跟踪方法对提取出来的动点需要采用聚类方法,使得单个分布的点以一定规律条件形成簇,将簇的中心点当成目标点进行分析;使用机器学习模型,进行对人脚步的识别判断,脚步点被提取出来;使用跟踪算法,对脚步的轨道进行跟踪处理,得到每个时刻的最新状态,结合之前的状态信息,通过卡尔曼滤波器更新出每个脚步点的最佳预测状态;最后还需要将行人的两只脚步匹配成一个完整的行人进行展示。

进一步,所述多目标检测及跟踪方法的激光雷达测距核心将顺时针旋转,从而实现对周围环境的360°全方位的扫描,得到所在空间的平面点云地图信息;将激光雷达放置于靠墙靠近电源并且底部有较大空地的场景底部。

激光雷达数据的接收以及上传由Rosbridge_server来实现,在安装了Rosbridg_server服务的树莓派Raspberry Pi计算机上启动Rosbridge_server,并指定相应端口,作为服务器端;同时,运行另一台计算机上的client程序,连接相应的ROS端口,接收对应topic,即可获取到该正在发布的topic中的消息数据内容,数据格式为JSON;最后,将数据保存到文件中,以时间作为命名规则,上传到云存储中。

激光雷达数据下载获取,激光雷达数据采集以后,保存在云端;需要使用的时候,从智能网关打包下载相关数据;智能网关程序是一个基于JavaSpringBoot框架的网页程序;启动网关,打开网页,可以选择数据类型,数据日期时间,即可下载对应数据。

进一步,所述多目标检测及跟踪方法获取到激光雷达的点云数据信息之后,进行初步处理,并最终识别出行人脚步,具体包括:

(1)激光雷达数据解析,每一扫描帧共得到360个点数据,这些点即为激光雷达发射出的激光在周围碰到的障碍点,每个点的角度差angle_increment近似为1°;位置信息为ranges数组,是以一个float类型的数组表示出这些点的位置信息,ranges数组中存储的数值即对应每个点距离坐标中心的距离,以米为单位;而数组中的次序依次对应着扫描角度的递增,表示对应点的角度信息,得到激光雷达扫描一帧得到的周围点的极坐标;激光雷达的频率代表着一定时间段能获得多少扫描帧数据,激光雷达的频率通常大约为6Hz,即1s的时间获得6条扫描帧数据:

根据极坐标与直角坐标系的转换,当读入激光雷达的数据时,直接使用公式

(2)动点提取,对读取的数据进行逐帧对比,求出前后帧相同角度位置的距离差值,并求出前后帧360个对应点的距离差之和,取一段时间的数据求出距离差之和的均值;读取一段时间的数据,求出前后帧所有对应角度位置的距离差之和的均值,若小于一个阈值,则判断该段时间内环境数据基本为静止的,将该数据中的每个角度的点的距离值求出均值,作为环境点的坐标信息;环境地图就建立完成;环境地图的绘制在读入数据时候同时进行,当读到一定量的数据的时候,使用帧差法判断是否可以认为是静止环境;若是,则进行新一轮环境地图的更换;

(3)点聚类,采用密度聚类,把相近的高密度点逐步都连成一片,生成各种簇,对于密度不均匀,聚类间分布差异大的数据集,DBSCAN算法会使聚类质量变差;在算法结束后,选择删除包含点的个数过于少的簇;将每一帧扫描数据经过上述坐标变换以及提取动点处理,得到的动点点云数据,作为样本集,给定一个领域参数,进行DBSCAN聚类,并且删除得到的簇中包含点的个数过于小的簇,经过处理后,每一帧得到点集合;

(4)点集合特征提取,在得到聚类形成的点集合之后,将对集合的特征进行提取;设想脚步的点集合,并以此为目标指定一些点集合特征;如下点集合特征:

1)集合中心点,每个点集合的中心点是这个点集合中所有点的代表点,用这个点来表示该点集合的位置;设定这个点的横纵坐标是该点集合中所有点的横纵坐标的平均值:

2)距离范围:

F

其中,|·|为L

3)脚步长度:

F

p

4)脚步弧度:

计算点集合P边缘的每个点之间的弧度并取均值,p

5)脚步弧长度:

p

(5)随机森林模型处理,提取动点之后,对每一个聚类点集合进行判断,选择采用随机森林的机器学习算法,对点集合进行分类判断,通过点集合的特征,作为判断的依据;使用训练好的随机森林,对点集合进行判断,分类成人脚和非人脚集合,分类将集合的信息分别发布到相应的节点上进行后续处理。

进一步,所述多目标检测及跟踪方法进行脚步跟踪的处理过程包括:对每个跟踪对象维持一个跟踪轨道。每当经过上述处理后的脚步消息数据发布后,先给该扫描帧的脚步点记录位置信息;将现有轨道与这些脚步点进行匹配,匹配的方法是用计算出每一个脚步与每个轨道间的马氏距离,形成一个开销矩阵;表示每个脚步到每个轨道之间匹配的可能性,距离越小,越有可能被匹配;为每一个脚步最多只分配一个轨道,使得总的开销最小,若仍有脚步点没有轨道分配,则考虑给该脚步重新分配一个新开辟的轨道;匹配出轨道之后,先更新该周期的脚步点的位置信息等数据;将雷达观测到的行人目标状态输入卡尔曼滤波器,完成状态更新,随后将可信度过低的轨道删除;得到可靠的脚步轨道之后,进行脚步轨道匹配,以形成行人轨道;在此设定条件,限定是否可以将两个脚步轨道匹配起来;最后将形成的行人、脚步信息发布出来,输出行走参数并形成可视化结果;

(1)脚步轨道匹配,脚步与轨道匹配是以马氏距离为衡量标准,马氏距离Mahalanobis Distance是一种距离的度量,看作是欧氏距离的一种修正,修正了欧式距离中各个维度尺度不一致且相关的问题;两个服从同一分布,并且其协方差矩阵为Σ的随机变量X与Y的差异程度数据点x,y之间的马氏距离:

(2)卡尔曼滤波器更新状态,采用卡尔曼滤波算法构建一个动态系统对脚步进行建模;卡尔曼滤波算法的状态预测方程公式:

X

z

式中X

雷达每一帧扫描作为卡尔曼滤波器的一个状态,通过运动模型来得到预测的下一个状态,同时也能通过雷达观测到下一个状态的观测值,这些值在产生过程中都会受到噪声影响,传入卡尔曼滤波,得到一个均衡优化的状态结果。

本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

激光雷达扫描得到点云数据,将采集到的数据传输到服务器端中,并上传到云存储;

获取到雷达数据之后,分别经过动点提取、点聚类、随机森林提取出脚步点;利用轨迹匹配进行脚步的跟踪;

在处理完数据,得到行人的脚步信息之后,以可视化形式,将处理结果对用户发布;同时,检测到行人的时候,输出相关行走信息并保存到文件,里面包括行走速度、脚步长度信息。

本发明的另一目的在于提供一种实施所述多目标检测及跟踪方法的多目标检测及跟踪系统,所述多目标检测及跟踪系统包括:

激光雷达模块,包含对激光雷达的操作,用于实现激光雷达驱动以及获取的数据的上传;

数据获取模块,用于获取激光雷达点云数据,采用智能网关下载平台进行下载获取。

数据处理模块,用于对点云数据的处理分析,以及对处理结果的展示。

进一步,所述多目标检测及跟踪系统还包括:激光雷达作为原始数据来源,通过树莓派Raspberry Pi计算机驱动激光雷达;激光雷达发出的名为scan的消息,在树莓派Raspberry Pi计算机上打开rosbridge-server,设定好端口,并用服务器的client程序去连接该树莓派的ROS,并获取scan消息的内容;获取到数据以后,上传到MinIO云存储服务。当用户使用主机端的ROS系统进行目标跟踪程序的使用时,从服务器上的智能网关下载平台,选择对应的scan类型的数据,选择需要的数据的时间段,进行数据下载,主机端的程序会对激光雷达扫描的点云数据进行一系列处理,最终得到行人跟踪的可视化展示,并得到行人的行走参数数据;

本发明的另一目的在于提供一种信息数据处理终端,,所述信息数据处理终端用于实现所述的多目标检测及跟踪方法;所述信息数据处理终端包括:图像识别终端、车辆检测终端、智能监控终端、老年人行走监测终端。

结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明主要是如何利用激光雷达有效监测室内行人。要实现这个目标,需要选用合适的方案,综合考虑到室内监测环境,隐私保护,实验简易可行性等因素。本发明将基于激光雷达以及其他必要的硬件设备,对室内行人目标进行识别并跟踪。激光雷达将会扫描得到一个平面内的点云数据,本发明需要探讨如何通过平面的距离数据获取有效信息,并且将人脚步从整个环境中分离出来,最后需要对识别出来的脚步进行持续跟踪。本发明采用激光雷达,对室内环境的老年人进行目标检测以及跟踪,并提取一些行走体态特征。激光雷达有着代价小、效果好、使用范围广等优点,在对目标位置、运动的检测在工业界、军事界、民用界均有着不可替代的作用。本发明通过对激光雷达形成的点云数据进行一系列处理以及使用卡尔曼滤波器进行运动过程状态更新,使得本系统可以对室内的老人脚步形成良好的识别与跟踪。与视觉传感器的行人跟踪相比,本发明基于激光雷达的跟踪具有不受环境干扰,算法容易,适合在多人的场景使用等优点。在实验室环境与真实的老人居家环境中进行了验证,本发明可以得出比较理想的效果。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的多目标检测及跟踪方法流程图。

图2是本发明实施例提供的多目标检测及跟踪系统的结构示意图;

图2中:1、激光雷达模块;2、数据获取模块;3、数据处理模块。

图3是本发明实施例提供的多目标检测及跟踪方法的实现流程图。

图4是本发明实施例提供的目标跟踪程序的流程图。

图5是本发明实施例提供的激光雷达扫描的脚步点云示意图。

图6是本发明实施例提供的多目标检测及跟踪系统的架构图。

图7是本发明实施例提供的行人跟踪流程示意图。

图8是本发明实施例提供的原始数据示意图。

图9是本发明实施例提供的动点提取后效果示意图。

图10是本发明实施例提供的脚步提取效果示意图。

图11是本发明实施例提供的行人跟踪可视化结果示意图。

图12是本发明实施例提供的行人跟踪可视化结果去除地图。

图13是本发明实施例提供的实验室环境示意图。

图14是本发明实施例提供的实验室提取动点后示意图。

图15是本发明实施例提供的实验室跟踪展示结果示意图。

图16是本发明实施例提供的真实生活环境示意图。

图17是本发明实施例提供的真实环境提取动点后示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

针对现有技术存在的问题,本发明提供了一种多目标检测及跟踪方法、系统、存储介质及应用,下面结合附图对本发明作详细的描述。

如图1所示,本发明提供的多目标检测及跟踪方法包括以下步骤:

S101:激光雷达扫描得到点云数据,将采集到的数据传输到服务器端中,并上传到云存储;

S102:获取到雷达数据之后,分别经过动点提取、点聚类、随机森林提取出脚步点;利用轨迹匹配进行脚步的跟踪;

S103:在处理完数据,得到行人的脚步信息之后,以可视化形式,将处理结果对用户发布;同时,检测到行人的时候,输出相关行走信息并保存到文件,里面包括行走速度、脚步长度等信息。

本发明提供的多目标检测及跟踪方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的多目标检测及跟踪方法仅仅是一个具体实施例而已。

如图2所示,本发明提供的多目标检测及跟踪系统包括:

激光雷达模块1,包含对激光雷达的操作,主要是激光雷达驱动以及获取的数据的上传。

数据获取模块2,用于获取激光雷达点云数据,采用智能网关下载平台进行下载获取。

数据处理模块3,是本系统的核心所在,主要是对点云数据的处理分析,以及对处理结果的展示。

下面结合附图对本发明的技术方案作进一步的描述。

1、多目标检测及跟踪系统设计

1.1系统需求分析

本发明需要搭建一个可以识别跟踪室内老人脚步的系统。使用者可以通过本系统,获取采集的激光雷达扫描数据,通过运行分析程序进行对室内老人脚步的监测,并且得到老人的行走特征数据。

1.1.1总体业务流程

如图3所示,整个系统的业务流程包括激光雷达的数据采集、数据上传、数据下载、数据分析、结果展示。这几个流程代表着整个系统的主要工作运行步骤。激光雷达是数据的来源,需在实验场景内布置好并稳定运行。接着需要接受激光雷达扫描到的点云数据,并将扫描数据上传到云存储服务器中。需要使用的时候,在智能网关下载所需数据,传入目标跟踪分析程序进行数据处理分析,最后将处理结果以可视化形式以及行走参数发布展示出来。

1.1.2功能性需求分析

(1)激光雷达数据得的采集

本系统的是基于激光雷达传感器得到的距离数据进行开展的。首要的任务是获取数据来源,本系统的程序输入需要激光雷达扫描得到的点云数据。激光雷达需要设置在场景内一个合适的位置,使得采集的数据比较可靠。接下来需要启动激光雷达,并采用一台服务器与它相连,将采集到的数据传输到服务器端中,并上传到云存储。为了使用方便,本系统设计将激光雷达扫描得到的数据保存成文件上传到云端,使用者可直接从云端网关下载所需分析的数据文件。

(2)处理激光雷达数据

本系统可以将输入的激光雷达数据文件作为目标跟踪程序的输入,进行一系列处理,最终得到行人的脚步并且进行持续跟踪,同时计算行人相关数据。激光雷达扫描的点云数据需要转化成为坐标位置数据,接下来需要将动点全部提取出来,以达到良好的识别跟踪效果。对提取出来的动点需要采用聚类方法,使得单个分布的点以一定规律条件形成簇,将簇的中心点当成目标点进行进一步分析。接下来考虑使用机器学习模型,帮助本发明进行对人脚步的识别判断。至此,脚步点被提取出来。下一步是使用跟踪算法,对脚步的轨道进行跟踪处理。由于可以得到每个时刻的最新状态,结合之前的状态信息,可以通过卡尔曼滤波器更新出每个脚步点的最佳预测状态,最后还需要将行人的两只脚步匹配成一个完整的行人进行展示。

(3)用户得到结果反馈

在处理完数据,得到行人的脚步信息之后,以可视化形式,将处理结果对用户发布。用户可以通过可视化程序,实时观察到激光雷达所测量的室内情况,并且可以看见行人的行走位置和状态。同时,检测到行人的时候,输出相关行走信息并保存到文件,里面包括行走速度、脚步长度等信息,供用户进行进一步分析。

1.1.3非功能性需求分析

(1)运行环境

本系统需要一台2D激光雷达,用来采集数据。本发明采用的是深圳市杉川机器人有限公司生产的Delta-1A系列激光雷达。这是一种新一代低成本、低功耗二维激光雷达。它具有每秒高达4000次的高速采样能力,并实现了长时间可靠的稳定运行。Delta-1A系列激光雷达可以实现在2D平面的8m半径范围内进行360°全方位扫描,并产生所在空间的平面点云地图信息,可用于地图测绘、机器人定位导航、物体环境建模等应用中。同时,该激光雷达所发射激光功率符合FDA Class I人眼安全等级,确保对人类及宠物的安全性。

一台树莓派Raspberry Pi微型计算机,用来连接雷达并进行驱动,驱动程序基于ROS系统。树莓派是一种只有信用卡大小的微型电脑,其系统基于Linux,它基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,具备所有PC的基本功能。使用树莓派驱动雷达,对激光雷达的环境布置更加友好、便捷。同时,它可以保证持续工作的需求。本发明采用Raspberry Pi 3B+型号的树莓派,安装Ubuntu MATE 16.04LTS系统。

数据上传则基于ROS提供的ROSbridge工具。本发明使用的接收雷达数据并上传的程序由Java语言开发,这台服务器需要和驱动激光雷达的树莓派在同一网关下。该工具可以快速稳定的将ROS系统与非ROS系统之间连接起来,进行数据传输。一台安装ROS系统的计算机主机,操作系统为Ubuntu 18.04,ROS版本为Melodic。主要用来运行目标跟踪程序。该程序工程项目基于ROS系统。在该主机上,首先需要对C++文件进行编译处理,编译完成后,执行launch文件,通过程序的启动配置,运行整个工程的节点,里面包括C++程序以及Python程序。

一个云存储服务器,用来存储激光雷达扫描得到的点云数据,并将这些文件作为目标跟踪程序的数据来源。本发明采用的是MinIO。它是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似NodeJS,Redis或者MySQL。

(2)性能需求

本发明可保证激光雷达以及树莓派Raspberry Pi计算机可以同时持续工作24小时以上,保证激光雷达可以在一天内持续不断的扫描周围环境,树莓派计算机同步保持数据文件上传。一小时持续工作获取的数据文件大概在200MB不到,持续工作一天24小时大约需要存储空间4.6G。在主机端,可以随时运行目标跟踪程序来对下载的数据进行分析,得到结果。

(3)可移植性需求

本发明的激光雷达模块需搭建在要被监测的室内环境中,使用树莓派RaspberryPi计算机进行驱动,可以替换为任意可安装ROS系统的Linux计算机。本发明使用Linux服务器进行数据上传下载的需求,下载平台是以网页形式,可在多种浏览器中打开使用。目标跟踪程序目前运行在本机测试,可移植到支持安装ROS的Linux操作系统服务器上进行编译运行查看结果。

(4)可靠性需求

为确保数据持续且可靠,当发现激光雷达数据上传错误或停止时,重新启动激光雷达,并保持网络环境良好,即可重新正常开始获取数据,并上传云端。

1.2系统功能模块,主要介绍本系统的各个功能模块的概要设计方案。如图2所示,整个基于激光雷达的多目标跟踪系统的总体模块如下,整个系统分为激光雷达模,1、数据获取模块2、数据处理模块3。激光雷达模块1包含对激光雷达的操作,主要是激光雷达驱动以及获取的数据的上传。数据获取模块2用于获取激光雷达点云数据,采用智能网关下载平台进行下载获取。数据处理模块3是本系统的核心所在,主要是对点云数据的处理分析,以及对处理结果的展示。

1.3系统核心业务目标跟踪流程,本系统的核心为目标跟踪。目标跟踪程序的流程图如图3所示,该图描述了系统的核心功能的运行流程,主要流程有建立环境地图、对动点进行聚类、随机森林预测、发布行人脚步点、脚步配对、卡尔曼滤波器跟踪、获取行走参数这几项。

1.4系统架构:系统架构图如图4所示。激光雷达作为原始数据来源,通过树莓派Raspberry Pi计算机驱动激光雷达。激光雷达发出的名为scan的消息,在树莓派RaspberryPi计算机上打开rosbridge-server,设定好端口,并用服务器的client程序去连接该树莓派的ROS,并获取scan消息的内容。获取到数据以后,上传到MinIO云存储服务。当用户使用主机端的ROS系统进行目标跟踪程序的使用时,从服务器上的智能网关下载平台,选择对应的scan类型的数据,选择需要的数据的时间段,进行数据下载。随后,主机端的程序会对激光雷达扫描的点云数据进行一系列处理,最终得到行人跟踪的可视化展示,并得到行人的一些行走参数数据。

本发明主要描绘了系统需求分析和概要设计。本系统需求主要是完成一套基于激光雷达设备的可以识别跟踪室内老人脚步的系统。使用者可以通过本系统,获取采集的激光雷达扫描数据,通过运行分析程序进行对室内老人脚步的监测,并且得到老人的行走特征数据。本发明介绍了本发明的业务流程,功能性和非功能性需求分析,并以图的形式表现了系统的功能模块以及系统架构。通过本发明,本发明的需求,需要完成的功能,达成的目标,以及整个系统的设计框架已经比较清晰明了。

2、多目标检测及跟踪系统详细设计

2.1激光雷达模块设计,介绍本发明利用激光雷达采集所需要的数据的一系列操作。包括激光雷达的设置,激光雷达的启动,数据的上传等方面。

2.1.1激光雷达的摆放设置

激光雷达工作时,激光雷达测距核心将顺时针旋转,从而实现对周围环境的360°全方位的扫描,从而得到所在空间的平面点云地图信息。理想情况下,雷达应该放在周围开阔的地面环境,这样雷达的覆盖面积最优,视野最开阔,并且受到的干扰最小。但是在实际情况中,需要考虑很多在日常场景的可行性。要想获取真实可靠的数据,又对室内行人造成的影响最小化,并且考虑室内的真实环境,需要给树莓派通电并且连接激光雷达,本发明选择将激光雷达放置于诸如沙发、桌椅这类靠墙靠近电源并且底部有较大空地的场景底部。本发明将实验环境设置为一个类似居家的室内环境,在实验环境以及真实的居家环境均进行了实验。

2.1.2激光雷达驱动

将激光雷达与树莓派Raspberry Pi计算机USB接口相连。使用相关命令打开树莓派计算机端口,并启动激光雷达官方提供的ROS系统上的驱动程序,激光雷达即可正常工作。

2.1.3激光雷达数据上传

本发明中激光雷达数据的接收以及上传由Rosbridge_server来实现。Rosbridge是一个可用于非ROS系统和ROS系统进行通信的功能包,非ROS的系统使用指定数据内容的基于JSON格式的网络请求(Rosbridge支持TCP、UDP、WebSocket三种网络通讯方式)来调用ROS的功能。在安装了Rosbridg_server服务的树莓派Raspberry Pi计算机上启动Rosbridge_server,并指定相应端口,作为服务器端。同时,运行另一台计算机上的client程序,连接相应的ROS端口,接收对应topic,即可获取到该正在发布的topic中的消息数据内容,数据格式为JSON。最后,将数据保存到文件中,以时间作为命名规则,上传到云存储中。

2.1.4激光雷达数据下载获取

本发明的激光雷达数据采集以后,保存在云端。需要使用的时候,可从智能网关打包下载相关数据。智能网关程序是一个基于JavaSpringBoot框架的网页程序。启动网关,打开网页,可以选择数据类型,数据日期时间,即可下载对应数据。

2.2点云数据处理设计

主要介绍获取到本系统获取到激光雷达的点云数据信息之后,如何进行初步处理,并最终识别出行人脚步的流程设计。

2.2.1激光雷达数据解析

本激光雷达扫描得到的数据类型为sensor_msgs/LaserScan,具体数据结构内容介绍如表1、表2所示。在本发明中,对于本型号的激光雷达,每一扫描帧共得到360个点数据,这些点即为激光雷达发射出的激光在周围碰到的障碍点。每个点的角度差angle_increment近似为1°。本发明所关注的位置信息为ranges数组,它是以一个float类型的数组表示出这些点的位置信息。ranges数组中存储的数值即对应每个点距离坐标中心的距离,以米为单位;而数组中的次序依次对应着扫描角度的递增,表示对应点的角度信息,由此扫描点的位置信息就可以确定出来了,也就是可以得到激光雷达扫描一帧得到的周围点的极坐标。另外,激光雷达的频率代表着一定时间段能获得多少扫描帧数据,在本发明中,激光雷达的频率通常大约为6Hz,即1s的时间可以获得6条扫描帧数据。

根据极坐标与直角坐标系的转换,当读入激光雷达的数据时,直接使用公式(3-1),即可将点云数据中的位置信息转换成直角坐标系的x-y坐标形式的位置信息。然后,将这一个周期内所扫描到障碍物位置的横纵坐标发布到相应的ROS节点中供后续分析程序使用。

表1行走参数表

表2Header表

2.2.2动点提取,首先本发明将原始点云数据进行初步处理,筛选出大多数保持运动的点。对点云数据的初筛可以基本上提取出对本系统分析有作用的点,排除掉环境点对实验目标的影响,从而大大降低后续工作的难度,并保持更高的准确度。对于提取动点,最初有两个可考虑方案,一是对每帧扫描的数据进行对比,以此来判断数据点位置是否发生很大变化;二是将固定的环境点进行排除,保留下来非环境点。经过综合考虑,包括考虑到实现难度以及提取动点的效果,本发明决定采用建立环境地图的方法,同时结合多帧对比作为保证。

具体实现方法为:对读取的数据进行逐帧对比,求出前后帧相同角度位置的距离差值,并求出前后帧360个对应点的距离差之和,取一段时间的数据求出距离差之和的均值。读取一段时间的数据,以上述方法求出前后帧所有对应角度位置的距离差之和的均值,若小于一个阈值,则判断该段时间内环境数据基本为静止的,将该数据中的每个角度的点的距离值求出均值,作为环境点的坐标信息。环境地图就建立完成了。环境地图的绘制也可以在读入数据时候同时进行,当读到一定量的数据的时候,使用帧差法判断是否可以认为是静止环境。若是,则可以进行新一轮环境地图的更换。

2.2.3点聚类,对分散杂乱的点进行聚类处理是进行后续处理的必要手段。在此,采用密度聚类。相比其他的聚类方法,基于密度的聚类方法可以在有噪音的数据中发现各种形状和各种大小的簇,比较适合该应用场景。BDSCAN是一种著名的密度聚类算法,其核心思想就是先发现密度较高的点,然后把相近的高密度点逐步都连成一片,进而生成各种簇。DBSCAN算法有如下优点:不需要事先指定聚类个数,且可以发现任意形状的聚类;对异常点不敏感,在聚类过程中能自动识别出异常点;聚类结果不依赖于节点的遍历顺序。

虽然总体来说,该算法比较合适于激光雷达的扫描环境,然而,对于密度不均匀,聚类间分布差异大的数据集,DBSCAN算法会使聚类质量变差。在激光雷达的扫描数据中,由于环境的复杂以及激光雷达不可避免的抖动,会使得噪声点出现。为避免噪声点对聚类造成的影响,本发明在算法结束后,选择删除包含点的个数过于少的簇。DBSCAN算法具体流程如表3所示。

表3DBSCAN算法

在本发明中,将每一帧扫描数据经过上述坐标变换以及提取动点处理,得到的动点点云数据,作为样本集,给定一个领域参数,进行DBSCAN聚类,并且删除得到的簇中包含点的个数过于小的簇,经过这些步骤处理后,每一帧得到点集合。

2.2.4点集合特征提取

在得到聚类形成的点集合之后,本发明将会对这些集合的特征进行提取。对点集合进行特征提取有许多价值,这些点集合有很大一部分是人脚,同时也是本发明的目标所在,因此通过针对性的提取一些特征参数,可以进一步得到脚步的一些信息参数,也可以让本发明进行对点集合的分类判断。在此,设想脚步的点集合,并以此为目标指定一些点集合特征。

如图5所示,理想状态下,2D激光雷达在扫描到人脚的时候,产生的障碍点的点云应该类似于一个弧形。本发明提出如下点集合特征:

(1)集合中心点,每个点集合的中心点是这个点集合中所有点的代表点,用这个点来表示该点集合的位置。本发明设定这个点的横纵坐标是该点集合中所有点的横纵坐标的平均值。

(2)距离范围:

F

其中,|·|为L

(3)脚步长度:

F

p

(4)脚步弧度:

计算点集合P边缘的每个点之间的弧度并取均值,p

(5)脚步弧长度:

p

2.2.5随机森林模型处理,提取动点之后,本发明仍然不能确定这些动点分别是什么。为了使人脚的识别更加准确,需要对每一个聚类点集合进行判断,尽可能让人脚成为本发明的目标。在此,本发明选择采用随机森林的机器学习算法,对点集合进行分类判断,从而更加快速高效的筛选出行人脚步。这也是前面提到的点集合特征提取的一大用途,通过点集合的特征,作为判断的依据。本发明会使用训练好的随机森林,对点集合进行判断,分类成人脚和非人脚集合,分类将集合的信息分别发布到相应的节点上进行后续处理。

2.3对脚步的跟踪,主要介绍原始点云数据在经过初步处理,形成脚步和非脚步的消息数据后,如何进行脚步跟踪的处理过程。

2.3.1脚步跟踪总体流程,脚步跟踪的总体流程如图6所示。本程序对每个跟踪对象维持一个跟踪轨道。每当经过上述处理后的脚步消息数据发布后,先给该扫描帧的脚步点记录位置信息。接着将现有轨道与这些脚步点进行匹配,匹配的方法是用计算出每一个脚步与每个轨道间的马氏距离,形成一个开销矩阵。这也表示每个脚步到每个轨道之间匹配的可能性,距离越小,越有可能被匹配。

接下来是一个分配问题,要为每一个脚步最多只分配一个轨道,使得总的开销最小。若仍有脚步点没有轨道分配,则考虑给该脚步重新分配一个新开辟的轨道。匹配出轨道之后,先更新该周期的脚步点的位置信息等数据。接下来将雷达观测到的行人目标状态输入卡尔曼滤波器,完成状态更新,随后将一些可信度过低的轨道删除。得到可靠的脚步轨道之后,进行脚步轨道匹配,以形成行人轨道。在此设定一些条件,来限定是否可以将两个脚步轨道匹配起来。最后将形成的行人、脚步信息发布出来,输出行走参数并形成可视化结果。

脚步轨道匹配,脚步与轨道匹配是以马氏距离为衡量标准。马氏距离MahalanobisDistance是一种距离的度量,可以看作是欧氏距离的一种修正,修正了欧式距离中各个维度尺度不一致且相关的问题。两个服从同一分布,并且其协方差矩阵为Σ的随机变量X与Y的差异程度数据点x,y之间的马氏距离如公式3-5所示。

马氏距离有很多优点:马氏距离不受量纲的影响,两点之间的马氏距离与原始数据的测量单位无关;由标准化数据和中心化数据(即原始数据与均值之差)计算出的二点之间的马氏距离相同。马氏距离还可以排除变量之间的相关性的干扰。因此在本发明中用来计算脚步轨道的相关性是比较合适的。对脚步和轨道两两进行距离计算,得到开销矩阵之后,求出总代价最小的分配方法。

2.3.2卡尔曼滤波器更新状态

卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。其基本原理是:任何以模型建立的预测数据或者以实际传感器测得的数据都具有一定的误差,其中模型误差可近似为高斯白噪声,而测量误差则以其误差的方差矩阵表示。卡尔曼滤波器采用递归的算法,它是一种递归的估计,即只要获知上一时状态的估计值以及当前状态的观测值就可以计算出当前状态的估计值。由于雷达所获得的观测值具有极强的准确性,加上雷达自身较高的扫描频率,可以说用雷达所获得的数据已经足以满足卡尔曼滤波器所必须的要求,所以本发明提出的基于卡尔曼滤波的行人跟踪具有可行性,同时依赖于卡尔曼滤波的简单算法,可以满足系统的实时性要求。本发明采用卡尔曼滤波算法构建一个动态系统对脚步进行建模。

卡尔曼滤波算法的状态预测方程如公式(3-6)和(3-7):

X

2

式中X

雷达每一帧扫描作为卡尔曼滤波器的一个状态,从而本发明可以通过运动模型来得到预测的下一个状态,同时也能通过雷达观测到下一个状态的观测值。这些值在产生过程中都会受到噪声影响,因此将它们传入卡尔曼滤波,得到一个均衡优化的状态结果。与此同时,使用卡尔曼滤波进行脚步跟踪,可以有效规避跟踪过程中出现的短暂丢失,如脚步被环境物体遮挡等。行走跟踪会将卡尔曼滤波器得出的结果值保留一段时间,在这段时间内脚步继续出现,则把它们划为有效脚步集。行走跟踪预测算法如表4所示。

表4行走预测算法

本发明主要分为激光雷达模块、点云数据的初步处理以及脚步跟踪。本系统经过这几部分的处理,最终得到行人跟踪的结果,并以可视化以及行人行走参数展示。在本发明,详细介绍了激光雷达的数据处理过程,获取到雷达数据之后,分别经过动点提取、点聚类、随机森林提取出脚步点,最后利用轨迹匹配进行脚步的跟踪。

3、系统实现

3.1激光雷达模块的实现

本发明如何实现激光雷达模块。在前面的系统设计中,已经介绍了模块的设计流程,在此将要从系统实现的角度描述本发明的完成方法。首先需要在Raspberry Pi 3B+型号的树莓派上安装Ubuntu MATE 16.04LTS系统。安装方式是用SD卡进行系统烧录。在树莓派上安装ROSMelodic版本。在ROS系统的工程中添加激光雷达的编译程序并使用catkin_make编译。均安装成功后,将激光雷达连接树莓派计算机,启动树莓派串口,启动雷达驱动,即可将激光雷达扫描的数据转化成点云发布到/scan节点中。

接下来使用Rosbridge协议传输消息。在树莓派计算机上安装Rosbridgeserver,当激光雷达运行的时候同时启动rosbridge,这样会创建一个websocket,并可以指定端口。在服务器上使用rosbridgeclient程序,并将服务器的网络与树莓派计算机连接在同一网关下。通过ros连接,用ip地址和port端口连接上树莓派计算机与服务器。在服务器端的程序上订阅雷达发布的/scan节点,再利用MinIO云存储提供的API,将激光雷达的点云数据以一定格式的时间命名保存到云上,保存的数据文件是Json格式,因为激光雷达在ROS中发布的数据就是以Json格式的。

需要使用激光雷达的点云数据时,从SpringBoot架构的网关管理平台中,选择相应的节点名称、日期、时间段进行下载即可。

3.2点云数据处理的实现

主要介绍对点云数据初步处理的具体实现方法。主要包括对动点的提取,对点云的聚类处理并得到脚步点。

3.2.1动点提取实现

动点提取的方法是建立环境地图。先读取激光雷达的环境数据文件,如果大致是静止的环境,就对一定量帧的数据进行求平均处理。创建一个长度为360的float类型数组,对应记录360个角度的障碍距离,将这一定量帧的同一个角度的障碍距离相加并求平均值,得到的结果为该角度的环境障碍距离。经过之前的介绍,本发明知道激光雷达表示环境点的方式为使用极坐标形式,对每个扫描角度给出一个扫描到的距离。这样通过极坐标的形式,本发明可以得到激光雷达周围的环境。再用另一个同样的数组记录每一帧激光雷达扫描数据,将每个对应角度的距离值与环境对应角度的距离值求差,设置阈值差值。此处,本发明采用了线性阈值,考虑到激光雷达抖动造成的干扰误差,距离激光雷达越远的地方,抖动造成的误差会越大,因此设置一个函数,将此误差变成一个类似线性的值,距离激光雷达越远,该阈值越大。如果小于此值,则判断为该点为环境点,需要在动点提取中删除,将该角度的距离值设置为0。如果大于此值,则保留原数值,作为动点。将结果的距离值填充到激光雷达数据类型sensor_msgs::LaserScan中,模拟成激光雷达的实时扫描数据发布出去。提取动点还结合了另一个策略:用侦差进行是否静止的判断。该方法在上一章已介绍过。对一段环境数据,求出前后帧所有角度的对应距离差之和的平均值,经过反复试验,设置阈值为15。如果侦差小于这个值,则判断环境为静止,这段数据就可以当做环境地图数据。

同时,基于以上手段,本发明在此采用了根据输入的激光雷达数据实时更新环境地图的功能。在读入激光雷达数据同时,使用一个二维数组保存下一定量的帧的数据,并且使用上述的侦差法进行判定。如果这段数据的侦差判定是在符合静止的阈值以内,则可认为这段时间是静止的环境,同时进行判断场景内是否有人存在,如果不存在,便可以采用求环境点的方法,也就是求出这段时间内每帧每个角度对应距离的平均值。将其作为环境数据更新到数组中。用这样的方法,即可实现实时更新环境数据,以防检测环境发生较大变化。

动点提取前整个数据如图7所示,建立环境地图筛选动点后的情况如图8所示。可以看出复杂的环境点几乎都被消除了,只剩下动点,基本上是脚步点,和一些由于激光雷达抖动造成的噪声点。

3.2.2脚步提取实现

对脚步提取主要用到聚类方法以及随机森林模型分类。聚类采用密度聚类中的BDSCAN算法,具体算法流程以上已介绍过,同时进行集合特征提取,输入随机森林得到每个集合的脚步预测结果。在可视化中将聚类得到的集合的中心点以黑色圆球发布,并将判断为人脚步的点标成蓝色。脚步提取的可视化效果如图9所示。

3.3脚步跟踪模块的实现

在python中接收ROS上的节点“/detected_objects_clusters”进行处理,里面包含着每帧数据里前面步骤中判定成人脚的集合的信息。分配对象,将每个脚步的位置、脚长、时间等信息记录下来,并添加到脚步列表里。本发明会保留着每一个脚步的行动轨道。每一次接收到新的脚步信息时,会调用方法进行每个脚步与每一条轨道的匹配。接下来,使用卡尔曼滤波器,输入这一时刻的观察状态,卡尔曼滤波器会输出预测的位置。该卡尔曼滤波器在初始化时,已建立好转换矩阵transition_matrix、观测状态矩阵observation_matrix、转换协方差transition_covariance、观测误差协方差observation_covariance。误差设置则根据激光雷达扫描频率的不同,选用不同的过程误差。转换矩阵及协方差则用根据运动模型来填充。卡尔曼滤波器的实现使用的是python的pykalman库。使用卡尔曼滤波器更新状态以后,用更新前后两个时间点的时间差,计算出脚步的运动速度。

接下来进行轨道之间的匹配。在此设立一些判断条件来匹配形成行人轨道,主要是距离接近并且尚未被匹配成行人。对轨道进行两两匹配,成立之后将会将它们形成一个行人轨道。

这样,本功能模块就可以实现对行人的实时跟踪功能。行人和脚步的实时位置信息会以“PersonArrary”的数据格式分别在“/people_tracked”和“/footprint_tracked”两个ROS节点中发布出来。同时,行人位置和脚步会以“ROS::Marker”的数据格式在“/people”和“/footprint”两个ROS节点上发布出来,系统会自动调用Rviz可视化工具订阅这两个“ROS::Marker”数据流格式的标记节点,并在屏幕上实时标记行人和其脚步的实时位置信息,如图10所示。图中的红色圆球和圆柱代表室内行人的位置,横向圆锥的尖端指向是行人行走的速度方向,圆锥的长短就代表行走速度大小。其中圆锥越长代表速度越快,越小代表速度越慢。蓝色的球体代表行人脚步的位置,白色的点都是激光雷达的扫描点。图11是显示去处环境点后的效果。

在跟踪的同时更新一些行人的行走数据。最终发布出来的一些行走参数如表5所示。

表5行走参数表

3.4脚步跟踪模块的难点

本发明由于最终在真实场景下进行模拟试验,受生活场景的种种影响,得到的数据处理起来会有诸多方面的困难。

一是室内环境点非常复杂,有许多障碍物的分散在房间各个地方。同时生活中场景内还会有许多其他动作。采取的对策首先是在聚类部分,在原来的聚类算法完成以后,删除集合中点数量过于少的点集合,这样可以避免一些分散的点的干扰。在跟踪部分,利用卡尔曼滤波器,保持一段时间的预测状态,当脚步被严重遮挡甚至消失时,会用预测结果的进行补全进行继续跟踪。

二是检测目标受到遮挡的情况比较严重。由于激光雷达只能摆放于房间的边缘位置,本来视角就没有放置于环境中间那样开阔,因此受到各种环境的影响就非常严重。在很多场景中,本发明发现,有些脚步点非常短或是稀疏,这样就造成随机森林对人脚的判断错误大大提高了,这些聚类集合已经基本上失去了作为一个人脚步应当具有的一些特征,比如脚步的长度等。甚至更糟糕的情况,由于扫描到的脚步点组成个数小或是太稀疏,聚类都会将其忽略掉。因此,在对人脚的匹配上,改成如果单只脚没有合适的匹配,也可以形成行人轨道。

以及在生活中经常出现长时间没有走动,或是坐下的情况。本发明在扫描识别到行人脚步后会进行持续跟踪,如果脚步停止走动任然保持轨道的跟踪状态。同时,在匹配人脚轨道时候,也不要求两只脚均行进了一定距离,即可以判定为匹配人脚轨道。

本发明节从系统以及程序实现的角度详细描述了本次基于激光雷达的目标识别跟踪研究的实现方法。先介绍了如何一步步实现激光雷达模块的系统搭建,又介绍了程序中对于点云数据的处理、对于脚步跟踪的处理的实现方法。最后特别介绍了本发明中对于脚步跟踪的效果测试中出现的一系列困难以及对应的解决方法。

下面结合系统测试与验证对本发明的技术效果作详细的描述。

1、总体系统测试

主要描述对整个系统进行的测试,验证系统的部署是否能达到预期的结果。系统测试结果如表6所示。

表6系统测试表

2、激光雷达模块检查,对激光雷达模块的检查与测试主要集中在检查上传到云端的数据文件有没有出现错乱。将数据下载之后,主要检查文件中数据的频率是否稳定,和激光雷达的扫描频率基本相符。再检查是否有数据错乱。

3、行人跟踪验证,本发明采取从简到难的方式,先从较为容易的理想实验室环境进行研究,当达到一定效果后,将数据转到较为复杂的真实老人居家环境进行测试研究。

3.1实验室环境测试,在实验室环境中,激光雷达设置在墙边的沙发底。实验中有一个人在室内中心持续进行无规律行走,室内环境比较空旷,障碍物较少。实验室环境如图12所示。经过动点提取后,得到的扫描结果为如图13所示。可以看出,房间中的各种静态的环境基本上被删除,剩下得到比较明显的脚步点和零星的噪点。将经过处理的动点发布后进行跟踪模块,通过可视化观察行人跟踪效果。实验结果显示,行人行走跟踪比较稳定,尽管有的时候脚步集合由于遮挡、扫描角度以及其他原因变得有些变形难以辨认,让随机森林判断为非人脚的点。跟踪效果如图14所示。

3.2真实生活场景测试,在真实的生活场景下,激光雷达设置在房间角落的凳子下。有一到两个老年人在房间内自由活动,他们的活动不仅限于行走,还有一些坐下、快速走过、扫地等真实生活活动。室内的环境比较复杂,空间比较狭小,各种房间里的障碍物比较多。在此场景下,检测的难度明显增大。激光雷达视角受限,各种遮挡情况较为严重,行走状态并不稳定,还会有别的活动在房间中进行,动点也不仅限于行走的脚步。

图15为真实的环境场景,房间里面的布局会比较复杂一些。不过在环境地图的构建后,动点提取效果如图16所示。可以看出动点提取效果还是比较理想的。最终可视化的跟踪结果如图17所示。对照室内的镜头拍摄的对应时段的视频,该人脚识别的准确率比较理想,除了少数情况会出现跟丢或者识别不到的情况以外,基本上都可以跟踪到行人。

本发明主要简单介绍了本系统的测试与验证。由于远程实施研究的缘故,激光雷达模块的实施与测试简单掠过。对于行人的识别跟踪,本实验分为两个研究测试阶段。第一阶段是在理想的实验室环境下进行单人测试,第二阶段是在比较复杂的日常老人居家环境中进行效果测试与改进。具体的测试情况本发明中给出了直观的简单介绍。

本发明主要是针对居家老年人设计的基于激光雷达的行走识别跟踪系统。本发明从设计实现方面全方位的介绍了本发明的实施方案。通过本系统,使用者可以远程监测到老人在居家中的行走情况,并且获取到行走的一系列参数,可以用来进一步分析。

本发明是针对老年人的居家养老综合监测平台的一部分。本发明的方向是通过激光雷达这个硬件设备,进行对人脚步的识别以及对行人行走的跟踪分析。激光雷达具有一些其他设备不能具有的特性。在效果方面,激光雷达是以平面点云数据的形式,获取平面信息的环境位置信息来进行工作的。它的数据来源与形式比较单一,但是可靠性强,不受光线环境影响。在使用性能方面,激光雷达体积小,便于布置与使用。相比于图像分析形式的识别跟踪,激光雷达对于环境的要求没有很大的限制,数据处理起来也更加便捷,并且不会暴露被分析人员的隐私信息。本发明采用了环境地图的机制,不仅使得激光雷达在各个环境场景都可以适用,并且不用担心场景的变化,因为可以边读取数据边自动判定选择是否可以进行环境更新。使用环境地图,使得激光雷达的扫描受周围环境的影响变小,可以集中用来分析动点以及脚步点,使得结果更加精确。本发明针对复杂的真实日常环境和多人场景进行了优化。对轨道的匹配和多人脚步的匹配条件更加细致和符合场景实际,对残缺的人脚步位置进行预测并进行填充保持跟踪。本系统可操作性强,也具有良好的可移植性。本系统采用ROS系统,网络传输激光雷达的扫描数据,数据保存在云端,使用时可以远程进行相对应的下载。不需要使用激光雷达实时传输数据,根据数据文件内容自动计算出激光雷达的扫描频率,即可模拟使用文件数据代替激光雷达的实时传输,做到了可以远程随时进行分析系统的使用。ROS系统对于激光雷达的适配性也比较强,运行时比较稳定,并且ROS系统可以移植到各个Linux平台的服务器上。

应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

相关技术
  • 一种多目标检测及跟踪方法、系统、存储介质及应用
  • 一种在线多目标跟踪方法、系统及应用
技术分类

06120112880156