相关文章推荐
被表白的莴苣  ·  Sqlserver ...·  1 年前    · 
爱听歌的咖啡豆  ·  sql ...·  2 年前    · 

原标题:教程|别人都造AI鼻子了,快来打造你的第二嗅觉

大家都知道,柴火创客空间一直都是个藏龙卧虎的地方,这不前段时间,我们的海外社区伙伴 Benjamin Cabé “第二嗅觉:搭建一个联网的人工智能鼻子” 项目就登上了无线电杂志第10期的封面👏👏

《无线电杂志》

作|者|介|绍

[法国]Benjamin Cabé

Benjamin Cabé 是微软的一位软件工程师和物联网万事通,他目前生活在法国图卢兹。项目作者更多动态更新,可关注其 Twitter@kartben

Make: 杂志第 77 期期刊

此前这个项目也曾被国际知名创客杂志Make:收录并登上其封面,今天柴火菌就跟大家分享这个精彩的项目。

https://makezine.com/projects/second-sense-build-an-ai-smart-nose/

2020 5 月的某天,因为新冠肺炎疫情爆发,我跟其他很多人一样被困在家。呆在家里的时间多了之后,我便开始着手完善我的面包食谱。就在几天前,我在 Seeed 官方商城买了一个气体传感器(下图 1 ),我觉得它非常适合用来监控我的面包发酵程度,还可以帮助我在面团发酵到合适的时候进行烘烤。

图1 气体传感器

接着,我又想到, 这或许是我开始学习当下最流行的机器学习的完美借口了。但是 …… 如果要获取足够多的数据来建立一个训练模型,让 AI 能深刻了解面团发酵程度与完美面包之间的关系,我或许得烤出几十个法式长棍面包才能获取这些数据量。真的要这么大费周章吗?更何况,疫情之下,面粉还相当稀缺呢!

