> 文档中心 > iABACUS:基于 Wi-Fi 的自动公交车乘客 计数系统

iABACUS:基于 Wi-Fi 的自动公交车乘客 计数系统

文章目录

  • 摘要
  • 1、简介
  • 2、最先进的技术
    • 2.1、 传统的自动乘客计数系统
    • 2.2、新兴的自动乘客计数系统
    • 2.3、文献空白
  • 3、系统说明
    • 3.1、去随机化算法
    • 3.2、乘客计数算法
  • 4、 实验
    • 4.1、去随机化算法的准确度评估
    • 4.2、乘客计数实验
  • 5、 结论和未来工作

摘要

自物联网 (IoT) 的早期阶段以来,受这种新范式影响最大的应用场景之一就是移动性。智慧城市极大地受益于对一些人习惯开发高效移动服务的认识。尤其是,了解人们如何使用公共交通服务以及如何在城市基础设施中移动对于几个领域至关重要,其中最突出的是旅游和交通。事实上,尤其是对于公共交通公司 (PTC),公交网络的长期和短期规划需要对进出车辆的乘客流量有透彻的了解。由于互联网连接无处不在,这些知识可以通过部署在公共交通车辆上的传感器轻松实现。本文提出了一种基于 Wi-Fi 的自动公交乘客计数系统 iABACUS。 iABACUS 的目标是通过跟踪乘客乘坐公共交通工具的整个旅程来观察和分析城市流动性,而无需他们采取任何行动。测试结果证明,iABACUS 有效地检测出具有活动 Wi-Fi 接口的设备数量,在静态情况下准确率达到 100%,在动态情况下准确率接近 94%。在后一种情况下,只有当两个公交车站彼此非常靠近时才会出现随机错误。

1、简介

整个城市基础设施中的城市流动性和人员流动对旅游和交通等多个领域产生重大影响[1,2]。特别是,能够准确计算乘客人数是公交服务最相关的组成部分之一,因为它提供了衡量公共交通公司 (PTC) 有效性的关键指标,并且对于有效规划公交至关重要网络,无论是长期还是短期 [3,4]。事实上,通过分析起点-目的地矩阵,可以对路线和相关时间表进行长期规划,这些矩阵提供了有关通勤流的信息。此外,这些矩阵给出了关于拥挤时间和路线的指示,这也简化了短期规划策略,例如,通过将公共汽车重新分配到特定路线。因此,长期和短期规划有助于有效利用资源并保证公交车在乘客需要的时间和地点运行[5]。

为了获取有关乘客量的信息,PTC 通常采用传统机制,从非自动人工视觉计数到基于各种数据采集技术(例如垫子传感器 [6]、红外传感器 [7)的自动乘客计数 (APC) 方法],摄像机 [8])。这些系统需要安装在车辆上,而且通常非常昂贵。随着物联网 (IoT) 的出现,APC 系统 (APCS) 在开发“观察”城市交通的新方法方面取得了巨大的进步,尤其是在最近几年。然而,最近 APCS 的巨大成功主要是由于便携式和移动设备(如平板电脑、智能手机和智能手表)的出现,为收集详细的乘客数据和跟踪他们在整个城市的活动提供了新的机会 [9,10]。然而,到目前为止,在这方面的研究方向主要集中在从各种传感器收集的数据中确定出行方式,例如加速度计和全球定位系统/地理信息系统(GPS/GIS)[11,12]。此外,这些方法中的大多数都要求乘客有一个在他们的设备上安装了特定的智能手机应用程序。因此,结果严重取决于乘客的参与意愿。这与依赖人群计数原则的 APCS 不兼容。

直到最近,Wi-Fi 才被用来计算在附近 Wi-Fi 接入点 (AP) [13] 检测到的活动接口的数量。这些系统通常基于与 Wi-Fi 接口关联的媒体访问控制 (MAC) 地址的标识。阿姆斯特丹史基浦机场 [14] 和伦敦交通 (TfL) 车站 [15] 代表了此类系统的示例。但是,它们只能有效地适用于过时的操作系统(早于 Android 5.0、iOS 7 和 Windows Phone 8)。事实上,为了保护用户的隐私免受设备跟踪,谷歌、苹果和微软引入了 MAC 地址的软件随机化 [16]:声称的 MAC 地址是由软件随机生成的,并且会定期更改。在 [17] 中研究了移动设备跟踪中的 MAC 地址随机化,作者分析了为几种不同的商用现成操作系统实施的不同随机化技术的性能。因此,跟踪设备变得不再可行,正如 [15] 所证实的那样,TfL 声称当 MAC 地址被随机化时,它们无法构建旅程。

在本文中,我们介绍了 iABACUS(基于 Wi-Fi 的自动总线乘客计数系统),这是解决 MAC 随机化问题的第一个工具,通过引入一个系统,该系统可以跟踪乘客从上车到下车的整个过程。这篇论文的目的是展示如何利用物联网来准确计算设备的数量,这可以被认为等于公共汽车上的乘客数量。有人可能会争辩说,乘客数量与拥有的设备数量不匹配。虽然确实如此,但这些设备的普及率在很大程度上取决于所考虑的国家:在新兴经济国家中,没有智能手机或没有活动 Wi-Fi 接口的人口比例高于拥有先进国家的国家。在经济中,用户可以拥有多个连接设备,例如智能手机和平板电脑,然后它们会被计算多次 [18]。为了调整所提出的 iABACUS 算法的输出,需要根据考虑的场景对其进行校准,然后引入比例因子;但是,这些测试超出了本文的范围。提供的贡献有三点:

  • 由于它跟踪活动的 Wi-Fi 接口,iABACUS 不需要乘客采取任何行动,与大多数新兴的 APCS 相比,这是一个很大的优势。此外,由于 iABACUS 会计算活动 Wi-Fi 接口的数量,因此乘客无需在智能手机上安装任何东西,也无需连接 AP;

  • iABACUS 基于去随机化机制,克服了无法将两个或多个随机 MAC 地址分配给同一设备的问题。此外,由于原始MAC地址是未知的,因此无法推断乘客的身份,并保护了他们的隐私;

  • iABACUS 不仅计算乘客的设备,还通过提供乘客上车或下车时间来跟踪乘客乘坐公共交通工具的整个旅程。因此,它的功能不仅限于乘客计数:它可以实现城市流动性的观察和分析,这为短期和长期的 PTC 规划提供了很大的支持;

