使用迁移学习的单类数据集进行图像分类

Posted

技术标签:

【中文标题】使用迁移学习的单类数据集进行图像分类【英文标题】:Image Classification using Single Class Dataset using Transfer Learning 【发布时间】:2020-03-24 09:14:13 【问题描述】:

我只有大约 1000 张车辆图像。我需要训练一个可以识别图像是车辆还是非车辆的模型。我没有非车辆的数据集,因为它可能是车辆以外的任何东西。

我想最好的方法是应用迁移学习。我正在尝试在预训练的 VGG19 模型上训练数据。但是,我仍然不知道如何训练一个只有车辆图像而没有任何非车辆图像的模型。我无法对其进行分类。

我是 ML 的新手,总的来说,任何基于实际实现的解决方案都将受到高度赞赏。

【问题讨论】:

【参考方案1】:

这是一个二元分类问题:输入是否为车辆。

如果您是 ML 新手,我建议您在开始使用卷积神经网络 (CNN) 之前开始实施基本的二元分类器,例如逻辑回归、支持向量机。 我正在为使用不同算法的二进制分类问题实现提供一些链接。我希望这会有所帮助。

逻辑回归:https://github.com/JB1984/Logistic-Regression-Cat-Classifier

SVM:https://github.com/Witsung/SVM-Fruit-Image-Classifier

CNN:https://github.com/A-Jatin/CNN-implementation-for-binary-image-classification

【讨论】:

【参考方案2】:

关于迁移学习方法,您是对的。看看这篇文章,它正是关于使用迁移学习从多类到二分类 - https://medium.com/@mandygu/seefood-creating-a-binary-classifier-using-transfer-learning-da751db7cf9c

【讨论】:

【参考方案3】:

您可以尝试使用预训练模型并获取输出。您可能需要应用降维,例如PCA,以获得更易于管理的大小输入。之后,您可以训练新奇检测模型来识别输出是否与您的训练集不同。

参考这个例子:https://github.com/J-Yash/Hotdog-Not-Hotdog

希望这会有所帮助。

【讨论】:

以上是关于使用迁移学习的单类数据集进行图像分类的主要内容,如果未能解决你的问题,请参考以下文章

PyTorch深度学习实战 | 搭建卷积神经网络进行图像分类与图像风格迁移

图像分类猫狗分类实战—基于pytorch框架的迁移学习(ResNet50模型实现分类实战)

深度学习之图像分类ResNet50学习

毕业设计:深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

PaddlePaddle迁移学习做图像分类,数十种高精度模型任意切换

深度学习keras + tensorflow 实现猫和狗图像分类