0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Renesas S5处理器,并包含Renesas的YSAEWIFI-1 Wi-Fi模块

UtFs_Zlgmcu7890 来源:未知 作者:王淳 2019-05-21 16:03 次阅读

不论是人脸、文本或其他图像数据,使用嵌入式系统执行现场图像识别的需求与日俱增。许多实现需要昂贵的高端应用处理器以及昂贵的定制应用代码。此外,图像处理是在片上执行的,这可能让成本和开发时间翻倍,令设计人员难以证明资源投入的合理性。

一种潜在的解决方案是,使用可连接至 Google 云平台 (GCP) 的嵌入式微控制器,并使用 Google 视觉 API 来执行分析。这在利用低成本硬件优势的同时,还能将处理操作分流到云。

本文将探讨嵌入式开发人员如何利用 GCP 和STMicroelectronics的STM32F779微控制器来设置和执行图像识别。

机器视觉简介

识别图像中的对象并加以标识,这一功能见诸于各类广泛应用中,包括自主驾驶车辆中的障碍物识别,以及为离开装配线的产品进行编目分类。有鉴于此,机器视觉正致力于帮助嵌入式系统实现全新的智能水平。

一般而言,在嵌入式系统中实现机器视觉往往会采用高性能处理器或应用处理器,例如Pi Supply的Raspberry Pi Zero(图 1)。这一低成本的开发板拥有一个相机连接器,用于捕捉可供机器视觉算法进行分析的图像。

图 1:Raspberry Pi Zero 是一款低成本的开发板,它拥有一个相机接口,用于捕捉可供机器视觉算法进行分析的图像。(图片来源:Pi Supply)

在这些应用中,开发人员可能会使用 OpenCV 等工具进行人脸检测,或使用更高级的软件包来执行对象检测。

在深度嵌入式应用中,应用处理器解决方案存在的问题在于,功耗和外形尺寸往往过大,无法满足要求,更不用说 BOM 成本。

基于云的计算为开发人员提供了一种引人关注的折衷。与其将前期成本花在获取集成式解决方案所需的高端计算、软件和时间上,开发人员不如使用一个深度嵌入式目标来捕捉图像,然后将其传输到云中进行处理。这使得开发人员可以使用高能效、低成本的硬件平台,并将图像识别和计算留给云服务器来处理。

使用云服务和视觉识别 API 会带来少量相关成本;但考虑到大多数物联网解决方案已经连接到 Web,此额外成本极低,具体则视特定云服务提供商而异。

选择机器视觉平台

有兴趣在深度嵌入式处理器上使用机器视觉的开发团队可以选择的处理器和平台非常之多。目标平台应该能够提供可快速启动和运行的构件,并且已包含基本连接软件。Renesas的AE-Cloud1便是一个很好的例子,该器件旨在帮助开发人员在不超过 10 分钟的时间内,连接至 Amazon Web Services (AWS) 等云服务提供商(图 2)。

AE-Cloud1 基于 Renesas S5 处理器,并包含 Renesas 的 YSAEWIFI-1 Wi-Fi 模块,该模块旨在帮助开发人员快速、轻松地连接到 AWS。开发套件还包含一个调试器。

图 2:Renesas AE-Cloud1 开发板基于 Renesas S5 处理器并包含 Wi-Fi 模块和调试器。(图片来源:Renesas)

开发团队也可能会使用 STMicroelectronics 的STM32 物联网 Discovery 开发板,该器件运行 Amazon FreeRTOS 操作系统,开发人员可轻松将其连接到 AWS。

开发人员可以使用多种不同的软硬件组合来创建机器视觉解决方案,包括 STMicroelectronics 的STM32F779 评估板(图 3)。其众多功能中包括了板载相机、以太网连接和一块 LCD。所有功能可结合使用,来捕捉图像和验证机器视觉应用。

图 3:STM32F779 评估板基于 STM32F779 微处理器,包含一个板载相机、以太网连接,以及一块可用于采集、查看和监视机器视觉应用的显示屏。(图片来源:Digi-Key Electronics)

该开发板使用Texas Instruments的DP83848CVV控制器,提供以太网物理层 (PHY),使总体解决方案适合各种工业环境。

设置用于机器视觉的 Google 云平台

嵌入式开发人员可在其应用中使用基于云的多种不同机器视觉服务。其中包括 Google 云平台和 Amazon Rekognition。在本文中,我们将了解如何设置 Google 云平台视觉 API。

要设置视觉 API,最简单的方法是访问“Before You Begin”(准备工作)页面。此页包含设置和配置视觉 API 需要遵循的所有指示。开始之前,开发人员需要拥有一个 Google 帐户,用于登录和配置视觉项目。首次使用 GCP 的用户将获得一年的免费使用权,用于原型开发和平台试验。

设置用于机器视觉的 Google 云平台需要遵循的主要步骤图片

