1、图像分类


1、图像分类

  • 什么是图像分类任务,它有哪些应用场合?
  • 图像分类任务有哪些难点?
  • 基于规则的方法是否可行?
  • 什么是数据驱动的图像分类范式?
  • 常用的分类任务评价指标是什么?

图像分类任务

——根据图像信息中所反映的不同特征,把不同类别的图像区分开来。

即 从已知的类别标签集合中为给定的输入图片选定一个类别标签

具体应用场景

比如给了一张狗狗图片,我们应该做什么?

  • 给这张图打个标签——狗狗
  • 给了一张植物的图片,给上标签——牵牛花
  • 所以常常用于语言文字不好描述,但是想要知道这个东西是什么的情况

就像我们手机打开,可以拍花识别,并牵引出一连串的链接和特点。

搜索——去了解柴犬的特点

识别——不论是哪个角度,都能辨别出来这个狗狗是柴犬

图像分类任务有哪些难点?

难点——跨越“语义鸿沟”建立像素到语义的映射

  • 视角

  • 光照

  • 人物远近

  • 遮挡

  • 形变

  • 背景杂波(保护色、吉利服)

  • 类内形变(咱都是凳子)

  • 运动模糊

    • 曝光时间很长,一个像素记录了鸟的多个动作信息:

把对应的难点进行拆解,才能逐个击破。

基于规则的方法否可行?

通过硬编码的方式识别猫或其他类

def classify_image( image ):
	#Do something magical here
	return class_label

例如

  • 提取边缘,以角点去比较信息。
  • 那很牛逼的猫都能站着的猫,你能再这样判断吗
  • 所以,通过硬编码识别,是一件非常困难的事情
  • 因为猫的形变太多,不适合。
  • 适合一些的变化不大的:人脸

数据提供的图像分类范式

三步走

  1. 数据集构建
  2. 分类器设计与学习
  3. 分类器决策

数据集

数据集标签的分类

无监督的——有很多数据,但是没有标签,希望从数据里面找到一些规律

有监督的数据集————每个图像都有标签,将来给我新的的图片我就可以从以前的数据里学到,来识别哪个是哪个标签。

我们这里更强调的是有监督的数据集。

数据集构建

也就是通过数据去找规律,也就是一般来说的机器学习。

首先要有数据:

  • 要识别猫,我们要给他标签是猫
  • 要有各种各样的图片和标签
  • 每一个图片都给他一个类别标签
  • 每个都是有标签的,给我一个新的图片,那以后就通过这个去学习分类
  • 然后进行分类器的设计与学习
  • 我要从数据中归纳出规律,把数据模型中位置的参数给填上
  • 最终让这个分类器能够对未知的东西去进行决策,这就成功了

分类器设计与实现的四个环节

  • 图像表示
  • 分类模型:对图像进行预测
    • 不论好坏都会得到一个预测值
  • 损失函数
    • 通过损失值与真实值进行比较
    • 如果不行就去优化算法,然后让这个损失函数个人爬
    • 然后我们就去更新参数,使得模型参数优化
    • 让损失值越来越小,达到一定程度的时候,就正好OK,大功告成。
  • 优化算法

成型以后直接进行分类

图像表示方法

  • 像素表示
    • 我们这节课要讲的呢,就是像素表示
  • 全图特征表示(GIST)【适合城市风景等等大场景的】
    • 因为是全图特征,所以是需要全图的像素参与运算,对于要考虑比较细致的问题,就不适用
  • 局部特征表示(SIFT特征+词袋模型)
    • 从图像中抽取一百个典型的区块
    • 适合细节的。
    • 比如判断一个人发烧了,我们要的应该要什么特征?身高体重吗?还是红白细胞数量?所以如果全部送进去,这个图像就会非常困难的抽取特征。

分类器

  • 近邻分类器
  • 贝叶斯分类器
  • 线性分类器
  • 支撑向量机分类器
  • 神经网络分类器
  • 随机森林
  • Adaboost

学习视觉,也就是学习各种分类器,由于每种都有自己的优势和缺陷,所以要学习各种的原理,以便于打磨,帮助我们改进。

损失函数

  • 0-1损失
  • 多类支撑向量机损失
  • 交叉嫡损失
  • L1损失
  • L2损失

优化方法

一阶方法

  • 梯度下降
  • 随机梯度下降
  • 小批量随机梯度下降

二阶方法

  • 牛顿法
  • BFGS
  • L-BFGS

训练过程

  • 数据集划分
  • 数据预处理
  • 数据增强
    • 让分类器在各个角度看我们的数据样本
  • 欠拟合与过拟合【过拟合:训练得很好,80%、90%成功率,一拉出去就是20%、30% 欠拟合:怎么做都失败】
    • 减小算法复杂度
    • 使用权重正则项
    • 使用droput正则化
  • 超参数调整
  • 模型集成
    • 能不能用多个模型,让这个系统更好一些?

常用的图像分类任务的评价指标

  • 正确率(accuracy) = 分对的样本数/全部样本数
  • 错误率(error rate) = 1-正确率

TOP1与TOP5指标

imgNet大赛,在他们那个数据集上超过了人类,但是他们使用的是TOP5的方式,人类的识别能力是在5%左右,机器的识别力是在3%左右,但是也仅限于是在那个数据集。

时间0:47:37