【MindStudio训练营第一期】--【新手班】大作业

服务器:华为云ECS

系统环境:昇腾官方指定提供

工具软件:Xshell 7, Xftp 7

目录

一、选题

二、准备

三、运行

四、可视化流程编排

五、工程代码分析


一、选题

使用Mindstudio成功复现昇腾社区中的MindX SDK应用案例--Image Coloring

Image Coloring-昇腾社区 (hiascend.com)


二、准备

下载选定样例指定的工程文件,并手动创建data,model,out等三个文件夹,用Mindstudio打开


三、运行

3.1 使用Tools->Deployment->Upload to xxxx 将工程文件上传到你的服务器上

 3.2 登录ECS,cd至你上传的工程文件夹的位置

tips:如何知道你上传的工程文件夹在哪个位置?

①使用Tools->Deployment->Configuration

 ②Mappings->Deployment path ,红框中就是你上传文件在服务器上存放的位置

 3.3 使用以下命令下载model文件并解压,目的是我们需要使用atc工具转换为om模型

cd model
wget https://mindx.sdk.obs.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/Colorization/model.zip
unzip model.zip

注意:wget 后面需要加上“--no-check-certificat",不然会报如下的错误

3.4 进入scripts目录执行模型转换脚本

cd ../scripts
bash atc_run.sh

3.5 cd 至data目录下,获取测试图片

cd ../data
wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/colorization_picture-python/dog.png

 3.6 cd至src目录下,运行main.py

cd src
python3 main.py ../data/dog.png

 3.7 运行结果对比

data/dog.png

 out/out_dog.png

 


四、可视化流程编排

1.appsrc0

输入图片

插件详情如下

 2.mxpi_tensorinfer

对输入的图片进行推理

插件详情如下

 3.appsink0

对推理后的图片进行输出

插件详情如下


五、工程代码分析

1.初始化流并构建pipeline

streamManagerApi = StreamManagerApi()
ret = streamManagerApi.InitManager()

pipeline = b"../pipeline/colorization.pipeline" 
ret = streamManagerApi.CreateMultipleStreamsFromFile(pipeline)

2.图片前处理

    
origShape, origL, lData = preprocess(inputPic)

将inputPic传入前面定义的preprocess方法,该方法抽取黑白图片L通道,得到orig_shape, orig_l, l_data这个值

3. 根据流名将检测目标传入数据流中,启用appsrc0插件进行输入

treamName = b'colorization'
inPluginId = 0

tensor = lData[None, None, :]
tensorPackageList = MxpiDataType.MxpiTensorPackageList()
tensorPackage = tensorPackageList.tensorPackageVec.add()
    key0 = b"appsrc0"
    protobufVec = InProtobufVector()
    protobuf = MxProtobufIn()
    protobuf.key = key0
    protobuf.type = b'MxTools.MxpiTensorPackageList'
    protobuf.protobuf = tensorPackageList.SerializeToString()
    protobufVec.push_back(protobuf)


    uniqueId = streamManagerApi.SendProtobuf(streamName, inPluginId, protobufVec)

 4.从流里获取数据,启用mxpi_tensorinfer0进行推理

    key1 =  b"mxpi_tensorinfer0"
    keyVec = StringVector()
    keyVec.push_back(key1)
    
    inferRes = streamManagerApi.GetProtobuf(streamName, inPluginId, keyVec)

5.推理完成后,输出结果

  res = np.frombuffer(tensorList.tensorPackageVec[0].tensorVec[0].dataStr, dtype=np.float32)
    
  postprocess(res, inputPic, origShape, origL)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上少年,且听这风吟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值