如何比较如果对象的图片属于两个不同的来源 - 在OpenCV中,是否表示两个表示相同对象的图像



假设我有一张从移动相机拍摄的汽车的图像,我还有另一张从互联网下载的汽车的图像。(为简单起见,请假设这两个图像都包含同一辆汽车的相同侧视图投影。)

如何检测两个图像都代表同一对象,即使用OpenCV?

在这种情况下

我尝试了模板匹配,功能匹配(ORB)等

筛分功能匹配可能会产生比ORB更好的结果。但是,这里的主要问题是您只有每种类型的图像(来自移动摄像机和互联网。如果您有大量的汽车模型图像,那么您可以使用这些图像训练机器学习系统后来,您可以将汽车的一张图像提交给机器学习系统,并且机器学习系统的可能性更高。

从机器学习的角度来看,只使用一个图像作为主人,而另一图像与教给孩子的字母" a"仅使用一个手写字母" a",并期望他/她识别任何人写的任何手写字母" a"。

考虑如何数学上描述汽车的功能,以使每辆车都不同。也许每辆车都有不同的车轮?也许从门把手到侧窗底部的距离是每辆车的独特特征?也许每辆车的前窗与后侧窗的宽度的比例是那辆车的单个功能?

您可能无法100%信心回答这些问题。但是,您可以做的是将它们组合到多维特征向量并执行分类中。

现在,这里的关键部分是,由于您正在进行手动功能描述,因此您需要照顾出出色的工作并测试每一步。例如,您需要设计将是缩放和视角不变的功能。在这里,我建议阅读有关面部检测是如何设计为满足这一要求的。

机器学习会成为更好的解决方案吗?很大程度上取决于两件事。首先,您打算在算法上投放哪种数据。其次,您如何控制过程。

今天大多数人都没有意识到的是,机器学习不是对每个问题的神奇解决方案。它是一种工具,由于每个工具都需要适当的处理来提供结果。如果我要给您建议,我会说您还不能很好地处理。

我的建议:熟悉基本特征提取和一般图像处理算法。边缘检测(Canny,Sobel),轮廓查找,形状描述,hough变换,形态操作,掩盖等。没有触手可及的情况,我在这种情况下说,即使是机器学习也不会拯救您。

很抱歉:这里没有快捷方式。您需要做功课才能使这项工作。但是不要让你吓到你。这是一个很棒的项目。祝你好运!

最新更新