前言
前段时间玩了把yolo,结果卡在用winform调用模型实识别的过程.从网络上找了很长一段时间代码,结果总不尽人意.今天隔离结束,回到工位,继续撸代码.
环境
vs2019,Net5,ML.OnnxRuntime,SixLabors.
准备
nuget下载如下包,
下载onnx权重文件
models/FasterRCNN-10.onnx at main · onnx/models · GitHub
代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.ML.OnnxRuntime.Tensors;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Drawing.Processing;
using SixLabors.Fonts;
//using SixLabors.Fonts;
//using System.Drawing;
namespace Microsoft.ML.OnnxRuntime.FasterRcnnSample
{
class Program
{
public static void Main(string[] args)
{
// Read paths
string modelFilePath = @"D:\Test\2022\FasterRCNN-10.onnx";
//string modelFilePath = @"D:\Test\2022\best.onnx";
// string imageFilePath = @"D:\Test\2022\A.jpg";
string imageFilePath = @"D:\Test\2022\B.png";
string outImageFilePath = "outputs.jpg";
//System.IO.Directory.CreateDirectory(outImageFilePath);
// Read image
using Image<Rgb24> image = SixLabors.ImageSharp.Image.Load<Rgb24>(imageFilePath);
// Resize image
float ratio = 800f / Math.Min(image.Width, image.Height);
image.Mutate(x => x.Resize(