⚡️⚡️⚡️摘要:教会你PaddleSeg分割模型如何在C#下部署
源码链接:https://github.com/PaddlePaddle/FastDeploy
⚡️FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具, 支持云边端部署。提供超过 🔥160+Text,Vision,Speech和跨模态模型📦开箱即用的部署体验,并实现🔚端到端的推理性能优化。包括物体检测、字符识别(OCR)、人脸、人像扣图、多目标跟踪系统、NLP、Stable Diffusion文图生成、TTS等几十种任务场景,满足开发者多场景、多硬件、多平台的产业部署需求。
使用FastDeploy可以简单高效的在X86 CPU、NVIDIA GPU、飞腾CPU、ARM CPU、Intel GPU、昆仑、昇腾、瑞芯微、晶晨、算能等10+款硬件上对PaddleSeg语义分割模型进行快速部署,并且支持Paddle Inference、Paddle Lite、TensorRT、OpenVINO、ONNXRuntime、RKNPU2、SOPHGO等多种推理后端。
FastDeploy满足多个部署场景,例如城市管理、智慧交通、智慧工业、智能制造、文体娱乐以及智慧金融等。
主工程如下图所示:需要引用fastdeploy_csharp.dll和OpenCvSharp4
using System;
using System.IO;
using System.Runtime.InteropServices;
using OpenCvSharp;
using fastdeploy;
namespace inferdemo
{
class Program
{
static void Main(string[] args)
{
string model_dir="model\\PP_LiteSeg_B_STDC2_cityscapes_without_argmax_infer";
string image_path = "model\\cityscapes_demo.png";
string model_file = model_dir + "\\" + "model.pdmodel";
string params_file = model_dir + "\\" + "model.pdiparams";
string config_file = model_dir + "\\" + "deploy.yaml";
RuntimeOption runtimeoption = new RuntimeOption();
runtimeoption.UseGpu();
fastdeploy.vision.segmentation.PaddleSegModel model = new fastdeploy.vision.segmentation.PaddleSegModel(model_file, params_file, config_file, runtimeoption, ModelFormat.PADDLE);
if (!model.Initialized())
{
Console.WriteLine("Failed to initialize.\n");
}
Mat image = Cv2.ImRead(image_path);
fastdeploy.vision.SegmentationResult res = model.Predict(image);
Console.WriteLine(res.ToString());
Mat res_img = fastdeploy.vision.Visualize.VisSegmentation(image, res, 0.5f);
Cv2.ImShow("result.png", res_img);
Cv2.WaitKey(10000);
}
}
}
可视化结果图:
by AI小怪兽
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。