标签: object-recognition

使用OpenCV提取HoG功能

我正在尝试使用OpenCV的HoG API提取功能,但我似乎无法找到允许我这样做的API.

我想要做的是从我的所有数据集(一组正面和负面图像)中使用HoG提取特征,然后训练我自己的SVM.

我在OpenCV下偷看了HoG.cpp,但没有用.所有代码都埋没在复杂性中,需要满足不同的硬件需求(例如英特尔的IPP)

我的问题是:

  1. 我是否可以使用OpenCV中的任何API来提取所有要提供给SVM的功能/描述符?如果我可以用它来训练我自己的SVM?
  2. 如果没有,是否有任何现有的库,可以完成同样的事情?

到目前为止,我实际上是将一个现有的库(http://hogprocessing.altervista.org/)从Processing(Java)移植到C++,但它仍然非常慢,检测时间至少为16秒

有没有其他人成功提取HoG功能,你是如何解决它的?你有任何我可以使用的开源代码吗?

提前致谢

opencv feature-extraction computer-vision object-recognition feature-detection

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

我从哪里开始学习图像处理和对象识别?

我有兴趣编写一些基本的计算机化对象识别应用程序,所以我想我需要一些图像处理算法的理论背景,以及一些用于决策能力的AI.

我是计算机科学专业的毕业生,有一天我打算获得硕士学位,希望能够进入这些领域.与此同时,我想先行一步,做一些自学.

所以我的问题是,我从哪里开始?我很欣赏正确方向的箭头,如果可能的话,还有一些链接.

theory image-processing computer-vision object-recognition

34
推荐指数
3
解决办法
2万
查看次数

基于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万
查看次数

从本地app应用特定的对象/图像检测,无需互联网

我的要求是扫描一个固定的对象.在认识到之后,我想突出显示对象并相应地显示相应的预先参数,如高度,宽度,周长等.

这一切,我想做的,没有互联网,只使用相机.

如果有任何解决方案/建议,请告诉我.

我见过CraftAR SDK.它似乎按照我的要求工作,以识别对象,但它使用其服务器来存储图像,这是我不想要的.因为我想要静态图像,存储在应用程序本身.

android image-recognition object-recognition

18
推荐指数
1
解决办法
1776
查看次数

OpenCV轮廓时刻?

什么是轮廓的瞬间?有人可以用简单的非数学术语解释这个吗?可能有一个例子?官方解释是"整合轮廓中的所有像素".我不知道什么是集成.还有什么可以用轮廓时刻?具体的例子请

谢谢

c++ opencv object-recognition

16
推荐指数
1
解决办法
8764
查看次数

寻找从相机到已知大小的物体的距离

我正在尝试使用opencv编写程序来计算从网络摄像头到1英寸白色球体的距离.我觉得这应该很容易,但无论出于何种原因,我都是空白.谢谢你的帮助提前.

webcam opencv object-recognition

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

物体识别的最佳工具

我想做一个关于对象识别的小项目,关于这个主题的任何工具或文献建议?

object-recognition

10
推荐指数
1
解决办法
3208
查看次数

特定扁平物体的物体检测

我是计算机视觉的新手,我想检测图像(或视频帧)中的特定和平面物体.

具体和扁平是什么意思?

平面

嗯,平面物体就像物体,但是,你知道,平坦......这对我意味着什么:

  • 始终从大致相同的"正面"角度观察物体,也就是说,相机的轴线(或多或少)与其表面法线相对应.(但它们可能围绕该轴旋转).
  • 照明角度不会改变任何东西的物体(即它没有投射阴影的凸起和折痕).

具体

  • 我知道确切的外观和形状的对象.它们都完全一样,没有变化.
  • 我有一张(精确的)照片(或代表).

这类物体的例子

  • 1美元账单的正面
  • 蒙娜丽莎
  • 最后一期的封面(你最喜欢的杂志在这里)
  • ...

我相信问题很容易,我应该能够找到一个基本上像这样工作的计算机视觉库的功能:

> findObjects("object.png", "image.png")
[object at x1, y1, rotated z1 degrees, size height1*width1,
 object at x2, y2, rotated z2 degrees, size height2*width2,
 ...]
Run Code Online (Sandbox Code Playgroud)

事实上,我甚至不关心物体的大小和位置,我只需要一个计数.

但我找不到这样的东西.我所能找到的是无数个人脸识别的例子,称为哈尔分类器,这似乎根本不适合我的问题,因为:

  • 面部不平坦,因此分类器必须应对不同的照明,阴影等问题......
  • 它必须识别面部,即相似但不完全相同的对象.
  • 它必须识别没有经过训练的面孔,因为它们看起来像"面孔".
  • 证明这不合适:它必须经过数百或数千个正面和负面样本的训练.在我的问题中,所需的所有信息都包含在一个样本中.所以这不可能是正确的.

那么,这样的事情是否存在?

我更喜欢使用OpenCV,因为这似乎是标准的计算机视觉库,但我对任何解决方案都持开放态度.

opencv computer-vision object-recognition

9
推荐指数
1
解决办法
2959
查看次数

Android中最快的移动物体识别和跟踪

我正在研究增强现实游戏,它需要识别和跟踪快速移动的物体.我尝试过以下图像处理库,

1. Opencv

2. BoofCv

3. FastCv

我已经尝试过TLD算法来跟踪对象,跟踪成功但是性能确实需要提高.如果对象移动得更快,则结果需要时间,因为算法需要处理时间.我也尝试过循环,类似于boofcv的算法.

查看这些演示:

使用FastCv的OpenTLD

Boofcv演示

这两个演示中的对象跟踪似乎很好,但计算需要时间.

我可以使用以下方案更快地完成此操作

  1. 提取要跟踪的对象的r,g,b矩阵

  2. 拍摄相机帧并将其转换为ar,g,b矩阵,并在相机框架中搜索跟踪的对象矩阵.

有没有更好的方法来做到这一点?

android opencv image-processing object-recognition augmented-reality

9
推荐指数
1
解决办法
9091
查看次数