利用 TensorFlow Lite Micro 实现视觉唤醒词

文 / Aakanksha Chowdhery, 软件工程师

为什么当你对 Google 助理说 “Yo Google” 时得不到反应?

毕竟这与“Ok Google”只有一字之差。这是由于 Google 助理只以这两个词作为‘唤醒词 (Wake Words)’。唤醒词对于低功耗机器学习的设计至关重要,较低计算成本的模型在被 “唤醒” 时进行全面处理。语音唤醒词(如 “Ok Google”)广泛应用于唤醒 AI 辅助设备中,设备被唤醒后将以较高计算成本的机器学习模型来处理语音。

低功耗摄像头的推出让一类应用应运而生,这类热门应用结合了视觉传感器与微控制器,可以对图像帧中是否包含 感兴趣的对象 (人或其他物体)进行分类。这类应用被称为 “视觉唤醒词”,因为它可以在人类出现时唤醒设备,类似于语音唤醒词在语音识别中的应用。

边缘机器学习是指无需连接到云,在设备上即可运行的模型。当用户针对语音传感器或低功耗摄像头部署模型时,使用低成本计算平台的微控制器便是一个很好的折衷方案。不过,现有的机器学习模型几乎都不符合微控制器的设备限制条件(在功耗和处理能力方面)。详情请参阅此 论文

2019 年计算机视觉与模式识别大会 (CVPR 2019) 上,Google 组织了一项称为“视觉唤醒词挑战 (Visual Wake Words Challenge)”的挑战赛,旨在为微控制器征集微型视觉模型。挑战赛内容是将图像分为两类(有人/无人),以便为微控制器提供常见用例。Google 开放了 视觉唤醒词数据集(派生自 COCO 数据集)的源代码:标签 1 对应的图像包含至少一个人(或感兴趣的对象);标签 0 对应的图像则不含“人”。

利用视觉唤醒词模型检测图像中是否有人

微控制器设备的机器学习需要重新思考模型的设计方案,对内存占用、准确性和计算成本进行重新权衡。普通微控制器的片上内存和闪存空间极其有限,分别是 100 至 320 KB ,SRAM 为 256 KB 至 1 MB。整个神经网络模型及其权重参数和代码必须满足闪存空间较小的内存预算。而且,计算期间存储输入和输出激活所需的临时内存缓冲区不得超过片上内存。在视觉唤醒词挑战中,研究员设计出以下符合微控制器设备限制条件且拥有最高准确度的模型:模型小于 250 KB,内存使用峰值低于 250 KB,每个推理的推理成本低于 6000 万个乘加运算。有关 研讨会 上的演讲,请观看 IEEEtv

普通微控制器的片上内存和闪存空间极其有限。例如,SparkFun Edge 开发板配备 384KB RAM 和 1MB 闪存

征集到的模型采用了 模型剪枝量化 算法(包含在 Tensorflow 模型优化工具包 中)和神经架构搜索算法,设计出符合微控制器设备限制条件的微型模型。研究人员使用了 TensorFlow 团队推出的微控制器机器学习框架 Tensorflow Lite Micro,在设备上部署自己的模型。

此项挑战在研究社区中反响如潮,收到了 ARM、三星、高通、麻省理工学院 (MIT)、加州大学伯克利分校、牛津大学等诸多企业或高校的作品。针对视觉唤醒词数据集,来自 MIT 和高通的最高分条目在“可在现有机器学习框中部署”和“可在下一代机器学习框架中部署”两个类别中分别实现了 94.5% 和 95% 的分类准确率。

MIT 的获胜团队展示

如需下载视觉唤醒词数据集以及训练您自己的模型,请参阅 教程

致谢

感谢参与此项目的所有人员: Aakanksha Chowdhery、Daniel Situnayake、Pete Warden; 同时,感谢以下同事的指导和建议: Jon Shlens、Andrew Howard、Rocky Rhodes、Nat Jeffres、Bo Chen、Mark Sandler、Meghna Natraj、Andrew Selle、Jared Duke。

原文:Visual Wake Words with TensorFlow Lite Micro
中文:TensorFlow 公众号