在做这个项目的过程中,除了机器学习,我还学到了很多东西。比如,我设计了生平第一个 3D 外壳,还学习了基础的流体动力学(其实,用一个鼻子里的气流来研究流体动力学,并非最佳途径)。这个项目是我从零开始搭建的第一个实体项目,所以我很开心能跟整个大家分享这个项目。以下是这个项目的详细制作步骤,非常期待能和你一起动手做一个人工智能鼻子。

  • 带有 LCD 屏幕的 Wio Terminal 微型控制器( Seeed Studio 官方商城购买 )
  • Grove 多通道气体传感器( Seeed Studio 官方商城购买 , 这个传感器可以测量二氧化氮 (NO2) 、一氧化碳 (CO) 、乙醇 (C2H5OH) 和挥发性有机化合物 (VOC)
  • Grove MOSFET 模块( Seeed Studio 官方商城购买 )
  • 4 针 Grove 接口到公头跳线 ( Seeed Studio 官方商城购买 )
  • 散热扇 , 5V DC, 25×25×10mm ( NMB 科技 )
  • 风扇护指, 25×25mm ( Sunon FG-2 )
  • USB-C 直角连接线(非必选)
  • Wio Terminal 电池套(非必选, Seeed Studio 官方商城购买 )
  • M2 和 M3 螺丝、螺母和垫圈
  • 面包板跳线, 10cm , 2 根
  • 3D打印机
  • 联网的计算机
  • 准备好所有的材料

    你可以从 Thingiverse 下载鼻子外壳的 3D 打印文件(见图 3 )。或者,带上一台 Miniaturizer3000 扫描仪飞往复活节岛,自己扫描一个 1:100 比例的摩艾石像鼻子文件!

    图3 鼻子外壳的3D打印文件

    不过鼻子外壳的外观不是最重要的,最重要的还是所需的所有电子元器件要准备好(见图 4 )。它们都采用了统一的 grove 接口,很容易通过即插即用的接线来连接,根本不涉及焊接。

    图4 所需的电子元器件

    连接所有电子元器件

    这个鼻子的大脑就是一个 Wio Terminal Wio Terminal 是一个与 Arduino 兼容的微型控制器平台,它具有足够的处理能力,来实时分析气味。而且它自带一个 LCD 屏幕,所以我们可以拥有一个漂亮的用户界面。设如何设置用户界面,可前往Seeed Studio 官网 了解更多库文件信息。

    Wio Terminal 的侧面也留出了多个 Grove 接口,非常方便。而且其背面也带有一个与 Raspberry Pi 兼容的扩展槽,可以连接各种传感器和执行器,所有接线都巧妙地被隐藏在其外壳内,因此整个外观接线也会非常简洁整齐。

    图5 电路连接示意图

    将气体传感器连接到 I²C 接口, MOSFET 模块(这个模块主要用于打开或关闭风扇,使鼻子可以 吸气 )连接到数字输出 D0 接口。按照接线图(见图 5 )连接所有电子元器件。

    组装整个鼻子

    使用带有垫圈和螺母的短 M2 螺丝将 Wio Terminal 和直流风扇固定在鼻子外壳的背面(见图 6 )。 风扇应该有一个箭头指示其旋转或气流的方向,但你可能需要先给它接上 5V 电源供电,检查它的旋转方向,确保它是让鼻子吸气,而不是呼气!

    图6 固定风扇和Wio Terminal

    将多通道气体传感器滑入鼻子外壳预留的专用插槽,让传感器正对鼻孔(见图 7 )。

    7 将传感器正对鼻孔

    让鼻子的 大脑 聪明起来

    前往这个网站( github.com/kartben/artificial-nose/releases )下载这个固件 (firmware.uf2) 。用 USB Wio Terminal 连接到电脑,然后快速连续按下 Wio Terminal 的电源开关两次,进入 bootloader 模式。此时,该 Wio Terminal 将在电脑上显示为外部驱动,你可以将刚刚下载的固件复制到它上面。

    成功复制固件后, Wio Terminal 将在训练模式下自动重启,并在其 lcd 屏幕上以图表形式,实时显示人工鼻检测到的各种气体

    用户界面操作

  • 左上角按钮 - 又名按钮1或 A键。按下可打开和关闭风扇。
  • 气体传感器

    气体传感器如何发挥作用?

    在这个项目里面,有关化学知识的部分你完全不用太关心,因为一个好的分压器,就可以轻松测量出电阻值(也就是气体浓度)。而且,我用的这个气体传感器甚至还有一个微控制器,可以帮忙读取电阻值,然后通过 I²C 接口以数字形式显示相应的读数。

    由于气体传感器涉及将金属氧化物传感层加热到一定温度,因此它们通常需要相当大的功率才能正常运转。例如,此项目中所用到的 4 个传感器,每个仅用于内部加热就会消耗 20mA 电流!如果你需要用电池给整个项目供电,需要记住这一点。

    此外,气体传感器正常运转也需要一段时间:根据产品说明书,在气体传感器开始预热 24 小时后,其读数会比较准确。因此,如果你只在需要读数时,将其打开几秒钟,获得的数据的准确程度可能相当糟糕。

    当初在设计这个鼻子外壳时,我其实很希望我可以用不同的方式来处理。回想起来,我当时用 Blender 而不是 CAD 软件来做,可能是一个坏主意。鼻子看起来很漂亮, Blender 也可以做令人惊叹的 3D 渲染,但一旦涉及到 3D 调整模型, Blender 的操作非常复杂。

    另一个我想改善的,是希望鼻腔和鼻孔能将气流直接集中到气体传感器上,这样检测效果可能会做得更好。现在的问题可能是因为风扇吹得太猛了,没有给气体传感器留出足够的时间,让其与空气中的分子发生反应。无论是哪种原因,都可以再尝试检测,或者不用鼻子外壳来做测试。

    我的下一步计划是:把 Wio Terminal 的内置 Wi-Fi 用起来,让这个人工智能鼻子连接一个无线设备。这样一来,它就可以在偏远或难以接近的使用场景下,发挥更大的作用。例如,在办公楼洗手间的吊顶中部署这样一个鼻子,便可以帮助物业团队检测并决定何时需要清扫。

    或许在你看到这篇项目教程时,我的 GitHub 账号很可能已经上传了相关的代码和教程更新,可以将检测到的气味直接实时上传到物联网平台。我还计划实现远程自动更新鼻子的神经网络,而无需任何人工干预。

    学会新技巧

    这部分内容将会告诉你,如何让你的人工智能鼻子学会一些新的技巧。

    如何使用 Edge Impulse 平台训练

    这里我们需要用到 嵌入式机器学习,比如在 Edge Impulse上训练 AI 模型,这是一个可以把部署变得极其简单且可以在微型控制器上运行的平台。

    (1) 前往studio.edgeimpulse官网搜索“artificial_nose”, 复制一个基础的 Edge Impulse 项目到你的个人账户(如图8 )。这样以来,你就可以使用你采集的气味类别来扩充深职替换原始数据库。

    8 基础Edge Impulse项目

    (2) 通过 USB 将鼻子连接到电脑,并确保它处于训练模式(如图 9 )。

    图10 人工智图9 能鼻子处于训练模式

    (3) 在电脑上安装 EdgeImpulse 命令行工具 并使用以下命令启动数据转发器。

    edge-impulse-data-forwarder--frequency 10

    (4) 按照控制台中的数据转发器说明,登录你的 Edge Impulse 帐户。数据转发器会将鼻子的串行输出远程连接到你在第一步中创建的 Edge Impulse 项目中,并且传感器的数据也会直接出现在这个项目中!

    (5) 4 个传感器轴依次命名为 二氧化氮、 一氧化碳、乙醇和挥发性有机化合物,如图10所示。

    图10 给4个传感器轴依次命名

    (7) 基于你采集到的数据样本,重新训练模型,并将这一操作命名为:重新训练模型。如果你对训练的模型性能不满意(图 11 ),可以重新再收集更多样本。重复多次,直到你满意为止!

    图11 训练出的模型

    (8) 最后,使用 模型部署 菜单将你的项目导出为 Arduino 库。这样,你就可以将你刚刚训练好的神经网络模型,以 ZIP 文件下载。然后用新 ZIP 文件替换掉鼻子原先的固件中的 lib/ei-artificial_nose-arduino 源文件夹。

    (9) pio run 重新编译固件并将其上传到 Wio Terminal。 现在,你的鼻子就已经被重新训练,并习得新技能了。

    把人工鼻子变成一个物联网设备

    物联网解决方案的核心通常就是 联网的边缘设备 ,将这些边缘端设备设计得尽可能智能是很有意义的。因为依赖任何形式的网络通信或基于云的高度中心化的数据处理,在很多场景之下是不切实际的,有时甚至是完全不可能的。所以,我决定要把我这个人工智能鼻子连接到微软 Azure IoT 中心云平台,在这一场景下,这个人工智能鼻子就是一个 IoT Plug and Play 设备。

    在我觉得人工鼻子的嗅觉已经足够灵敏时,而且我也完成了图形化用户界面的开发,我就开始使用了 Azure IoT SDK ,让鼻子能接入 Azure IoT 云平台(见图12)。

    图12 连接到AZure loT 云平台

    这就意味着你可以非常轻松地借助 Wio Terminal 自带的 Wi-Fi 模块,将人工智能鼻子连接到 Azure IoT 中心云平台,在远程、近乎实时地访问气体传感器数据,查看鼻子所闻到的气味等。更重要的是,当检测到难闻的气味时,你还可以设置自动触发某一操作规则(例如打开抽风系统等),从而使鼻子比其他的物联网离线设备更智能。 将人工智能鼻子接入微软 Azure IoT 中心云平台后,就能实时查看鼻子所闻到的气味数据了。

    那么应该如何把这个鼻子接入到微软 Azure IoT 中心云平台呢? 操作步骤如下:

    首先,请确保 Wio Terminal 上运行的是最新的 WiFi 固件(可参考这个网址来更新固件: https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/ )。

    接着,在 Azure IoT Central 创建一个新的应用程序(如果你之前已经有创建过,也可以直接使用!)。

    IoT Central 应用程序的 Administration 管理部分,查找设备连接( Device Connection )菜单。然后打开 SAS-IoT-Devices 注册组并记下连接 AI 鼻子所需的以下凭据: ID Scope和 SAS Primary Key。

    将最新的人工智能鼻子模型固件(或部署你自己的训练的模型)烧录到 Wio Terminal Wio Terminal 通电时,按住其顶部的三个按钮( A B C ),然后滑动重置按钮。此时, Wio Terminal 应该显示黑屏。

    通过串口把人工智能鼻子连接到 Wio Terminal ,并通过键入 help 来检查它是否正在运行配置提示,它应该会显示可支持的命令列表。输入以下命令来配置 WiFi 连接和 AzureIoT 凭据

  • set_wifissid <your_wifi_ssid>
  • set_wifipwd <your_wifi_password>
  • set_az_iotc <id_scope> <sas_primary_key> <device_id>
  • id_scope sas_primary_key 如前所述 device_id 是你希望在 AzureIoT Central 中为你的设备提供的 ID

    最后,重置 Wio Terminal 。你现在就可以在 IoT Central 应用程序的 设备 部分看到一个新设备弹出了,接入完成!

    正如我前面提到的,人工智能鼻子接入物联网平台,可以完全满足以下一些实际应用场景的诉求,例如,当鼻子闻到难闻的气味时,它可以自动触发警报或其他指令。但每个场景对于难闻的气味的定义是不同的。这里我拿一家负责芝加哥市周围建筑物的房地产清洁公司作为案例进行说明,这家公司的信息系统已经实现了跟踪所有清洁人员和建筑清洁计划的功能,但是以一种非常静态的追踪方式:例如清洁人员每天都会固定去指定位置保洁一次。但其实很多时候,这个指定位置并不需要清洁。在这种情况下,如果能让清洁人员真的去到真正需要打扫的地方,这对于该公司的人员运营成本和效率,都会大有裨益。

    嗅觉丧失着者的福音

    嗅觉缺失是指嗅觉能力暂时或永久性丧失。在美国,40 岁以上的成年人中,大约 3% 的人患有完全性嗅觉障碍,23% 的人反馈他们的嗅觉能力曾有所改变。如果再将新冠肺炎疫情考虑进来,其实很多人的日常生活都会有嗅觉受损的困扰。

    图13 人工智能鼻子正在辨别威士忌

    自从我开始在各平台分享我这个人工智能鼻子项目以来,我了解到了很多人其实都深受嗅觉障碍困扰。那瓶牛奶变酸了吗?狗狗是否需要洗澡了?对于一些人,这些日常问题是无法直接依靠自己的嗅觉来作出回答的。虽然便宜的 DIY人工智能鼻子可能没办法很快取代功能齐全的鼻子,但我相信它对于患有嗅觉障碍的人来说,肯定会是一个好伴侣。

    🤖️🤖️🤖️

    新一代信息技术赋能|人才升级|产业创新

    硬件入门|物联网应用实战|社区联名

    提升技能 尽在👇人才赋能 课 程

    人才升级 推动双创事业 合 作

    国际权威认证 技能加持 合 作 点击图片获取合作详情&报名

    新基建 撬动产业数字化 方 案 点击图片获取详情&报名

    ----END----

    Chaihuo x.factory|深圳,河北

    在看和赞 ,都点这里 返回搜狐,查看更多

    责任编辑:

    声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。