如果两个图像代表同一个对象,如果对象的图片来自OpenCV中的两个不同来源,如何进行比较?

2024-09-29 00:12:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

如何使用OpenCV检测到这两个图像代表的是同一个对象,即汽车?在

我尝试过模板匹配,特征匹配(ORB)等,但这些都不起作用,并没有提供令人满意的结果。在


Tags: 对象图像模板代表互联网特征opencv汽车
2条回答

SIFT特征匹配可能比ORB产生更好的结果。但是,这里的主要问题是每种类型的图像只有一个(来自移动摄像头和互联网)。如果你有这个车型的大量图像,那么你可以使用这些图像训练一个机器学习系统。稍后,您可以向机器学习系统提交一个汽车的图像,机器学习系统识别它的几率要高得多。在

从机器学习的角度来看,只使用一个图像作为主图像并将另一个图像与之匹配,就相当于只使用一个手写字母“a”来教孩子字母“a”,并期望他/她识别任何人写的手写字母“a”。在

想一想如何用数学的方法来描述汽车的特性,这样每辆车都是不同的。也许每辆车都有不同尺寸的车轮?也许从车门把手到侧窗底部的距离是每辆车的独特之处?也许每辆车的前车窗与后车窗宽度的比例就是这辆车的一个特点?在

对于这些问题,你可能无法100%自信地回答“是”。但是,你所能做的,就是把这些组合成一个多维特征向量并进行分类。在

现在,这里最关键的部分是,既然您在进行手动特性描述,那么您需要注意做好工作并测试每一步。例如,您需要设计具有缩放和透视不变性的特性。在这里,我推荐阅读face detection是如何设计来满足这个需求的。在

机器学习会是更好的解决方案吗?很大程度上取决于两件事。首先,你打算在算法中加入什么样的数据。其次,你能控制好这个过程。在

今天大多数人没有意识到,机器学习并不是解决所有问题的神奇方法。它是一种工具,作为每一种工具,它都需要适当的处理才能提供结果。如果我给你建议的话,我会说你还不能很好地处理这件事。在

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

对不起,这里没有捷径。你需要做你的家庭作业才能让它发挥作用。但别让那吓到你。这是一个伟大的项目。祝你好运!在

相关问题 更多 >