Python 基于CNN的图像匹配

Python 基于CNN的图像匹配,python,image,Python,Image,有两组彩色图像:A和B。对于A中的每个图像,我想找到10个最接近的图像,即B中的10个最高分数 此外,A和B中每个图像的大小都不同 请注意,它不是将图像分类为不同的类别,而是查找最相似的图像 此外,还需要一个分数来说明相似性。如果B中有100张图片,那么A中的每张图片应该有100分 我知道CNN可以用来解决这个问题,但我找不到任何信息 做这件事的方法是什么 有什么项目或例子可以遵循吗 非常感谢。基本上你可以做以下几件事 使用CNN在图像上训练自动编码器网络当然,在达到足够的精度后,使用网络的编码

有两组彩色图像:A和B。对于A中的每个图像,我想找到10个最接近的图像,即B中的10个最高分数

此外,A和B中每个图像的大小都不同

请注意,它不是将图像分类为不同的类别,而是查找最相似的图像

此外,还需要一个分数来说明相似性。如果B中有100张图片,那么A中的每张图片应该有100分

我知道CNN可以用来解决这个问题,但我找不到任何信息

做这件事的方法是什么

有什么项目或例子可以遵循吗


非常感谢。

基本上你可以做以下几件事

使用CNN在图像上训练自动编码器网络当然,在达到足够的精度后,使用网络的编码器部分获得表示图像的向量

可以使用向量之间的任何相似性方法来获得前n个最接近的向量

关于你关于不同尺寸的第二点意见,你必须将图像规格化为一个通用尺寸或使用两个不同的网络,用于A和B

如果您只想使用一个网络,这意味着您需要向其提供与输入层dim对应的图像, 因此,您必须对图像的像素进行放气和充气,以将图像大小调整为选定的大小,有多种技术可以做到这一点,每种技术都有其优缺点,其中大多数都与数据丢失有关

例如,您可以将每个2X2块合并为1个像素,您可以将图像裁剪为所需大小,释放其条纹数据,等等。。。 我的建议是首先使用图像库的ResizeAPI,在获得稳定的解决方案后,在调整网络时,尝试其他调整大小的技术


有很多自动编码器的例子,这取决于你使用的框架。。。keras中的一个简单例子是,在你的问题之后,在Google的python图像匹配CNN中排名第二。谢谢你,Ivan。本网站将图像分类为10位数,而不是两组图像。嗯,任务高度相关,因此您可以从那里开始,并根据您的情况调整技术。谢谢您,shahbaf。如何将图像规格化为一个通用大小?如果您的模型架构包括,那么输入可能是可变大小的。排除密集连接的层可能听起来有点叛逆,但是。@Mike,补充了我关于将图像标准化为一个普通大小的答案,希望你会发现它有帮助。感谢MPA和shahaf的帮助。我将接受你的评论。