一个完整的深度学习图像分割例子(五):推理

本文介绍了如何使用PaddlePaddle的Paddle Inference进行深度学习图像分割的推理过程。首先展示了Python推理代码,然后阐述了在Windows环境下使用C++进行推理的步骤,包括配置Paddle Inference库和创建预测对象。最后提到了模型转换为ONNX格式以供其他推理框架使用的可能性。
摘要由CSDN通过智能技术生成

在[模型训练]中我们已经得到了胼胝体分割模型文件和模型参数,接下来就是推理阶段,推理应用场景非常丰富,有的人想在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()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值