首先下载 Yolo 训练好的模型:https://pjreddie.com/media/files/yolov3.weights
共3个文件:yolov3.cfg,yolov3.weights,coco.names
using System.Collections.Generic;
using System.IO;
using System.Linq;
using OpenCvSharp;
using OpenCvSharp.Dnn;
namespace OpenCvSharpYolo3
{
class Program
{
static string[] Labels;
static void Main()
{
const string Cfg = @"h:\csharp\yolov3\yolov3.cfg";
const string Weight = @"h:\csharp\yolov3\yolov3.weights";
const string Names = @"h:\csharp\yolov3\coco.names";
const float threshold = 0.5f; //置信度阈值
const float nmsThreshold = 0.3f; //nms 阈值
//读入标签
Labels = File.ReadAllLines(Names).ToArray();
string videofile = @"h:\csharp\videos\vtest.avi";
var net = CvDnn.ReadNetFromDarknet(Cfg, Weight);

该博客介绍了如何在C#环境下利用OpenCVSharp库结合YOLOv3模型进行目标检测。首先,下载预训练的YOLOv3模型文件,包括cfg、weights和类别名称文件。然后,通过读取模型配置,设定阈值,对视频帧进行处理,将图像转换为blob输入网络,并获取输出层。接着,提取最佳结果,进行非极大值抑制(NMS)以消除重叠框。最后,绘制识别出的目标框及标签,并实时显示结果。整个过程展示了C#与OpenCVSharp在计算机视觉领域的应用。
最低0.47元/天 解锁文章
1379





