复杂形状匹配的最佳方法是什么

哈泽姆·阿卜杜拉

我需要知道什么是匹配图像中特定形状(模板)的最佳方法。

我知道有几种方法,但是其中一些方法并不能取得很好的结果,而另一种方法则需要大量的处理时间,因此有人尝试了一种很好的快速方法以较短的处理时间进行匹配。

例如,这是模板...

在此处输入图片说明

我有一个样本,我想将样本与模板进行比较,如果样本与模板相似,则返回true,否则返回false。

注意:我尝试了轮廓匹配,级联分类和SURF,但是它们都不是很好,或者处理时间也不是很好。

粉末

相互匹配是一项相当困难的任务,主要是由于以下事实:不同的技术具有非常不同的特征,并且在某些类别上可以产生几乎完美的结果,而在其他类别上可以产生非常差的结果。

这就是说,我认为您永远不会得到问题的答案,至少不会有人说“使用[被引论文]中的xyx方法可以解决您的所有问题”。我会尝试为您指出一些示例,希望对您有所帮助。

模板匹配运算符:将模板与图像上的滑动窗口进行比较,如果模板与图像中要查找的对象非常相似,无论模板多么复杂,都可以达到非常好的效果速度可能非常快,基本上没有什么变化,因此,如果您打算进行旋转,照明发生重大变化或其他原因,这可能对您不起作用。在这里您可以找到一些代码。注意使用的色彩空间,如果使用得当,不同的色彩空间可以获得非常不同的结果(例如,在人脸分析中,HSV在某些情况下可能比RGB更好)

像SIFT或SURF这样的关键点匹配:我经常使用它,效果非常好。您需要确定要使用的描述符匹配器OpenCV有一些很好的例子,在这里您可以找到一个例子并不是最快的匹配对象的方法,因为要提取这些描述符可能要花一些时间,如果您对所要工作的条件不太了解,则很好:它通常在缩放,旋转和缩放方面都很健壮。只要在模板和图像上都能正确找到关键点,闪电就会发生变化。

形状匹配:当我参加一个图像分类比赛时,我能够使用一个简单的HOG描述符来获取有关我的图像的非常有区别的信息时,我感到非常惊讶。定向梯度直方图是用于描述对象形状的强大工具,它使用边缘方向和大小来描述您的图像。它们可以快速计算(我认为OpenCV具有GPU实现),可配置(您可以决定网格的厚度和单元数,从而产生非常不同的信息)。不是旋转不变,从不同角度看物体可能会产生不同的直方图,但由于不使用颜色,因此它们对照明变化非常有抵抗力。HOG只是一个例子,有很多形状和轮廓描述符,但基本上它们提供的功能几乎完全相同。

直方图匹配:不是我的第一选择,如果您对物体和图像的其余部分有所了解,它会很有用。例如,如果您知道要在丛林图像中寻找粉红色的花朵(那里是唯一的粉红色事物),则简单的颜色直方图匹配就可以了。拾取一个滑动窗口,在图像上运行它,比较直方图,您将完成操作。非常快,非常简单,它根本不使用形状,因此无论对象多么复杂,都可以找到它。不使用形状会使它对旋转具有鲁棒性,但是请注意照明的变化。这种方法的很大局限性是,如果丛林中还有其他粉红色的东西,您将无法分辨。

混合方法:在这里您可以充分利用上述技术。如您所见,它们中的大多数在特定环境中都能很好地工作,而在其他环境中却很糟糕。您可以使用已知技术的组合来获得比零件总和更好的东西。我在HOG和头部姿势估计方面做了大量工作,当我们开始以密集方式而不是密集方式提取HOG时,真正的突破出现了。您需要了解自己的问题,找出您需要什么,并采用多种方法来解决该问题。通常,混合方法可以更好,更慢地工作。

希望这对您有所帮助,我认为,鉴于您提供给我们的信息,我可以为您提供更好的答案。(可能有人可以,所以我仍然是学生:))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用ReactiveUI侦听复杂对象更改的最佳方法是什么?

来自分类Dev

使用ReactiveUI侦听复杂对象更改的最佳方法是什么?

来自分类Dev

将复杂字典保存到文件的最佳方法是什么?

来自分类Dev

在React中创建形状的最佳方法是什么?

来自分类Dev

