-
MindXSDK 人像分割与背景替换这个帖子是MindStudio体验官的参赛帖。我选择的是应用案例复现,复现如下的案例:cid:link_0这个开发样例是基于MindX SDK实现了端到端的人像分割与背景替换(Portrait Segmentation and Background Replacement, PSBR)。PSBR的主要功能是使用Portrait模型对输入图片中的人像进行分割,然后与背景图像融合,实现背景替换。样例输入:带有简单背景的单人jpg图片和一张没有人像的背景jpg图片。样例输出:人像背景替换后的jpg图片。关于领代金券和建服务器的过程,其他体验官都分享过了,小助手也给了详细的指导和帮助,我们就直接把工程down下来用MindStudio来实践一下。准备阶段下载Gitee的工程目录,导入工程并转换为昇腾工程,下载模型文件和权重文件(这个链接在Gitee上面有)cid:link_1奇怪的是,这个链接的压缩包里面有模型和cfg文件,而Gitee工程目录里面已经有一个cfg文件了,应该是一样的。我为了避免出问题,就用了下载链接里面和模型在一起的权重文件,然后都保存在工程目录的models目录下面。出于安全性考虑,会提示这个窗口,我们直接Trust就可以。然后我们在菜单中转换为昇腾工程。这样才可以使用昇腾系列的各种工具。因为这个是mindxsdk应用工程,所以我们应该进行对应的选择。左边的工程目录,里面也有刚刚我们下载好的文件。模型转换人体语义分割采用提供的Portrait.pb模型。由于原模型是基于tensorflow的人像分割模型,因此我们需要借助于ATC工具将其转化为对应的om模型。在Gitee上面,模型转换是用的命令行,而MindStudio包装了ATC工具,可以进行模型转换。所以我们尝试用一下相关的工具。在Ascend目录下有这个 Model Converter,顾名思义,模型转换工具。我们也看下环境变量,张小白的帖子中已经验证了镜像里环境还是比较完善的,我就直接看下环境变量的设置吧!在Tools下面有个开启SSH会话,打开这个以后,就可以打开远程终端,在界面下方的标签里。我们输入env看下环境变量环境变量很多。。。简单看了下,Gitee里面要求的是有的,应该是写在哪里了,翻了下,是在root下面的.bashrc里面,其中还写了CANN包和Mindxsdk的一些脚本,对应的也是环境变量。环境变量已经写入,我们直接就可以进行模型转换了,不需要再调试相关内容。打开模型转换工具选择了本地工程里面的model file之后 界面小卡了一会儿 才出现读条然后就会发现,选择的是本地的模型,但是上传到服务器目录里面去了,应该是模型转换需要AI服务器环境,如果是这样还是挺智能的,不需要手动把文件传过去。atc --model=portrait.pb --input_shape="Inputs/x_input:1,224,224,3" --framework=3 --output=portrait --insert_op_conf=insert_op.cfg --soc_version=Ascend310相关参数的填写需要和Gitee指导上这个ATC命令的一致,cfg文件也在这行命令里。奇怪的是,加载cfg文件的这个地方不能选择本地文件,只有服务器路径手动传一下吧,我直接放在root的根目录下面去了。于是最后是这样子的:开始转换!右下角读条中……这个“a moment”时间有点长看到这句话,模型转换就成功了。不知道为什么 我们的工程文件在D盘,但是模型转换完之后,却自动拷贝到了这个目录,没有拷贝回来。我只能手动去拿下文件,拷贝到工程目录models中。OK接下来,我们可以准备跑应用了。对应的环境变量加入bashrc中,服务器镜像原来自带一些,但是不全。缺失的就添加下。然后source .bashrc。这一步配置pipeline,我们直接打开对应的pipeline文件看看。好像在同步 mindx sdk相关的东西嗯,确认是可视化pipeline了,我们刚好也可以按照gitee指示调整下相关的路径找到这个 tensorinfer右侧的modelPath,就是模型文件路径,我们选到刚刚生成的om模型。然后Save,唉?报错了这个报错有点不明不白,但是我看到这个模型的路径地址,里面是D开头的,是直接把windows路径写到这里了吗?决定还是手动改下,改成linux目录符号形式的相对路径。不然路径和斜杠都不对。(Linux和windows的路径斜杠是相反的,并且这个工程要在服务器运行,而不是本地。)直接选Text,然后改下这里,确保和工程中模型文件路径一致。下一步!对应新建一个文件夹在工程列表里准备执行!这个执行的地方跟了参数,我们可以看到还有个data目录,然后才是背景和人物图片,我比较懒,懒到可以为了不运动而不吃饭,所以——我们不要这个文件夹了,把背景和人物直接放到main.py同级,这样少打几个字母和符号,嘿嘿找个背景图 找个人物图 放进去最近发新歌的杰伦一张不是很搭配的沙滩图(只是为了试试效果)我们选择 Run Debug,远程调试下我们的应用Edit一个,因为我们要和Gtiee上的一样,填参数因为我没有建data目录,也用的是sea和jay的命名——所以我应该这样填。Apply一下,然后开Run!先把工程同步到了服务器……运行完之后,将远端变化同步回来Done!看看结果!嗯,还可以,可能是人物图的人和背景区分度不大,导致杰伦的衣服有点残缺,不过这次还算顺利!最后我们再看下这个Pipeline文件:很奇怪,已经同步过了 又同步一次本质上pipeline是一个文件,构造一个应用的流程,这样在模型推理之前和之后的预处理和后处理可以用mindxsdk相关的包来做。记得我们上面修改模型路径的那一步吗?对,就倒数第二个,这个调用了模型文件进行推理,我们当初配置的,也是我们对应模型的路径。可视化可以使得流程更加直观,而且不用写那么多代码了。最后总结一下:1 我们还算顺利的完成了一个windows本地工程的远程执行——包括模型转换,远程调试。而且相关的同步MindStudio可以自己去完成,这样在Windows端的MindStudio的AI开发还是比较顺利的。2 但是有一些细节问题:比如模型读取的时候会卡一会儿,没有提示也没有读条,cfg文件不能选择本地的路径,而模型自动同步回来的路径也有问题,还有就是pipeline文件修改的时候会定位到Windows本地绝对路径,最后报错不能保存等等……官方要注意下这些问题,为Windows MindStudio用户带来更好的体验!最后,期待MindStudio做的更好,我的帖子拿一个高分,激励我下次继续参加,嘿嘿!
-
执行构建好像又完成不了了
-
基于DevCloud的飞机大战游戏DevOpsDevOps源于Google、Amazon、Facebook等企业实践,2008年PatrickDebois在“Agile 2008 conference”首次提出DevOps术语,由Filckr展示的开创性的“一天10次部署”,“基础设施即代码”(Mark Burgess和Luke Kanies),“敏捷基础设施”(Andrew Shafer),“敏捷系统管理”(Patrick DeBois),Amazon的“平台即服务”,这些相辅相成,让DevOps在2012~至今成为IT业界潮流。DevOps的五个要素•文化-建立一体化的全功能团队,打破开发(Dev)与技术运营(Ops)隔阂•自动化一利用可以利用的所有自动化工具•精益一以精益的方式小步快跑,持续改善•度量-建立有效的监控与度量手段快速获得反馈,推动产品和团队的持续改进•分享一不同职能、不同产品之间分享经验飞机大战简介飞机大战是一个基于Cocos2d服务,使用Cocos Creator游戏引擎开发的一款经典游戏,内容丰富有趣,可以在电脑和移动设备中运行。Cocos Creator介绍•轻量、易用的跨平台 2D、3D 游戏创作工具- Cocos Creator 是以内容创作为核心,实现了脚本化、组件化和数据驱动的游戏开发工具。具备了易于上手的内容生产工作流,以及功能强大的开发者工具套件,可用于实现游戏逻辑和高性能游戏效果。秉承着Cocos 一贯的开源、易上手、高性能和跨平台等产品特性,这款全新的游戏引擎旨在成为开发者创作 2D、 3D 游戏的新选择。
上滑加载中
推荐直播
-
TinyEngine低代码引擎系列第2讲——向下扎根,向上生长,TinyEngine灵活构建个性化低代码平台
2024/11/14 周四 16:00-18:00
王老师 华为云前端开发工程师,TinyEngine开源负责人
王老师将从TinyEngine 的灵活定制能力出发,带大家了解隐藏在低代码背后的潜在挑战及突破思路,通过实践及运用,帮助大家贴近面向未来低代码产品。
即将直播 -
华为云AI入门课:AI发展趋势与华为愿景
2024/11/18 周一 18:20-20:20
Alex 华为云学堂技术讲师
本期直播旨在帮助开发者熟悉理解AI技术概念,AI发展趋势,AI实用化前景,了解熟悉未来主要技术栈,当前发展瓶颈等行业化知识。帮助开发者在AI领域快速构建知识体系,构建职业竞争力。
去报名 -
华为云软件开发生产线(CodeArts)10月新特性解读
2024/11/19 周二 19:00-20:00
苏柏亚培 华为云高级产品经理
不知道产品的最新特性?没法和产品团队建立直接的沟通?本期直播产品经理将为您解读华为云软件开发生产线10月发布的新特性,并在直播过程中为您答疑解惑。
去报名
热门标签