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

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

一、选题

使用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)


相关文章
|
8月前
|
消息中间件 Java Kafka
AutoMQ 社区双周精选第十二期(2024.06.29~2024.07.12)
欢迎来到 AutoMQ 第十一期双周精选!在过去两周里,主干动态方面,AutoMQ 跟进了 Apache Kafka 3.4.x BUG 修复,并进行了CPU & GC 性能优化,另外,AutoBalancing 的 Reporter 和 Retriever 也将支持指定 Listener Name 配置接入点。
39 1
AutoMQ 社区双周精选第十二期(2024.06.29~2024.07.12)
|
8月前
|
人工智能 运维 自然语言处理
|
9月前
|
消息中间件 Cloud Native Java
AutoMQ 社区双周精选第十一期(2024.05.27~2024.06.12)
AutoMQ v1.0 追踪修复Apache Kafka 3.4.x多个BUG,提升CPU与GC性能。优化包括修复Raft线程异常、死锁及NPE问题,防止网络分区导致脑裂。Netty Chunk大小调整减少CPU使用,取消跨块分配策略以降低GC负担。此外,AutoBalancing的Reporter和Retriever现支持指定Listener Name进行安全配置。关注公众号获取更多社区更新,一起参与云原生消息中间件建设!
55 3
秀到起飞!LeetCode官方推出算法面试指导手册(代码版)限时开源
leetcode是个题库,里面有很多编程多面试的题目,可以在线编译运行。难度比较高。如果自己能做出来,对面大公司很有帮助。 建议一次只针对一种题型进行训练,如数组、链表、二叉树、回溯、动态规划,这样效果会更好。
|
机器学习/深度学习 弹性计算 开发工具
【MindStudio训练营第一期]--【新手班】学习笔记①
【MindStudio训练营第一期]--【新手班】学习笔记①
|
机器学习/深度学习 人工智能 弹性计算
【MindStudio训练营第一期】--【新手班】学习笔记②
【MindStudio训练营第一期】--【新手班】学习笔记②
|
机器学习/深度学习 人工智能 数据可视化
【MindStudio训练营第一季】MindStudio 可视化AI应用开发体验随笔
Mind Studio 提供一站式AI开发环境,依靠工具与性能调优,采用插件化扩展机制,打造高效、便捷的全流程开发工具链。目前最新版本是5.0.RC3,发布于2022年20月,对应的昇腾社区版本:6.0.RC1,新增众多特性。
404 1
|
弹性计算 关系型数据库 MySQL
《冬季实战营第一期:从零到一上手玩转云服务器》实践报告
在大数据时代,制作个人网站,学会ECS云服务器是必要之选。 本文主要说明第一期冬季实战营ECS云服务器实践目的,实践步骤以及实践成果。完成门户网站的搭建,可以根据公司的需求自定义门户网站的内容。
549 1
《冬季实战营第一期:从零到一上手玩转云服务器》实践报告
|
存储 Serverless 程序员
实操教学|如何用Serveless3分钟做好邀请函?
实操教学|如何用Serveless3分钟做好邀请函?
235 0
实操教学|如何用Serveless3分钟做好邀请函?

热门文章

最新文章