我有一组274个彩色图像(每个图像为200x150像素)。每个图像在视觉上是不同的我想构建一个应用程序,它接受一组基本图像的上/下缩放版本,并确定最接近的匹配。
我是一名高级软件工程师,但对图像识别来说还是全新的。我真的很感激任何关于从哪里开始的建议。
答案 0 :(得分:1)
如果您要比较非常相似的图像,理论上它足以计算2幅图像之间的欧几里德距离。图像的大小必须与此相同,因此通常需要重新缩放图像才能这样做(通常会缩小较大的图像)。请注意,此处可能会发生aliasing个问题,因此请注意您的downsampling algorithm。如果您的图片没有相同的宽高比,那么也会出现问题。
然而,这几乎从未在实践中完成,因为它非常慢。对于尺寸为WxH和3个颜色通道的N个图像,它需要N×W×H×3比较,这很快变得不可行(考虑到许多用户可以具有超过1000个大小> 1000x1000的图像)。
通常我们会尝试将图像缩小为更小的数组,以便更简单地捕获图像信息,称为visual descriptor。例如,拍摄1024x1024x3图像并将其缩小为128长度矢量。这仅需要为参考图像计算一次,然后存储在适当的数据结构中。然后我们可以将查询图像的描述符与参考图像的描述符进行比较。
计算长度为L的描述符的N个图像数据集的距离的成本则为N x L
而不是原始N x W x H x 3
所以问题在于找到有效的描述符,这些描述符(a)计算成本低廉,(b)准确捕获图像。这仍然是一个活跃的研究领域,但我可以提出一些建议: