图像分类 | 深度学习PK传统机器学习

本文对比了深度学习(CNN、迁移学习)与传统机器学习(KNN、SVM、BP神经网络)在图像分类任务中的表现。实验结果显示,尽管深度学习存在过拟合问题,但其性能仍优于传统方法。尤其是迁移学习,能在短时间内达到高精度,解决了过拟合和小数据集问题。
摘要由CSDN通过智能技术生成

原文:Image Classification in 5 Methods
作者:Shiyu Mou
翻译:何冰心

图像分类,顾名思义,是一个输入图像,输出对该图像内容分类的描述的问题。它是计算机视觉的核心,实际应用广泛。

图像分类的传统方法是特征描述及检测,这类传统方法可能对于一些简单的图像分类是有效的,但由于实际情况非常复杂,传统的分类方法不堪重负。现在,我们不再试图用代码来描述每一个图像类别,决定转而使用机器学习的方法处理图像分类问题。

图片描述

目前,许多研究者使用CNN等深度学习模型进行图像分类;另外,经典的KNN和SVM算法也取得不错的结果。然而,我们似乎无法断言,哪种方法对于图像分来问题效果最佳。

图片描述

本项目中,我们做了一些有意思的事情:

  1. 将业内普遍用于图像分类的CNN和迁移学习算法与KNN,SVM,BP神经网络进行比较。
  2. 获取深度学习经验。
  3. 探索谷歌机器学习框架TensorFlow。

下面是具体实施细节。


系统设计


在本项目中,用于实验的5种算法为KNN、SVM、BP神经网络、CNN以及迁移学习。我们采用如下三种方式进行实验

  1. KNN、SVM、BP神经网络是我们在学校能够学到的。功能强大而且易部署。所以第一步,我们主要使用sklearn实现KNN,SVM,和BP神经网络。
  2. 由于传统的多层感知机模型在图像识别方面效果甚佳,但由于其节点间的全连接模式对于其延展性造成了阻碍,因此对于高分辨率的图像,识别率不是很理想。所以这一步,我们用Google TensorFlow框架构建CNN。
  3. 对于已经预训练过的深度神经网络Inception V3进行重训练。Inception V3由TensorFlow提供,使用ImageNet自2012年以来的数据进行训练。ImageNet是计算机视觉领域一个经典挑战,参赛者试图用模型将全部图像放至1000个分类中。为了要重新训练已经预训练好的模型,我们必须保证我们自己的数据集没有被预训练过。

实施


第一种方法:使用sklearn预处理数据以及实现KNN,SVM和BP神经网络。

  • 步骤1,使用openCV包,定义2个预处理函数,分别是图像特征向量(用来调整图像大小并将图像扁平化成一系列行像素)和提取颜色直方图(使用cv2.normalize从HSV色域中提取一个3D颜色直方图并做平滑处理)。
  • 步骤2,构造参数。由于我们试图在整个数据集以及具有不同类别数目的子数据集上进行性能测试,所以我们把各个数据集看作为参数,以便进行实验分析。另外,我们
  • 2
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值