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

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

3天内不再提示

如何利用STM32微控制器来设置和执行图像识别

工程师兵营 2018-09-04 11:04 次阅读

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

一种潜在的解决方案是,使用可连接至 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 的用户将获得一年的免费使用权,用于原型开发和平台试验。

图 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)。

图 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)。

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

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

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

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

  • 如果视觉识别没有实时或确定的截止期限,则将图像识别分流到云中。

  • 使用嵌入式软件平台简化到基于云的机器视觉服务的连接。

  • 默认情况下,Google 视觉 API 处于禁用状态,必须手动启用才能使用该项服务。

  • 不要忘了在所用的软件平台中输入您的 Google API 键:它将用于验证使用该 API 的权限。

  • GCP 提供了基本的一年免费试用,可用于开发系统和制作系统原型。

  • 确保图像或文本已正确定位并且清晰可见,以便减少识别错误。

总结

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

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

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

    关注

    2239

    文章

    10665

    浏览量

    348518
  • 机器视觉
    +关注

    关注

    160

    文章

    4032

    浏览量

    118252
  • 图像识别
    +关注

    关注

    8

    文章

    445

    浏览量

    37892
收藏 人收藏

    评论

    相关推荐

    干货分享|如何利用LabVIEW实现汽车仪表图像识别

    图像识别是人工智能的一个重要领域,随着图像处理与分析技术的快速发展,图像识别已在医疗、零售、交通等领域得到了
    的头像 发表于 07-05 14:14 9333次阅读

    基于DSP的快速纸币图像识别技术研究

    本课题通过对现有图像识别技术进行研究和分析,针对当前DSP(数字信号处理)技术的新发展,提出了基于DSP的快速图像识别概念。快速图像识别技术以嵌入式系统为算法的实现平台,它结合了当前最新的数信号处理
    发表于 11-05 14:43

    怎么做图像识别

    怎么做图像识别
    发表于 07-22 23:23

    【NUCLEO-F412ZG申请】图像识别

    申请理由:项目描述:到手后将主要研究个关于图像识别方面的功能,摄像头采集图像数据然后对图像进行处理,最终的目的是识别图像中的文字符号内容(
    发表于 11-07 16:34

    基于STM32F7高性能单片机的图像识别开发——OPENMV

    `Openmv——开源;摄像头;micropython;stm32f7;图像识别,人脸识别等等等等!附上两个视频,大家可以具体看一看openmv视频图像识别跟踪没错,openmv就是这
    发表于 12-04 22:15

    如何利用STM32F779微控制器设置执行图像识别

    将处理操作分流到云。本文将探讨嵌入式开发人员如何利用 GCP 和 STMicroelectronics 的 STM32F779 微控制器设置
    发表于 11-23 08:03

    使用ART-PI获取OV7670的图像图像处理和图像识别

    art-pi试跑一下看看效果如何,所以本次参赛将会使用art-pi获取OV7670的图像做像处理和图像识别。二.开发环境硬件: PC、ART-PI、OV7670、RGB_LCDRT-Thread版本
    发表于 08-31 16:16

    图像识别模组(包括PCB图、图像识别模组源代码)

    图像识别模组电路原理图、图像识别模组PCB图、图像识别模组源代码、图像识别模组用户使用手册
    发表于 01-02 19:14 120次下载

    浅析图像识别背后的发展历程

    图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。
    的头像 发表于 09-30 09:47 2.3w次阅读

    人脸识别图像识别技术是如何为安防赋能的

    图像识别是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,属于应用深度学习算法的一种实践应用。
    发表于 03-18 11:14 926次阅读

    利用STM32WB系列微控制器构建无线应用

    利用STM32WB系列微控制器构建无线应用
    发表于 11-21 08:11 1次下载
    <b class='flag-5'>利用</b><b class='flag-5'>STM32</b>WB系列<b class='flag-5'>微控制器</b>构建无线应用

    AN4808_STM32L0和STM32L1系列微控制器上不干扰代码执行写非易失存储器

    AN4808_STM32L0和STM32L1系列微控制器上不干扰代码执行写非易失存储器
    发表于 11-21 17:06 0次下载
    AN4808_<b class='flag-5'>STM32</b>L0和<b class='flag-5'>STM32</b>L1系列<b class='flag-5'>微控制器</b>上不干扰代码<b class='flag-5'>执行</b>写非易失存储器

    Imagga利用DGX Station实现快速图像识别

    Imagga利用DGX Station实现快速图像识别
    的头像 发表于 08-01 15:10 391次阅读

    模拟矩阵在图像识别中的应用

    特征提取:通过模拟矩阵处理图像数据,提取关键特征,为后续的图像识别提供依据。 图像分类和识别利用深度学习模型对模拟矩阵中的特征进行分类和
    的头像 发表于 09-04 14:17 321次阅读
    模拟矩阵在<b class='flag-5'>图像识别</b>中的应用

    图像识别技术原理 图像识别技术的应用领域

    图像识别技术是一种通过计算机对图像进行分析和理解的技术。它借助计算机视觉、模式识别、人工智能等相关技术,通过对图像进行特征提取和匹配,找出图像
    的头像 发表于 02-02 11:01 622次阅读