小编Mar*_*rio的帖子

基于HOG特征的SVM分类器,用于OpenCV中的"对象检测"

我有一个项目,我想检测图像中的对象; 我的目标是使用HOG功能.通过使用OpenCV SVM实现,我可以找到用于检测人的代码,并且我阅读了一些关于调整参数以便检测对象而不是人的文章.不幸的是,由于一些原因我不能这样做; 首先,我可能错误地调整了参数,其次,我不是C++中的优秀程序员,但我必须使用C++/OpenCV ... 在这里你可以找到用于检测人的HOG功能的代码使用C++/OpenCV.

假设我想检测此图像中的对象.现在,我将向您展示我在代码中尝试更改的内容,但它与我无关.

我试图改变的代码:

HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
Run Code Online (Sandbox Code Playgroud)

我尝试getDefaultPeopleDetector()使用以下参数进行更改,但它不起作用:

(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9, 0,-1, 0, 0.2, true, cv::HOGDescriptor::DEFAULT_NLEVELS)
Run Code Online (Sandbox Code Playgroud)

然后我尝试制作一个矢量,但是当我想打印结果时,它似乎是空的.

vector<float> detector;

HOGDescriptor hog(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9, 0,-1, 0, 0.2, true, cv::HOGDescriptor::DEFAULT_NLEVELS);

hog.setSVMDetector(detector);
Run Code Online (Sandbox Code Playgroud)

拜托,我需要帮助解决这个问题.

c++ opencv svm object-recognition training-data

21
推荐指数
3
解决办法
4万
查看次数

袋的单词培训和测试opencv,matlab

我正在使用SIFT功能在opencv中实现Bag Of Words,以便对特定数据集进行分类.到目前为止,我一直是苹果集群描述符并生成词汇.据我所知,我必须训练SVM ...但我有一些问题,我真的很困惑他们.主要问题是实现背后的概念,这些是我的问题:

1-当我提取特征然后创建词汇表时,我是否应该提取所有对象的特征(比如5个对象)并将它们放在一个文件中,所以我将它们全部放在一个包含所有对象的单个词汇表文件中话?以及在我进行分类时如何将它们分开?

2-如何实现SVM?我知道openCV中使用的函数但是如何?

3-我可以在MATLAB中完成工作,我的意思是SVM培训的实施,但有没有可用的代码可以指导我完成我的工作?我已经看到安德烈Vedaldi使用的代码,在这里,但他每次用一个类和另一个问题,他没有展示如何创建,他是用他的练习.MAT文件只工作.我能找到的所有其他实现,他们都没有使用SVM.所以,你能指导这一点吗!

谢谢

matlab opencv image-processing object-recognition matlab-cvst

20
推荐指数
2
解决办法
1万
查看次数

HOG用于"检测对象"opencv

我想知道,如果有任何代码或任何好的文档可用于实现HOG功能?我试着阅读这里的文档但是很难理解它需要SVM ..

我需要的只是为物体实现HOG探测器....就像SIFT或SURF一样

顺便说一下,我对这项工作并不感兴趣.

谢谢..

opencv object-detection

11
推荐指数
1
解决办法
1万
查看次数

实现图像稳定opencv,c ++

今天,我有很多问题,我需要任何帮助,即使在我的问题的某些部分.这些问题非常迫切需要回答,所以请尽我所能.

我正在使用光流法研究图像稳定.这个步骤正确完成并给出了很好的结果,现在我想实现视频的稳定性,我有两种方法可以做到这一点:第一种方式:我已经获得了第一帧和第一帧的特征之间的平移和旋转矩阵下一帧.现在,我的主管建议我这样做; 使画布比原始画面大两倍,并复制中间的第一帧.对于每个下一帧,使用我获得的变换来计算偏移和旋转.使用这些参数并将下一帧复制到其更正位置.这应该产生一个纠正的视频.

那怎么办呢?如果可用,请关于openCV中的功能的帮助.

第二种方式,

我试图以自己的方式做到这一点,我试图通过扭曲图像来获取校正的视频,我已经获得了单应矩阵,但它cvWarpPerspective().无论如何都不能用于函数,这是正确的我正在做什么在这里获得稳定的图像或你的建议?

题:

1-同形矩阵给出的负值是正确的吗?

2-正如我上面提到的关于旋转和平移矩阵,我必须制作这个方程,以便将第二帧中的估计特征返回到第一帧中的位置

Y =旋转矩阵*x +平移矩阵

