我们要设计一个系统来高效地发现 近似重复(在相同的站点或非常 类似的场景。请参阅以下两个示例图像。) 大型数据库(即Flickr),包含大约N个用户提供的图像。 (N~ = 2.5亿)。给定数据库中的图像,系统需要 显示数据库中的前K个近似重复图像及其 相应的近似重复分数。你被允许计算 近乎重复的相似性离线。
(1)什么可能是功能表示的好候选人 图像及其相应的距离(或相似度)度量?为什么呢?
(2)计算所有成对的时间复杂度是多少 图像数据库中的相似之处?任何加速的算法 近似重复检测(例如,滤除不相关的图像) 首先是低成本的图像相似度量)?可能是什么 您提出的方法对减少时间复杂度的影响? 对准确性的任何权衡?
(3)使用您提出的算法,可能是估计的时间 如果将新图像插入数据库(N个图像)的复杂性?
答案 0 :(得分:0)
我们可以在两个不同的部分划分完整的问题,第一部分将处理匹配和最近的会面图像,第二部分将处理时间复杂性和加速系统。
1)最近见面图像的可能性取决于所有可用图像的向量和匹配率,然后质疑为什么向量,因为当我们计算图像比较时,这是我们可以相对选择的第一件事。
2)在进入成对分区之前,我相信巨大数据的分块将是一个很好的,然后pic相似的对计算。但是现在我们需要记住的一点是,如果我们对一个图像进行峰值并对另一个图像进行峰值进行比较,那么它将是需要处理第二个候选图像的复杂算法或标准。
这两种算法在需要比较的行业中广泛使用,并且易于使用matlab和Open-CV(java,c / c ++)实现。现在指出我们如何加速这个完整的任务,我认为实现完整系统的最佳方法是使用分布式系统,并且可以使用Hadoop,Aka等框架工作轻松实现,这也将为您提供选择平台的自由感觉。
算法参考: Scale-invariant feature transform (Keypoint Matching)和 Histogram matching
希望这会有所帮助。