第三只盲人之眼视觉 硬件开发项目【翻译】

第三只盲人之眼
一款基于 AI 的辅助工具,适用于盲人,方便移动。
在这里插入图片描述
源地址;https://www.hackster.io/taifur/third-eye-for-blind-82bcd5

故事
介绍
在全球范围内,约有 22 亿人没有视力,其中 90% 来自低收入国家。因此,对于这些低收入国家的视障人士来说,一个易于获得且低成本的解决方案非常重要。

视力受损的人无法像正常人一样感知环境和导航,从而导致行动不便。在这个项目中,我将展示如何使用人工智能和计算机视觉来解决问题。随着该项目的实施,盲人现在可以减少对当前环境和人的依赖。

在这个项目中,我加入了对象检测和文本到语音转换,以向视障人士解释环境。盲人可以使用耳机听到转换后的语音。

使用 Edge Impulse Studio 开发对象检测模型
我使用 Edge Impulse Studio 来训练对象检测模型。 Edge Impulse 是领先的边缘设备上机器学习开发平台。

要开始项目,您需要在 Edge Impulse 输入您的帐户凭据(或创建一个免费帐户)。然后,您就可以创建一个新项目了。数据是任何机器学习项目的主要燃料。

在 Edge Impulse 中,您可以上传以前的数据,也可以记录新数据。在我的项目中,我为我们房子里的一些常见物品(如椅子、桌子、床和脸盆)准备了一个数据集。我们可以包含在数据集中的对象越多,模型就越有效。数据集的大小也很重要。我们可以拍摄的特定物体的图像越多,我们可以预期的准确性就越高。

我为我的初始项目上传了 6 个对象的 188 张图像。我稍后会上传更多包含更多对象的图片。可以从 Edge Impulse Studio 的 Data acquisition 选项卡上传和标记数据。您可以让 Studio 在 Train 和 Test 之间自动拆分数据,也可以手动执行此操作。
在这里插入图片描述
脉冲设计
上传和标记数据后,下一步是设计一个 Impulse。冲动获取原始数据(在本例中为图像),提取特征(调整图片大小),然后使用学习块对新数据进行分类。

在此阶段,您应该定义如何:

预处理包括将单个图像的大小从 调整 为 并压缩它们(方形形式,不裁剪)。320 x 24096 x 96
设计一个模型,在这种情况下,您需要添加 “Object Detection”。
在这里插入图片描述
完整的 Impulse 将如下所示。
在这里插入图片描述
保存 Impulse 后,Studio 会自动移动到下一部分,其中所有样本都将被预处理,从而生成具有单个 96x96x3 图像或 12, 216 个特征的数据集。Generate features
在这里插入图片描述
现在,我们将训练我们的模型。我们需要从设置选项中设置神经网络参数,然后单击 train 按钮。训练过程将花费时间,具体取决于数据集的设置和大小。
在这里插入图片描述
增加数据集的大小需要更多的时间来训练,并提高准确性。训练周期和学习率等神经网络参数也会影响准确性。经过几次试验,我得到了以下结果。我花了大约 10 分钟才为我的数据集生成以下结果。虽然,结果不是很令人满意,但可以测试该项目。当然,对于实际应用,我们将添加更多样本图像以获得可用的准确性。
在这里插入图片描述
部署模型(使用 Arduino IDE)
为了实时检测对象(或推理),我们需要将模型上传到 XIAO ESP32S3 Sense。幸运的是,我们可以从 Edge Impulse 下载模型作为 Arduino 库,该库可以轻松集成或定制,以便为 Arduino IDE 支持的边缘设备开发固件。

那么,让我们下载开发板的 Arduino 库。为此,请选择 Arduino 库和量化 (int8) 模型,在 上启用 EON 编译器,然后按 。Deploy Tab[Build]

在这里插入图片描述
打开 Arduino IDE,然后在 下转到 和 。选择您从 Edge Impulse Studio 下载的文件,就是这样!SketchInclude Libraryadd.ZIP Library

在 Arduino IDE 的选项卡下,您应该会在您的项目名称下找到一个草图代码 (esp32 > esp32_camera)。Examples

项目链接: https://studio.edgeimpulse.com/studio/503872/impulse/1/deployment
在这里插入图片描述
为了提供正确的摄像头连接,您应该根据与我们的型号相关的数据,将第 39 行更改为第 55 行,这些线路定义了 XIAO ESP32S3 Sense 的摄像头型号和引脚。复制并粘贴以下行,替换第 39-55 行:

#define PWDN_GPIO_NUM    -1
#define RESET_GPIO_NUM   -1
#define XCLK_GPIO_NUM 21
#define SIOD_GPIO_NUM 26
#define SIOC_GPIO_NUM 27
#define Y9_GPIO_NUM 35
#define Y8_GPIO_NUM 34
#define Y7_GPIO_NUM 39
#define Y6_GPIO_NUM 36
#define Y5_GPIO_NUM 19
#define Y4_GPIO_NUM 18
#define Y3_GPIO_NUM 5
#define Y2_GPIO_NUM 4
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22

更新相机配置后,我尝试编译为代码,但它没有编译。我收到以下错误消息。
在这里插入图片描述
我尝试以不同的方式解决它,最后,我能够通过将 esp32 板管理器版本降级到 2.0.17 来编译它。然后我将代码上传到板子中
在这里插入图片描述
配置 Raspberry Pi
XIAO ESP32S3 Sense 检测周围环境中的物体,并返回物体的名称和位置。Raspberry Pi 的用途是通过 UART 接收对象名称和位置,并将文本转换为语音。

例如:冰箱在左边,床在前面

我在这里使用了 Raspberry Pi 1 B,性能令人满意。将操作系统安装到 Raspberry Pi 后,我配置了音频控制系统并将音量设置为 100%。

sudo raspi-config
在这里插入图片描述
然后我为 Pi 安装了免费软件包 Festival。Festival,由英国语音技术研究中心 (The Centre for Speech Technology Research in UK) 编写,为构建语音合成系统提供了一个框架。它通过许多 API 提供完整的文本转语音功能:从 shell 级别、通过命令解释器、作为 C++ 库、从 Java 和 Emacs 编辑器接口。

使用以下命令安装 festival:

sudo apt-get install -y libasound2-plugins festival

后续教程见:
https://www.hackster.io/taifur/third-eye-for-blind-82bcd5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值