基于昇腾CANN的推理应用开发体验报告--高清图像修复(Python)

举报
乌兰察布 发表于 2021/12/27 23:14:05 2021/12/27
【摘要】 1、开篇首先是ECS的环境的申请,参考之前有人写的总结:https://zhuanlan.zhihu.com/p/432673114前人栽树后人乘凉,这篇博客里面写的很清楚,按照步骤一步一步走就不会踩坑。 2、环境的配置安装驱动下载地址:昇腾社区-官网丨昇腾万里 让智能无所不及,具体配置:下载完成之后,传到申请的ECS环境上安装完成。 2.1 python依赖的第三方库参考:root@in...

1、开篇

首先是ECS的环境的申请,参考之前有人写的总结:
https://zhuanlan.zhihu.com/p/432673114
前人栽树后人乘凉,这篇博客里面写的很清楚,按照步骤一步一步走就不会踩坑。

2、环境的配置

安装驱动下载地址:昇腾社区-官网丨昇腾万里 让智能无所不及,具体配置:
image.png

下载完成之后,传到申请的ECS环境上安装完成。

2.1 python依赖的第三方库参考

root@inference-test:~# pip3 list
Package               Version
--------------------- ----------
absl-py               0.11.0
anyconfig             0.9.11
astor                 0.8.1
astroid               2.5.1
attrs                 20.2.0
auto-tune             0.1.0
cached-property       1.5.2
certifi               2020.6.20
cffi                  1.14.3
chardet               3.0.4
coverage              5.5
cycler                0.10.0
Cython                0.29.22
decorator             4.4.2
easydict              1.9
enum34                1.1.10
gast                  0.2.2
gnureadline           8.0.0
google-pasta          0.2.0
grpcio                1.33.2
grpcio-tools          1.33.2
h5py                  3.1.0
hccl                  0.1.0
hccl-parser           0.1
idna                  2.10
imageio               2.9.0
imgaug                0.4.0
importlib-metadata    2.0.0
isort                 5.8.0
Keras                 2.3.1
Keras-Applications    1.0.8
Keras-Preprocessing   1.1.2
kiwisolver            1.3.1
lazy-object-proxy     1.6.0
Markdown              3.3.3
matplotlib            3.3.3
mccabe                0.6.1
mpmath                1.1.0
munch                 2.5.0
networkx              2.5
numpy                 1.19.4
op-gen                0.1
op-test-frame         0.1
opencv-contrib-python 4.4.0.46
opencv-python         4.4.0.46
opencv-python3        1.0
opt-einsum            3.3.0
packaging             21.3
pandas                1.2.3
Pillow                8.0.1
pip                   21.0.1
protobuf              3.14.0
psutil                5.7.3
pyclipper             1.2.0
pycparser             2.20
pylint                2.7.2
pyparsing             2.4.7
python-dateutil       2.8.1
pytz                  2021.1
PyWavelets            1.1.1
PyYAML                5.3.1
requests              2.24.0
schedule-search       0.0.1
scikit-image          0.17.2
scipy                 1.5.4
setuptools            41.2.0
Shapely               1.7.1
six                   1.15.0
sympy                 1.6.2
te                    0.4.0
tensorboard           1.15.0
tensorflow            1.15.0
tensorflow-estimator  1.15.1
termcolor             1.1.0
tifffile              2020.11.26
toml                  0.10.2
topi                  0.4.0
tornado               5.1
tqdm                  4.54.0
typed-ast             1.4.2
urllib3               1.25.11
utils                 1.0.1
Werkzeug              1.0.1
wheel                 0.35.1
wrapt                 1.12.1
xlrd                  2.0.1
xlwt                  1.3.0
zipp                  3.4.0

最主要的就是TensorFlow、numpy、opencv、Pillow等库。

2.2 环境变量设置

主要是python path和lib库的路径设置

export driver_home=/usr/local/Ascend
export install_path=${driver_home}/ascend-toolkit/latest
export DDK_PATH=${install_path}
export PATH=/usr/local/python3.7.5/bin:${install_path}/toolkit/bin:${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:${install_path}/fwkacllib/ccec_compiler/bin:${install_path}/fwkacllib/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/lib/:/usr/lib/:${install_path}/acllib/lib64:${install_path}/atc/lib64:${install_path}/fwkacllib/lib64:${driver_home}/driver/lib64:${driver_home}/add-ons:${LD_LIBRARY_PATH}
export PYTHONPATH=${install_path}/pyACL/python/site-packages:${install_path}/fwkacllib/python/site-packages:${install_path}/fwkacllib/python/site-packages/auto_tune.egg:${install_path}/fwkacllib/python/site-packages/schedule_search.egg:${install_path}/toolkit/python/site-packages:${install_path}/atc/python/site-packages:${install_path}/atc/python/site-packages/auto_tune.egg/auto_tune:${install_path}/atc/python/site-packages/schedule_search.egg:${install_path}/opp/op_impl/built-in/ai_core/tbe:${install_path}/toolkit/latest/acllib/lib64:/data/samples/samples/python/common/atlas_utils:${PYTHONPATH}
export ASCEND_OPP_PATH=${install_path}/opp
export NPU_HOST_LIB=${install_path}/acllib/lib64/stub
export SOC_VERSION=Ascend310

export PATH=/usr/local/python3.7.5/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib/:${LD_LIBRARY_PATH}

3、案例的运行

3.1 下载代码

git clone https://gitee.com/ascend/samples.git

# 进入到本案例文件夹
cd samples/python/level2_simple_inference/6_other/imageinpainting_hifill

3.2 模型转换

atc --singleop=./matmul_27648.json --output=./0_BatchMatMul_0_0_1_1_1024_1024_0_0_1_1_1024_27648_0_0_1_1_1024_27648 --soc_version=Ascend310 
atc --output_type=FP32 --input_shape="img:1,512,512,3;mask:1,512,512,1" --input_format=NHWC --output="./hifill" --soc_version=Ascend310 --framework=3 --save_original_model=false --model="./hifill.pb"

有一点需要说的是,这里面是两条atc命令,但是sample里面的readme写到一起了,容易引起误解。

3.3 下载样例图片和运行

按照指导下载图片和mask之后,运行报错了:

samples/python/level2_simple_inference/6_other/imageinpainting_hifill/src# python3 main.py
Traceback (most recent call last):
  File "main.py", line 19, in <module>
    from utils import display_time
ImportError: cannot import name 'display_time' from 'utils' (/usr/local/python3.7.5/lib/python3.7/site-packages/utils/__init__.py)

提交issue:
https://gitee.com/ascend/samples/issues/I4O0R5?from=project-issue

应该是和python自带的utils库重名冲突了,所以重命名了本地文件夹的utils.py,案例终于运行成功:
原图:
image.png
修复效果图:
image.png

效果非常Nice!!!

总结:

优点:

芯片运行速度非常快,推理一瞬间就完成了,很好很强大!最后生成的效果图也很棒

不足之处:

1、ECS环境配置有点麻烦,如果提供类似于Docker镜像,可以大大提高效率,避免很多踩坑
2、最好能够提供工具或者代码,告诉我们mask图是怎么制作的,来体验一下更多的其他图片,一张图片不过瘾
3、代码里面有些小Bug,最终不影响运行,优化一下更好

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。