在本文的其余结构如下。 第 2 节介绍了 APC 技术的背景。 在第 3 节中,对 iABACUS 模型进行了详尽的描述。 在第 4 节中,展示和讨论了评估整体系统性能和准确性的实验。 最后,在第 5 节中得出结论以及未来的方向。

2、最先进的技术

一般来说,APCS是通过运输车辆上使用的电子设备来实现的。 他们主要准确地记录原始的乘客登机和下车数据。 对 APCS 及其相关分析的研究相当广泛,可以区分传统的 APCS 和新兴的 APCS。

2.1、 传统的自动乘客计数系统

传统的APCS可以根据乘客的间接或直接措施进行分类。 在间接测量的情况下,乘客可以通过地面或悬架或制动系统上的负载传感器称重所有机上乘客来估计(例如,[6,19])。 这种间接的 APC 技术提供了乘客的总重量,但不提供乘客流量的数据。

在直接测量的情况下,乘客是通过计算上下车时的人数来估算的。介绍了三个主要系统,包括红外垫传感器和视频图像传感器(例如,[6-8,20-28])。通常,垫子传感器在公交车每个门的两个台阶上测量一个人的重量。当踏板施加最小设计重量(例如,15 kg-[6])时,这些垫子会被激活。红外传感器通过光束测量乘客数量,当他们上车或下车时光束被中断(例如,[6,7,20-22])。红外系统最常用于此类应用,并且在商业中很容易找到。此外,一些测试表明,该技术能够以高精度计算乘客总数和最大载客量(例如,[7,29])。然而,尽管这项技术在公共交通中占主导地位,但随着人数的增加,性能可能会变得更差 [8,24]。视频图像传感器使用公交车上的摄像头测量乘客,这些摄像头能够识别两个方向的客流(例如,[8,25-28])。这些系统依靠动态图像序列处理来自动计算公交车上上下车的乘客数量。他们使用几种算法来 (i) 检测运动,(ii) 估计其方向,以及 (iii) 验证移动乘客的存在。表 1 总结了每种传统的 APC 技术,其中报告了主要问题和可能的解决方案以及优缺点。表 1 是不言自明的。尽管如此,所有传统技术都提供了乘客登机和下车的衡量标准。因此,只需要推断乘客的出发地和目的地。此外,即使直接 APCS 似乎比间接 APCS 工作得更好,但所有技术都存在自己的缺点。主要缺点是资本成​​本,由于每扇门需要安装多个传感器,以及维护成本。
iABACUS:基于 Wi-Fi 的自动公交车乘客 计数系统

2.2、新兴的自动乘客计数系统

新兴的 APCS 系统是最近才出现的,并且随着无处不在的互联网连接和物联网的发展而迅速增加。 此外,它们在以下方面优于传统系统
资本和维护成本,因为公交车运营商不必安装必须“物理集成”在公交车上的传感器或设备。 使用这些系统,可以通过计算所执行的设备以间接方式检测到乘客。 有人可能会争辩说,一些乘客可能携带不止一台设备,从而高估了乘客总数。 然而,这不是这些系统的强限制。 实际上,可以校准一些调整因素以提高对推断的分类登机和下车乘客进行缩放的准确性。

文献可以分为三种不同的系统:(1)基于通话详细记录的大规模手机数据; (2) 安装在智能手机中的应用程序,以及 (3) Wi-Fi 技术。 当设备连接到蜂窝网络时,大型手机系统会收集数据。 这可能包括拨打或接听的电话、发送或接收的短消息和/或当用户连接到互联网时(例如,浏览网页)。 根据这项技术,[30] 提出了一种在总体水平上估计公共交通服务的乘客需求的方法。 更准确地说,他们展示了如何提取居民的重要起源和目的地来推断起源-目的地矩阵。

Wi-Fi 系统代表了一旦设备具有活动的 Wi-Fi 接口就可以收集数据的新技术,这与它的所有者是否连接到网络无关 [38]。实际上,这些系统基于设备发现过程,允许设备通过获取它们的 MAC 地址来发现其他设备 [39]。这些年进行了最近的研究。例如,参考文献 [13,40] 评估了安装在公共汽车上的移动 AP 是否有助于检测用户设备的相对位置。这是为了识别用户设备是在总线内部还是外部。他们表明,与接收到的信号强度指示不同,总线速度可能是一个很好的指标,可以很好地指示连接是在总线内部还是外部建立。桑托斯等人[41]提出了一个基于物联网技术的多源传感基础设施(即波尔图生活实验室)。它旨在检测城市规模的四种现象,即天气、环境、公共交通和人流。该基础设施有助于使用 Wi-Fi 连接和公交车的车载装置估计公交车上的总乘客流量。

