前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >边缘网关及智能算法

边缘网关及智能算法

原创
作者头像
联远智维
发布2022-10-31 12:24:49
1.1K0
发布2022-10-31 12:24:49
举报
文章被收录于专栏:联远智维联远智维

背景介绍

调研发现,物联网在传统工业中一般采用云-边-端的架构,其应用模式逐渐固化。其中云平台主要进行数据的存储;边缘端作为大脑,不仅能够给底层设备下发控制指令,还可以对智能传感器发送的数据进行特征提取,并将结果反馈给云平台。边缘网关可以作为一款可自由裁剪的微型电脑,能够安装Linux系统,执行各种复杂指令,具体的框架如下图所示:

图1 网关的系统架构
图1 网关的系统架构

附1:边缘网关在实际中具有广泛的应用,主要的优势体现在:1、将嵌入式设备中涉及的复杂计算移植到边缘端,有效的解决了硬件消耗等问题;2、将区域内的信息进行收集、汇总、融合,后续通过智能算法提取出关键信息(联邦学习等),具有更好的安全性;3、解决了嵌入式设备与云端通信延迟过高的问题,在自动驾驶等领域具有广泛的应用。

附2:物联网的核心为如何利用数据背后的价值:在力学领域应用时,能够直接将有限元软件嵌入到边缘端,通过传感器获取模型关键参数,然后在边缘端进行分析计算,得到最后特征并上传到云平台,该方式能够应用于火焰温度测量,流速测量等场景。

系统框架

本项目利用开源数据集Human Activity Recognition database进行训练,最终通过加速度信号识别穿戴者的运动状态,后续和同学一起成功部署到边缘网关~

数据结构

Human Activity Recognition database总共选取了30 名志愿者,年龄范围在19-48岁年龄段。测试过程中每个人在腰部佩戴智能手机(嵌入式惯性传感器)进行六项活动,原始数据的采样频率为 50Hz,具体格式如下所示:

代码语言:javascript
复制
33,Jogging,49105962326000,-0.6946377,12.680544,0.50395286;
......

其中,33表示为设备编号,Jogging表示为志愿者的状态,分别为:'Downstairs', 'Jogging', 'Sitting', 'Standing', 'Upstairs', 'Walking';“49105962326000”为时间戳;“--0.6946377,12.680544,0.50395286”分别为X、Y、Z方向的加速度。

通过data = pd.read_csv()对数据进行读取,具体的数据格式为:

代码语言:javascript
复制
Convoluted data shape:  (10981, 180, 3)
Labels shape: (10981, 6)
X train size:  7686
X test size:  3295
y train size:  7686
y test size:  3295

环境搭建

本项目采用ECS云服务器,具体配置为:ubuntu_20系统,2GB内存,40GB存储空间,系统安装有python环境,利用tensorflow深度学习框架进行模型训练。其中,环境搭建的具体过程为:

代码语言:javascript
复制
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

(base) root@mayuanliang:~/har-recognition# conda -V
conda 4.12.0

conda update -n base -c defaults conda
conda create -n hri python=3.6
conda activate hri

pip install matplotlib==1.5.3
pip install seaborn==0.8.1
pip install numpy==1.14
pip install pandas==0.20.3
pip install scikit-learn==0.19.1
pip install tensorflow==1.5.0

(hri) root@mayuanliang:~/har-recognition# python
Python 3.6.15 | packaged by conda-forge | (default, Dec  3 2021, 18:49:41) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'1.5.0'

程序算法

模型训练完成后,我们采用saver.save()命令将所有的变量和网络结构保存下来,具体代码为:

代码语言:javascript
复制
saver = tf.train.Saver()
saver.save(sess, "/root/har-recognition/classificator")

运行完毕后,文件夹中会出现checkpoint、classificator.data-00000-of-00001、classificator.index和classificator.meta 4个文件。

结果展示

实际项目应用中,我们能够直接加载模型文件,对嵌入式硬件上传到数据进行实时预测,具体程序代码为:

代码语言:javascript
复制
with tf.Session() as sess:
        new_saver = tf.train.import_meta_graph('/root/har-recognition/classificator.meta')
        new_saver.restore(sess, '/root/har-recognition/classificator')

        graph = tf.get_default_graph()
        X = graph.get_operation_by_name('X').outputs[0]
        y = graph.get_operation_by_name('y').outputs[0]
        y_pred_softmax = graph.get_operation_by_name('y_pred_softmax').outputs[0]

        predictions = sess.run([y_pred_softmax], feed_dict={X: X_test})
        print("predict:", predictions)

程序输出的结果为:

代码语言:javascript
复制
predict: [array([[1.1652751e-03, 4.1641928e-03, 9.9202007e-01, 1.2657455e-03,
        1.1365779e-03, 2.4814304e-04]], dtype=float32)]        

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 系统框架
    • 数据结构
      • 环境搭建
        • 程序算法
          • 结果展示
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档