机器/深度学习已经如火如荼,各种炫目的效果呈现不穷,笔者也复现一些如stackoverflow assistence、头像动漫化等,但大都需要强大算力,“终端(手机)+云服务器”是基本结构。去年关注到Google TFLite Micro(TFLM)及技术,可以将Tensorflow 模型部署到嵌入式的端末设备(比如arm cortex M4 64M)。恰好手头有一个农业物联网项目,利用嵌入式设备识别牲畜的活动状态,应用了这一个技术。这段时间项目间隙,记录下开发过程的一些心得体会。
以下引文来自edx公开课 "HarvardX - Fundamentals of TinyML"
Tiny machine learning (TinyML) is a fast-growing field of machine learning technologies and applications including algorithms, hardware, and software capable of performing on-device sensor data analytics(vision, audio, IMU, biomedical, et.) at extremely low power, typically in the mW range and below, and hence enabling a variaety of always-on use-cases and targeting battery-operated devices.
Tiny机器学习(TinyML)是一个快速发展的机器学习技术和应用领域,包括能够以极低的功耗执行设备上传感器数据分析(视觉,音频,IMU,生物医学等)的算法,硬件和软件。 ,通常在mW范围内及以下,因此可以实现各种始终在线的用例,并以电池供电的设备为目标。
引用《TinyML》一书作者阐述TinyML概念:如果能以低于1毫瓦的功耗成本运行神经网络模型,那么将使得许多全新的应用成为可能。”1毫瓦“似乎是一个有点随意的数字,如果把它转换为具体的术语,这意味着一个使用纽扣电池的设备可以具有一年的使用寿命,这就产生一种产品——它足够小,可以适应任何环境,并且能够在无需人工干预的情况下运行相当长时间。
微型机器学习(tinyML)是机器学习和嵌入式物联网(IoT)设备的交叉点。该领域是一门新兴的工程学科,有可能使许多行业发生革命。
物联网的传统理念是将数据从本地设备发送到云端进行处理。一些人对这个概念提出了一些担忧:隐私、延迟、存储和能源效率等等。
Energy Efficiency。传输数据(通过有线或无线)是非常耗能的,大约比机载计算(特别是乘法累加单元)要高一个数量级。开发能够自己进行数据处理的物联网系统是最节能的方法。人工智能的先驱们已经讨论了一段时间的“以数据为中心”的计算(相对于云模型的“以计算为中心”),现在开始看到它的结果。
Privacy。传输数据有可能侵犯隐私。这样的数据可能被恶意的参与者截获,并且当存储在一个单一的位置(如云)时,其安全性就会降低。通过将数据主要保存在设备上并尽量减少通信,这提高了安全性和隐私性。
现实有IOT大量众多数据没有被利用,由于产生数据量大,并且传输这些原始数据需要耗费大量的电能
Storage。对于许多物联网设备来说,他们获取的数据毫无价值。想象一下,一个保安摄像头24小时记录着一栋大楼的入口。在一天的大部分时间里,摄像机的镜头是没有用处的,因为什么都没有发生。通过拥有一个只在必要时激活的更智能的系统,就需要更低的存储容量,并且传输到云端所需的数据量也减少了。
Lattency。对于标准物联网设备,如Amazon Alexa,这些设备将数据传输到云端进行处理,然后根据算法的输出返回响应。从这个意义上说,这个设备只是一个通往云模型的便捷门户,就像你和亚马逊服务器之间的信鸽。这个设备相当愚蠢,完全依赖互联网的速度来产生结果。如果你的网速很慢,亚马逊Alexa也会变慢。对于具有机载自动语音识别功能的智能物联网设备,由于减少了(如果不是没有)对外部通信的依赖性,因此延迟降低了。
MCU尺寸越来越来
MCU的性能越来越强大并且越来越便宜
MCU的低功耗方面的发展
推荐《TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers》这本书,有中文版。该书从背景、理论阐述TinyML,并且”show me the code”,从四个具体例子:Hello World、唤醒词检测、行人检测、魔杖进行讲述。
如《TinyML》所述,有四个硬件开发板就好:
个人推荐Arduino Nano 33 BLE Sense开发板,因为nrf52840是很成熟的具有蓝牙的低功耗平台,产品经过市场检验。话说回来,对于经历过TinyML实践者来说,只要基于ARM CortxM3 M4(也可以不是,但是需要tfml直接的cpu架构)的mcu都可以,不过这都是后话。
基于Tensorflow lite for microcontroller框架,位于tensorflow源码中;
ide推荐vs code;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。