【MindStudio训练营第一季】使用MindXSDK的可视化模块方式开发应用
收藏回复举报
【MindStudio训练营第一季】使用MindXSDK的可视化模块方式开发应用
发表于2022-12-08 11:28:49
0 查看

完成了环境配置,成功使用MindStudio通过ssh的方式远程连接到服务器之后,就可以尝试使用MindXSDK提供的可视化功能开发应用了,这里参考官方提供的人脸检测加情绪分类的应用进行开发,熟悉一下整个开发流程。

首先新建一个项目,选择python的sdk project

cke_1486.png

创建完成后,点击左上角的Add configuration为应用选择部署的环境,熟悉pycharm的同学应该发现这个部署的配置方式是相当类似的。在配置界面新建一个Ascend Training类型的项目,在deployment一栏点击添加一个新的deployment配置

cke_2694.png

新建一个名叫mindx的配置,在Connection页面选择之前设置好的ssh连接,在Mappings页面点击deployment path会自动生成一个映射的路径。完成后点击test测试一下连接,成功连接。

cke_6058.png

回到configuration页面,在executable为工程执行选择可执行文件,这里选择这个新项目的main.py即可。

打开main.py有可能会出现没有python解释器的警告,点击这个警告,我们需要选择远程环境的python3.9作为我们的解释器来执行程序

首先为项目添加一个python的framework,并选择添加新的解释器使用ssh环境,deploy就选择之前配置的云服务器的deploy,解释器路径一般是/usr/bin/python3.9或者图中的路径,确认即可。

cke_23490.png

至此算是完成了准备工作,可以正式开始程序开发了。

应用的代码结构如下,分别存放图片,模型和pipeline文件,AllPluginsInfo.json是存放mindx插件信息的文件。一般当我们打开一个pipeline时会从服务器同步这个文件。如果碰到bug没用成功同步可以先从其他项目复制这个文件过来使用,等官方修复这个问题。

cke_24692.png

首先分析一下应用的流程,流程图如下图所示:

cke_116724.png

这是一个两个模型串接的应用,遵循“图片加载--预处理--推理--后处理”的基本结构,在mindStudio的菜单栏找到Ascend/MindX SDK Pipeline,新建一个pipeline

cke_23512.png

接下来即可构建应用实际的实现流程pipeline了,在search栏搜索流程图中对应的插件名称,直接拖动到右侧的空白区域即可

cke_89201.png

一些功能插件可能会有输入输出的参数需要设置,先把所有的插件都放入pipeline,再通过连线的方式连接起来,将上一个插件的输出作为下一个的输入,最后在为各个插件填入满足插件输入限制的参数即可。有一点需要指出的是折返的线居然不会绕开插件的位置,而是直接重叠起来了,看着是真的难受,而且还不能修改线的走法。希望后续能优化一下。

cke_350005.png

人脸检测的输出插件mxpi_distributor插件原本是不能把输出拉到下个插件的,需要填入一些参数,原因可以参考官方插件文档文档说明-mxVision快速入门-快速入门-3.0.RC3-MindX SDK-文档首页-昇腾社区 (hiascend.com),同时,resize插件需要我们填入要缩放到多大尺寸的参数,这个size应该满足模型的输入要求。还有输入模型路径,标签路径等等,可以参考官方给的pipeline填对应的参数。

cke_424496.pngcke_501414.png

点击format可以整理pipelinecke_565731.png

pipeline的创建到此就完成了,pipeline为我们实现了应用的主体过程,接下来在代码中加载这个pipeline并补充一些资源管理和绘制结果的代码即可完成应用的开发了。

我要发帖子