采用昇腾800-3000推理服务器实现基于maskrcnn和imageinpainting的图像区域消除和修复模型推理。mask-rcnn模型主要用于图像语义分割,语义分割后,image-inpaiting模型通过指定的坐标对需要消除的区域进行修复。
昇腾开源案例:
https://gitee.com/ascend/samples/tree/master/python/level3_multi_model/mask_rcnn_image_inpainting
另外,昇腾官网在线实验地址:
https://www.hiascend.com/zh/developer/mindx-sdk/imageInpainting
这里使用源码进行AI多模型图像区域消除推理功能的部署和实现。
一、测试环境
硬件(Atlas800-3000推理服务器)、操作系统(Ubuntu18.04、CANN5.0.3-alpha005)、开发语言(python3.7)
二、部署流程
1.根据要求配置好昇腾环境和依赖;
2.下载源码:git clone https://gitee.com/ascend/samples.git;
3.获取模型文件。
maskrcnn模型:
https://modelzoo-train-atc.obs.cn-north- 4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/mask_rcnn/maskrcnn_mindspore.air
AIPP配置文件:
https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/mask_rcnn/aipp_rgb.cfg
单算子文件:
https://c7xcode.obs.myhuaweicloud.com/models/imageinpainting_hifill/matmul_27648.json
inpainting模型:
wget https://c7xcode.obs.myhuaweicloud.com/models/imageinpainting_hifill/hifill.om
4.模型转换。
转换maskrcnn模型:
atc --input_format=NCHW --framework=1 --model="maskrcnn_mindspore.air" --input_shape="x:1, 3, 768, 1280; im_info: 1, 4" --output="maskrcnn_mindspore_rgb" --insert_op_conf="aipp_rgb.cfg" --precision_mode=allow_fp32_to_fp16 --soc_version=Ascend310 --op_select_implmode=high_precision
转换单算子:
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
5.数据准备
下载测试图像:
https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/mask_rcnn/photo1.jpg
在源代码项目进入项目文件:
cd /sample/python/ level3_multi_model/ mask_rcnn_image_inpainting
新建几个目录:
mkdir data mask model output
将转换后的om模型文件放入model路径下,测试图像存入data文件夹。
6.执行测试
在mask_rcnn_image_inpainting路径下,终端输入命令:python3 src/ mask_rcnn.py 410 664。
执行成功后,分别进入mask和output文件夹查看结果。
效果: