gpt4 book ai didi

c# - 用于人员检测的 Emgu 训练 SVM - C#

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:36 26 4
gpt4 key购买 nike

我在网上搜索了很多,找不到任何简单的解决方案。

我正在尝试创建一个人员检测器,为此我选择了 Emgu 库。

目前我能够检测到人,但成功率不高。

我正在尝试训练我的 SVM,我在这篇文章中看到:SVM classifier based on HOG features for “object detection” in OpenCV我需要培训的过程:

Step 1) Prepare some training images of the objects you want to detect (positive samples). Also you will need to prepare some images with no objects of interest (negative samples).

Step 2) Detect HOG features of the training sample and use this features to train an SVM classifier (also provided in OpenCV).

Step 3) Use the coefficients of the trained SVM classifier in HOGDescriptor::setSVMDetector() method.

我有一些训练图像,我正在使用这行代码来提取 HOG 特征:

public static Image<Bgr, Byte> Resize(Image<Bgr, Byte> im)
{
return im.Resize(64, 128, Inter.Linear);
}
public static float[] GetVector(Image<Bgr, Byte> im)
{
HOGDescriptor hog = new HOGDescriptor(); // with defaults values
Image<Bgr, Byte> imageOfInterest = Resize(im);
Point[] p = new Point[imageOfInterest.Width * imageOfInterest.Height];
int k = 0;
for (int i = 0; i < imageOfInterest.Width; i++)
{
for (int j = 0; j < imageOfInterest.Height; j++)
{
Point p1 = new Point(i, j);
p[k++] = p1;
}
}

return hog.Compute(imageOfInterest, new Size(8, 8), new Size(0, 0), p);
}

但我找不到如何训练我的 SVM(上述步骤中的第 2 步)。

最佳答案

我已经做到了。注意:它有一些我还没有用太多 HoG 特性解决的问题。

代码是:

//GetVector - function from people detection file 
float[] hog = GetVector(new Image<Bgr, byte>(image));

svm.TrainAuto(new TrainData(training_mat, Emgu.CV.ML.MlEnum.DataLayoutType.RowSample, lables));

关于c# - 用于人员检测的 Emgu 训练 SVM - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37028423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com