Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 基于OpenCV的目标检测项目_C++_Opencv_Computer Vision - Fatal编程技术网

C++ 基于OpenCV的目标检测项目

C++ 基于OpenCV的目标检测项目,c++,opencv,computer-vision,C++,Opencv,Computer Vision,我正在尝试使用OpenCV为我的最后一年项目制作一个对象识别软件。在对这个领域进行了大量研究之后,我发现行动计划应该是这样的: 从大量图像中提取特征 从提取的特征创建训练数据集 为数据集添加标签 使机器从数据集中学习 测试模型 我从一张图片开始。我能够使用OpenCV的SurfFeatureDetector类(simple\u matcher.cpp示例中给出的程序)从图像中提取特征。我使用以下代码将检测到的关键点保存在XML文件中: SurfFeatureDetector detector

我正在尝试使用
OpenCV
为我的最后一年项目制作一个对象识别软件。在对这个领域进行了大量研究之后,我发现行动计划应该是这样的:

  • 从大量图像中提取特征
  • 从提取的特征创建训练数据集
  • 为数据集添加标签
  • 使机器从数据集中学习
  • 测试模型
我从一张图片开始。我能够使用OpenCV的
SurfFeatureDetector
类(
simple\u matcher.cpp
示例中给出的程序)从图像中提取特征。我使用以下代码将检测到的
关键点
保存在XML文件中:

SurfFeatureDetector detector(400);
vector<KeyPoint> keypoints1, keypoints2;
detector.detect(img1, keypoints1);
detector.detect(img2, keypoints2);
FileStorage fs("test.xml", FileStorage::WRITE);
write(fs, "data", keypoints1);
surfeaturedetector检测器(400);
向量关键点1,关键点2;
检测器。检测(img1,关键点1);
检测器。检测(img2,关键点2);
FileStorage fs(“test.xml”,FileStorage::WRITE);
写入(fs,“数据”,关键点1);
现在我被困在这一点上。我无法理解如何从这些功能创建培训数据集?我下一步该怎么做?或者,我的行动计划正确吗


提前感谢。

首先,使用流行的数据集会更容易,例如,从。它可以让你不用花时间在图像上,并且可以将你的结果与最先进的技术进行比较

第二,这不是一项容易的任务。我建议你读书


如果你想做第一次尝试,请阅读关于bag of words模型的内容,例如,它非常简短,并且很好地解释了如何使用该模型

您可能需要执行以下步骤

  • 找出并专注于您想要使用的特征检测和提取算法(SIFT、SURF、ORB,还有更多)

  • 检测和提取特征。您应该将从描述符提取器提取的描述符存储在xml文件中

  • 将这些描述符添加到培训师(如bowtrainer)以创建字典

  • 训练你的分类器


  • 如果您想在项目中实现类似的功能,您可以找到许多示例,也可以观看视频。

    培训数据集的格式和内容取决于您想要识别的内容。请更明确地指定您的目标。我想检测图像中的对象,其数量可能是多个。因此,我想创建一个训练集,例如,100个带球的图像,100个带树的图像,等等。对于初学者,可以。我使用BOWTrainer创建了一个词汇表。但现在,我不明白下一步该如何处理这些词汇。请帮忙。现在,开始训练你的分类器。你们可以看看这个例子