在matlab中匹配一对多图像?

信息处理 图像处理 计算机视觉 matlab
2022-02-08 17:51:07

我有 50 个人的数据库,它是 250 张图像(5 张图像/人),我需要在图像之间执行一对多的匹配以识别人。

所以,我将图像分为两部分(一个用于训练,一个用于测试)

例如,如果我们说第一个文件夹包含 100 张图片(2 张图片/人),第二个包含 150 张图片(3 张图片/人)

这个划分正确吗?如果正确,我如何将文件夹 1 中的每个图像与文件夹 2 中的所有图像(将包含 3 个相似图像)进行匹配,并在从文件夹 2(给出最大匹配百分比)并最终返回此名称之后获得更好的结果图片 ?

我需要在 matlab 中执行此操作

拜托,我需要很多建议和咨询,任何人都在这个领域有很好的知识。

这是我的图像示例:

在此处输入图像描述

问候

1个回答

每人5张图片真的很少。在这种情况下,尽可能多地为训练集使用数据是有意义的。这意味着每个人随机选择 4 张图像进行训练,一张进行测试。您应该多次使用此过程,以便拥有多个训练集/测试集组合。

如果您可以访问 Matlab 的统计工具箱,请查看cvpartition功能。

如果没有,那么您应该对所有人进行循环,并为每个人使用该randperm函数生成一个随机打乱的图像索引列表。然后你可以把第一个索引对应的图像添加到你的测试集中,剩下的放到你的训练集中。或者,您可以将 2 张图像放入测试集中,或者您喜欢的任意数量。一般来说,训练集应该大于测试集。

您应该多次生成训练集和测试集,每次调用rng不同的值,以重置随机数生成器的种子。如果您生成 10 个训练/测试集对,那么您将评估您的算法 10 次并获得 10 个准确度值。您可以从中计算误差线,或者您可以使用假设检验与其他算法进行比较。

至于如何对图像进行实际分类,这是一个非常独立的问题,答案取决于图像中的内容。您发布的那张图片上到底是什么?