基于kinect的人数计数系统外文翻译资料

 2021-11-08 10:11

英语原文共 7 页

基于kinect的人数计数系统

Aylin Co kun1、Anil Kara1、穆斯塔法Parlaktuna2、Metin Ozkan1、

Eskisehir Osmangazi大学,埃斯基谢希尔,土耳其

奥斯曼Parlaktuna

埃斯基谢希尔奥斯曼加齐大学电气电子工程系

埃斯基谢希尔,土耳其 OpARLAK- OGU-EDU-TR

摘要 - 本文提出了一种人数统计系统作为人数统计方法的应用。该方法使用由低成本Kinect传感器捕获的深度和视觉数据。传感器垂直于天花板放置。通过使用注水方法实现对人的感知。称为人员跟踪的新方法提高了人数统计系统的性能。给出了一些实际应用以显示所提出方法的效率。

关键词 - 人数统计;人们追踪;深度相机

  1. 介绍

人数统计系统是确保安全和获取统计信息所必需的。系统确定特定计数区域中的输入/输出人数。服务提供商可以监控运输系统中的乘客或购物中心, 博物馆,医院等中的消费者[1-2]。

有各种传感器用于人数统计系统。视觉传感器, 红外传感器,超声波传感器和深度相机就是这些传感器的一些例子。一些方法使用安装在具有不同摄像机视图的各个位置的摄像机。安装有倾斜视图的摄像机具有优点。相机可用于监视和人数统计。但是,这种方法需要解决遮挡问题[1-3]。为了解决这个问题,有些方法更喜欢将摄像机安装在天花板上, 如图1所示[4-5]。

人数统计已成为视频监控应用的关键组成部分,如人流监测和游客流量估算。以前基于可见光图像或视频的人数统计方法可以分组如下:通过检测计数,通过回归计数和无监督跟踪器。

最方便的方法是通过检测进行计数,其中多尺度窗口在整个图像上滑动,并且采用二元分类器来确定窗口内是否存在人。一旦我们有检测结果,计数问题就会自然解决。但是,对象检测中存在两个未解决的问题。首先,一个对象可以对应于不同的边界框, 并且当前常用的NMS(非最大抑制)[13,11]在多个人彼此交互的复杂情况下趋向于变得无效。其次,一些物体可能是部分或均匀的完全遮挡,以致它们太难以被发现。这两个问题都会影响计数性能。通过回归方法计算而不是解决难以检测的问题,直接解决了计数问题。

在文献中,有各种技术来构建用于监视应用的快速且可靠的人体探测器。在[6]中,使用广角相机并基于运动和尺寸标准开发算法。在该算法中,他们从运动直方图中检测人。在[7]中,一种新的基于模型的方法用于跟踪人。但是,他们不考虑数人。提出了一种系统来分析捕获的图像并估计导入的特征[8]。在[9]中,模板匹配方法与从立体相机捕获的图像一起使用。

在所提出的系统中,使用由低成本Kinect传感器生成的垂直深度信息。

在执行图像增强之后,通过使用注水算法[4]来确定人的头部。为了从Kinect传感器捕获深度信息,使用机器人操作系统(ROS)。使用开源库OpenCV执行图像处理。拟议的方法有两个人数计算的贡献。当人们处于摄像机视角的区域时,人们被跟踪。当一个人进入视野时,会为他分配一个身份证。在离开视野之前,这个人只算一次。另一个贡献是,当他/ 她突然迷路并且不久后出现时,可以识别出一个人。例如,如果他/她在穿过摄像机的视野时短时间走近长人,则可能不会出现短人的头部。所提出的系统通过真实实验呈现。

图1.人数统计系统。

本文的结构如下。第1章是介绍。在第2章中,详细介绍了所提出的系统。第3章包括实验的介绍。结论在第4章给出。

  1. 提出的方法

人数统计系统的设置如图1所示。

传感器放置在天花板上并指向地板。人们在视野中被追踪。但是,如果一个人通过了计数线,就会被计算在内。作为一个传感器,使用提供深度数据的Kinect。Kinect传感 器具有单色深度感应视频流,VGA分辨率(640times;480 像素),11位深度,提供2,048级灵敏度。

我们在下面给出了人数统计系统的流程图。

