注意:巨坑提醒:python版本和mindx sdk有关联,python3.7.5最高支持的mindx sdk版本为2.0.3
如果使用2.0.4版本,会报错:

如果有遇到这类问题的小伙伴一定要记得注意一下Python和MindX SDK的版本哈。
MindX SDK2.0.4推荐Python用3.9.2版本,我的上面使用3.7.5是报错了。

基于MindX SDK部署应用的源码介绍

Mindx sdk提供了极简易用的开发sdk,可以快速部署应用。
我们运行mxVision样例,使用python实现。
整个运行的入口在python下的run.sh中,更新环境变量后,执行main.py脚本。

Main.py脚本需要修改的内容如下,一个是pipeline的路径,一个是pipeline中streamName的名字。然后调用pipeline。

用户可以修改的pipeline内容:

开发流程

参考: MindX SDK 2.0.3.6 mxVision 用户指南 01 第六章 使用命令行方式开发

(1)确定业务流程

首先我们知道我们要干什么事情。
我们的业务是基于YoloV3和Resnet50实现目标框提取和分类。
整个流程需要先获取图片、图片解码为RGB格式、图片缩放到模型输入要求的大小、使用Yolov3目标检测提取感兴趣区域、将感兴趣的图像裁剪出来、图像缩放到Resnet50模型的大小、运行Resnet50图片分类、结果保存为json格式并序列化、结果发送出去。

(2)寻找合适插件

根据已有SDK插件的功能描述和规格限制来匹配业务功能。
当SDK提供的插件无法慢足功能需求时,用户还可以开发自定义插件。这部分是高级教程。
这里我们使用的是官方的插件就可以满足要求。
如下是我们这次的业务用到的插件类型:

业务流程模块 插件名称
获取图片流 stream_config
图片解码 mxpi_imagedecoder
图片缩放 mxpi_imageresize
推理任务 mxpi_tensorinfer
目标结果处理 mxpi_objectpostprocessor
分类结果处理 mxpi_classpostprocessor
序列化 mxpi_dataserialize
结果发送 appsink

关于插件一些介绍
什么是插件:是一种遵循一定规范的应用程序接口编写出来的程序。英文为 Plugin。在MindX SDK中的每一个插件名称前面都有一个mxpi.
比如视频拉流插件:mxpi_rtspsrc
图像缩放插件:mxpi_imageresize
图像推理插件:mxpi_tensorinfer

(3)准备推理模型

网络模型(如MindSpore、 Caffe、 TensorFlow等)需要通过ATC工具进行转换,才能在昇腾AI处理器上进行推理。
模型转换过程中可以实现算子调度的优化、权值数据重排、内存使用优化等,模型转换后需要进行后处理。

YOLOv3: https://www.hiascend.com/zh/software/modelzoo/detail/1/ba2a4c054a094ef595da288ecbc7d7b4
Resnet: https://www.hiascend.com/zh/software/modelzoo/detail/C/d63df55c1f7f4112a97c8a33e6da89fe
将om模型放置到对应的models路径下。

(4) 执行


运行脚本

sh run.sh

运行结果如下:

