最小化成本,基于微控制器的人脸识别电路设计

2019年07月12日 作者:Teardown

人们现在越来越多地要求设计人员为当前网络系统和新产品添加图像和视频分析功能,特别是针对安防应用。人脸和车辆识别功能非常受用户欢迎,能够带来可观的价值,但是,了解基于微控制器的系统的人脸识别模型细节并对其进行编程,可能耗费大量时间,而且非常复杂。

通常情况下,开发人员必须尽可能快地开展试验和开发。本文将展示开发人员如何利用硬件和软件的现成组合,加快将人脸识别功能整合到嵌入式系统中的速度,从而节省时间。

人脸识别的基础知识

大多数开发人员对人脸检测已经非常熟悉了。这个过程就是分析图像,确定人脸出现的位置。很多智能手机都提供这种功能。人脸识别是人脸检测的下一个阶段。这个过程就是分析人脸,利用从人脸特征的相对距离得出的数据,开发一个数学模型。这些数据包括双眼之间的距离,以及眼睛与鼻子、下巴、耳朵和颧骨的相对位置。另外还要确定人脸相对于人脸识别摄像头的位置,因为这对于确定相对距离非常重要。也可以检测肤色并用于识别。

然后,再将该模型与数据库中存储的已知人脸数学模型进行比较,由算法确定最佳匹配。检测的人脸与存储的人脸有一定的匹配机率(百分比)。也有可能两者不匹配,那么检测的人脸就是未知的。

人脸识别硬件

为了实现人脸识别,设计人员需要挑选并组合摄像头传感器、视频和图像前端信号调节装置、GPU、控制处理器、存储器及相关软件和固件。当然,这需要花费时间,可能是一段很长的曲折学习过程。或者,您可以利用现成的硬件和固件,构建人脸识别系统。来自 Omron Electronics 的 B5T-007001 摄像头传感器是很好的入手点,它是经过测试的硬件和固件的交钥匙解决方案(图 1)。

B5T-007001 带有 USB 2.0 接口,可将摄像头电路板连接到运行 Omron 评估软件的 Windows® PC。另外还有 UART 接口。使用 USB 或 UART 接口都可将摄像头电路板连接到主机,可以是微控制器或 PC。

USB 和 UART 都支持用于配置摄像头的命令 API。Omron 的板载摄像头固件会分析视频并执行检测处理,然后将视频发送到主机。

从主机发送到 B5T-007001 的命令按顺序执行。主机固件向摄像头发送命令之后,必须等待摄像头返回该命令的结果,然后才能发送另一个命令。如果主机检测到超时(取决于应用要求),主机固件可以重新发送命令,或者通过发送 RESET 命令来复位摄像头。

配置摄像头以实现人脸识别

启动 B5T-007001 之后,首先必须对其进行配置,让它能够在将要使用它的物理环境下工作。命令是通过 USB 或 UART 接口发送的,遵循指定的命令结构(表 1)。每个命令的第一个字节始终是 0xFE,称为同步码。

B5T-007001 支持 20 个命令。有关这些命令的完整描述,请参见表 2。

该摄像头非常灵活,可通过连接到微型 USB 2.0 端口的电缆轻松配置。要识别的每个人被称为用户,以 2 字节的用户 ID 进行标识。所有用户 ID 数据首先由主机写入 B5T-007001,其中包括用户的灰阶图像。

用户集合称为相册。每个相册支持最多 100 个用户。B5T-007001 将所有相册数据及其他配置数据存储在摄像头电路板上的 RAM 中。工作过程中,设备使用存储在 RAM 中的相册数据来进行检测。

摄像头有板载闪存,用于相册备份存储。将相册保存在闪存上命令可将存储在 RAM 中的所有用户相册数据写入闪存。闪存数据仅在摄像头启动时加载到摄像头 RAM。如果在工作过程中,主机固件需要将摄像头闪存数据重新加载到摄像头 RAM,则它必须通过硬件电源开关来复位 B5T-007001。

执行检测命令 (04h) 用于根据“命令数据”字段的内容,执行各种内置检测算法。对于在摄像头的视野中检测到的每个人,可以执行以下一个或所有十个检测命令:

  1. 人体检测命令 - 检测人体的上半身部分,按人体中心的坐标进行标识。
  2. 手部检测命令 - 检测打开的手掌,按手部中心的坐标进行标识。
  3. 人脸检测命令 - 检测最多 100 张人脸,按中心点坐标粗略值进行标识。
  4. 人脸方向估计命令 - 估计受检测人脸的方向,表示为偏航角(左,右)、俯仰角(下,上)、翻滚角(逆时针,顺时针)。
  5. 年龄估计命令 - 估计受检测人脸的年龄,从 0 到 75 岁。
  6. 性别估计命令 - 估计受检测人脸的性别(男性,女性)。
  7. 注视点估计命令 - 估计受检测人脸的眼睛注视方向,表示为偏航角(左,右)和俯仰角(下,上)。
  8. 眨眼估计命令 - 估计受检测人脸每只眼睛的眨眼程度,1 = 眼睛全开,1000 = 眼睛全闭。
  9. 表情估计命令 - 估计受检测人脸的表情,结果表示为平和、快乐、惊讶、愤怒和悲伤。
  10. 人脸识别命令 - 识别受检测人脸,与存储的人脸进行比较。结果返回最可能与受检测人脸匹配的人脸的用户 ID。

所有位置都以 [x,y] 坐标进行标识,其中图像左上角的坐标为 [0,0]。对于每个结果,都有从 0% 到 100% 的关联可信度,以 0 - 1000 的十进制数表示。

摄像头支持图像输出功能,主要用于开发人员设置摄像头和对准方向时的调试辅助。它的分辨率为 320 x 240,还不足以用作安防监视器。如果需要流媒体视频,建议安装另一个高清摄像头。

在应用中,放置摄像头之前,首先必须在开发环境中进行配置。B5T-007001 附带有软件,允许 PC 通过 USB 端口与设备连接。该 PC 软件也与 B5T-007001 配合使用,识别和注册相册中的用户。正如我们此前在人脸识别基础知识中所述,用户的脸部照片应该清晰地显示鼻子、眼睛、耳朵和下巴的主要特征(图 2)。

为微控制器系统添加人脸识别功能

B5T-007001 能够通过 USB 或 UART 接口连接到微控制器。UART 接口支持 921600 位/秒的最大波特率,USB 2.0 接口支持 480 MB/秒。请注意,摄像头不支持同时使用这两种接口。

微控制器只需支持基本输入/输出,即可用于 B5T-007001,而更高级的开发可能需要图像处理或多摄像头管理功能。

1 2

相关文章

tracer