【训练模型源码】
https://github.com/AlexeyAB/darknet
【测试环境】
windows10 x64
vs2019
netframeowrk4.7.2
Emgu==4.8.0
【演示界面】
用到的模型
【部分实现代码】
using Emgu.CV;
using Emgu.CV.Structure;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace FIRC
{
public partial class Form1 : Form
{
DarknetYOLO detector;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "(图片文件)*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png"; ;
if (ofd.ShowDialog() == DialogResult.OK)
{
var frame = new Bitmap(ofd.FileName).ToImage<Bgr, byte>();
List<YoloPrediction> results = detector.Predict(frame, 416, 416);//预热
var result_img = detector.DrawImage(frame,results);
pictureBox1.Image = result_img.ToBitmap();
}
}
private void Form1_Load(object sender, EventArgs e)
{
var labels = Application.StartupPath + "\\weights\\coco.names";
var weights = Application.StartupPath + "\\weights\\yolov7-tiny.weights";
var cfg = Application.StartupPath + "\\weights\\yolov7-tiny.cfg";
detector = new DarknetYOLO(labels, weights, cfg, PreferredBackend.OpenCV, PreferredTarget.Cpu);
detector.NMSThreshold = 0.4f;
detector.ConfidenceThreshold = 0.5f;
}
}
}
【源码下载】
https://download.csdn.net/download/FL1623863129/89567518
【注意事项】
这个推理是CPU的,GPU需要更换Emgu支持cuda库还要改动少量代码。