查找所有不匹配文件的最佳方法是什么?

来自分类Dev

从文件中匹配版本号的最佳方法是什么

来自分类Dev

在一个复杂条件下添加ng-class的最佳方法是什么

来自分类Dev

在React.js中突变复杂状态的最佳方法是什么?

来自分类Dev

用api数据创建填充复杂对象的最佳方法是什么?

来自分类Dev

可靠存储复杂Java对象层次结构的最佳方法是什么?

来自分类Dev

使用多个 FOR 循环提高时间复杂度的最佳方法是什么

来自分类Dev

在Android中对不规则形状的控件进行命中测试的最佳方法是什么?

来自分类Dev

递增的最佳方法是什么?

来自分类Dev

在React Redux中进行复杂过滤的最佳实践是什么

来自分类Dev

匹配数据库中10000个以上不同元素的最佳方法是什么?

来自分类Dev

使用Postgres全文搜索来搜索完全匹配的最佳方法是什么?

来自分类Dev

Cypher:基于几个ASCII代码段匹配子图的最佳方法是什么?

来自分类Dev

打印正则表达式匹配的最佳方法是什么?

来自分类Dev

拆分字符串列表以匹配首字母和尾字母的最佳方法是什么?

来自分类Dev

查找与您输入的日期相匹配的所有日期的最佳方法是什么?

来自分类Dev

设计复杂FSM的方法是什么?

来自分类Dev

创建复杂元素的正确方法是什么?

来自分类Dev

从MVC3应用程序序列化,返回和使用复杂的C#对象的最佳方法是什么?

来自分类Dev

使用具有较高循环复杂性的if / switch语句来处理代码的最佳方法是什么?

来自分类Dev

保持方法运行的最佳方法是什么

来自分类Dev

使方法异步运行的最佳方法是什么?

来自分类Dev

使方法异步运行的最佳方法是什么?

来自分类Dev

循环异步方法的最佳方法是什么?

来自分类Dev

最佳的相机校准方法是什么?

Related 相关文章

  1. 1

    使用ReactiveUI侦听复杂对象更改的最佳方法是什么?

  2. 2

    使用ReactiveUI侦听复杂对象更改的最佳方法是什么?

  3. 3

    将复杂字典保存到文件的最佳方法是什么?

  4. 4

    在React中创建形状的最佳方法是什么?

  5. 5

    查找所有不匹配文件的最佳方法是什么?

  6. 6

    从文件中匹配版本号的最佳方法是什么

  7. 7

    在一个复杂条件下添加ng-class的最佳方法是什么

  8. 8

    在React.js中突变复杂状态的最佳方法是什么?

  9. 9

    用api数据创建填充复杂对象的最佳方法是什么?

  10. 10

    可靠存储复杂Java对象层次结构的最佳方法是什么?

  11. 11

    使用多个 FOR 循环提高时间复杂度的最佳方法是什么

  12. 12

    在Android中对不规则形状的控件进行命中测试的最佳方法是什么?

  13. 13

    递增的最佳方法是什么?

  14. 14

    在React Redux中进行复杂过滤的最佳实践是什么

  15. 15

    匹配数据库中10000个以上不同元素的最佳方法是什么?

  16. 16

    使用Postgres全文搜索来搜索完全匹配的最佳方法是什么?

  17. 17

    Cypher:基于几个ASCII代码段匹配子图的最佳方法是什么?

  18. 18

    打印正则表达式匹配的最佳方法是什么?

  19. 19

    拆分字符串列表以匹配首字母和尾字母的最佳方法是什么?

  20. 20

    查找与您输入的日期相匹配的所有日期的最佳方法是什么?

  21. 21

    设计复杂FSM的方法是什么?

  22. 22

    创建复杂元素的正确方法是什么?

  23. 23

    从MVC3应用程序序列化,返回和使用复杂的C#对象的最佳方法是什么?

  24. 24

    使用具有较高循环复杂性的if / switch语句来处理代码的最佳方法是什么?

  25. 25

    保持方法运行的最佳方法是什么

  26. 26

    使方法异步运行的最佳方法是什么?

  27. 27

    使方法异步运行的最佳方法是什么?

  28. 28

    循环异步方法的最佳方法是什么?

  29. 29

    最佳的相机校准方法是什么?

热门标签

归档