【昇腾AI系列】 在200DK运行MindX SDK的Yolov3+Resnet50样例相关推荐

  1. 【昇腾AI系列】 在200DK上安装MindX SDK

    MindX SDK 是华为推出的软件开发套件(SDK),提供极简易用.高性能的API和工具,助力昇腾AI处理器赋能各应用场景. 安装SDK: 在/home/HwHiAiUser目录下新建MindX_S ...

  2. 【昇腾AI系列】在Atlas200DK上运行第一个样例

    推理模型应用的架构如下 安装samples git clone https://gitee.com/ascend/samples.git 获取mnist的air格式模型 wget https://mo ...

  3. 昇腾AI处理器软件栈--运行管理器(Runtime)

    神经网络构造中,算子组成了不同应用功能的网络结构.而张量加速引擎(Tensor Boost Engine)作为算子的兵工厂,为基于昇腾AI处理器运行的神经网络提供算子开发能力,用TBE语言编写的TBE ...

  4. 我的世界php开服环境_PHP初学者如何搭建环境,并在本地服务器(or云端服务器)运行自己的第一个PHP样例...

    页面底部有PHP代码样例供测试使用. 1.PHP开发,你需要什么? 1)开发代码的工具,可以用IDE名字叫做phpDesigner.当然也可以临时用记事本代替,记得文件扩展名为.php 2)服务器(本 ...

  5. eBPF动手实践系列一:解构内核源码eBPF样例编译过程

    作者:闻茂泉 他山之石 了解和掌握纯c语言的ebpf编译和使用,有助于我们加深对于eBPF技术原理的进一步掌握,也有助于开发符合自己业务需求的高性能的ebpf程序.目前常见和主流的纯c语言的ebpf编 ...

  6. 运行torchAudio下的wav2vec2.0样例

    torchAudio在0.10.0版本中已经兼容了hubert的代码(现在已经0.11.0了).然而,我连wav2vec2.0的代码都没跑过,官方文档也给出了一个wav2vec2.0代码的运行样例.本 ...

  7. PHP初学者如何搭建环境,并在本地服务器(or云端服务器)运行自己的第一个PHP样例...

    页面底部有PHP代码样例供测试使用. 1.PHP开发,你需要什么? 1)开发代码的工具,可以用IDE名字叫做phpDesigner.当然也可以临时用记事本代替,记得文件扩展名为.php 2)服务器(本 ...

  8. 【昇腾AI系列】Atlas 200DK环境适配

    关于Atlas 200DK Atlas 200DK是华为昇腾推出的一款基于昇腾310芯片的NPU处理器.该芯片主要用于AI推理计算. Atlas是大力神的意思,难道这个寓意是"大力出奇迹?& ...

  9. 基于华为云ECS的目标检测与识别的昇腾AI开发体验【华为云至简致远】

    [摘要] 基于华为云弹性云服务器ECS,搭配共享镜像,快速搭建环境,进行目标检测与识别的昇腾AI开发体验,开箱即用,打破时间和空间限制,随时随地进行开发,适合个人开发和团队协作,体验流畅丝滑. 前言 ...

最新文章

  1. 用AI分析食物成分,让你能更好地进行营养搭配!
  2. datatable如何生成级联数据_UE4 C++结合DataTable批量快速创建DataAsset
  3. kaggle notebook在git push时附带用户民和密码(一行搞定,全部写在一行中)
  4. JAVA实现Excel的读写--poi
  5. 任何时候,写下一个类,一定要有三个函数
  6. 帐篷篷房建筑建材产品营销型网站源码 dedecms织梦模板
  7. IntelliJ IDEA 内存优化最佳实践
  8. matlab2c使用c++实现matlab函数系列教程-logspace函数
  9. 拖后腿了吗?工信部称8兆以上宽带占比44.4%
  10. 微信小程序——风水罗盘
  11. 【电力负荷预测】基于matlab日特征气象因素支持向量机SVM电力负荷预测【含Matlab源码 1612期】
  12. 【Matlab】线性二次型最优控制问题(LQR控制)
  13. 制作WIN7、WINPE2003、Ubuntu、dos工具箱多启动U盘
  14. numpy.dot()和x.dot(y)函数介绍和示例
  15. TaiShan服务器介绍
  16. Linux驱动子系统之I2C(一)
  17. 女篮亚军,为啥男篮那么水?
  18. 阿里云智能接入网关体验
  19. Android Studio使用技巧系列教程(七)
  20. 【软件服务外包概论】软件服务外包概论知识点整理

热门文章

  1. 《Java EE 开发的颠覆者:Spring Boot实战》读书笔记
  2. (附源码)计算机毕业设计SSM智慧后勤app
  3. 数据库中如何计算候选键/候选码(candidate key)
  4. Linux内核--网络栈实现分析(二)--数据包的传递过程(上)
  5. 围棋AI之路(一)理论
  6. Typescript(真的)遵循泛型中参数化类型(T,U,V,W)的命名约定吗?
  7. 【工作精华】还款计划
  8. 亚马逊云科技re:Invent:这些成功的数据驱动新企业背后的秘诀是什么?
  9. castep此计算机无法与提供,MaterialStudio中CASTEP计算好的结构怎么导出材
  10. 深入浅出TCP之listen