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

本文将探讨嵌入式开发人员如何利用 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 云平台和低成本的微控制器及开发套件,开发人员便能以极低的成本获取图像和文本识别功能。开发人员还可以使用广泛提供的可扩展软件平台,帮助简化安全的云连接,同时简化应用开发。

用户喜欢...

STM32 电机控制 SDK 5.0 版

STMicroelectronics 集成电机控制的开发套件大大简化了设计过程并缩短了产品上市时间 STMicroelectronics最新的 STM32 电机控制软件开发套件 (SDK) 建立在全集成 STM32Cube 环境基础上,且性能得到提升,...


基于STM32的高性能低功耗人机界面系统设计

本文选用了意法半导体公司基于ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通过选择合适的液晶模块,构建了一个高性能低功耗的中文人机界面系统。 1、系统的工作原理 本系统以STM32F1...


stm32之时钟控制

• 时钟系统与总线矩阵 • SysTick系统定时器 • RTC实时时钟 • 看门狗定时器 • 通用定时器 一、时钟系统与总线矩阵 stm32F4的时钟树如下图所示: 在STM32中,有五个时钟源,为HSI、HSE、LSI、...


[原创] ST STSPIN820+STM32 Nucleo步进马达驱动方案

ST公司的STSPIN820是集成了控制逻辑和低RDSon功率级的步进马达驱动器,控制器采用有固定OFF时间的PWM电流控制,微步距分...


用于物联网节点的 STM32L4 IoT Discovery 套件

STMicroelectronics 的 Discovery 套件允许用户快速开发直接连接到云服务器的智能物联网节点应用 来自STMicroelectronics的高连接性 STM32L4 IoT Discovery 套件 (B-L475E-IOT01A) 通过支持多个低功耗无线标准和...


STM32单片机串口通信波特率计算方法

1. 什么是波特率 不管是什么单片机,在使用串口通信的时候,有一个非常重要的参数:波特率。什么是波特率:波特率就是每秒传送的字节数。双方在传输数据的过程中,波特率一致,这是...


STM32中断和事件的区别!

STM32中断和事件的区别! 事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断。 事件还是其它一些操作的触发源,比如DMA,还有TIM中影子寄存器的传递与更新;而中...


STM32之TFT-LCD液晶学习

TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT)...


详解STM32的PWM输出及频率和脉宽(占空比)的计算——寄存器配置六步曲!

一、stm32的pwm输出引脚是使用的IO口的复用功能。 二、T2~T5这4个通用定时器均可输出4路PWM——CH1~CH4。 三、我们以tim3的CH1路pwm输出为例来进行图文讲解(其它类似),并在最后给出tim3的ch1和ch...


意法半导体(ST)新系列STM32L4+微控制器让下一代智能产品“吃得少,干得多”

同级最好的存储器和新图形处理功能让智能穿戴产品给用户更好的使用体验 先进的图形控制器为小的圆形显示器优化设计,提升像素处理效率 经过市场检验的节能架构,让应用设计拥有更丰...


STM32网络通信之DM9000A电路设计

DM9000A的PHY 能够以10BASE-T 的标准在UTP3\4\5或者以100BASE-T的标准在UTP5上接口通信。它的自动协商功能是够自动配置DM9000A最大地发挥出自身性能。它同时支持IEEE 802.3X全双工数据流通信。 2、结构...


[原创] ST STM32L4R9I高性能超低功耗ARM MCU开发方案

ST公司的STM32L4R9I是高性能超低功耗MCU系列产品,基于Arm Cortex-M4 32位RISC核,工作频率高达120MHz,支持所有ARM单精度数据处理...


STM32H7 的 FMC 外设在 DCACHE 使能 时运行不正常

前段时间接到一个客户的问题。客户描述在使用 STM32H7 的 FMC 时,如果使能了 DCACHE,就运行不正常。数据没有写到 FMC 外部的存储器里,测量 FMC 接口也没有波形跳变。而不使能 DCACHE 工作就是...


利用STM32外部中断驱动四路数字触摸感应传感器模块

STM32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组位一个单位的,同组间的外部中断同一时间只能使用一个。比如说,PA0,PB0,PC0,PD0,PE0,PF0,PG0这些为1组,如果我们使...


STM32 RTC实时时钟

我用的是STM32库函数:两个知识点: 一、RTC时钟框图分析(重要) 二、时间是怎样显示出来的(简析) 一、RTC时钟框图分析(重要) 先熟悉一下几个知识点: 1、STM32的实时时钟(RTC)是一...


STM32 FSMC驱动TFTLCD 难点解析

本篇文章三个主题:FSMC有关配置、一串字符显示原理、汉字显示原理。 一、FSMC的有关配置(博主用的是FSMC_A10): 来自别人家的博客 FSMC的介绍就不介绍了,网上一大片。我们就讨论讨论为...