使用 Google 视觉 API 实现基于云的低成本嵌入式图像识别

不论是人脸、文本或其他图像数据,使用嵌入式系统执行现场图像识别的需求与日俱增。许多实现需要昂贵的高端应用处理器以及昂贵的定制应用代码。此外,图像处理是在片上执行的,这可能让成本和开发时间翻倍,令设计人员难以证明资源投入的合理性。
一种潜在的解决方案是,使用可连接至 Google 云平台 (GCP) 的嵌入式微控制器,并使用 Google 视觉 API 来执行分析。这在利用低成本硬件优势的同时,还能将处理操作分流到云。
本文将探讨嵌入式开发人员如何利用 GCP 和 STMicroelectronics 的 STM32F779 微控制器来设置和执行图像识别。

机器视觉简介

识别图像中的对象并加以标识,这一功能见诸于各类广泛应用中,包括自主驾驶车辆中的障碍物识别,以及为离开装配线的产品进行编目分类。有鉴于此,机器视觉正致力于帮助嵌入式系统实现全新的智能水平。
一般而言,在嵌入式系统中实现机器视觉往往会采用高性能处理器或应用处理器,例如 Pi Supply 的 Raspberry Pi Zero(图 1)。这一低成本的开发板拥有一个相机连接器,用于捕捉可供机器视觉算法进行分析的图像。
Raspberry Pi Zero 图片
图 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。开发套件还包含一个调试器。
Renesas AE-Cloud1 开发板图片
图 2:Renesas AE-Cloud1 开发板基于 Renesas S5 处理器并包含 Wi-Fi 模块和调试器。(图片来源:Renesas)
开发团队也可能会使用 STMicroelectronics 的 STM32 物联网 Discovery 开发板,该器件运行 Amazon FreeRTOS 操作系统,开发人员可轻松将其连接到 AWS。
开发人员可以使用多种不同的软硬件组合来创建机器视觉解决方案,包括 STMicroelectronics 的 STM32F779 评估板(图 3)。其众多功能中包括了板载相机、以太网连接和一块 LCD。所有功能可结合使用,来捕捉图像和验证机器视觉应用。
STMicroelectronics 的 STM32F779 评估板图片
图 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!”。
从 Express Logic X-Ware 物联网平台的 GCP 视觉 API 所返回结果的屏幕截图
图 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 云平台和低成本的微控制器及开发套件,开发人员便能以极低的成本获取图像和文本识别功能。开发人员还可以使用广泛提供的可扩展软件平台,帮助简化安全的云连接,同时简化应用开发。

用户喜欢...

如何利用 GCP 和 STMicroelectronics 的 STM32F779 微控制器来设置和执行图像识别

本文将探讨嵌入式开发人员如何利用 GCP 和STMicroelectronics的STM32F779微控制器来设置和执行图像识别。 机器视觉简介 识别图像中的对象并加以标识,这一功能见诸于各类广泛应用中,包括自主驾...


论图像识别的预处理技术

图像识别中,图像质量的好坏直接影响识别算法的设计与效果精度,那么除了能在算法上的优化外,预处理技术在整个项目中占有很重要的因素,然而人们往往忽略这一点。 图像预处理,将...


图像识别的原理、过程、应用前景,精华篇!

图像识别技术是信息时代的一门重要的技术,其产生目的是为了让计算机代替人类去处理大量的物理信息。随着计算机技术的发展,人类对图像识别技术的认识越来越深刻。图像识别技术的过...


IDC发布《IDC创新者:中国图像识别应用市场,2017》报告

中国市场上计算机视觉领域的图像识别技术在最近1年内逐渐开始落地,也有越来越多的组织在内部应用图像识别技术...


解惑!卷积神经网络原来是这样实现图像识别的

图像识别是非常有趣和具有挑战性的研究领域。本文阐述了卷积神经网络用于图像识别的概念、应用和技术。 什么是图像识别,为什么要使用它? 在机器视觉领域,图像识别是指软件识别人...


别磨叽,学完这篇你也是图像识别专家了

作者:Adrian Rosebrock 译者:郭红广 图像识别是当今深度学习的主流应用,而Keras是入门最容易、使用最便捷的深度学习框架,所以搞图像识别,你也得强调速度,不能磨叽。本文让你在最短时...


Google开源核心图像识别技术,应用于Nest摄像头、图片搜索和谷歌街景

积极的开源策略也有助于将Google的TensorFlow打造成人工智能领域的主流机器学习框架平台IT经理网...


人工智能领域正面临这4大机遇窗口

诺曼认为,中国具备了人工智能领域创业的优质土壤和良好要素:首先,中国有着受过计算机教育的庞大劳动力供给...


深度卷积神经网络CNNs的多GPU并行框架 及其在图像识别的应用

本文是腾讯深度学习系列文章的第二篇,聚焦于腾讯深度学习平台(Tencent Deep Learning Platform)中深度卷积神经网络Deep CNNs的多GPU模型并行和数据并行框架。 将深度卷积神经网络(Convolutional...


计算机是怎么知道两张图片相似的呢?

作者:数之联 摘要:以图搜图功能,特别是移动端的以图搜图,成为日益增长的流量入口和用户需求。有机构表明:...


揭秘“图像识别”的工作原理

看懂一个东西对人类来说很容易,对机器却是很难的 对人类来说,描述我们眼睛所看到的事物,即“视觉世界”,看起来太微不足道了,以至于我们根本没有意识到那正是我们时时刻刻在做...


深度学习系列:解密最接近人脑的智能学习机器——深度学习及并行化实现(四)

摘要: 深度学习可以完成需要高度抽象特征的人工智能任务,如语音识别、图像识别和检索、自然语言理解等。深层...


36日报 | Facebook市值11月份蒸发320亿美元,亚马逊提出用卡车转运数据(11.30——12.01)

导读:Facebook市值11月份蒸发320亿美元,亚马逊提出用卡车转运数据等等,以下为你献上11月30日,12月1日大数据行业动...


从基本概念到实现,全卷积网络实现更简洁的图像识别

本文转载自机器之心 链接: 众所周知,图像就是像素值的集合,而这个观点可以帮助计算机科学家和研究者们构建一个和人类大脑相似并能实现特殊功能的神经网络。有时候,这种神经网络...


36日报 | 谷歌大脑有码变无码,我认识的是假谷歌大脑 | 2.09

导读:谷歌大脑有码变无码,2017年1月微信公众号TOP100出炉,百度宣布对医疗业务进行组织架构调整和优化,将利用人...


两个云计算人工智能图像服务初比较

文 | 热罐小角 都说人工智能接下去会改变世界,AlphaGo已经横扫全世界的围棋大师,德州扑克机器也能战胜人类,《未...