我已经在OpenCV中实现了SIFT算法,使用以下步骤进行特征检测和匹配:

使用Otsu的阈值处理去除背景

使用SIFT特征检测器进行特征检测

使用SIFT特征提取器进行描述符提取

使用BFMatcher(L2 Norm)匹配特征向量并使用比率测试来过滤良好匹配

我的目标是根据图像的相似性将图像分类到不同的类别,如鞋子,衬衫等 . 例如,两个不同的鞋跟应该比鞋跟和运动鞋或鞋跟和T恤更彼此相似 .

但是,只有当我的模板图像出现在搜索图像中时(无论是任何比例和方向),此算法才能正常工作 . 如果我比较两种不同的高跟鞋,它们不匹配并且匹配也是随机的(一个图像的跟部与另一个图像的平面匹配) . 当我将鞋跟与运动鞋或鞋跟与T恤或鞋跟与婴儿的照片进行比较时,也存在许多误报!

我想看一下鞋跟,并将其标识为鞋跟,并将鞋跟与我的数据库中的不同图像的相似程度与其他鞋跟的最大相似度,然后是其他鞋子 . 它不应与衬衫,手机,笔等无关物体产生任何相似之处 .

据我所知,SIFT算法根据关键点周围像素的梯度值为每个关键点生成描述符向量,并且纯粹使用此属性匹配图像 . 因此,很可能位于一个鞋的跟部附近的关键点与另一个鞋的表面处的关键点匹配 . 因此,我收集的是该算法只能用于检测精确匹配而不能检测图像之间的相似性

你能否告诉我这个算法是否可以用于我的目标,如果我做错了什么或建议我应该使用任何其他方法 .

sift分类java_使用SIFT / SURF进行特征匹配是否可以用于类似对象的分类?相关推荐

  1. 特征匹配 + 单应性查找对象

    在本章节中, - 我们将把calib3d模块中的特征匹配和findHomography混合在一起,以在复杂图像中找到已知对象. 上节中,我们使用了queryImage,找到了其中的一些特征点,我们使用 ...

  2. OpenCV系列之特征匹配+单应性查找对象 | 四十五

    目标 在本章节中, 我们将把calib3d模块中的特征匹配和findHomography混合在一起,以在复杂图像中找到已知对象 基础 那么我们在上一环节上做了什么?我们使用了queryImage,找到 ...

  3. 哪三级分类java_技术汇总:第五章:使用angularjs做首页三级分类

    页面: {{entity.catOneName}} {{entity.catTwoName}} {{entity.catThreeName}} 实体类: public class TbItemCat ...

  4. OpenCV中的特征匹配(Feature Matching)

    OpenCV中的特征匹配(Feature Matching) 1. 效果图 2. 原理 3. 源码 3.1 SIFT关键点检测+Knn近邻匹配 3.2 ORB关键点检测+蛮力特征匹配 3.3 SIFT ...

  5. OpenCV中的特征匹配+单应性以查找对象

    OpenCV中的特征匹配+单应性以查找对象 1. 效果图 2. 源码 参考 这篇博客将混合calib3d模块中的特征匹配和单应性,在复杂图像中查找已知对象. 1. 效果图 特征匹配 & 单应性 ...

  6. 特征匹配损失,GAN

    GAN中的特征匹配损失 前言 其他搜索关键词 原理 公式 提示 部分参考代码(pytorch) 前言 首先,"特征匹配损失"不是指特征匹配任务的损失函数,而是用与GAN网络中的一种 ...

  7. [图像特征匹配]SIFT、SURF、ORB算法笔记以及代码实现

    SIFT.SURF.ORB算法学习笔记 文章目录 SIFT.SURF.ORB算法学习笔记 一. SIFT (1)构建尺度空间 (2)使用DOG近似LOG定位极值点(关键点) (3)计算关键点方向 (4 ...

  8. OpenCV用FAST、SURF、SIFT、BRISK、ORB等进行特征点提取与匹配

    特征检测属于 opencv_contrib 库,在编译 OpenCV 时包含了附加模块才能使用,具体如何编译这里就不再作说明了 一.创建检测器 首先读取要建立提取特征的图像与存放特征点的数组 cv:: ...

  9. OpenCV-图像特征harris角点检测/SIFT函数/特征匹配-05

    图像特征-harris角点检测 基本原理 R>0 角点 R≈0 平坦区域 R<0 边界 总结一下Harris算法流程 获取点数据后,计算Ix 和 Iy 整合矩阵,求特征值 比较特征值大小 ...

最新文章

  1. java内连接外连接_SQL中的内连接与外连接--Java学习网
  2. void关键字的使用规则
  3. 不该被忽视的CoreJava细节(四)
  4. 使用 SQLServer On Linux 作为开发数据库遇到的编码问题
  5. 深度学习-机器学习(5.2支持向量机SVM)
  6. 如何更改OST、OAB文件的默认路径?
  7. 【OS】进程同步概念
  8. 面试项目 java-服务端2 18h58
  9. WINCE6.0 DM.EXE 激活驱动失败的原因之一
  10. c++常用备忘(持续更新)
  11. ddos发包php文件,简单防范PHPDDOS对外发UDP包消耗流量
  12. 基于网络嵌入和语义表征的作者名消歧
  13. 程序员述职报告范文_程序员个人述职报告范文精选3篇
  14. CCF-CSP 201903-1 小中大(python实现)
  15. 关于如何发挥最好的学习状态的思考暨《自控力》一书读后感
  16. 什么是 Adobe AIR
  17. 3.神经网络-深度学习入门
  18. 《算法和数据结构》排序篇
  19. 四门外语傍身:外语,让我的大学如此完美
  20. “戏”说设计模式——单例模式

热门文章

  1. 强化学习4——无模型控制model-free control (On-Policy learning:Sarsa和Off-policy learning:Q-learning)
  2. stateflow错误:Error in port widths or dimensions.
  3. MATLAB常用命令、函数与运算
  4. 浮点加减运算之0舍1入法与恒置1法
  5. python打开文件并读取2进制_在Python中,哪些文件可以读取为文本,哪些文件可以读取为二进制?...
  6. 原码、反码、补码、移码的表示
  7. 设计模式的理解:迭代器模式(Iterator)
  8. JSON / 格式详解
  9. ad16怎么画弧线_如何告别“千人一面”?手把手教你抠细节,画不一样人脸
  10. linux某个目录环境变量,在linux下加环境变量或者是把某个目录加到环境变量