在[模型训练]中我们已经得到了胼胝体分割模型文件和模型参数,接下来就是推理阶段,推理应用场景非常丰富,有的人想在Web中运行推理过程,有的人想在Windows桌面程序中运行推理过程,有的人想在Linux 服务程序中运行推理过程,还有的人想在嵌入式环境中运行推理过程,有的人用Python,有的人用C C++,有的人用Java,反正需求是五花八门, 幸好Paddle提供了Paddle Inference推理引擎,他能在Windows下运行,Linux下运行,Mac下运行,提供了C语言接口,C++语言接口,Python接口,Java,Js等接口满足不同的需求,下面我们列举三种最常使用的场景。
(一)最简单的方式,这种方式不需要安装Paddle Inference,只需要在刚才训练环境下运行下面的代码Python代码:
from paddleseg.models import BiSeNetV2
import cv2
import paddleseg.transforms as T
import paddle
import numpy as np
import matplotlib.pyplot as plt
transforms = T.Compose([
T.Resize(target_size=(512, 512)),
T.Normalize()
])
#加载模型
model = BiSeNetV2(num_classes=2)
model_path = ‘/home/aistudio/Myoutput/best_model/model.pdparams’
para_state_dict = paddle.load(model_path)
model.set_dict(para_state_dict)
model.eval()
#读取数据
img_path = ‘/home/aistudio/work/test/529.jpg’
im = cv2.imread(img_path, 0).astype(‘float32’)
h,w = im.shape
#模型预测,返回结果
data = np.expand_dims(im,axis=0).repeat(3,axis=0)
data = np.transpose(data, (1,2,0))
data,_ = transforms(data)
data = data[np.newaxis, …]
data = paddle.to_tensor(data)
output = model(data)[0].numpy()
output = np.argmax(output,axis=1)
output = np.squeeze(output)
#输入模型预测的时候缩放到(512,512),现在要缩放到原始数据的大小
output = cv2.resize(output, (h, w), interpolation=cv2.INTER_NEAREST)
output = output.astype(np.uint8)
#展示结果
plt.imshow(output,‘gray’)
plt.show()
一个完整的深度学习图像分割例子(五):推理
最新推荐文章于 2024-06-18 22:44:27 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)