值得注意的是,乘客可能已经关闭了 Wi-Fi,因为它会消耗电池 [42]。因此,Wi-Fi 可能会导致对乘客量的低估。 然而,这不是一个相关的问题,因为:(1) 可以为将应用此方法的每个城市校准适当的比例因子。 通过对公共汽车乘客的统计样本进行适当的调查,校准一个以公认的置信水平和误差幅度为特征的比例因子非常简单,以便以统计准确度估计连接到 Wi 的人的百分比是多少 -Fi 网络。 例如,在多德雷赫特(荷兰),连接到 Wi-Fi 网络的人数从 31% 到 49% 不等,因此可以应用第一个因素来调整客流量 [43]; (2) Wi-Fi AP数量迅速增加,预计未来将有很多公交车配备Wi-Fi AP。

表 2 对每种新兴的 APC 技术进行了总结,该表按表 1 进行组织。尽管可以通过计算所执行的设备以间接方式检测到乘客,但表 2 显示所有新兴技术都可能有助于估计乘客的出发地和目的地 . 有人可能会争辩说,一些乘客可能携带不止一台设备,从而高估了乘客总数。 然而,这并不是这些技术的强烈限制。 实际上,可以校准一些调整因素以提高对推断的分类登机和下车乘客进行缩放的准确性。

无论如何,Wi-Fi 系统似乎优于大型手机和智能手机应用程序系统,因为它们既不依赖电信运营商,也不依赖乘客的同意。 此外,它们能够以匿名方式跟踪乘客。 因此,该系统有望提供有趣的结果,并将在本文中采用。

2.3、文献空白

总体而言,毫无疑问,所有这些研究都为研究和实际应用提供了有趣且引人入胜的结果。 他们提供的证据表明可以采用不同的 APCS 来衡量乘客量。

然而,通过分析有关采用这些技术的文献,我们强调了一些差距。

首先,在传统的 APCS 中,无法在其出发地和目的地公交车站跟踪乘客,而只能对每个公交车站的乘客进行聚合估计。

其次,基于大型手机和/或智能手机应用程序的新兴 APCS 可能有助于计算上下车次数以及估计乘客的出发地和目的地。但是,提供此估算需要与电信运营商合作和/或征得乘客同意。

因此,使用基于识别与设备的 Wi-Fi 相关的 MAC 地址的 Wi-Fi 系统来阐明乘客数量的估计以及对起点目的地矩阵的估计可能是至关重要的。 Fi 接口。然而,最近由操作系统提供商在移动设备上引入的 MAC 地址随机化程序使得乘客跟踪变得特别困难。出于这个原因,iABACUS 中引入了去随机化机制来解决这个问题。参考文献中提出的方法,iABACUS 提供了多个优点:它可以对乘客进行匿名计数;乘客无需采取任何行动;对客流进行观察和分析,从而有助于短期和长期的城市交通规划。

3、系统说明

iABACUS 基于检测来自任何设备的 Wi-Fi 签名,例如手机、平板电脑等,具有活动的 Wi-Fi 接口。 如图 1 所示,总线上安装了一个车载单元。 由于嗅探器的存在,它负责从车载设备收集 MAC 地址、存储数据并提供收集数据的第一个详细信息(MAC 地址的去随机化)。 然后通过运行中的移动连接或通过公交车站的 Wi-Fi 连接将数据传输到云端,在此进一步分析数据以计算公交车上的实际设备数量。

每次 Wi-Fi 设备必须传递消息时,它都需要知道要访问哪个 AP。 该信息通过关联的概念提供给设备,关联是支持设备连接性的必要但不充分的操作。 实际上,在允许设备通过 AP 发送数据消息之前,它必须首先与 AP 关联。 为此,设备会发送探测请求帧,即从任何活动的 Wi-Fi 接口定期广播的消息,以检测附近的 AP。
iABACUS:基于 Wi-Fi 的自动公交车乘客 计数系统

所提出系统的核心是收集和分析探测请求帧的 Wi-Fi 嗅探器; 这些帧包含的信息可以明确地与发送它们的设备相关联,从而能够对其进行识别和计数。 实际上,如图 2 所示(请注意,图 2 的目的不是描述 Probe Request 帧的字段,而只是显示其结构。感兴趣的读者可以参考 [44] 以了解有关该标准的更多详细信息。 ),探测请求帧的字段之一是源(SA)的 MAC 地址,由制造商明确分配给 Wi-Fi 接口。 因此,常见的基于 Wi-Fi 的 APCS 能够通过计算接收到的探测请求帧中识别的不同 MAC 地址的数量来找到靠近嗅探器的不同设备的数量。

然而,当前基于 MAC 识别的基于 Wi-Fi 的 APCS 只能有效地适用于过时的操作系统(早于 Android 5.0、iOS 7 和 Windows Phone 8)。 事实上,为了保护用户的隐私免受设备跟踪,主要的移动操作系统提供商已经引入了 MAC 地址的软件随机化 [16]:探测请求帧中包含的 MAC 地址不是与 Wi-Fi 接口不再,而是随机生成的,并且会定期更改。

将随机 MAC 地址与非随机 MAC 地址区分开来的特点是,非随机 MAC 地址的前 6 个八位字节由电气和电子工程师协会 (IEEE ) 并标识现有网卡的制造商。因此,将探测请求帧中包含的 MAC 地址的前 6 个八位字节与与现有网卡制造商相关联的所有 OUI 的列表进行比较。如图 1 所示,如果 MAC 地址被识别为随机 MAC 地址,即其前 6 个八位字节不对应任何现有的 OUI,则在嗅探过程之后、计数算法之前运行去随机化算法。否则,不需要去随机化,Probe Request 可以直接传递给计数算法。计数算法的主要目标是了解收到的哪些探测请求来自实际在公共汽车上的设备,或者是由于汽车或附近的人移动而收到的。

下面将详细描述去随机化过程和计数算法。

3.1、去随机化算法

