边缘计算Tensorflow Lite

简介: 边缘计算Tensorflow Lite

1.云计算与边缘计算


1.1 云计算

云计算是一种利用互联网实现随时随地共享的计算设施,列入我们的物联网监控系统


我们需要远程通过一些物联网设备来采集一些数据,通过获取这些数据,传输到远程的服务器上,进行机器学习算法的计算,再将计算的结果反馈到系统平台中。这当中就会遇到几个问题:


数据量大

物联网设备当地的宽带不够

对于监控系统,需要实时的,低延迟的获取计算结果,云计算由于宽带远程服务器,存在高的延迟。

同时云计算,传输数据,对于设备的功能消耗过大


就好比,以前军队打仗,如果发生时边境外族进犯,如果这时候快马加鞭,通过人骑马,把信息传递给皇朝,等皇上发布指令,在传递给边境的军队,边境的城防早凉了。这样的一个战略部署指令就像云计算一样


1.2 边缘计算


而边缘计算,像是在边境城防军队中一个可以指挥战略部署的将军,他有权对当前的情况,进行命令处理。先斩后奏


边缘计算的好处:

  1. 缓解服务器计算压力,提升服务响应能力
  2. 保护隐私数据
  3. 实时计算,反应计算结果

边缘计算的核心:就是需要终端,具有高运算力的处理器芯片CPU


2.边缘AI


边缘AI是指在硬件设备上本地处理的AI算法,可以在没有网络连接的情况下处理数据。这意味着可以在无需流式传输或在云端数据存储的情况下进行数据创建等操作。这一点很重要,因为出现了越来越多的设备数据无法依赖云端处理的情况。比如,工厂的机器人和自动驾驶汽车都需要以最小的延迟高速处理数据。


为了实现这些目标,边缘计算可以在云上靠深度学习生成数据,而在数据原点——即设备本身(边缘)执行模型的推断和预测。


以工厂的工业机器人为例。AI技术可以在这里以人类无法企及的速度,对来自监控摄像头和传感器的大量多模态数据进行可视化和评估,可以用它来检测生产线上人类可能忽略的故障数据。这类物联网结构可以存储生产线上产生的大量数据,并通过机器学习进行分析。它们也是能够提高工厂智能化程度的AI模型的核心。


2.1 物联网与5G


边缘人工智能经常与物联网(IoT)和5G网络放在一起讨论.

物联网一词指的是通过互联网相互连接的设备,包括智能手机、机器人和电子设备。作为一个用人工智能进行分析的平台,边缘人工智能可以收集和存储物联网产生的大量数据,让使用具有可扩展性的云成为可能。这可以提高数据处理和基础设施的灵活性.


5G网络可以增强上述过程,因为其三大特点——超高速、大并发和超低时延——明显优于4G网络.



4G
5G
数据速率 1Gbps 20Gbps
并发连接数 100,000台设备/平方公里 1,00,000台设备/平方公里
时延 10ms 1ms


5G对于物联网和边缘AI的发展是不可或缺的,因为当物联网设备传输数据时,数据量暴涨,从而影响传输速度。传输速度的下降又会产生时延,而时延是实时处理面临的最大问题。

5556c1977d414b7fa6e87d8a45da86cc.png


2.Tensorflow与Tensorflow Lite


在物联网设备获取数据后,我们的算法需要对数据进行深度学习,机器学习的计算处理,因此我们需要把我们的算法部署到边缘计算的设备中,在这里Tensorflow Lite是针对移动和嵌入式设备的轻量级解决方案。


Tensorflow与Tensorflow Lite就像是一个在云计算部署算法的组件一个在边缘计算上部署算法的组件。


TensorFlow在更多适合大型设备上运行算法

TensorFlow专注于小型设备(ios,嵌入式,硬件)

TensorFlow Lite 是一种全新的设计,它支持以下功能:


轻量级(Lightweight):支持机器学习模型的推理在较小二进制数下进行,能快速初始化/启动。

跨平台(Cross-platform):可以在许多不同的平台上运行,现在支持 Android 和 iOS

快速(Fast):针对移动设备进行了优化,包括大大减少了模型加载时间、支持硬件加速。 如今,越来越多的移动设备中

