我正在使用OpenCV制作一个物体识别软件,作为我的毕业项目。在研究了这个领域之后,我发现行动计划应该是这样的:
- 从许多图像中提取特征。 - 从提取的特征创建一个训练数据集。 - 标记数据集。 - 让机器从数据集中学习。 - 测试模型。
我从一张单独的图片开始。我能够使用OpenCV的SurfFeatureDetector类(在示例中给出的simple_matcher.cpp程序)从图片中提取特征。我使用以下代码将检测到的KeyPoints保存在XML文件中:
- 从许多图像中提取特征。 - 从提取的特征创建一个训练数据集。 - 标记数据集。 - 让机器从数据集中学习。 - 测试模型。
我从一张单独的图片开始。我能够使用OpenCV的SurfFeatureDetector类(在示例中给出的simple_matcher.cpp程序)从图片中提取特征。我使用以下代码将检测到的KeyPoints保存在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);
现在我陷入了困境。我不知道如何从这些特征中创建训练数据集?我的下一步应该是什么?或者说,我的行动计划正确吗?
提前感谢。