This commit is contained in:
Yan_yan 2020-11-13 09:45:21 +08:00
commit 80658cbde8
5 changed files with 38 additions and 4 deletions

View File

@ -72,7 +72,8 @@ const sidebar = {
],
'appcase': [
'/doc/appcase/dashengda',
'/doc/appcase/qianjiangdianqi'
'/doc/appcase/qianjiangdianqi',
'/doc/appcase/meter_reading'
],
}

View File

@ -2,14 +2,22 @@
## 基本框架
工厂中不仅有气压、温度等环境数据还有很多图像、声音等数据比如工业设备仪表盘、厂房工人分布等这些数据也需要检测并处理。传统方案使用嵌入式终端采集、云端处理的架构。而当前越来越多的硬件厂商开始将一部分AI算力下沉到嵌入式终端上比如 ST 推出的针对 STM 平台的神经网络加速库 STM32 Cube.AIARM 即将发布的针对嵌入式场景的 Ethos-U55 神经网络处理器,以及 勘智 K210 平台嵌入了一颗卷积网络加速器 KPU。本系统提供了在嵌入式节点端做轻量级AI处理的应用框架可以在 Arm Cortex-M 或者 有神经网络加速器的平台(比如 勘智 K210运行。对于复杂的 AI 应用,可以选择完全在 边缘或者云侧处理,也可以选择在 节点端做简单预处理,在 边缘或者云侧做后续的处理。基本结构如下:
传统嵌入式场景下节点端主要负责数据采集和简单处理复杂的任务放在边缘或者云端完成。而随着嵌入式芯片性能越来越强在端侧承担更多的计算也成了目前的一个趋势比如ST 推出的针对 STM 平台的神经网络加速库 STM32 Cube.AI。最近部分厂商开始在嵌入式平台上引入神经网络加速模块比如 ARM 即将发布的针对嵌入式场景的 Ethos-U55 神经网络处理器,以及 勘智 K210 平台嵌入了一颗卷积网络加速器 KPU使得端侧算力进一步增强从而使我们可以在端侧做更多的计算和任务从而相比传统解决方案有更好的延时、更低的成本。
我们提供了端侧的智能框架,将部分 AI 计算下沉到端侧,可以在端侧完成部分 AI 计算,从而为工业场景下的图像、声音等数据采集和感知提供更丰富的解决方案。比如 对于工业环境下的机械仪表读数识别,我们在初始化时通过边缘或者云端完成仪表数字分析,后续运行中我们在节点端完成仪表指针识别并计算仪表读数,从而在运行中不需要和边缘或者云端通信就可以完成读数识别,提供了更低的延时。
端侧智能框架基本结构如下:
![智能框架架构](./imagesrc/framework-ai-arch.png)
端侧智能运行框架中,目前在 STM32 平台上支持 TensorFlow Lite for Microcontroller勘智K210 上支持 KPU ModelCV算子目前暂不支持。模型库中有一些已经训练好的模型可以直接使用比如人物检测模型仪表盘识别模型等。
图中 **端侧智能框架** 是我们提供的在节点端进行智能计算的框架,而 边缘/云端智能框架 是进行进一步复杂智能计算的框架。其中模型库是我们提供的一些训练好的AI模型比如仪表读数识别模型、人物检测模型等。
端侧智能框架 目前在 STM32 平台上支持 TensorFlow Lite for Microcontroller在勘智K210 上支持 KPU ModelCV算子目前暂不支持。后续工作中我们会将 TF Lite for MCU 和 KPU Model 融合以及提供一些通用的 CV 算子。
## 端侧 Framework 的使用说明
在 STM32 平台,本系统提供 TensorFlow Lite for Microcontroller 框架,关于 TF Lite for MCU 的使用,可以参照 [TF Lite for MCU 官方教程](https://www.tensorflow.org/lite/microcontrollers) ,详细说明后续补充。
端侧智能框架 的具体 API 后续放出,目前可以参考以下资料。
在 STM32 平台,本系统提供 TensorFlow Lite for Microcontroller 框架,关于 TF Lite for MCU 的使用,可以参照 [TF Lite for MCU 官方教程](https://tensorflow.google.cn/lite/microcontrollers) ,详细说明后续补充。
在 勘智 K210 平台,本系统提供 KPU Model 的框架,详细使用可以参考 [勘智官方说明](https://s3.cn-north-1.amazonaws.com.cn/dl.kendryte.com/documents/kendryte_standalone_programming_guide_v0.3.0.pdf) 的 “神经网络处理器KPU”章节详细说明后续补充。

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 KiB

View File

@ -0,0 +1,25 @@
# 仪表读数识别
## 应用场景
在老式工厂厂房中分布着很多机械式仪表盘,需要工人定期查看仪表数据,费时费力。我们需要一种自动化采集的装置完成工厂数据的采集,不需要工人人工操作,提高效率,节省人力。
如何采集仪表数据?有些仪表盘可以方便的获取数据,比如智能电表,但是有些仪表盘获取数据并不容易,比如有些设备上的仪表盘,工厂不允许轻易接入设备控制系统,需要一种非侵入式的数据采集方式,再比如一些老式的机械仪表盘,本身没有电子系统,需要通过图像方式采集。我们提供了两种基于图像采集、图像分析的非侵入式解决方案来完成仪表读数的自动识别,方案具体细节见下文展示。
## 应用展示
### 基于端侧采集、边缘识别的方案
方案一采用 端侧采集、边缘识别 的方案,该方案在节点端采集仪表盘图像,然后通过 wifi 传输到边缘端识别,完成读数计算。基本结构如下:
![端侧采集边缘识别](./imagesrc/meter-reading-1.png)
该方案在边缘端服务器上完成仪表盘读数识别,利用服务器上强大的算力可以准确识别表盘数据,但是需要端侧频繁发送图像数据。
### 基于端侧识别的方案
方案二采用端侧识别的方案,该方案在初始化的时候需要边缘侧或者云侧通信,利用边缘侧或者云侧的算力完成表盘数字识别,然后后续运行中不依赖边缘侧或云侧,只需要在端侧利用智能算法完成指针识别,并计算出读数。基本结构如下:
![端侧识别](./imagesrc/meter-reading-2.png)
该方案需要端侧具备一定的算力,比如 Kendryte K210其具有神经网络加速器可以完成指针的识别。该方案利用端侧识别的方式运行中不需要和边缘、云侧通信可以更快速、更高效的完成读数识别。