华为海思支持网络调研

概述本文档旨在帮助用户了解SVP( Smart vision platforn)的硬件特弭舴及开发流程以期达到快速上手和开发出充分利用SVP特性的智能方案。

4 开发框架

4.1 软件开发框架

海思针对芯片各个硬件单元,提供统一的软件开发框架,如下图。媒体软件处理平台(Media Process Platform,简称MPP),可支持应用软件快速开发。该平台对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供 MPI(MPP Program Interface)接口完成相应功能。该平台支持应用软件快速开发以下功能:输入视频捕获、H.265/H.264/JPEG 编码、H.265/H.264/JPEG 解码、视频输出显示、视频图像前处理(包括去噪、增强、锐化)、图像拼接、图像几何矫正、智能、音频捕获及输出、音频编解码等功能。

MPP软件层次图

海思支持Linux或Huawei LiteOS操作系统,为屏蔽OS之间的差异,在OS和MPP之间插入“操作系统适配层”。媒体相关之外的其它硬件交互,如RTC、CIPHER,由“其他驱动”模块进行。

4.2 功能模块划分

海思提供的MPP服务根据硬件的功能特性进行模块层次划分,参考如下:

MPP
├── SVP(Smart Vision Platform)
│   ├── CPU
│   ├── DSP
│   └── NNIE(Neural Network Inference Engine)
├── IVE(Intelligent Video Engine)
└── ISP(Image Signal Processor)

芯片的AI部分属于SVP模块,是本系列文章重点介绍的内容。

4.3 SVP开发框架

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

SVP开发框架如图所示。目前SVP中包含的硬件处理单元有CPU、vision DSP、NNIE,其中某些硬件可能有多核。

SVP开发框架

SVP是海思媒体处理芯片的智能加速平台,因此需要结合海思MPP平台一起来进行软件开发,可参考相关文档《HiMPP V4.0 媒体处理软件开发参考》。用户可以根据SVP的软硬件特性开发出能最大化利用 SVP硬件资源的视觉处理应用。

不同的芯片SVP会使用不同硬件资源配置,如表所示。

4.4 参考文献

  • <HiSVP 开发指南.pdf>, <HI3516CV500开发资料2019\Hi3516DV300SDK\3516DV300\1\zh\01.software\board\SVP>
  • <HiMPP V4.0 媒体处理软件开发参考.pdf>, <HI3516CV500开发资料2019\Hi3516DV300SDK\3516DV300\1\zh\01.software\board\MPP>     

 

      转载自           https://zhuanlan.zhihu.com/p/66921358

 

 

NNIE介绍

NNE是 Neural Network Inference Engine的简称,是海思媒体SoC中专门针对神经网络特别是深度学习卷积神经网络进行加速处理的硬件单元,支持现有大部分的公开网络,如 Alexnet.、VGGl6、 Googlenet、 Resnetl8ee等分类网络, Faster RCNN、YOLO、SSD、RFCN等检测网络,以及 SEANETYFCN等场景分割网络目前NNE配套软件及工具链仅支持以染使用其他框架的网络模型需要转化为 Caffe框架下的模型。

目前NNIE配套软件及工具链仅支持Caffe框架,使用其他框架的网络模型需要转化为Cafe框架下的模型。

3 运行NNIE示例程序

3.1 开发流程

 

海思芯片AI算法开发流程为:

  1. 离线模型训练:利用主流的深度学习框架,如caffe、TensorFlow、pyTorch、MXNet,训练神经网络模型。由于海思NNIE工具链编译要求只能输入caffe格式的模型文件,因此其它深度学习框架训练的模型,需要转换为caffe格式的模型文件;
  2. 模型编译:将caffe格式的模型文件编译成海思AI芯片NNIE运行的格式文件*.wk,同时利用校准图片集进行模型量化校准;(其他模型转换为caffe,将caffe格式的模型文件编译成可在NNIE运行的*.wk)
  3. 仿真调试:在PC机上,通过软件仿真调试器,加载编译生成的wk模型文件,对测试图片进行推理测试,验证算法模型的准确性,评估模型精度;
  4. 片上运行:经PC仿真验证评估后,在AI芯片上,初始化阶段,由CPU负责加载wk模型到NNIE硬件引擎上。预测推理阶段,由CPU负责准备图像数据,调用NNIE引擎进行推理,最后获取推理结果。

正常情况下,步骤3和4在相同测试图片下,得出的结果一致,步骤3方便算法开发人员验证评估,步骤4才是最终的运行方式。

3.2 工具链

在开发流程中,步骤2和3需要使用海思提供的专用工具链,包括开发所需的集成开发环境(IDE)、交叉编译工具链、仿真器、调试器等。Windows系统上安装方法参考《HiSVP开发指南.pdf》的第5章“RuyiStudio工具使用指南”,主要过程为:

  1. 安装MinGW-W64,本文安装7.3.0版本
  2. 解压RuyiStudio,查看Resources\iFEPCompiler\lib_win目录内容,已经自带protobuf和opencv,因此不需要重新编译这两个软件包。

3.3 在芯片上运行示例程序

解压SDK后,执行sdk.unpack脚本进行展开,找到海思开发包的参考程序,目录路径为:

Hi3516CV500R001C02SPC010/01.software/board/Hi3516CV500_SDK_V2.0.1.0/smp/a7_linux/mpp/sample/

