Image 与数据库的图像比较

Image 与数据库的图像比较,image,matlab,opencv,image-recognition,Image,Matlab,Opencv,Image Recognition,我想知道我想做的事情是否可能,或者我只是想做不可能的事情/解决一个无法解决的问题 我的目标是将图像(它们会有噪声,但所有图像都有非常相似的噪声)与图像数据库进行比较,并告诉我是否找到匹配的图像。例如: 我想指出的是,我已经搜索过了,但从理论讨论的角度来看,我从未找到实际的应用程序,到目前为止,我无法理解如何应用其中的一些想法(在这种情况下,直方图比较完全失败了,我无法实现数据树,phash也失败了) 我怎么知道他们俩是相似的呢?有什么算法可以告诉我吗 我想我应该首先使用某种降噪/边缘检测(实际上

我想知道我想做的事情是否可能,或者我只是想做不可能的事情/解决一个无法解决的问题

我的目标是将图像(它们会有噪声,但所有图像都有非常相似的噪声)与图像数据库进行比较,并告诉我是否找到匹配的图像。例如:

我想指出的是,我已经搜索过了,但从理论讨论的角度来看,我从未找到实际的应用程序,到目前为止,我无法理解如何应用其中的一些想法(在这种情况下,直方图比较完全失败了,我无法实现数据树,phash也失败了)

我怎么知道他们俩是相似的呢?有什么算法可以告诉我吗

我想我应该首先使用某种降噪/边缘检测(实际上,我已经尝试了一些,并且在边缘检测方面取得了成功)。那么,假设我有一个像样的边缘检测,我怎么能比较它们呢


我知道这不是一个容易的话题,但我想知道我是否正在打一场失败的仗,是否应该接受并放弃。

这是计算机视觉和模式识别领域一个长期存在的研究挑战,正如@AndrewMao所说,有许多博士论文和学术出版物致力于这个话题。一个基本的问题是您想要什么样的输出:(1)数据库中的单个“匹配”图像,或(2)数据库图像的排序列表,其中匹配的可信度降低。(1) 通常被称为“接近重复检测的图像”(2),更广泛地被称为“基于内容的图像检索”

今天,解决这两个问题的流行方法是(A)在检测到的特征点(例如MSER识别的斑点区域)提取低级描述符(例如最显著的SIFT),(B)应用一些几何验证(例如RANSAC),(C)测量成对图像中剩余描述符之间的距离,例如,通过欧几里德距离,(D)阈值化以保持匹配描述符,以及(e)计算从查询图像到数据库中每个图像的匹配数

可视化,用于以下图像:

匹配将产生(筛选点为绿色,匹配点为蓝色):

这是计算机视觉和模式识别领域一个长期存在的研究挑战,正如@AndrewMao所说,有许多博士论文和学术出版物致力于这一主题。一个基本的问题是您想要什么样的输出:(1)数据库中的单个“匹配”图像,或(2)数据库图像的排序列表,其中匹配的可信度降低。(1) 通常被称为“接近重复检测的图像”(2),更广泛地被称为“基于内容的图像检索”

今天,解决这两个问题的流行方法是(A)在检测到的特征点(例如MSER识别的斑点区域)提取低级描述符(例如最显著的SIFT),(B)应用一些几何验证(例如RANSAC),(C)测量成对图像中剩余描述符之间的距离,例如,通过欧几里德距离,(D)阈值化以保持匹配描述符,以及(e)计算从查询图像到数据库中每个图像的匹配数

可视化,用于以下图像:

匹配将产生(筛选点为绿色,匹配点为蓝色):

这个问题已经够难的了,人们把整个博士论文都花在了有效地解决这个问题上。你的问题应该是你想走多远。几乎所有比较图像的方法都会以某种方式使用直方图——从简单的颜色直方图比较,到边缘/梯度比较(例如HOG:定向梯度直方图)。显然,你需要存储直方图或散列数据以备日后使用,但RDBMs不适合这种情况,你需要一种特殊的结构,可以存储在磁盘上,但这就是我能告诉你的。img1和img2看起来一样-这是故意的吗?@AndrewMao谢谢,我正在读这些文章,希望我能找到一种方法来实现我的目标与他们有一个特殊的结构?为什么RDBMs不合适?即使是少量的图像?(这个问题很难解决,人们已经把整个博士论文都投入到了高效的研究中。你的问题应该是你想走多远。几乎所有比较图像的方法都以某种方式使用直方图——从简单的颜色直方图比较,到边缘/梯度比较(例如,HOG:定向梯度的直方图)。显然,你需要存储直方图或散列数据以备日后使用,但RDBMs不适合这种情况,你需要一种特殊的结构,可以存储在磁盘上,但这就是我能告诉你的。img1和img2看起来一样-这是故意的吗?@AndrewMao谢谢,我正在阅读这些论文,希望我能找到一种实现我目标的方法有一个特殊的结构?为什么RDBMs不合适?即使是对于少量的图像(