含有专用的定制硬件来更高效地进行机器学习。TensorFlow Lite 支持 Android 神经网络API(Android Neural Networks API),大家在使用 TensorFlow Lite 时可以利用这些有用的加速器。


当加速器(硬件设备)不可用时,TensorFlow Lite 会返回到 CPU 来执行,这将保证模型仍然可以在一大批设备上快速运行。


2.1 Tensorflow Lite结构


下图是 TensorFlow Lite 的结构设计:


5d2b311c989d46a8ac4836883a09072c.png

模块如下:


TensorFlow Model: 存储在硬盘上已经训练好的 TensorFlow 模型

TensorFlow Lite Converter: 将模型转换为 TensorFlow Lite 文件格式的程序。

TensorFlow Lite Model File: 基于 FlatBuffers 的模型文件格式,针对速度和大小进行了优化,可以将 TensorFlow Lite Model File 部署到 Mobile App ,如上图中所示:

Java API: 处于 Android App 中 C++ App 上,方便封装。

C++ API: 加载 TensorFlow Lite Model File,调用解释器(Interpreter)。上面的这两个库在 Android 和 iOS 端都可用。

Interpreter:使用一组运算符来执行模型。运算符可以选择,如果不含运算符,只有70KB,加载所有的运算符之后为300KB。比起需要1.5 M(使用一组正规的操作符)的 TensorFlow Mobile,能使容量大大减小

在 Android 设备上,Interpreter 支持 Android神经网络API,可以用它进行硬件加速。如果没有可用的加速器,则默认使用CPU。


2.2 模型


TensorFlow Lite 目前支持很多针对移动端训练和优化好的模型。

MobileNet:能够识别1000种不同对象类的视觉模型,为实现移动和嵌入式设备的高效执行而设计。

Inception v3:图像识别模型,功能与 MobileNet 相似,它提供更高的精度,但相对来说更大。

Smart Reply:设备对话模型,可以即时回复聊天消息,在 Android Wear 上有使用这一功能。

Inception v3 和 MobileNets 已经在 ImageNet 数据集上训练了。大家可以利用迁移学习来轻松地对自己的图像数据集进行再训练。

相关文章
|
1月前
|
机器学习/深度学习 人工智能 API
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:1~5
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:1~5
99 0
|
1月前
|
机器学习/深度学习 存储 人工智能
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(3)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(3)
85 0
|
9月前
|
Java TensorFlow 算法框架/工具
Android 中集成 TensorFlow Lite图片识别
Android 中集成 TensorFlow Lite图片识别
87 0
|
1月前
|
机器学习/深度学习 Dart TensorFlow
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(5)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(5)
76 0
|
1月前
|
机器学习/深度学习 存储 编解码
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(4)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(4)
130 0
|
1月前
|
机器学习/深度学习 存储 算法框架/工具
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(2)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(2)
56 0
|
1月前
|
机器学习/深度学习 存储 运维
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(1)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(1)
63 0
|
Java TensorFlow 算法框架/工具
Tensorflow Lite移动平台编译|Bazel实践
如果不做定制化操作,我们不需要自己编译TensorFlow Lite Android库。我们可以直接使用位于MavenCentral的TensorFlow Lite AAR。但是在某些情况下,我们需要本地编译TensorFlow Lite。例如,您可能正在构建一个包含operations selected from TensorFlow的自定义二进制文件,或者需要对TensorFlow Lite进行局部修改。
345 0
|
机器学习/深度学习 算法 Java
TensorFlow Lite介绍
TensorFlow Lite是为了解决TensorFlow在移动平台和嵌入式端过于臃肿而定制开发的轻量级解决方案,是与TensorFlow完全独立的两个项目,与TensorFlow基本没有代码共享。TensorFlow本身是为桌面和服务器端设计开发的,没有为ARM移动平台定制优化,因此如果直接用在移动平台或者嵌入式端会“水土不服”。
388 0
|
机器学习/深度学习 Java 物联网
Android TensorFlow Lite 初探 数字分类器(JAVA DEMO)
Android TensorFlow Lite 初探 数字分类器(JAVA DEMO)
247 0
Android TensorFlow Lite 初探 数字分类器(JAVA DEMO)