图 4:设置用于机器视觉的 Google 云平台需要遵循的主要步骤。提供 12 个月的免费试用期。(图片来源:Beningo Embedded Group)

开发人员配置视觉 API 需要遵循的主要步骤包括:

  • 创建新项目
  • 确保启用账单(最初提供 12 个月的试用,之后的费用不超过 300 美元,但未经明示许可不会收取费用)
  • 启用云视觉 API

创建新项目是通过 GCP 控制台完成的,只需单击“New Project”(新建项目)并提供项目名称便可,例如“Embedded Vision”。启用 API 的方法是,单击“Enable API”(启用 API)按钮,然后选择刚刚创建的项目。这将启用 API,但真正重要的是生成 API 凭据,这一过程其实也相当简单。

通过在项目界面中选择“API Services and Credentials”(API 服务和凭据)可以找到凭据。然后,开发人员将通过单击“Create Credentials”(创建凭据)按钮创建凭据(图 5)。

GCP 视觉 API 键图片

图 5:GCP 视觉 API 键是通过 GCP 界面创建的。嵌入式平台必须使用此键,以便访问视觉识别功能。(图片来源:Beningo Embedded Group)

至此,视觉 API 设置完毕,随时可用于嵌入式系统中。嵌入式系统需要采集图像,然后使用视觉 API 将图像传输到云中进行图像识别。

STM32F779 上的机器识别

在嵌入式系统上用于连接到 GCP 的软件将会根据开发人员选择使用或决定自行创建的系统而异。我最近曾将 STM32F779 与 Express Logic X-Ware 物联网平台搭配使用,该平台已创建一个将机器视觉与 GCP 配合使用的简单演示。

该演示非常简单;用户可以通过 LCD 触摸屏,使用 STM32F779 评估板上的相机拍摄一张照片。拍摄照片后,用户可以选择对对象还是文本进行图像分析。我决定进行一项有趣的测试,即在闪卡上书写“Hello World!”,然后将其提供给相机。从软件开发人员的角度而言,“Hello World!”看起来无疑是首次机器视觉测试的合理选择。

测试结果非常成功!捕捉到图像后,GCP 视觉 API 成功一致地识别并确定文本,以及我所提供的其他文字。我决定尝试一种极端情形,即提供快速书写的有些模糊的图像,看看系统能否识别书写内容。捕捉的图像和结果如图 6 所示。这种情况下,除了书写潦草的字母“d”被识别为“j”之外,几乎完全正确地识别了模糊的“Hello World!”。

图 6:从 Express Logic X-Ware 物联网平台的 GCP 视觉 API 所返回结果的屏幕截图。“World”中的字母“d”的识别结果很有趣。(图片来源:Beningo Embedded Group)

有趣的是,我多次将完全相同的书写内容提供给相机,由于我书写的字母“d”比较潦草且偏离了焦点,因此得到的正确识别率约为 50%。查看终端日志后可以发现,识别结果为“Hello World”和“Hello WorlJ”的次数各半(图 7)。

GCP 视觉 API 响应产生的终端输出图片

图 7:GCP 视觉 API 响应产生的终端输出显示所提交图像中被识别的文本。(图片来源:Beningo Embedded Group)

现在,在此示例中,我从人类的角度可以了解云视觉算法为何难以识别该字符。即便在我自己看来,它也有两种形式,所以这的确是项有趣的测试。

在嵌入式系统上实现机器视觉的技巧和诀窍

开发人员在开发机器视觉应用时可以遵循多项技巧和诀窍。其中包括:

  • 如果视觉识别没有实时或确定的截止期限,则将图像识别分流到云中。
  • 使用嵌入式软件平台简化到基于云的机器视觉服务的连接。
  • 默认情况下,Google 视觉 API 处于禁用状态,必须手动启用才能使用该项服务。
  • 不要忘了在所用的软件平台中输入您的 Google API 键:它将用于验证使用该 API 的权限。
  • GCP 提供了基本的一年免费试用,可用于开发系统和制作系统原型。
  • 确保图像或文本已正确定位并且清晰可见,以便减少识别错误。

总结

通过利用云中的高性能处理,可以大幅简化基于低成本嵌入式系统的机器视觉应用。传统上,有兴趣使用机器视觉的开发人员必须针对其应用,使用应用处理器,并且开发先进的软件或获得许可。

有了 Google 云平台和低成本的微控制器及开发套件,开发人员便能以极低的成本获取图像和文本识别功能。开发人员还可以使用广泛提供的可扩展软件平台,帮助简化安全的云连接,同时简化应用开发。


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

    关注

    2239

    文章

    10665

    浏览量

    348518
  • GCP
    GCP
    +关注

    关注

    0

    文章

    4

    浏览量

    2514
