我正在做这个项目。该项目的一部分涉及多个测试运行,在测试过程中获取应用程序窗口的截图。现在,我们必须确保连续运行之间的截图匹配(除非一些允许的变化)。这些更改可能是像文件名、日期、不同的标识等在应用程序窗口中的事情,我们正在拍摄截图。
我有一个好主意,可以自动完成这个检查的过程。本质上是我的想法。如果我能从数学上量化N-1运行和N-运行的屏幕截图之间的差异,我可以创建一个二进制标记数据集,该数据集将某种类型的特征向量映射到标签(0表示pass,1表示失败,如果图像不完全匹配)。所有这些的原因都是因为我贴上标签的数据能够帮助模型理解什么程度的变化是可以接受的,因为有很多种是可以接受的。
现在,让我说,我可以获得很多数据,我已经仔细地贴上标签,以千计。到目前为止,我已经尝试使用opencv中的SIFT,使用keypoint匹配来确定图像之间的相似性评分。但这不是一个聪明的学习过程。有什么方法可以从SIFT中获取一些信息并将其用作数据集中的x值吗?
以下是我的问题:
,
耽误您时间,实在对不起!
发布于 2020-12-15 04:26:31
问题中提出的方法是这样的-
reasonable)
)
我并不完全相信这是否一个好办法。假设您创建了带有SIFT特性的初始分类器。然后您将使用这些数据来训练NN。但是这些数据肯定会有很多错误的标签。因为如果它没有很多错误的标签,是什么阻止你使用原来的基于SIFT的分类器作为你的最终解决方案?
那么,如果你的SIFT分类是好的,为什么还要训练一个NN呢?另一方面,如果它是坏的,你是提供了许多错误的标签数据给神经网络进行培训。我认为后者可能是个坏主意。我说可能是因为错误的标签可能只是鼓励神经网络更好地推广,但这需要大量的数据,我想。
另一种看法是,假设你的初始分类器的准确率是90%。这可能是神经网络性能的上限,当您讨论使用这些数据进行训练时,您会看到这一点。
你说你的第一个方法的问题是‘这不是一个聪明的学习过程’。我认为这是错误的做法,认为前者总是不如后者。SIFT是一个强大的工具,可以解决许多问题,而不是所有的‘黑盒’的神经网络。如果使用SIFT能够以足够的精度解决这个问题,我认为采用基于学习的方法并不是可行的方法,因为同样地,基于学习的方法并不一定优于SIFT。
但是,如果SIFT方法没有给出足够好的结果,那么一定要开始考虑NN的内容,但是在这一点上,使用“坏”方法来标记数据可能是个坏主意。
另外,我认为你可能低估了这方面所需的数据量。你提到了成千上万的数据,但说实话,不是很多。我想你还需要更多。
有一种方法我会想办法来代替-
image.
。
根据您的应用程序,这可能会给您足够好的结果。
如果不是,如果您真的希望您的解决方案是基于NN的,我会说您需要手动标记数据集,而不是使用SIFT。
https://stackoverflow.com/questions/65299311
复制相似问题