Python 3.x 如何判断图像是否是某种东西?

Python 3.x 如何判断图像是否是某种东西?,python-3.x,machine-learning,computer-vision,Python 3.x,Machine Learning,Computer Vision,我有一个经过训练的模型,可以确定图像中是否包含猫或狗。我正在使用支持向量机进行分类。我想要一个新的模型来确定图像是否是鼠标。它不同于第一个分为两类的模型。这个新模型将只返回TRUE或FALSE 我认为我不能使用分类器模型,因为我只有一个类;老鼠。我不打算在第二个模型中使用第一个模型或与之相关的任何东西 最好的方法是什么?如果你已经有了鼠标类,你可以使用监督学习。 当你训练你的模型时,让模型通过定义他这是一个特定的对象是鼠标来学习什么是鼠标,并定义他什么不是鼠标 使用这种方法,您只需要一类鼠标来定

我有一个经过训练的模型,可以确定图像中是否包含猫或狗。我正在使用支持向量机进行分类。我想要一个新的模型来确定图像是否是鼠标。它不同于第一个分为两类的模型。这个新模型将只返回TRUE或FALSE

我认为我不能使用分类器模型,因为我只有一个类;老鼠。我不打算在第二个模型中使用第一个模型或与之相关的任何东西


最好的方法是什么?

如果你已经有了鼠标类,你可以使用监督学习。 当你训练你的模型时,让模型通过定义他这是一个特定的对象是鼠标来学习什么是鼠标,并定义他什么不是鼠标


使用这种方法,您只需要一类鼠标来定义您的模型并“教”他什么是鼠标,然后,如果您希望能够预测图像中是否有鼠标,您的模型将对“鼠标”和“非鼠标”进行分类,这仍然是一个分类问题,将图像分为两类-鼠标和非鼠标

您打算使用的任何分类器都可能需要学习一个边界,以便在n维输入空间中将鼠标图像与非鼠标图像分开

如果你使用神经网络,你可以只使用一个输出神经元,理想情况下,当图像是鼠标时,输出神经元的概率较高,而当图像中没有鼠标时,输出神经元的概率较低。



最好的方法,在研究和工业中似乎有更好的结果的方法是使用神经网络,CNN(更精确地说是卷积网络,尽管线性前向层也可以工作)

从猫对狗到老鼠对老鼠,没有任何变化。仍然是一个分类问题。由于您使用的是支持向量机,我假设您没有太多的数据,也许可以尝试使用迁移学习和resnet模型?这可能会产生好的结果

如果仍然不够,你仍然可以使用SVM分类1-鼠标0-不是鼠标

希望有帮助


最好的

有两种解决问题的方法:

你认为这个问题是两类分类任务。然后使用类中的样本(显示鼠标的图像)和图像不显示鼠标的样本训练分类器。这种方法通常有效。为此,您仍然可以训练支持向量机,或者训练神经网络。如果您只有很少的样本,那么在大多数情况下,使用SVM或神经网络的Transfer学习都很有效。请注意,要应用SVM,必须定义区分特征(如HOG)

这种方法产生的一个问题是为not mouse类选择哪些图像

你认为这个问题是一类分类任务。在这种情况下,您只需要所需类的样本,机器学习模型经过训练,可以识别与类的偏差

有一种经典的方法,比如单类SVM,通过在类的特征向量周围拟合超球面,只对正样本进行训练


如果你想应用神经网络,你可以使用DROCC()

我想在你的原始问题中有两个详细的问题

问题1:

I don't think I can use a classifier model since I have only 1 class - which is the Mouse
实际上,您仍然可以对两个标签使用分类器模型,label=0表示此图像(此实例)不是“鼠标”,label=1表示此图像(此实例)是“鼠标”

在label=0和label=1的实例中进行训练后,分类器将能够输出是否是鼠标的概率

问题2:

And I don't intend to use the first model or anything related to it in the 2nd model
一般来说,这是一个问题,所以答案是一些预训练可以在没有太多实例的情况下对问题有所帮助


但是,请详细说明您的问题,即使用经过猫和狗训练的模型来帮助预测老鼠,我认为它没有用处。

为了训练模型,我需要准备老鼠的图像,并教导模型这些是老鼠。但我不能只准备第二组不是老鼠的图像,对吗?就像我可以把马、房子、鞋子等任何东西的图像放进去一样,对吗?你能用谷歌搜索其他动物的图像吗?然后将它们标记为0-非老鼠?这是否意味着我可以使用鞋子或钢笔的照片?把它贴上不是鼠标的标签?我知道你的意思,但不应该有比这更好的?我的想法是,我的数据集只包含老鼠的图像和训练模型。然后,模型会给我一个概率(单位%),输入图像是鼠标,而不是将其分类为鼠标或非鼠标。我对这个神经网络感兴趣,它看起来像我想做的,而不是训练分类器模型。我如何继续建造这个?我不知道下一步该怎么办。有没有开始的链接?我不知道你知道多少。但是,假设您有一个标记的数据集(标记为鼠标/非鼠标的图像),您可以开始构建卷积神经网络。这种类型的神经网络最适用于图像。为了获得理论知识,这门课程帮助了我很多-。但也有一些博客上有关于图像分类的文章。另外,决定是否使用pytorch、tensorflow或keras框架来构建CNN。Pytorch和keras更容易学习。