边缘计算那些事儿—边缘智能技术

news2024/10/5 23:30:17

0 背景

        边缘智能是边缘计算中一个非常重要的方向。它将边缘计算和人工智能算法结合起来,在边缘设备上就近处理目标检测、物体跟踪,识别等任务。这种处理方式可以降低时延,减少数据上送云端对回传网络的冲击,同时保证数据的隐私和安全性。但是,我们要面对一个问题,即现有的人工智能算法是否可以直接应用于边缘侧,还是我们需要重新设计一套原生算法。本文将探讨边缘智能网关的全栈解决方案,提供一套工程化的实现框架,从硬件、操作系统、数据平台和智能编程库选型入手,帮助读者选型快速搭建一个边缘智能网关出来。

1 什么是边缘智能

        边缘智能是指将边缘计算和人工智能相结合,在靠近用户的边缘设备上对数据进行智能采集,检测和识别。如下图所示,智能模型可以在云端进行训练,然后在边缘设备上进行预测。这样的协同模式,是因为边缘设备通常在计算能力和存储能力上比较弱,无法完成大规模的训练,考虑到边缘设备就近处理的优势,可以将预测模型下沉到这一级边缘设备。如何评价边缘智能设备的预测能力,结合边缘设备资源不足的特点,主要从边缘智能设备的预测准确率,低延迟,低功耗和内存占用率低四个视角评价。

        整个边缘智能设备为了达成上述的四个评价标准,在技术层面主要追求轻量化的实现方式,比如轻量化的机器学习算法,轻量化的边缘智能开发库,轻量化的操作系统等。在硬件选型上采用异构化的硬件,与通常的边缘网关设备不同,需要选择计算密集型的芯片作为计算设施。被采集的数据并不能被立刻处理而要首先进行数据清洗。当下一种比较流行的边缘智能模型是边传边算,从空口开始到每一级的边缘设备都进行计算,在其中某一级的边缘智能设备上就完成了检测,识别等功能。关于边缘智能的实现技术框架,详见下节。

2 边缘智能的实现技术架构

        如果我们想落地一款边缘智能网关,在每一层上可以选择哪些技术呢?本小节将给出一个参考案例。如下图所示,图中右边从底层硬件到最上层的应用给出了可选的技术方案,左边则给出选择这一项技术的原因。

        首先是硬件芯片的选择,因为我们要实现的边缘智能网关需要具备一定的运行机器学习、深度学习的能力,传统的边缘计算网关采用的CPU和arm体系结构并不适合处理这种计算密集型的业务,因此需要选择诸如GPU、NPU、ASIC、FPGA等计算型芯片加速。考虑到上一节提到的边缘智能的低功耗的特性,当前比较占优势的技术是FPGA,FPGA因其灵活的硬件设计,可以很方便地开发不同应用场景的硬件,当然ASIC可以提供更低的功耗,但是因灵活性不及FPGA,所以在此处图中选择FPGA作为硬件加速引擎。

        接下来是操作系统的选型。linux是边缘计算网关中被广泛使用的一种开源操作系统,但是linux本身是一种IO密集型或者说是指令密集型的操作系统,在数据的处理调度上并无优势,因此此处笔者借鉴《边缘计算》一书中提到的ROS作为专门处理计算任务和调度的操作系统,实现AMP双系统。对于模型预测,智能编程库相关的算法运行在ROS上,对于一般的数据管理和设备管理则运行在linux上,如果是双核的开发板,则可以分别绑定到不同的核上运行。

        再往上看就来到数据平台层,这一层是边缘计算网关的核心,主要是处理和管理数据、设备状态,实现云边协同等。显然在边缘智能网关,仍然需要对设备进行处理,而且会涉及到大量预测数据的处理,部分数据还需要上送到云端进行训练,因此这一层也是必不可少的。此处我们选择kubeedge或者edgex foundary作为数据处理平台,这两个平台分别在工业边缘网关,物联网网关,智慧城市,智慧交通等有着广泛应用,可以简化设备维护,部署,云边数据传输的复杂度,让我们更聚焦于使用边缘智能编程库进行业务开发或者设计新的边缘智能算法。

        再往上就是我们本节的核心轻量的边缘智能编程库,这个库可以方便实现快速的智能业务开发,不必从头开始实现原生边缘智能算法或者裁剪现有云端算法。此处我们推荐TensorFlow Lite和Paddle Lite两个编程库,这两个库同样是当前应用比较广泛的开源项目,关于这两个库的差别将在下一节重点介绍。

        最后就是从算法角度,实现边缘智能算法的一些方案,简单来说分为两类,一类是原生算法,就是基于边缘网关的资源受限的特点重新设计轻量化的训练和预测模型;还有一类是从当前云端的算法通过压缩、裁剪等手段得到预测模型,然后卸载到边缘网关上,比如深度学习模型的网络压缩,知识迁移,低秩逼近等。如果要自己设计算法,需要注意从低时延,低内存,低延迟,高准确率四个角度考虑,保证算法可用性。