进入参考程序的nnie目录,执行make编译。

smp/a7_linux/mpp/sample/svp/nnie$ make

将编译结果sample_nnie_main和data目录所有文件上传到摄像头模组/mnt/mtd目录下(df -hT查看分区使用情况)。

运行程序,以下是cnn和yolov3的运行日志。

/mnt/mtd # ./sample_nnie_main 
Usage : ./sample_nnie_main <index> 
index:
     0) RFCN(VI->VPSS->NNIE->VGS->VO).
     1) Segnet(Read File).
     2) FasterRcnnAlexnet(Read File).
     3) FasterRcnnDoubleRoiPooling(Read File).
     4) Cnn(Read File).
     5) SSD(Read File).
     6) Yolov1(Read File).
     7) Yolov2(Read File).
     8) Yolov3(Read File).
     9) LSTM(Read File).
     a) Pvanet(Read File).
     b) Rfcn(Read File).
/mnt/mtd # 
/mnt/mtd # ./sample_nnie_main 4
[Level]:Debug,[Func]:SAMPLE_COMM_SVP_CheckSysInit [Line]:81 [Info]:Svp mpi init ok!
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Cnn [Line]:909 [Info]:Cnn Load model!
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Cnn [Line]:918 [Info]:Cnn parameter initialization!
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Cnn [Line]:930 [Info]:Cnn start!
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Cnn [Line]:951 [Info]:Cnn result:
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Cnn_PrintResult [Line]:875 [Info]:==== The 0th image info====
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Cnn_PrintResult [Line]:879 [Info]:0:4096
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Cnn_PrintResult [Line]:879 [Info]:1:0
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Cnn_PrintResult [Line]:879 [Info]:2:0
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Cnn_PrintResult [Line]:879 [Info]:3:0
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Cnn_PrintResult [Line]:879 [Info]:4:0
[Level]:Debug,[Func]:SAMPLE_COMM_SVP_CheckSysExit [Line]:94 [Info]:Svp mpi exit ok!
/mnt/mtd # 
/mnt/mtd # ./sample_nnie_main 8
[Level]:Debug,[Func]:SAMPLE_COMM_SVP_CheckSysInit [Line]:81 [Info]:Svp mpi init ok!
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Yolov3 [Line]:3395 [Info]:Yolov3 Load model!
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Yolov3 [Line]:3404 [Info]:Yolov3 parameter initialization!
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Yolov3 [Line]:3411 [Info]:Yolov3 start!
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Yolov3 [Line]:3448 [Info]:Yolov3 result:
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Detection_PrintResult [Line]:1078 [Info]:==== The 2th class box info====
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Detection_PrintResult [Line]:1091 [Info]:59 92 312 311 0.996338
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Detection_PrintResult [Line]:1078 [Info]:==== The 8th class box info====
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Detection_PrintResult [Line]:1091 [Info]:257 60 374 121 0.957520
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Detection_PrintResult [Line]:1078 [Info]:==== The 17th class box info====
[Level]:Info,[Func]:SAMPLE_SVP_NNIE_Detection_PrintResult [Line]:1091 [Info]:65 165 175 387 0.999268
[Level]:Debug,[Func]:SAMPLE_COMM_SVP_CheckSysExit [Line]:94 [Info]:Svp mpi exit ok!
/mnt/mtd #

cnn例子中,读取手写体0的图片数据文件./data/nnie_image/y/0_28x28.y,程序正确的预测出数字0。

yolov3例子中,对图片数据文件./data/nnie_image/rgb_planar/dog_bike_car_416x416.bgr进行目标检测。

3.4 参考文档

  • <HiSVP开发指南.pdf>, <HI3516CV500开发资料2019\Hi3516DV300SDK\3516DV300\1\zh\01.software\board\SVP>

转载自: https://zhuanlan.zhihu.com/p/65843837?from_voters_page=true

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为PQTool,是一款由华为公司开发的专业图像质量调试工具。 PQTool适用于各种图像质量调试需求,可广泛应用于电视、手机、平板电脑等图像处理设备的开发及调试过程中。 PQTool的主要特点包括以下几个方面: 1. 提供全面的图像质量分析:PQTool能够对图像进行多维度的质量分析,包括亮度、对比度、饱和度、锐度等指标的评估,使开发者能够全面了解图像的质量状况。 2. 强大的图像调试功能:PQTool提供了丰富的图像调试工具,包括亮度调整、色彩调整、锐化处理等功能,使开发者能够灵活地调整图像参数,优化图像质量。 3. 友好的用户界面:PQTool的用户界面简洁直观,易于使用。开发者可以通过简单的操作来实现图像的调试和分析,提高工作效率。 4. 支持离线和在线的调试模式:PQTool支持离线模式和在线模式,开发者可以根据实际需求选择适合的调试模式。离线模式下,可以加载本地图像进行调试;在线模式下,可以连接到实时图像处理设备,进行实时的图像质量调试。 5. 完善的文档和技术支持:华为为PQTool提供了完善的文档和技术支持,包括使用手册、API文档、示例代码等,开发者可以轻松地上手并使用PQTool。 总之,华为PQTool是一款功能强大、易于使用的图像质量调试工具,为开发者提供了全面的图像质量分析和调试能力,帮助开发者优化图像处理设备的质量表现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值