编 | 章磊
啊,上篇文章发布后,得到了数以百亿计的隐形网友疯狂转发和点赞,鄙人甚至能YY出他们用鼠标摁下“👍”时的那种激动和期许。
正当老夫踌躇莫展不知道下一篇写啥时候,一位铁粉托梦于吾,说对文章中那张图很感兴趣。
酣睡梦中惊坐起,铁马框图为铁粉
哈哈,开个玩笑哈~~
至于老朽为什么要写这个文章,至少原因有三:
- 加分加分加分,省几个钢镚
- 推广推广推广,华为牛。。。哦不对,国货当自强!!!
- 学而时习之,不是也很快乐的嘛
好,那今天我们就从昇腾入门的HelloWorld讲起–如何从一张图中识别出马。
其实这篇文章也就是应用营孔老师的两节课的主要内容,感兴趣的同学可以去老谭那里找录播视频哟。
好了,同学们,正式上阔!!!
1、代金券,拿来吧你
看到这里,有的同学懵逼了,这不是在讨论技术么,跟领代金券有毛线关系。
诶,你还别说,就有人因为学习要花钱就望而却步,所以代金券这玩意儿虽然只有百把来块钱,却可以起到推波助澜的作用。
具体代金券怎么领呢?废话不多说,大家看我的聊天截屏就懂了。
小助手怎么加?挪~美女就在这,随便挑。
https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=129524&fromuid=446160
动动手指就能赚个百来块,引用号称“模型营萧敬腾”王俊老师的一句台词。
什么家庭啊,能抵得住这种诱惑。
2、准备推理环境
与其讲“准备推理环境”,不如叫“如何使用代金券”来得接地气。
领了一百块钱,就去华为云上买个弹性服务器,赶紧的,不然会过期的呢。
有的同学讲,我用自己的阿里云、腾讯云行不行?
Maybe…还真不行!!!
注:以下涉及的不懂的名词,请移步华为昇腾系列开发入门教程一:简单的几个名词。
本白的理解是这些云服务器上没有310芯片,无法做推理;但又闻CPU和GPU上也是可以跑的,反正我在本地是没跑出来。为了谨慎起见,加个可能,待日后老夫彻底弄懂昇腾大法,再与尔等科普。
具体怎么配置,可以去看孔老师的视频,讲得详细得有些啰嗦,这里就不再赘述了,记住这几个关键点,尤其是箭头处,否则我敢保证你看了右下角的价钱会关闭浏览器窗口滴。
既然选择了白嫖,就要白嫖到底,坚决不掏一分钱。当然了,后续工作中需要用到华为资源,该花钱的还是不能省哈~
噢,差点忘了,镜像找孔老师要,孔老师找谁要,找小助手要,小助手找谁要。。。
待孔老师或其他同学分享镜像后,需要你去这里接收下。
3、看看服务器里都有啥
买完服务器后,就能看到这个图。
我们可以连接服务器,用ssh命名、软件都可以,这里图省事这通过上面“远程连接”入口直接在浏览器看吧。
账号登录成功后,应该能看到这样的界面。
左侧菜单可以看出,像MindStudio、MindX SDK、CANN等环境都已经配置好了。再次提醒,对名词懵逼的同学去看上一篇文章。
总之一句话,我们可以去识别马了,专业术语叫“图像分类”。
4、手把手教你鉴“XX”
首先我们打开孔老师的课程地址:
https://gitee.com/kongchibin/ascend_camp/tree/master/%E8%AF%BE%E7%A8%8B/week3
这个地址下面已经有详细步骤。
我们要做的事情很简单,就是命令搬运,比如第一条安装opencv。
安装成功后,可以用红框命令来校验下,如果安装失败,import cv2会提醒XXX not found 等字眼。
值得一提的是,有同学反映安装时build wheel会卡很长时间,可以尝试先执行以下命令。
pip3.7 install --upgrade pip
不值得一提的是,opencv在这个例子只只是为了在图像上绘制文字和一个框框。
4.1、模型准备
既然是推理,肯定需要一个模型,这个好理解,那为什么需要转换呢?
大家可以看看官网介绍。
关于模型转换这块,其实是老师第二节课的内容,可参照以下链接。
我们复制命令下载模型(客户端为Termius)。
大概等3、4分钟上后,下载完成。
接着创建aipp文件。
这个文件主要是对模型作一些初始化设置,即告诉模型输入输出格式、偏差、是否裁剪等,具体去看视频,老师讲得很详细。
接着把下载的zip解压下,可以看到多了几个文件。
最后执行atc命令。转换成功后,可以看到yolov3的om,这正是我们最终转换得到模型。
这样,课程2里的内容就结束了。
4.2、环境变量设置
这属于第三节课的内容了。
因为图像分类要用到MindX SDK,所以需要指定sdk的位置。我们可以先找下是否安装了mxVision。
我这边可能是之前安装了,所以能找到。
安装也很简单,可参照安装MindX SDK开发套件。
然后我们把路径配置到环境变量即可,可以尝试输入变量校验下。
4.3、fork项目
因为老师的代码是不完整的,所以有必要先fork到自己的仓库中(这里用的是gitee)改完后直接clone到服务器。
当然啦,前提是必须有个gitee账号哈。
接着把刚才fork的自己仓库的项目clone到服务器下。
接着把上面转换好的模型放入上图的model中。
4.4、执行
做了这么多事,终于等到了最后一步。
python3 main.py
预料之中!!!失败
因为test.pipeline中模型路径为models,所以我们把model文件夹复制一个models。
再执行main.py。
看到success等字眼,就知道成功了,而且目录下已经生成一个result.jpg。
BTW,pipeline为编排文件,相当于告诉这个推理流程怎么做,具体可以看视频,后面会单独写一篇相关介绍。
4.5、验证
只通过日志看,还是不够直观,讲究的是亲眼所见。这。。。。,怎么在命令行,看文件呢?这就要用到前一篇文章提到的FileZilla。
这个软件具体怎么使用就不说了。
我们下载到本地后就可以查看了。
至于为什么不是马,大家可以把test.jpg换成马就行了,这也是为什么标题叫“教你鉴XX”,大家可以动手试试哈。
4.6、释放服务器资源
用完大家记得关机哈,如果长时间不用就释放资源,因为按需计费会一直算钱,尽管不多,比如我做这么个教程就花了5块钱代金券了,小助手看到这里应该有所表示哇。
5、总结
好,今天就讲这么多了,大家是不是蠢蠢欲动了啊,赶紧报名和动手吧。