3 TensorFlow Lite和Paddle Lite对比

        TensorFlow Lite和Paddle Lite分别是由Google和百度开发的轻量级的智能算法编程库,均适合部署在诸如嵌入式系统,边缘计算网关等资源受限的设备上,擅长进行预测,其负责训练模型分别是TensorFlow和PaddlePaddle,可以部署在云端。如下表所示从10个角度进行对比,读者可以根据自己的业务需求选择其中的一个模型。

        从上表中可以看出,两个模型有不同的应用场景,TensorFlow Lite更适合应用在英语自然语言的场景,而Paddle Lite更适合中文语音图像。在实现上,都是选择对现有云端的算法进行优化裁剪,不过采用的方案不同,一个是量化策略核内存复用,另一个则是知识蒸馏技术。都支持多种硬件,支持深度学习推理框架。在商用案例和场景上,两者又很多的重合,比如都支持时下比较火的自动驾驶领域,TensorFlow Lite支持的场景更加丰富核多样,而paddle lite主要聚焦在图像和视频的检测、追踪和识别上。

4 小结

        本文从工程选型的角度简单地介绍了边缘智能网关的实现原理和相关实现过程。当然这并不是唯一的解决方案,目的是抛砖引玉,帮助读者从项目视角感受一个边缘智能网关的实现框架。在其中还有一些细节,比如如何将Paddle Lite作为Kubeedge的pod节点安装上去,希望读者在实践中一起交流探讨。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/424840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「线性DP-步入」最大子串和

最大子串和 题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 样例 输入:nums [-2,1,-3,4,-1,2,1,-5,4] 输出&…

计算机组成原理第五章输入输出系统---概述笔记

我们都知道,外部设备和计算机是不能直接相连的,因为设备是多种多样的,都是通过一个接口设备和主存相连的,主机对外部设备有两种控制方式,程序查询方式和程序中断方式,第三种是DMA方式,这三种方式都是从CPU工作效率的角…

HTML表单和CSS属性以及DOM实现网页版计算器

目录 1、效果展示 2、源码 2.1HTMLCSS源码 2.2JS源码 3、CSS属性 3.1width、height属性 3.2font-size属性 3.3margin属性 3.4padding属性 3.5background-color属性 3.6border属性 3.7border-radius属性 3.8text-align属性 4、DOM 4.1根据id获取元素 4.2根据nam…

06 - 深度学习处理器原理

一、通用计算机架构 1. 冯诺依曼架构 冯诺依曼架构的特点:(1)使用存储程序的概念,即数据和指令都存储在内存中;(2)由 CPU、内存、输入/输出设备和总线组成,其中 CPU 包括控制单元、算术逻辑单元和寄存器;(3)控制单元按照取指(Fetch)- 译码(Decode)- 执行(Exec…

IM即时通讯-7-如何设计通知提醒

本文大纲 本文从为什么做通知提醒, 以及如何设计通知提醒, 以及如何衡量通知提醒三方面解释了如何设计通知提醒。 对于重点的如何设计通知提醒, 通过拆分前台和后台, 前台采用自建或者二方通道, 后台采用厂商信令通道…

电厂人员定位怎么做?智慧电厂人员定位系统解决方案告诉你答案

伴随着“泛在电力物联网建设”的提出,构建智慧电厂引起重大关注,全国各地纷纷响应。传统电力企业一直面临着人员管控难、生产环境复杂且危险多等问题,物联网技术的兴起使得电厂的数字化和智慧化转型已成为电力企业保障生产作业安全、提升生产…

工具及方法 - Linux下串口工具Minicom

因为调试设备所以需要打开两个串口,也许是开了Ubuntu虚拟机的影响,或其他的问题,经常有一个或两个串口设备工作不正常,需要重启电脑,很麻烦。 原因大概就是设备驱动问题,比如使用MobaXterm这个工具&#x…

基于NXP iMX8M Mini处理器测试DPDK

By Toradex秦海 1). 简介 DPDK (Data Plane Development Kit) 软件是一组用户空间库和驱动程序,可加速在所有主要 CPU 架构上运行的网络数据包处理工作负载,以便提升整个网络数据服务的QoS。其最早由 Intel 大约 2010年创建,后由6WIND公司发…

