1.环境准备
pip install onnx
pip install onnxruntime-gpu
pip install PIL
pip install paddleseg
2.动态图转静态图
#动转静
!python /home/aistudio/PaddleSeg/export.py \
--config /home/aistudio/PaddleSeg/configs/quick_start/UNet.yml \
--model_path /home/aistudio/动态图模型/UNet.pdparams
3.静态图转onnxr
# 动转静.静转onnx
!paddle2onnx \
--model_dir /home/aistudio/静态图模型/UNet \
--model_filename model.pdmodel\
--params_filename model.pdiparams \
--save_file onnx模型/Unet.onnx \
--opset_version 12
4.利用onnxruntime进行推理
(1)检测导出onnx模型是否正确
import onnx
# 我们可以使用异常处理的方法进行检验
try:
# 当我们的模型不可用时,将会报出异常/home/aistudio/onnx模型/Unet++2.onnx
model = onnx.load("/home/aistudio/onnx模型/Unet.onnx")
onnx.checker.check_model(model)
except onnx.checker.ValidationError as e:
print("The model is invalid: %s"%e)
else:
# 模型可用时,将不会报出异常,并会输出“The model is valid!”
print("The model is valid!")
print(onnx.helper.printable_graph(model.graph))
(2)颜色映射
import os
import cv2
import numpy as np
from PIL import Image as PILImage
def visualize(image, result, color_map, save_dir=None, weight=0.6):
"""
Convert predict result to color image, and save added image.
Args:
image (str): The path of origin image.