×

使用计算机视觉进行电梯乘客计数

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-12

贾大林

分享资料个

描述

随着电梯在人们生活中越来越不可或缺,安全也越来越成为人们关注的问题。超载是电梯事故的重要原因。现有的电梯使用称重传感器来寻找电梯中的负载,它们有时会出现故障。而且他们的维护太贵了。为了避免此类事故的发生,我们打算设计一种装置,可以实时高速统计乘客数量,并在乘客数量超过阈值时发出警报。该设备可以安装在电梯的任何位置。与现有技术相比,其实施成本太低,且易于维护。

它是如何工作的?

在这个原型中,我们只考虑两层楼,一楼和一楼。在电梯里的所有乘客都进入后,任何人都需要按下关闭按钮。然后我们统计乘客人数,如果超过阈值设备就会发出警报。因此,一些人可以从中撤离,如果他们听到这个 auido 视觉警报。如果它不高于阈值,电梯将继续前进。用户可以在代码中设置阈值乘客限制。

除了超载警报,我们还提供电梯统计数据。这意味着该设备可以将带有特定时间戳的电梯计数上传到 excel 软件。按下关闭按钮后,计数将始终更新。该数据的一个有趣方面是可以通过任何图形或图表轻松地将其可视化。因此,它对分析电梯使用情况的任何人都非常有用。这是来自设备的计数,它以 CSV 格式记录(在 Microsoft Excel 中打开)。

poYBAGSBTtmAeqCzAAJ0n1ORQxY95.jpeg
 

下面是为上述数据生成的各种图表。

簇状列

poYBAGSBTtyAJwNuAAKBijHgpWM11.jpeg
 

折线图

poYBAGSBTt-ASq7OAAI8LHm9nms40.jpeg
 

饼形图

poYBAGSBTuKALuiNAAJLyBHFZ_A60.jpeg
 

考虑购物中心电梯的情况,因此通过使用这些统计数据,如果电梯的使用率过高,购物中心所有者可以轻松地添加电梯,如果使用率过低,也可以移除电梯。这是该项目的一个主要方面。

尼克拉愿景

在这个项目中,我们使用的是 Nicla Vision,它是 Arduino 的一个微型 AI 开发板。它配备了一个 2MP 彩色摄像头,能够智能地处理和从它看到的任何事物中提取有用的信息。

pYYBAGSBTuuAH007ABRgZXx03eA24.jpeg
 

数据收集和标记

为了收集数据,我们将电路板安装在三脚架上,并使用长长的 USB 数据线将其连接到笔记本电脑。下图显示了数据采集设置。

poYBAGSBTvKAAfO6AAxDG2yuyEs85.jpeg
 

整个设置在房间的一端,而我们实际上站在另一端。所以我们的微控制器单元可以很容易地接载乘客。您可以按照本教程将 Nicla vision 连接到 Edge Impulse。我们捕获了 73 张图像并将它们分为测试和训练。这些图像一次只包含一个人或两个人。然后我们一张一张地标记每张图片,这里我们只有一个名为“people”的类别。Nicla 视觉的方向提供倒置图像,这根本不是问题。

冲量设计

这是该项目的机器学习管道

pYYBAGSBTvmAbLT4AAHNzOebhp889.jpeg
 

我们选择图像宽度和高度为 96x96,调整大小模式为“适合最短轴”。保存脉冲后,我们移至图像选项卡并选择“灰度”作为颜色深度,并保存图像的参数和生成的特征。下图显示了生成的特征。

pYYBAGSBTvuAN8cCAABkNhTTl6s01.jpeg
 

模型训练

这是我们用于生成模型的神经网络训练设置和架构。

poYBAGSBTweAe4huAAEHffAzG8o71.jpeg
 

我们只是将训练周期从60改为70 进一步增加训练周期或学习率可能会使数据过度拟合,因此我们坚持这样做。作为神经网络架构,我们使用了FOMO (MobileNet V2 0.35) 结果令人惊讶。我们得到了大约 96% 的模型准确率(使用量化的 int 版本)。

poYBAGSBTwqAZGZZAAC2Dr34LVk89.jpeg
 

测试模型

现在是测试模型的时候了。首先,我们测试了之前分离的测试数据,我们得到了大约 84% 的准确率。好像还可以

poYBAGSBTw2APQARAAHerW81BV045.jpeg
 

现在让我们继续进行 Live 分类。因此,我们正在测试从 Nicla vision 捕获的 3 个示例图像,让我们看看我们的模型如何执行。

测试 1

pYYBAGSBTxGAYLEeAAFRnVt7zZs70.jpeg
 

测试 2

poYBAGSBTxSAfhIeAAFmsf9HpIU00.jpeg
 

测试 3

pYYBAGSBTxmARYmiAAFXKi-prYo41.jpeg
 

在我们所有的测试样本中,该模型都表现非常出色。

部署

现在我们有了 ML 模型,我们需要将它部署到我们的 Nicla 愿景中。我们刚刚通过按下构建按钮创建了一个 arduino 库,因此将下载一个 zip 文件。

pYYBAGSBTxuATsKeAAHwbw7Jtk454.jpeg
 

然后我们将该库添加到 Arduino。然后我们修改了示例草图以完成项目。您可以在此 github 存储库中找到代码和资产

附加硬件和外壳

除了 Nicla Vision,我们还使用了蜂鸣器和 LED 来发出警报。

pYYBAGSBTySAOMeUAA1CBHp2yi851.jpeg
 

但是 Nicla 的输出电流 (4.7 mA) 不足以正确启动 LED 和蜂鸣器。所以我们使用了一个 2N222A 晶体管来驱动这些设备。因此,除了 USB 电源外,我们还使用了 5V 的外部电源为 Nicla vision 本身供电。按钮也用于检查门是否关闭。

pYYBAGSBTy2AVUznABj7ytvxymg12.jpeg
 

最后,我们为这个设备做了一个漂亮的小盒子。

pYYBAGSBTzWATEzkABAF4nfC4FI54.jpeg
 

然后我们将每个组件插入其中。

pYYBAGSBTz2AAP2uABASFsKGocc89.jpeg
 

我们的设备已准备好实施。

TeraTerm

pYYBAGSBT0CAfCq8AABYtUU3dVQ12.jpeg
 

我们使用该软件从 Nicla 视觉流式传输数据。流数据可以以任何格式记录在任何地方。这里我们采用 CSV(逗号分隔值)格式,因此可以使用 Microsoft excel 轻松打开该文件。

poYBAGSBT0KAWjDCAACsw99wFx081.jpeg
 

确保在记录数据之前勾选时间戳。下图显示了从我们的设备流式传输的示例数据,该数据在 excel 中打开。

pYYBAGSBT0eAIcsZAASt-GqMPjo38.jpeg
 

我们可以通过选择该文本轻松地从该数据生成图形报告。下图表示上述数据的折线图。

poYBAGSBT0uANgscAAPTpl1I0xo48.jpeg
 

有多种可用选项,如下所示。

pYYBAGSBT0-AZOmgAAGq0--Esk438.jpeg
 

项目演示

 

结论

该装置可以很容易地与任何电梯集成,因此电梯只有在乘客在允许范围内时才会启动。为了降低成本,我们可以使用 ESP32 Eye-like 微控制器单元代替 Nicla Vision。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !