2

How can I determine/detect if I have a necessary object in the photo or not?

I don't need to recognize the class of the object, but I need to know if I have exactly the same object as in the template picture.

Thus far I have tried to use template matching, histogram matching and SIFT-like methods, but none of these methods have the level of accuracy I need.

Can anyone suggest a precise method?

UPD

DB size in release - 5.000-10.000 unique objects

Available training data set - 50 objects.

4

3 回答 3

2

如果您只对这个对象(或少数对象)感兴趣,您可以训练分类器 - 例如 V&J(级联分类器)或尝试使用词袋方法。

您可以在此处阅读有关级联分类器的信息:http: //docs.opencv.org/modules/objdetect/doc/cascade_classification.html

词袋理论背景:http: //gilscvblog.wordpress.com/2013/08/23/bag-of-words-models-for-visual-categorization/

以及openCV对词袋的实现:http: //docs.opencv.org/modules/features2d/doc/object_categorization.html

于 2013-11-05T08:54:54.143 回答
1

光照的差异、一张图像中存在的带子、变形(非线性)、旋转、平移、缩放等……增加了这个问题的难度。

对于初学者,您也许可以选择这个钱包的 10-20 张图片。计算每个钱包的直方图、筛选特征或一些基于小波的特征等特征,然后查看钱包的传入图像是否与任何训练图像中的点的任何子集匹配。

如果您在这里取得了一些成功,那么您可以考虑使用机器学习技术构建图像分类器。您需要收集训练数据,从多个视图、方向、变形中识别您想要识别的每个对象。在网上搜索“图像处理中的机器学习”将使您朝着正确的方向前进。

于 2013-11-04T20:22:11.707 回答
1
  1. 我认为如果您需要高精度,仅一种方法是不够的。您将不得不使用多种方法的组合。就像您分别尝试过模板匹配、直方图匹配和类似 SIFT 的方法一样。但是,如果您尝试对这些进行智能组合,它可能会有所帮助。

  2. 除此之外,您可以尝试机器学习方法。通常说它更健壮

  3. 分类器也可能是解决方案之一
于 2013-11-26T11:19:49.930 回答