嵌入式学习(一)

需要做一个嵌入式移植,纯纯小白,黑不了一点,求大佬指点

嵌入式开发中,将模型文件最终转化为wk文件,通常涉及一系列的步骤梳理。以下是一个详细的流程,以海思Hi3559系列芯片平台为例:

一、准备阶段

环境搭建

安装虚拟机

安装必要的软件开发工具包(SDK),如海思提供的HiSVP SDK,它包含了模型转换所需的工具和库。确保开发环境满足要求,如操作系统版本、内存大小等。

获取模型文件

自己训练的模型,也可以是预先训练好的模型,如Caffe模型(*.caffemodel)等。目前海思的NNIE配套软件及工具链仅支持以Caffe框架,使用其他框架的网络模型需要转化为 Caffe框架下的模型。

二、模型转换

模型格式转换

如果原始模型不是Caffe格式,需要先将其转换为Caffe格式。例如,可以使用开源工具将TensorFlowPyTorch等框架的模型转换为Caffe模型。得到*.caffemodel文件。

常用模型转换工具:MMdnnOnnx

MMdnn

MMdnn是一个由微软开源的全面的深度学习框架互操作性工具集,旨在帮助开发者轻松地在不同的深度学习框架之间迁移和转换模型。这个项目的目标是消除不同框架之间的障碍,促进模型的复用和研究的效率。

Onnx

使用不同的训练框架来训练模型(比如TensorFlow/Pytorch/OneFlow/Paddle)时,可以在训练后将这些框架的模型统一转为ONNX存储。 ONNX文件不仅存储了神经网络模型的权重,还存储了模型的结构信息、网络中各层的输入输出等一些信息。 然后将转换后的ONNX模型,转换成我们需要使用不同框架部署的类型,通俗来说ONNX 相当于一个翻译。

配置转换参数

海思提供的交叉工具编译链和RuyiStudio转换软件配合使用来配置转换参数。

Ruyistudio是一个windows版本的工具,集成了NNIEmappersimulator两大基本功能。 mapper是文件格式转换的插件,即将caffe的模型文件*.caffemodel转换成HISDK可以识别的*.wk数据文件。

指定输入模型文件的路径(prototxtcaffemodel文件)。

根据目标硬件平台(如Hi3559)选择相应的配置选项。

执行模型转换

运行RuyiStudio,开始将Caffe模型转换为wk文件。

转换过程中,工具会对模型进行优化,以适应海思芯片的NNIENeural Network Inference Engine)推理框架。

三、验证与部署

验证wk文件

使用海思提供的仿真工具或在实际硬件上进行测试,确保wk文件能够正确加载并运行推理。

部署到嵌入式设备

将验证通过的wk文件部署到海思Hi3559系列芯片平台上。

配置相关的运行环境和参数,以确保模型在嵌入式设备上能够正常运行。

注意事项:

  • 在进行模型转换时,需要确保原始模型的层与NNIE推理框架兼容。某些特定的层可能需要手动修改或裁剪以适应NNIE的要求。
  • 转换过程中可能会遇到一些兼容性问题或性能问题,需要根据实际情况进行调整和优化。
  • 海思提供的SDK和工具可能会随着版本的更新而发生变化,因此建议参考最新的官方文档进行操作。

海思给的开发指南

四、一些名词解释

芯片、工具链和配置核

芯片是电子设备中的核心部件,它包含了执行特定功能的集成电路。芯片可以处理数据、控制设备操作,并执行各种计算任务。

工具链提供了一整套开发、编译、调试和优化软件的工具,这些工具对于程序员来说是必不可少的。工具链通常包括编译器、汇编器、链接器、调试器等,它们共同协作,将高级编程语言转换为芯片能够理解的机器代码。

配置核通常包含芯片的一些特定参数和设置,这些参数定义了芯片如何与外部设备通信、如何管理内存、如何执行特定任务等。配置核可以看作是芯片的配置文件,它确保了芯片能够按照预期的方式工作。

相互关系

芯片是硬件基础,执行具体的计算和控制任务。

工具链是软件开发的关键,它将高级语言转换为芯片能理解的机器代码,并确保软件能够在特定的芯片上高效运行。

配置核提供了芯片的特定参数和设置,是工具链在生成软件代码时需要参考的重要信息来源,工具链需要使用这些信息来生成适合该芯片的软件代码。

SVP(Smart Vision Platform)是海思媒体处理芯片智能视觉异构加速平台。该平台包含了 CPU、DSP、NNIE(Neural Network Inference Engine)等多个硬件处理单元和运行在这些 硬件上SDK开发环境,以及配套的工具链开发环境。

DSP (Digital Signal Process)是 SVP 平台下的可编程硬件加速模块。用户基于 DSP 开发智能分析方案可以加速智能分析,降低 CPU 占用。 也就是说我们可以先略过 DSP 开发部分,在某些对速度要求特别高或者需要开发算子的时候,再特殊使用 DSP 开发。

NNIE 的全称是  Neural Network Inference Engine,是华为海思Soc(Soc:集成芯片)针对神经网络(特别是卷积神经网络)开发的加速处理的硬件单元,支持大部分神经网络。同时作为加速处理的硬件,自然有相应配套的软件,但只支持 Caffe 框架,其他框架的模型需要进行转换。

MPP: Media Processing plaform  多媒体处理平台 和 音视频H264编码等相关

IPC: Internet Protocol Camera  网络摄像机

LDC: Lens Distortion Correction  镜头畸变校正

AI: Auto Iris Control  自动光圈控制  这里不是我们所说的人工智能啊

VPSS: video process sub-system  视频前处理单元

VEDU: Video Encoder Unit  视频编码单元

IVE: Intelligent Video Engine 智能加速引擎  常用图像处理 视觉算法的硬件处理单元 不要和AI引擎NNIE 混淆

DPU: Depth Process Unit  深度信息处理单元 用来双目三维建模的。

  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值