操作系统提供商引入的 MAC 地址随机化允许将网卡的真实 MAC 地址隐藏在发送它们的设备的探测请求帧中。 在探测请求帧中,真实 MAC 地址被随机 MAC 地址替换,这些地址在有限的时间段内多次更改。 更改不会定期或根据预定义的时间发生,而是取决于设备的使用。 因此,探测请求帧中包含的 MAC 地址不再足以像以前那样对设备进行计数。

在本节中,我们介绍去随机化算法,其目的是了解哪些 MAC 地址更有可能被带回同一设备。 实际上,可以利用探测请求帧中包含的一些参数来充分可靠地估计包含不同随机 MAC 地址的帧可能已由同一设备发送。

特别是,即使使用随机 MAC 地址,探测请求帧的某些字段也保持不变,如图 3 中的红色方块突出显示的那样,也称为标记参数 [44]。
iABACUS:基于 Wi-Fi 的自动公交车乘客 计数系统

此信息在同一设备发送的所有探测请求帧中都是相同的,即使 MAC 地址是随机的。 但是,此信息标识特定的设备系列,而不是单个设备。 为了使包含不同随机 MAC 地址的两个帧可追溯到同一设备,因此必须将这些信息相同的事实视为第一个条件,必要但不充分。

因此,去随机化算法需要利用其他参数,这些参数的变化提供了重要信息。 让我们考虑从嗅探器收到的两个 MAC 地址,即 M A C i MAC_i MACi M A C j MAC_{j} MACj,其中 M A C i MAC_{i} MACi M A C j MAC_{j} MACj 之前收到。 因此,为了将两个 MAC 地址追溯到同一个源设备,接收到 M A C i MAC_{i} MACi 的时刻,即它的时间戳,必须低于 M A C j MAC_{j} MACj 的时间戳。 因此,调用 t g i tg_{i} tgi t g j tg_{j} tgj 分别为 M A C i MAC_{i} MACi M A C j MAC_{j} MACj 的标记参数,直到与 M A C i MAC_{i} MACi关联的最后一个时间戳和 t j f t_{j}^{f} tjf M A C j MAC_{j} MACj 关联的第一个时间戳(均以秒表示),当且仅当, 满足以下条件:

Γ i j ={ t g i ≡ t j t i l < t j f \Gamma_{i j}=\left\{\begin{array}{l} t g_i \equiv t_j \\ t_i^l<t_j^f \end{array}\right. Γij={tgitjtil<tjf

其中等式 (1) 的第一个条件仅选择具有相同传输特性的设备,即相同的标记参数,而等式 (1) 的第二个条件确保带有 M A C i MAC_{i} MACi 的最后一帧在带有 M A C j MAC_{j} MACj 的第一帧之前发送。

如上所述,去随机化算法评估两个随机 MAC 地址对应于同一设备的概率。 为了计算这个概率,我们为每对确定的随机 MAC 地址定义一个分数。 得分是使用时间戳和探测请求中包含的另一个相关参数计算得出的:帧序列号。 序列号是一个 12 位代码,随着每一帧逐渐增加,并包含在序列控制(图 2 中的 Seq-ctl)中。 它的值从 0 到 4095 不等,一旦达到该最大值,编号将从 0 重新开始。连续的帧具有递增的序列号,即使随机 MAC 地址发生变化。
该分数与不同MAC地址的接收帧之间的时间差和序列号的差成反比。 时间差表示为:
Δ T i j = t j f − t i l (2) \Delta T_{i j}=t_j^f-t_i^l \tag{2} ΔTij=tjftil(2)
它表示帧到达的连续性,即使对于随机地址也是如此,然后保证自地址更改以来没有经过太多时间。 序列号的差异具有相似的目标,即即使 MAC 地址由于随机化过程而改变,也要检查接收帧的连续性。 但是,我们需要考虑到序列号假定值在 0 到 4095 之间。定义 s i l s_i^l sil M A C i MAC_{i} MACi 对应的最后一帧的序列号, s j f s_j^f sjf M A C j MAC_j MACj 对应的第一帧的序列号,得到的公式如下 :
Δ S i j = { s j f− s i l  for  s i l s j f (3) \Delta S_{i j}= \begin{cases}s_j^f-s_i^l & \text { for } s_i^ls_j^f\end{cases} \tag{3} ΔSij={sjfsil4095(silsjf) for sil<sjf for sil>sjf(3)

然后将算法中使用的分数定义为:
 Score  i j = { 1 Δ T i j ⋅ 1 Δ S i j  for  Γ i j ≡  true  0  otherwise  (4) \text { Score }_{i j}= \begin{cases}\frac{1}{\Delta T_{i j}} \cdot \frac{1}{\Delta S_{i j}} & \text { for } \Gamma_{i j} \equiv \text { true } \\ 0 & \text { otherwise }\end{cases} \tag{4}  Score ij={ΔTij1ΔSij10 for Γij true  otherwise (4)

仅当等式 (1) 成立时,得分才假定值高于 0,即如果 j 和 i 具有相同的标记参数并且它们一个接一个地被接收。 对于大于 0 的值,值越大,两个 MAC 地址归属于同一源设备的概率越大。

一旦为识别的所有随机 MAC 地址对计算了分数,该算法的任务就是创建可追溯到同一源设备的 MAC 地址列表。现在解释图 4 的流程图中描述的创建列表的过程。每当接收到具有新随机 MAC 地址 M A C j MAC_j MACj 的帧时,都会在 M A C j MAC_j MACj 和已经在列表中的所有其他随机 MAC 地址之间计算分数。如果尚未创建列表,则不会计算分数;如果所有分数都等于 0,则 M A C j MAC_j MACj 肯定属于一个新设备。在这两种情况下,都会创建一个以 M A C j MAC_j MACj 作为唯一元素的新列表。否则,识别出与 M A C j MAC_j MACj 得分最高的地址 M A C m MAC_m MACm,即最有可能属于同一设备的地址 M A C m MAC_m MACm。考虑 M A C m MAC_m MACm 所在的列表 L x L_x Lx,如果 M A C m MAC_m MACm 是列表的最后一个元素,则将 M A C j MAC_j MACj 附加到列表中。如果列表 L x L_x Lx 中的 M A C m MAC_m MACm 后面还有另一个 MAC 地址 M A C n MAC_n MACn,则必须将 S c o r emj Score_{mj} Scoremj S c o r emn Score_{mn} Scoremn 进行比较:如果前者低于后者,则意味着 M A C m MAC_m MACm M A C n MAC_n MACn 更有可能属于同一设备,具有关于 M A C m MAC_m MACm M A C j MAC_j MACj。因此,为 M A C j MAC_j MACj 找到正确列表的过程再次开始忽略 m。另一方面,如果 S c o r emj Score_{mj} Scoremj 高于 S c o r emn ,则 Score_{mn},则 Scoremn,则MAC_m$ 和 M A C j MAC_j MACj 属于同一设备的概率高于 M A C m MAC_m MACm M A C n MAC_n MACn 属于同一设备的概率。因此, M A C j MAC_j MACj M A C m MAC_m MACm 之后被放入 L x L_x Lx。此外,列表 L x L_x Lx 中的以下 MAC 地址不再确定属于同一设备。因此,对于 M A C n MAC_n MACn 及其在 L x L_x Lx 中的所有后续 MAC 地址,再次重复该过程。

因此,该过程采用递归形式。 最后,所有列表都是其中存在的 MAC 地址可追踪到同一设备的可能性更大的列表。 因此,属于同一列表的所有帧都被标记有相同的 MAC 地址。
iABACUS:基于 Wi-Fi 的自动公交车乘客 计数系统

3.2、乘客计数算法

一旦解决了去随机化过程,我们需要分析结果数据,这些数据代表被感知设备的唯一 MAC 地址,以便统计公交车上的人数。
对于静态情况,例如,在计算房间中的人数时,需要考虑几个问题才能准确地仅计算公共汽车上的人数。

  • 两个连续公交车站之间的距离变化很大,从百分之一米到一两公里不等;
  • 未定期发送探测请求;
  • 巴士在每一站所用的时间是可变的,并且可能有巴士不停靠的站点;
  • 嗅探器可以感应到不在公交车上但在人行道上行走、在公交车站等车或公交车附近的车内的设备;

让我们考虑图 5 中描述的场景; 我们的目标是统计公交车上的人数,并了解最后一站有多少人上下车。 为此,我们定义公共汽车站集合 Z = { 1 , … , z , … Z } \mathcal{Z}=\{1, \ldots, z, \ldots Z\} Z={1,,z,Z},这样对于每个停靠站 z,我们可以定义到达公共汽车站 t z a t_z^a tza 的时间和离开的时间 t z d t_z^d tzd; 然后,我们称时间花费,公交车在每个站点花费的时间间隔,可以识别如下:
Δ T z S = t z d − t z a (5) \Delta T_z^S=t_z^d-t_z^a \tag{5} ΔTzS=tzdtza(5)
iABACUS:基于 Wi-Fi 的自动公交车乘客 计数系统
我们还可以将运行时间确定为公共汽车从一站运行到下一站所需的时间,如下所示:
Δ T z , z − 1 I = t z a − t z − 1 d (6) \Delta T_{z, z-1}^I=t_z^a-t_{z-1}^d \tag{6} ΔTz,z1I=tzatz1d(6)
为了克服前面提到的问题,我们需要过滤数据库中的所有条目。为了解决探测请求接收频率的可变性,对于每个停止 z,我们需要检查一个时间窗口,以便考虑计数 仅算法在间隔中包含的瞬间接收的探测请求:
t ∈ [ t z − 1 a − Δ T W , t z d + Δ T W ] (7) t \in\left[t_{z-1}^a-\Delta T^W, t_z^d+\Delta T^W\right] \tag{7} t[tz1aΔTW,tzd+ΔTW](7)
其中 Δ T W \Delta T^W ΔTW 是一个固定参数,称为观看时间。

在时间过滤之后,我们需要了解剩余的 Probe Requests 是否由总线上的设备传输。 为此,我们对过滤窗口中的所有条目进行了一系列检查。 执行第一次检查以计算每个 MAC 地址的帧数,即 N iframe N_i^{frame} Niframe,以便识别仅在公共汽车移动期间短暂遇到的设备,例如行人或驾驶员的智能手机: 如果捕获的帧数低于给定的阈值 x,那么这些设备的请求可能只被嗅探器捕获了几次,然后应该被丢弃。

实施另一项检查来评估来自探测请求的接收功率:接收功率与发送设备相对于嗅探器的距离成反比,因此可以丢弃来自设备的所有探测请求。 远,然后很可能在公交车外,例如一辆汽车在公交车前面移动的情况,如图 5 所示。特别是,我们考虑到来自 M A C i MAC_i MACi 的 Probe Requests 的平均功率由 sniffer 必须高于某个阈值 Pth P_{th} Pth,即 P iavg > Pth P_i^{avg} > P^{th} Piavg>Pth; 这样做,甚至可以丢弃在交通拥堵中不断移动(功率较低)并再次与公共汽车汇合(功率较高)的汽车的情况。

最后,由于探测请求的发送方式,即通过一系列近时间请求,我们决定考虑另一个参数,即总线 Δ T P \Delta T^P ΔTP 上设备的持久性,计算为最后一帧和第一帧之间的差异 在时间窗口中接收到,即 $t_i^{l*} 和 t if∗ t_{i}^{f*} tif,以评估请求是否属于不同的请求序列。

总而言之,如果满足以下条件,则时间窗口内的通用 MACi 地址的条目(如公式 (7) 所定义)将被考虑用于计数算法:

{ N i f  rame >xP i a v g> P t ht i l ∗− t i f ∗>Δ T P (8) \left\{\begin{array}{l} N_{i}^{f \text { rame }}>x \\ P_{i}^{a v g}>P^{t h} \\ t_{i}^{l^{*}}-t_{i}^{f^{*}}>\Delta T^{P} \end{array}\right. \tag{8} Nif rame >xPiavg>Pthtiltif>ΔTP(8)
过滤步骤后剩下的唯一 MAC 地址的数量可以粗略估计总线上的设备数量。然而,评估设备板和灯的停止位置仍然很重要。该信息对于构建起点-终点矩阵非常有用,而且对于评估 MAC 地址的第一次或最后一次出现是否距离任何站点都不太远,因此表明另一辆车以相似的速度靠近公共汽车,而不是比乘客登上或离开正在行驶的公共汽车。

对此,我们认为只有在公交车站的时间范围内分别收到第一个或最后一个探测请求时,设备才会从公交车上车或下车。这是必要的,因为无法提前知道何时发送探测请求,所以我们必须保证在到达巴士站之前都有一个警卫时间,\Delta T_{z}^{G_{b}},在离开它之后,\Delta T_{z}^{G_{l}},对于那些在到达公共汽车站之前或离开它不久之后发送第一个或最后一个探测请求的不幸情况。

对于每个具有 Δ T S > 0 \Delta T^{S}>0 ΔTS>0 的公交车站,都会有 Δ T zGb + Δ T zGl + Δ T z S \Delta T_{z}^{G_{b}}+\Delta T_{z}^{G_{l}}+\Delta T_{z}^{S} ΔTzGb+ΔTzGl+ΔTzS 的时间范围 可用于接收来自设备的第一个或最后一个探测请求。一般来说,对于每个停止之前和之后的所有停止,保护时间都可以认为是恒定的,因此我们可以将其表示为 Δ T G \Delta T^{G} ΔTG;但是,如果两站之间的运行时间 Δ Tz,z−1 I \Delta T_{z, z-1}^{I} ΔTz,z1I 太小,即小于 Δ T zGb + Δ Tz−1 Gl = 2 Δ T G \Delta T_{z}^{G_{b}}+\Delta T_{z -1}^{G_{l}}=2 \Delta T^{G} ΔTzGb+ΔTz1Gl=TG ,则保护时间必须相应修改为 Δ T zGb = Δ Tz−1 Gl = 0.5 Δ Tz,z−1 I \Delta T_{z}^{G_{b}}=\Delta T_{z-1 }^{G_{l}}=0.5 \Delta T_{z, z-1}^{I} ΔTzGb=ΔTz1Gl=0.5ΔTz,z1I

我们最终需要了解,对于每个时间窗口和每个设备,该设备是否真的在船上,以及它是否在考虑的时间范围内登机或下车。如图 5 所示,在分析单个时间框架时,我们可以细分不同的行业:

  • 扇区 1,在时间窗口开始和停止 z-1 的保护时间开始之间。
  • 扇区 2,分析停止 z-1 ,同时考虑防护时间、停止前后以及花费的时间。
  • 第 3 部分检查两站之间的时间。
  • 扇区 4,它考虑了停止 z 的事件。
  • 扇区 5,在停止 z 的保护时间结束和时间窗口之间。

对于每个设备,计数算法首先检查该设备是否已被考虑在船上。如果这是嗅探器第一次收到设备的请求,算法必须了解设备在哪个停止登机:如前所述,设备只有在第一次探测请求时才能登机, t if∗ t_{i}^{f ^{*}} tif ,当公共汽车在公共汽车站附近时收到。如果在扇区 2 中收到第一个探测请求,则该设备将被计为在 z − 1 z-1 z1 站上车,如果在扇区 4 中收到第一个探测请求,则该设备将被计为在 z 站上车。在所有其他情况下,即当在扇区 1、3 和 5 内收到探测请求时,设备的所有条目都被认为是虚假的,然后被丢弃。

板载设备被认为是整个时间窗口;在这种情况下,等式 (8) 中描述的下一个时间窗口的帧数条件更新如下:

Niframe + 1 > x N_{i}^{\text {frame}}+1>x Niframe+1>x

考虑到设备已经在船上。但是,如果设备在下一个时间窗口(即停止 z + 1 z+1 z+1)中没有通过过滤步骤,则算法返回到前一个时间窗口,通过分析收到的最后一个探测请求 t il∗ t_{i }^{l^{*}} til。同样,仅当分别在扇区 2 或 4 中接收到最后一个探测请求时,设备才会被计为在 z − 1 z-1 z1 z z z 站下车,否则将丢弃该设备的所有条目。

值得注意的是,每次公交车到达停靠站 z 时,该算法都能够通过检查下一个时间窗口来计算与上一站相关的乘客数量。

图 4 说明了整个过程的所有步骤。它从探测请求的嗅探开始,到所有公交车站都经过分析以计算乘客数量时结束。

4、 实验

在本节中,评估 iABACUS 的性能。实验的设置包括 Wireshark 嗅探器,设置为监控模式,过滤器仅拾取具有广播目标地址的探测请求帧,即 ff:ff:ff:ff:ff:ff。捕获的帧被发送到 MySQL 数据库,在那里它们被收集和存储。为此,通过 Lua 脚本建立连接,将捕获的帧转发到数据库。然后通过 PHP 应用程序查询数据库。

下面将展示基于此设置的实验结果。第 4.1 节所示的第一个实验是为了在静态场景中测试去随机化算法。稍后,第 4.2 节介绍了在动态场景中对乘客进行计数的测试。

4.1、去随机化算法的准确度评估

第一次测试是在静态场景中进行的,专门用于评估去随机化算法的准确性。测试结果取决于去随机化过程后识别的设备数量,即作为第 3.1 节中描述的去随机化算法的输出生成的列表数量

实验在 15 分钟的时间窗口内在大学房间内进行。以下信息是从房间内的设备所有者那里收集的: 具有活动 Wi-Fi 接口的设备数量;设备的真实 MAC 地址;品牌、操作系统类型和设备版本。
实验中考虑的第一个参数是传输频率。事实上,根据标准,Wi-Fi 的典型传输频带是 2.4 和 5GHz。然而,虽然所有检测到的设备都以 2.4 GHz 传输,但这并不总是在 5 GHz 上得到验证。此外,2.4 GHz Probe Request 帧是最完整和信息最丰富的。因此,2.4 GHz被选为 Wireshark 嗅探器的接收频率。还评估了收集两个频率信息的可能性。但是,由于嗅探器一次只能捕获一个频率的数据,因此需要将两个嗅探器放置在同一点。此外,结合两个嗅探器的捕获和分析更多帧的过程将显着增加系统的计算负载,同时不会提供重要的进一步信息。由于这些原因,接收频率设置为 2.4 GHz 。

为了设置最合适的功率阈值 Pth P^{th} Pth ,将考虑的设备限制在房间内的设备上,评估了接收到的所有探测请求帧的平均功率,如图 6 所示。 正如预期的那样,对于靠近嗅探器的设备测量了最高的平均功率。 此外,可以注意到高于 -51 d B m \mathrm{dBm} dBm 和低于 -61 d B m \mathrm{dBm} dBm 的接收功率值之间存在明显的划分。 随着距离的增加,后一种更高的衰减可以归因于墙壁的存在。 因此,功率阈值设置为 -55 d B m \mathrm{dBm} dBm 。 用于该测试的参数总结在表 3 中。

在这种静态情况下测试的 iABACUS 的最终结果如表 4 所示,其中将提出的算法计算的 MAC 地址数与常见的基于 Wi-Fi 的 APCS 计算的 MAC 地址数进行比较,即系统不考虑 MAC 地址的随机化,只计算识别出的唯一 MAC 地址的数量。从表中的数据可以看出,与不考虑 MAC 地址随机化的普通基于 Wi-Fi 的 APCS 相比,iABACUS 确保获得更准确的结果。特别是,系统返回房间中存在的确切设备数量(即 21 个),而传统程序会记录显着更多的设备数量(即 37 个)。由于普通的基于 Wi-Fi 的 APCS 只能理解 MAC 地址是否是随机的,而不能理解两个不同的随机 MAC 地址是否可以与同一设备相关联,因此它们会将设备与接收到的每个不同的随机 MAC 地址相关联。因此,他们对实现 MAC 地址随机化的设备数量的误差与观察时间窗口相关,在这种情况下等于 15 分钟:时间窗口越长,设备更改其 MAC 的次数越多地址,然后计数的设备数量越高。

4.2、乘客计数实验

为了评估所提出的计数算法的可行性和性能,再现了真实的动态环境。这种动态场景的主要特征是,由于嗅探器本身的移动,人们有可能进出嗅探器字幕的范围。公交车内的嗅探器就是这种情况,人们在公交车站上下车。

实验在意大利卡利亚里市进行。为了限制它们的随机性,我们使用汽车来模拟巴士站位置和所花费时间的现有巴士路径。汽车的路径如图 7 所示,其中还突出显示了所考虑的 13 个站点。涉及的 Wi-Fi 设备数量限制为 8 个,其中三个实现 MAC 地址的随机化。通过分别打开和关闭设备的Wi-Fi接口来模拟人们上下车的事件。实验计划如表 5 所示,它表示对于每个设备,从设备 A 标记到设备 H \mathrm{H} H ,起点’和目的地’停止;表 5 还显示了执行的三个测试的结果,这将在下面讨论,以淡蓝色突出显示发生错误的单元格。所有的实验都是在午休前或午休期间在中等交通条件下进行的。路径长约 2.4   k m \mathrm{~km}  km 并且有三个红绿灯:汽车需要大约 15   m i n 15 \mathrm{~min} 15 min才能行驶,这也是乘坐公共汽车的乘客的平均时间。

对于嗅探器,第 4 节中描述的相同设置已在以 Raspbian Stretch 作为操作系统的 Raspberry Pi 2 上实现,以提高解决方案的可移植性。 USB Wi-Fi dongle 用作天线,使 Raspberry 能够收集探测请求。汽车的路径已通过 GPS 模块 (GPS GY-NEO-6M v2) 进行监控,每 5   s 5 \mathrm{~s} 5 s 将其位置(纬度和经度)发送给 Raspberry。 GPS 信息对于获取每个公交车站的到达时间 t z a t_{z}^{a} tza 和出发时间 t z d t_{z}^{d} tzd 以及运行时间 Δ Tz,z−1 I \Delta T_{z, z -1}^{I} ΔTz,z1I ,这是我们计数算法的关键参数。此外,GPS 通过比较它们的时间戳来启用与 Raspberry 接收的探测请求的空间映射。

表 6 总结了在执行测试期间考虑的参数值。我们在第一次测试中为参数选择了合理的值;然后我们分析每个测试的结果,将它们与计划的实验进行比较,以便在后续测试中调整它们并纠正算法的错误。

第一次测试的结果显示设备 A \mathrm{A} A H \mathrm{H} H 丢失,设备 D \mathrm{D} D 板在第 4 站而不是第 2 站,而设备 C \mathrm{C} C 在第 8 站下车而不是停止 9 ;此外,我们个性化了一个新的设备,标记为 X \mathrm{X} X ,它在实验中没有计划,在第 3 站上车,在第 5 站下车。然后我们逐步分析了旅途中发生的事情:

  • 在时间过滤期间,发现对设备 A \mathrm{A} AH \mathrm{H} H 的请求少于 5 次,因此由于它们仅在船上停留了一站,因此它们被从算法中丢弃;在我们的实验中,设备通常会发送一系列探测请求,即一组请求,每 40 个   s \mathrm{~s}  s ,但处于节能模式的设备可以以较低的频率发送这些请求。通过研究嗅探器的捕获,我们注意到来自设备 A \mathrm{A} AH \mathrm{H} H 的探测请求的频率非常低,大约为 2-3 分钟,这意味着设备处于节能模式。
  • 我们从公共汽车站 2 的时间窗口中获得了设备 D 的条目,不幸的是,这些条目都没有在正确的扇区中,以便将设备计为已上车,直到汽车到达公共汽车站 4。
  • 关于设备C,在分析9号公交车站时,我们发现条目太少(只有3个),所以我们检查了之前的公交车站,即8号公交车站,发现设备最后一次探测请求在Sector 4,所以算法在第 8 站将设备标记为下车。
  • 最后,在第 3 站和第 5 站之间,我们遇到了一点交通堵塞,所以我们需要很多时间才能在这条路段上行驶,而且我们的算法能够从另一个设备(可能是来自在我们后面或前面行驶的汽车,然后被算作车上的乘客。

对于第二个测试,我们将时间窗口从 2 增加到 4   m i n \mathrm{~min}  min 并将所需的帧数从 5 减少到 3 ,以使即使处于节能模式的设备也能正确计数;此外,我们还增加了警戒时间 Δ T z G \Delta T_{z}^{G} ΔTzG ,这样无论上车还是下车,它都更有可能在正确的公交车站找到设备。我们还决定为接收功率设置一个更保守的阈值,以避免计算来自车外的设备。

通过对第二次测试的分析,我们发现只有一个错误:设备 C \mathrm{C} C 在 3 号巴士站下车,但在 5 号站再次上车,在 9 号站正确完成行程。通过检查设备发送的请求,我们注意到它们相当有规律(大约每 42   s \mathrm{~s}  s 一列请求),但由于某种原因,在停止 3 和 5 附近,嗅探器错过了其中一些,导致检测到奇怪的行为。但是,我们注意到之前的所有错误都已得到纠正,因此我们决定仅进一步减少计数算法考虑 MAC 地址所需的帧数。

在第三次测试中,我们注意到关于设备 C 的问题得到了解决,并且没有计算外部设备,即使需要的帧数等于 1:这是由于算法能够过滤掉大部分探测请求由于功率阈值。但是,我们检测到设备 D \mathrm{D} D 再次被计为在不同的公交车站上车,就像在第一次测试中发生的那样,但在第二次测试中没有;发生这种情况是因为停止 2 和停止 3 非常接近,因此其中没有扇区 3,并且停止 2 和停止 3 的两个保护时间重叠。然后设备D根据收到的第一个探测请求计为登机:在不幸的情况下,探测请求延迟到停止3,这将导致错误,这是无法避免的。

从这些测试中,我们可以推断出设置算法参数的简单规则。主要目标是不丢弃总线上的任何设备,即使它们处于节能模式:为此,时间窗口应该相当大,以确保检测到至少一个探测请求,而帧数失去意义.然后需要通过使用其他参数(例如功率阈值)来丢弃总线外部的设备。然而,这些规则只能提供关于设置的第一个提示,因为算法需要根据所考虑的特定路线和城市进行调整。

5、 结论和未来工作

本文提出了 iABACUS,一种基于物联网的新型公共交通自动乘客计数系统,它根据安装在公共汽车上的嗅探器收到的 Wi-Fi 探测请求来推断车上人数。 由于最新的移动操作系统引入的 MAC 地址的随机化,当前基于 Wi-Fi 的 APCS 现在已经过时。 出于这个原因,iABACUS 包含一个去随机化算法,以便了解哪些 MAC 地址更有可能被带回同一设备; 该算法在总共 21 台设备上的测试表明,它能够成功识别所有随机 MAC 地址。 此外,我们的测试还强调 MAC 地址的随机化是一个严重的问题,因为即使仅存在三个设备也可能导致在 15 分钟的时间间隔内计数高出六倍。

然后我们通过实际实验研究了计数算法,模拟了一辆汽车的公交车行为,并考虑了八名乘客,在不同的公交车站上下车。 实验是在压力条件下进行的,以强调算法的任何问题。 结果非常好,因为计数算法设置正确时,能够计算所有乘客; 但是,由于设备发送探测请求的频率较低,因此可能会出现与乘客正确上下车有关的随机错误。

在未来的工作中,我们计划考虑真实的用例条件,例如由于巴士尺寸或乘客身体吸收(尤其是拥挤的巴士)、干扰和非线路吸收导致的接收到的 Wi-Fi 信号衰减。视线,影响iABACUS的性能。我们将研究需要多少个嗅探器以及它们的最佳位置,以便正确识别所有车载设备的功率。外部的:使用多个嗅探器,可能设置为在不同的频率通道中累积请求,并汇总它们的结果,可能被证明是一种更好的方法。最后,我们计划研究与两个公共汽车站的接近度相关的随机误差,以便找到与它发生概率的关系。此外,我们计划研究由于我们系统中的未连接用户导致的系统错误;为此,我们旨在将所提出算法的结果与卡利亚里市当地公交车估计的计算乘客人数进行比较,并提出一个适用于我们系统的调整因子。城市之间的未连接用户数量肯定存在差异,因此我们希望每个城市都应该采用类似的方法。

jcg路由器知识网