收藏 人收藏

    评论

    相关推荐

    Wi-Fi 7与Wi-Fi 6的相关知识科普

    科普:Wi-Fi 7 vs. Wi-Fi 6,青出于蓝
    的头像 发表于 03-12 10:59 195次阅读
    <b class='flag-5'>Wi-Fi</b> 7与<b class='flag-5'>Wi-Fi</b> 6的相关知识科普

    Wi-Fi的诞生与发展

    短距离无线通信技术有Wi-Fi、ZigBee、蓝牙以及Z-Wave,今天我们先揭开Wi-Fi的神秘面纱。Chrent短距离无线通信技术——Wi-Fi过去的20多年,Wi-Fi靠着仅有的
    的头像 发表于 03-07 08:26 397次阅读
    <b class='flag-5'>Wi-Fi</b>的诞生与发展

    WI-FI基础知识及飞易通SOC模块

    什么是Wi-Fi/What is Wi-Fi,首先Wi-Fi又称“无线热点”或“无线网络”,是Wi-Fi联盟的商标,一个基于IEEE 802.11标准的无线局域网技术。“
    的头像 发表于 03-01 15:01 261次阅读
    <b class='flag-5'>WI-FI</b>基础知识及飞易通SOC<b class='flag-5'>模块</b>

    Wi-Fi HaLow和传统Wi-Fi的区别

    Wi-Fi HaLow和传统Wi-Fi的区别  Wi-Fi是一种无线网络技术,可以连接到互联网或局域网,为用户提供无线上网的便利。随着科技的发展和互联网的普及,Wi-Fi也在不断演进和
    的头像 发表于 02-02 15:28 239次阅读

    Wi-Fi 6和Wi-Fi 5之间有哪些区别呢?

    Wi-Fi 6和Wi-Fi 5之间有哪些区别呢? Wi-Fi 6和Wi-Fi 5是无线局域网标准的两个版本,它们之间存在很多区别。Wi-Fi
    的头像 发表于 12-09 16:09 978次阅读

    什么是Wi-Fi 6?什么是Wi-Fi 6E?什么是最适合我的应用的?

    自 1999 年 Wi-Fi 联盟成立以来,Wi-Fi 技术不断进步,以满足对更快速度和支持更多设备的日益增长的需求。
    的头像 发表于 11-20 09:23 502次阅读
    什么是<b class='flag-5'>Wi-Fi</b> 6?什么是<b class='flag-5'>Wi-Fi</b> 6E?什么是最适合我的应用的?

    请问51单片机能用哪些Wi-Fi模块

    51单片机能用那些Wi-Fi模块
    发表于 10-28 06:22

    ARM Cortex-R52处理器技术参考手册

    Cortex-R52处理器是一款中等性能的有序超标量处理器,主要用于汽车和工业应用。 它还适用于各种其他嵌入式应用,如通信和存储设备。 Cortex-R52处理器有一到四个内核,每个内核实现一个符合
    发表于 08-18 07:07

    Arm Cortex-R82处理器技术参考手册

    。 此外,还有集群级别的共享调试逻辑。 处理器在Cortex®-R82处理器环境中,处理器包含集群和电源策略单元(PPU)的顶级单元。 DebugBlock DebugBlock是独
    发表于 08-17 08:02

    Arm Cortex-R82处理器技术参考手册

    支持在同一内核上执行多个受保护的内存系统架构(PMSA)上下文,使用虚拟化技术将它们隔离在内存空间中。 同样,Cortex®-R82处理器能够在时间上隔离不同情景的实时性能,从而限制一个情景对更关键情景的响应时间和确定性的影响。 Cortex®-R82
    发表于 08-17 07:45

    Arm Cortex-R52处理器技术参考手册

    Cortex-R52处理器是一款中等性能的有序超标量处理器,主要用于汽车和工业应用。 它还适用于各种其他嵌入式应用,如通信和存储设备。 Cortex-R52处理器有一到四个内核,每个内核实现一个
    发表于 08-17 06:24

    ARM Cortex-M4处理器技术参考手册

    Cortex-M4处理器包含处理器核心、嵌套矢量中断控制(NVIC)、高性能总线接口、低成本调试解决方案和可选的浮点单元(FPU)。 Cortex-M4
    发表于 08-08 07:18

    GAUDIR HL-2000处理器介绍

    和HL-200 PClecard都包含一个GAUDIR HL-2000处理器,该处理器包含一个由八个完全可编程张量处理核心(TPC 2.0)
    发表于 08-04 07:23

    Wi-Fi 6E:Wi-Fi的下一个前沿

    电子发烧友网站提供《Wi-Fi 6E:Wi-Fi的下一个前沿.pdf》资料免费下载
    发表于 07-19 16:48 0次下载
    <b class='flag-5'>Wi-Fi</b> 6E:<b class='flag-5'>Wi-Fi</b>的下一个前沿

    如何将ESP-12F仅作为Wi-Fi模块进行无线传输?

    你好!我正在设计一个基于 Raspberry RP2040 处理器和 ESP-12F 的 PCB 板,用于通过 Wi-Fi 提供物联网服务。我已经按照 创建了 RP2040 连接。现在我应该将
    发表于 06-01 08:59