它有时给出几乎完美的结果,而另一次给出非常可怕的结果,我得到负值并远离他们应该在的位置,为什么它是那样的?

请回答你能回答的问题,即使这是次问题

非常感谢.

c++ opencv image image-processing

8
推荐指数
1
解决办法
2674
查看次数

矩阵乘法

我有一个可能适合初学者的问题.

我想在c ++中将20x2矩阵乘以2x2矩阵.

我用openCV尝试了但是我得到了一个错误

cvarrToMat中的错误参数(未知数组类型)


这是我在openCV中使用的代码,以便检查问题,如果它是我的代码或openCV中的问题,但它仍然无法正常工作,我可以编译出错,但是当我测试代码时,我得到了问题"cvarrToMat中的错误参数(未知数组类型)"

#include <stdio.h>
#include <stdlib.h>
//#include "/usr/include/opencv/cv.h"
#include <cv.h>
#include <cvaux.h>
#include <highgui.h>
#include <math.h>
#include <iostream>

  int main()
{


double a[] = {1, 2, 3, 4};
CvMat Ma;
cvInitMatHeader(&Ma, 2, 2, CV_32FC1, a);


double b[] ={0, -1, 1, 0};

CvMat Mb;
cvInitMatHeader(&Mb, 2, 2, CV_32FC1, b);

CvMat Mc;
CvMat Mc1;
cvMatMul(&Ma, &Mb, &Mc);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ opencv

7
推荐指数
2
解决办法
3242
查看次数

SIFT,HOG和SURF c ++,opencv

我有一个简单的问题,我想知道,有哪些库可用,并且可以在c ++或opencv中实现SIFT,HOG(直方图定向梯度)和SURF的良好结果?

因此:1-如果可以,请给我链接代码,我将非常感激.2-如果你知道其中一个或任何类型的信息引导我到我想要的东西,我也会非常感激.

谢谢

c++ opencv surf sift

7
推荐指数
1
解决办法
1万
查看次数

旋转矩阵openCV

我想知道如何为一组框架中的一组特征找到旋转矩阵.我会更具体.我有2个帧,有20个特征,比如帧1和帧2.我可以估计两个帧中的特征的位置.例如,假设位置(x,y)处的某个第1帧特征,我确切地知道它在哪里,所以让我们说(x',y').

我的问题是功能被移动并可能旋转,所以我想知道如何计算旋转矩阵,我知道2D的旋转矩阵:

替代文字

但我不知道如何计算角度,以及如何做到这一点?我试图在OpenCV中的函数,而cv2DRotationMatrix();但正如我上面我所提到的问题,不知道如何来计算旋转矩阵,并且它提供了2×3的矩阵,另一个问题的角度,所以如果不会制定出事业我将借此20×2矩阵,(20是特征的数量和2是在(X,Y)的位置),并通过由2*3矩阵,其是从该函数的结果相乘,然后我会得到20*3矩阵,它似乎不太现实,因为我正在使用2D.
所以我该怎么做?更具体一点,请告诉我如何计算在矩阵中使用它的角度?

math opencv

6
推荐指数
1
解决办法
3484
查看次数

libsvm c ++教程

寻找libSVM的C++接口的教程和/或示例代码.具体来说,我想对使用SIFT或SURF特征描述符提取的特征进行分类.

我试过在网站上查找并没有找到任何此类文档/示例代码.

c++ machine-learning svm libsvm

6
推荐指数
1
解决办法
1万
查看次数

将关键点转换为mat或将它们保存到文本文件opencv

我已经在(opencv开源)中提取了SIFT功能,并将它们提取为关键点.现在,我想将它们转换为Matrix(带有x,y坐标)或将它们保存在文本文件中......

在这里,您可以看到用于提取关键点的示例代码,现在我想知道如何将它们转换为MAT或将它们保存在txt,xml或yaml中......

cv::SiftFeatureDetector detector;
std::vector<cv::KeyPoint> keypoints;
detector.detect(input, keypoints);
Run Code Online (Sandbox Code Playgroud)

c++ opencv vector keypoint mat

5
推荐指数
1
解决办法
7871
查看次数

用于对象检测的HOG描述符

我想知道,如果对于像"汽车"这样的对象的HOG描述符有任何实现,而对于MATLAB中的人类则不是吗?

但万一,只有人类,你能指导我到那个代码,并给我如此提示,以改善用于"汽车或摩托车等对象"的代码

matlab image-processing object-detection feature-detection matlab-cvst

5
推荐指数
1
解决办法
7552
查看次数