---
layout: single
title:  "百度 EasyEdge 端与边缘 AI 服务平台"
date:   2022-07-21 00:00:00 +0800
categories: [编程开发, 操作系统]
tags: [EdgeAI, 百度, EasyEdge]
---

## [EasyEdge 端与边缘 AI 服务平台](https://ai.baidu.com/easyedge/home)
 [使用](https://ai.baidu.com/easyedge/app/models)
 [文档](https://ai.baidu.com/ai-doc/EASYEDGE/yk3fj850y)

EasyEdge 是基于百度飞桨轻量化推理框架 ```Paddle Lite``` 研发的端与边缘 AI 服务平台，能够帮助深度学习开发者将自建模型快速部署到设备端。可基于多种深度学习框架、网络结构的模型，快捷转换发布适配多种 AI 芯片与操作系统的端/边缘计算模型，支持纯离线计算/端云协同服务。

![](/images/2022/baidu/easyedge.jpg)

### 硬件平台适配
![](/images/2022/baidu/easyedge-ai-chip.jpg)

### 操作系统
* Linux
* Windows
* Android
* iOS

### 上传本地模型
#### 模型属性

| 属性    | 值 |
| ------ | -- |
| 模型名称 |  |
| 模型类型 | ```图像分类``` ```物体检测``` ```图像分割``` ```人脸检测``` ```姿态估计``` ```语义分割``` ```目标追踪``` ```决策类型``` ```经典机器学习-分类``` ```经典机器学习-回归``` ```GAN``` |
| 模型框架 | ```Caffe``` ```TensorFlow2``` ```TensorFlow``` ```PyTorch``` ```PaddlePaddle``` ```MXNet``` ```Darknet``` ```ONNX``` |
| 模型网络 | ```AlexNet``` ```VGG``` ```SqueezeNet``` ```MobileNet``` ```ShuffleNet``` ```ResNet``` ```Inception``` ```Xception``` ```DarkNet``` ```DenseNet``` ```PyramidNet``` ```ResNeXt``` ```DPN``` ```SE-ResNet``` ```SE-ResNeXt``` ```NAS``` ```ResNeXt101_wsl``` ```SSD``` ```SSDLite``` ```Yolo``` ```JDE``` ```S3FD``` ```YuFaceDetectNet``` ```Ultra-Light-Fast-Generic-Face-Detector-1MB``` ```OpenPose``` ```LSTM``` ```FD-MobileNet``` ```DQN``` ```Wide-ResNet``` ```PolyNet``` ```DRN``` ```DLA``` ```SqueezeNext``` ```Pelee``` ```IGCV3``` ```IBN``` ```BAM``` ```ESPNetV2``` ```FBNet``` ```HRNet``` ```Efficient``` ```MixNet``` ```Res2Net``` ```VoVNet``` ```DiCENet``` ```SelecSLS``` ```HarDNet``` ```CSPNet``` ```GhostNet``` ```RegNet``` ```ResNeSt``` ```SCNet``` ```YoloV5``` ```YoloX``` ```CenterNet``` ```FCOS``` ```NanoDet``` ```DBFace``` ```TinyFace``` ```AlphaPose``` ```SimplePose``` ```ConvNeXt``` ```ReXNet``` ```ViT``` ```DeiT``` ```Twins``` ```RepVGG``` ```RedNet``` ```SwinTransformer``` ```PPLCNet``` ```PP-LCNetV2``` ```PP-HGNet``` ```YoloV4``` ```PP-Yolo``` ```PP-YoloE``` ```FasterRCNN``` ```RetinaNet``` ```PP-PicoDet``` ```FCN``` ```UNet``` ```DeepLabV3``` ```DeepLabV3p``` ```Fast-SCNN``` ```FaceBoxes``` ```PyramidBox``` ```BlazeFace``` ```KeyPoint``` ```PP-TinyPose``` ```AnimeGAN``` ```TNT``` ```CSWinTransformer``` ```LeViT``` ```PVTV2``` ```MobileViT``` ```MaskRCNN``` ```RetinaFace``` ```YoloFace``` ```CenterFace``` ```XGBoost``` ```Sklearn``` |
| 网络结构 | 元数据 |
| 网络参数 | 权重和偏差值 |
| 模型标签 |  |
| 其它配置 | ```img_mean``` ```resize``` ```scale``` ```channelOrder``` ```colorFormat``` ```inputNodeName``` ```outputNodeName``` |
| keep_width | |

#### 模型类型与模型框架对应关系
* 图像分类
    * 模型框架
        * Caffe
        * TensorFlow2
        * TensorFlow
        * PyTorch
        * PaddlePaddle
        * MXNet
        * Darknet
        * ONNX
* 物体检测
    * 模型框架
        * Caffe
        * PyTorch
        * PaddlePaddle
        * Darknet
* 图像分割
    * 模型框架
        * PaddlePaddle
* 人脸检测
    * 模型框架
        * Caffe
        * PyTorch
        * PaddlePaddle
        * MXNet
        * Darknet
        * ONNX
* 姿态估计
    * 模型框架
        * Caffe
        * PyTorch
        * PaddlePaddle
        * MXNet
* 语义分割
    * 模型框架
        * PaddlePaddle
* 目标追踪
    * 模型框架
        * Caffe
* 决策类型
    * 模型框架
        * Caffe
        * TensorFlow
* 经典机器学习-分类
    * 模型框架
        * XGBoost
        * Sklearn
* 经典机器学习-回归
    * 模型框架
        * XGBoost
        * Sklearn
* GAN
    * 模型框架
        * PaddlePaddle

#### 深度学习框架格式

| 框架         | 格式             | 网络结构      | 网络参数    |
| ----------- | ---------------- | ----------- | ---------- |
| Caffe       | prototxt         | caffemodel  |            |
| TensorFlow  | freeze pb        | pb          |            |
|             | MetaGraph + ckpt | meta        | ckpt       |
|             | ckpt v2          | ckptV2      |            |
|             | SavedModel       |             |            |
| TensorFlow2 | SavedModel       |             |            |
| PyTorch     | 原始模型          | pt, pth     |            |
|             | TorchScript      | torchscript |            |
| PaddlePaddle|                  | ```__model__```   | ```__params__``` |

#### [查看模型网络适配硬件](https://ai.baidu.com/easyedge/app/adapt)

| 芯片                            ||| 通用ARM芯片                       ||| 通用ARM芯片      ||
| 系统                            ||| Android        | iOS      | Linux  | Android | Linux |
| 系列     | 模型网络 | 框架          | HUAWEI Mate 20 | iPhoneX  | RK3399 |         |       |
| ------- | ------- | ------------ | -------------- | -------- | ------ | ------- | ----- |
| AlexNet | AlexNet | Caffe        |                |          |        |         |       |
|         |         | TensorFlow   |                |          |        |         |       |
|         |         | PyTorch      |                |          |        |         |       |
|         |         | PaddlePaddle |                |          |        |         |       |
|         |         | MXNet        |                |          |        |         |       |
|         |         | Darknet      |                |          |        |         |       |
|         |         | ONNX         |                |          |        |         |       |
| YoloV4  | YoloV4_CSPDarkNet53 | PaddlePaddle |    |          |        |         |       |
|         |                     | Darknet      |    |          |        |         |       |
|         | YoloV4-tiny         | Darknet      |    |          |        |         |       |
|         | YoloV4-Scaled-CSP   | Darknet      |    |          |        |         |       |
| YoloV5  | YoloV5-s| PyTorch      |                |          |        |         |       |
|         | YoloV5-m| PyTorch      |                |          |        |         |       |
|         | YoloV5-l| PyTorch      |                |          |        |         |       |
|         | YoloV5-x| PyTorch      |                |          |        |         |       |

#### 其它配置（预处理）- VGG16-SSD
default-preprocess.json
```json
{
    "img_mean": [
        123,
        117,
        104
    ],
    "resize": [
        300, // width
        300  // height
    ],
    "scale": [
        1,
        1,
        1
    ],
    "channelOrder": "CHW",
    "colorFormat": "RGB",
    "inputNodeName": "data",
    "outputNodeName": "detection_out"
}
```
* 归一化（img_mean, scale）
* 图像缩放（resize）
* 通道布局（channelOrder）
* 颜色反转（colorFormat）
* 输入节点名（inputNodeName）
* 输出节点名（outputNodeName）

### [飞桨开源模型](https://ai.baidu.com/easyedge/app/openSource)
#### 硬件适配需求
* 硬件名称: Xeon E5-2650 v4
* 系统名称: Windows
* 网络框架: PyTorch
* 模型网络: YOLOv5
* 详细说明: 详细描述模型的应用场景、预测时延要求等。
* 联系电话: 

### 离线计算SDK
#### 发布离线SDK
1. 选择模型
2. 芯片/硬件
3. 操作系统
4. 发布
    * 生成新版本 -> 获取SDK

#### 使用说明
1. SDK可选择按不同方式激活使用：
* 按单台设备激活：每个序列号只可在一台设备上激活SDK
* 按产品线激活：Android/iOS系统的SDK可按产品线获得授权激活，序列号与包名（Package Name/Bundle ID）绑定
2. 开源模型生成的SDK无需激活，我的模型生成的SDK需要激活后方能使用：
* ① 前往序列号管理页面获取序列号→ ② 根据开发文档在设备端部署SDK并使用序列号联网激活 → ③ 可离线使用
3. 您可下载EasyEdge智能边缘控制台，便捷管理多个本地模型服务。
4. 每个序列号联网激活后有效期为15天，可申请延期 .

### 端云协同服务
#### 功能
1. 在可视化界面轻松实现模型部署包在边缘设备上的集成、版本更新
2. 断网状态下模型离线计算（http服务，可调用与公有云API功能相同的接口）
3. 联网状态下在平台管理设备运行状态、资源利用率

#### 流程
1. 在本页面「 我的部署包 」发布端云协同部署包（支持EasyEdge模型和EasyDL模型），填写相关信息并申请，并在下方列表查看部署包发布状态
2. 在「 我的本地设备 」页面新增设备，复制激活命令，联网激活本地设备
3. 在「 下发部署包到设备 」页面，将发布成功的部署包一键下发到已激活的设备上，即可测试或正式使用


## 参考资料
* [EasyEdge端与边缘AI服务平台](https://ai.baidu.com/easyedge/home)
* [体验百度EasyEdge，畅快部署超多AI芯片](https://zhuanlan.zhihu.com/p/395796664)
* [FastDeploy](https://github.com/PaddlePaddle/FastDeploy/blob/develop/README_CN.md)
* [Baetyl](https://github.com/baetyl/baetyl)
* [文档中心](https://ai.baidu.com/ai-doc)
* [百度智能云](https://cloud.baidu.com)
* [EasyDL零门槛AI开发平台](https://ai.baidu.com/easydl/)
* [BML 全功能AI开发平台](https://ai.baidu.com/bml/)
* [百度AI市场](https://aim.baidu.com/product/search)
* [EasyDL前端智能计算-软硬一体方案](https://ai.baidu.com/easydl/solution)
* [EasyDL 算法性能及适配硬件](https://ai.baidu.com/easydl/app/bie/adapt/lite?templateType=200&type=2)
* [EasyEdge 查看模型网络适配硬件](https://ai.baidu.com/easyedge/app/adapt)
* [PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection)
* [torchvision/models](https://github.com/pytorch/vision/tree/main/torchvision/models)
* [EasyEdge端与边缘AI服务 Linux-Python-SDK](https://ai.baidu.com/ai-doc/EASYEDGE/rl473iaqr)
* [jekyll-spaceship](https://github.com/jeffreytse/jekyll-spaceship)