为此,使用(1)将通过中值滤波器滤波获得的图像A(i,j)转换为二值图像B(i,j)。

首先,我们从噪声中清除深度数据,然后应用背景减法来消除

不相关的数据。然后通过使用注水方法找到并对该图像的结果

进行跟踪。最后检测并且对滤波图像计数处理。

图2 计数系统的人流程图

捕获和细化深度数据

基本上,系统从Kinect传感器捕获深度数据。图3(a)示出了由两个人组成的深度图像。借助于ROS

(机器人操作系统)从传感器获取图像,这使得捕获图像变得容易。明亮的地面或物体,角落等环境条件会在深度数据中产生噪音。为了消除噪声,使用一些滤波器,例如中值滤波器,形态学运算等。对于图像的过滤, 使用OpenCV ( 开放计算机视觉库)。滤波后的图像如图3(b)所示。

背景差分法

背景差分法过程有助于人们检测并提高系统性能。在这个过程之后,图像只处理感兴趣的区域,其中最可能包含人的头部和肩部。但是,图像的灰度级必须在应用背景减法时得到保护。

其中C(i,j)是背景减影图像。在图3(c)中,给 出了背景减影图像。

(b)

(c) (d)

(e) (f)

图3.图像处理:(a)原始深度数据,(b)清洁深度图像,(c) 背景扣除,(d)注水方法的实施,(e)滤波图像,(f)计数过程

确定局部最大点

在系统中,重点是正确找到局部最大点。为此, 使用称为注水算法[4]的有效算法。这种方法是由注水过程推动的,即水在重力作用下远离起伏并向外移动到附近的空洞,直到重力势能不再减小为止。该方法通过根据均匀分布产生雨滴来模拟雨水。一旦雨滴到达,将其着陆点与其邻域进行比较以找到下降方向,直到它不再下降,然后平衡点处的雨滴数量增加。由于附近着陆点的大多数雨滴倾向于流向同一个空洞,因此提出了一种加速该过程的快速算法。在

这样,找到负图像中的局部最小点和原始图像中的局部最大点。算法的伪代码在[4]中给出。图4显示了注水算法的图示。A,B,D分别对应于三个人,C 是噪声区域。与A和D相比,B区的规模较小,因此可 以将其作为孩子。C没有层,因为它被认为是噪声。 注水过程后,找到A,B和D的局部最大点,但未找到 C的局部最大点。

在图3(d)中,给出了在实施注水算法之后获得的图像。

(a)

(b)

(c)

(d)

图4.水填充方法示意图:(a)原始深度图像,

(b)雨滴的持续时间,(c)从层中流出的雨滴,

(d)注水的结果

过滤:

通过对图像使用侵蚀和膨胀来应用一些形态学操作,其由用于采用典型头部形式的局部最大点组成, 因此如图3(e)所示减少了误差。

检测和跟踪:

在这个阶段,通过对用填水算法获得的图像应用阈值来检测人。然后,为图像中的每个人分配ID。

该系统的重要部分是跟踪过程。用于跟踪,组合优化算法

称为匈牙利算法[10]和卡尔曼滤波器[11]被使用。匈牙利算法在多项式时间内解决了赋值问题。卡尔曼滤波器在存在噪声(随机变化)和其他不准确的情况下随时间推移使用一系列测量值, 并产生未知变量的估计值,这些变量往往比单独基于单个测量值的变量更精确。头部跟踪由连续帧处理。头部的ID分配是使用匈牙利算法执行的。另一方面,卡尔曼滤波器确定每帧中具有相同id的头部位置。

计数过程:

双向计数系统在特定的网关区域中服务。因此, 计数线垂直于网关方向放置,以实现进入和退出程序。跟踪头部运动并根据线的过渡进行计数。当人从输入或输出线传递时执行计数过程。如果计数线在不离开屏幕的情况下通过计数线,则计数头不再计数。包括计数线,头ID和跟踪路径的图像在图3(f)中给出。如果头部在视觉区域内短时间丢失, 则系统会在视觉区域重新出现时继续使用相同的ID 跟踪它。

系统的软件设计:

该系统的软件是使用UML类图(图5)设计的,并使用C 编程语言实现

图5. People计数系统的UML类图。

