我有一组274张彩色图像(每幅都是200×150像素)。每一幅图像在视觉上都是不同的。我想要建立一个应用程序,接受一个向上/向下的一个基本图像集的版本,并确定最接近的匹配。
我是一名高级软件工程师,但对图像识别完全陌生。我非常感谢你对从哪里开始的建议。
发布于 2015-12-22 20:58:30
如果你比较非常相似的图像,理论上它就足以计算出两幅图像之间的欧几里德距离。要做到这一点,图像必须具有相同的大小,因此通常需要重新绘制图像(通常,较大的图像是缩小的)。请注意,混叠问题可能在这里发生,所以请注意您的下采样算法。还有一个问题,如果你的图像没有相同的纵横比。
--但是--这在实践中几乎从来没有完成过,因为它非常慢。对于大小为WxH和3个颜色通道的N幅图像,需要进行NxWxHx3比较,这很快就变得不可行(考虑到许多用户可以拥有超过1000幅大小大于1000x1000的图像)。
通常,我们尝试将图像简化为一个更小的数组,该数组更简单地捕获图像信息,称为视觉描述符。例如,获取1024x1024x3图像并将其缩减为128长度向量。这只需要对参考图像计算一次,然后存储在适当的数据结构中。然后,我们可以比较查询图像的描述符和引用图像的描述符。
对于长度为L的描述符,计算N个图像数据集的距离的代价是N x L,而不是原始的N x W x H x 3
因此,问题是找到有效的描述符,这些描述符(a)计算成本低,(b)准确捕获图像。这仍然是一个活跃的研究领域,但我可以提出一些建议:
https://stackoverflow.com/questions/34417244
复制相似问题