赛事报名启动丨百度Apollo星火自动驾驶大赛开始报名啦!

作为汽车智能化、网联化的关键环节,自动驾驶成为全球科技界、产业界竞争的新赛道。随着人工智能、5G通信、激光雷达、高精地图等多项技术不断完善,自动驾驶的判断力和理解力得到了显著提升。为了推动自动驾驶技术的发展、加快人工智能技术的迭代&#xf…

超详细的ARM架构适配介绍!

超详细的ARM架构适配介绍! - 掘金 本文主要介绍云联壹云平台如何适配ARM,并运行在ARM CPU架构的机器上。 背景介绍 1、平台服务运行架构 云联壹云平台采用容器化,分布式的架构运行在 Kubernetes(K8s)之上。下面是平…

小白轻松学Spring Cloud

在了解SpringCloud之前,我们先来大致了解下微服务这个概念吧。 传统单体架构 单体架构在小微企业比较常见,典型代表就是一个应用、一个数据库、一个web容器就可以跑起来。 可以从上图看出,单体架构基本上就是如上所说的:一个应用…

【Python】自动化这么简单吗?——百度网盘自动上传文件教程

文章目录前言一、准备二、授权bypy访问百度网盘三、开始使用bypy四、文件上传功能五.文件同步功能总结前言 要使用Python自动上传文件到百度网盘,你可以使用bypy开源模块,它提供了丰富的功能,包括显示文件列表、同步目录、文件上传。 仅支持…

014 - C++ 类

本期我们要讲的是 C 中的类。 我们终于讲到了面向对象编程,这是一种非常流行的编程方式,面向对象编程实际上只是一种你可以采用的编写代码的方式,其他语言例如 C#、Java 这些主要是面向对象的语言,事实上,用这些语言你…

JUC并发工具

JUC并发工具 一、CountDownLatch应用&源码分析 1.1 CountDownLatch介绍 CountDownLatch就是JUC包下的一个工具,整个工具最核心的功能就是计数器。 如果有三个业务需要并行处理,并且需要知道三个业务全部都处理完毕了。 需要一个并发安全的计数器来操作。 CountDown…

Android Linux,Windows 安装,卸载 android studio

Linux安装过程 sudo apt-get install libc6:i386 libncurses5:i386 libstdc6:i386 lib32z1 libbz2-1.0:i386sudo cp -r ./android-studio /usr/local/cd android-studio/cd bin./studio.sh Windows 安装过程 下载安装文件,解压 将解压得到 android-studio 文件夹…

pdf转jpg怎么解决?这五个转换方法快速搞定!

pdf转jpg怎么转?pdf是在我们工作中经常使用的一种办公文件格式类型,但是在某些特殊情况下,我们应该把pdf转jpg图片格式文件,很多人在这种情况下不知道如何把pdf转jpg图片格式文件,接下来我们一起来了解下pdf转jpg转换方…

java设计模式(1) 适配器模式、装饰器模式

适配器模式 适配器就是一种适配中间件,它存在于不匹配的了两者之间,用于连接两者,使不匹配变得匹配。 手机充电需要将220V的交流电转化为手机锂电池需要的5V直流电 知识补充:手机充电器输入的电流是交流,通过变压整流…

MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点1:sys.statement_analysis视图

文章目录MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点1:sys.statement_analysis视图视图sys.statement_analysis各列定义视图sys.statement_analysis视图的定义视图sys.statement_analysis各列解释例题例题解析参考MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点…

5G边缘计算网关用于智能消防安全

随着人们对智能消防安全的需求不断增长,5G边缘计算网关作为一种新型技术,已经被广泛应用于消防设备的智能监控和管理中。本文将介绍5G边缘计算网关在智能消防安全中的应用,并给出一个Python代码示例。 一、5G边缘计算网关在智能消防安全中的应…

OKR系统改变您的团队

使用Zoho Projects易于使用的OKR系统将雄心转化为行动。简化您计划、跟踪和报告团队目标的方式。 一、使用这个强大的OKR工具提升结果 1、自动组织团队的目标 在公司、部门、团队和个人层面创建和跟踪OKR,以实现真正的整体OKR管理。 2、实时跟踪进度 使团队能够使…