在此图中,有六个类:Node,Track,Tracker, KalmanFilter,HungarianAlgorithm和Detection。

节点:基础类。通过调用检测和跟踪器类,系统循环在此类中执行。

跟踪:在帧中检测到一个点。

跟踪器:在帧中检测点序列。

KalmanFilter:估计下一个点序列的坐标。

匈牙利算法:通过连续帧之间可能的成本计算来完成点的映射。

检测:检测具有指定区域的对象。

g(x,y)的形式可以是微不足道的,例如零函数。我们期望使用g(x,y)来推断f(x,y)。适当的函数g(x,y)可以具有以下三个优点:

鲁棒性。Kinect传感器的原始深度数据包含许多噪声,而某些区域可能有

局部性。场景中可能有很多人,不同的人可能有不同的高度,例如成人和小孩。为了检测不同高度的人,该方法应具有不受其他区域影响的位置

属性。

尺度不变性。在Kinect传感器视野中人们的头部可能具有不同的尺度,大或小,函数g(x,y)应该是尺度不变的,以便它可以以任何尺度检测头

部区域。

我们不需要得到g(x,y)的一般解,而只需要得到 一个适当的非平凡形式的g(x,y)。受到注水过程的启 发,我们提出了一种新算法,可以有效地找到合适的g

(x,y)。函数f(x,y)的形式可以看作是具有隆起和凹陷的土地。驼峰中的雨滴将在重力作用下直接流向邻域。一点一点地,空心区域会聚集很多雨滴。函数g(x, y)反映了(x,y)处的雨滴数量。雨停后,降雨量大的地区可归类为空心。

我们的算法可以看作是上述过程的模拟。但是,模拟这个问题有两个问题

过程:一个是,雨滴的数量是一个连续的值;另一个是, 不同的雨滴可能同时到达陆地,它们的相互作用难以模拟。在我们的算法中,我们做了以下简化:1。每个雨滴具有相同的数量,并且土地是离散的;2.每个雨滴都按顺序到达陆地,因此两个雨滴之间不存在相互作用。算法的细节显示在算法1中。

注水算法1:

1输入:

深度图像: f(x, y) and 测量函数 g(x, y) =

0, 大小M*N,阈值T, 雨滴数量K.

2: for k=1:K do

3: x = rand(1, M), y = rand(1, N)

4: while True do

5: d(xn, yn) = f(xn, yn) g(yn, yn)

minus;

(f(x, y)

g(x, y)), where (xn, yn) is the neighborhood of

(x, y).

6: (x , y ) = arg min d(xn, yn)

7: if d(x , y ) lt; 0 then

8: x = x , y = y ;

9: else

10: g(x, y) = g(x, y) 1;

break;

11: end if

12: end while

13: end for

14: 使用T对g(x,y)进行阈值处理,然后使用轮廓

分析查找对应于人的轮廓和每个轮廓。

15: 输出: 轮廓线.

算法2中显示了详细的算法。我们不是假设一个雨滴需要一个单位水,而是让一个雨滴取R单位水,其中 R通常非常大,例如100.这样,只有Kt = K需要/ R雨滴来提供相同量的水,因此减少了外环的数量。在内循环中,算法找到低于其区域的边界r的区域,然后用 r水填充该区域,其中r可以是[0,R]中的任意值。r的数量在算法中起关键作用:如果r太大,算法很快,但测度函数g(x,y)不够精确,无法反映f(x,y)的性质;如果r太小,则算法缓慢且对噪声敏感。自算法。 2比算法快。1具有余量并达到类似的性能,在下面的实验中,我们将只使用算法2。

算法2:

1:输入:深度图像: f(x, y) and 测量函数 g(x, y) =

0, 大小M*N,阈值T, 雨滴数量K.

2:for k =1: K do

3: x = rand(1, M), y = rand(1, N), w = R

4: while w gt; 0 do

5: d(xn, yn) = f(xn, yn) g(yn, yn)

minus;

(f(x, y)

g(x, y)), where (xn, yn) is the neighborhood of

(x, y).

6: (x , y ) = arg min d(xn, yn)

7: if d(x , y ) r lt;

原文和译文剩余内容已隐藏,您需要先支付 20元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。