简单的图像分类练习

来源:互联网 发布:推荐软件推荐 知乎 编辑:程序博客网 时间:2024/06/05 16:03

 本文来自牛津大学一个团队的练习,自己做过之后写的一些笔记。原文:Oxford Visual Geometry Group 计算机视觉练习。
 
 通过图像的内容将其进行分类,比如,判断图片中是否有飞机。这可以应用在检索中,或者给数据库中的图片加标签。
 内容如下:
 - 根据五类物体(飞机、摩托车、人、马、其他背景),训练一个分类器;
  - 用P-R曲线评估训练好的分类器;

1、数据的预处理

  作者提供了图片数据集,并提前为每幅图计算好了描述子。
  数据集
  
  一幅图片可以用一个单精度的向量表示,一般把得到描述子向量的过程称为编码,得到的向量称为一段码字。这样做的好处是不同的图像可以组成一个向量矩阵(向量长度相同),通过欧氏距离来比较,再用这些矩阵来训练一个分类器。
  文章采用了卷积神经网络(CNN)来提取图像的描述向量,构建CNN描述子的过程如下:
  编码
  这个网络已经在ImageNet数据集上训练好了,可以直接使用(所以我们可以暂时不用管如何构建CNN)。对于一幅新的图片,将其作为网络的输入,可以在中间的几个卷积层得到512维的向量和最后的全连接层得到128维的向量。

2、用包含摩托车的图片集训练分类器

  将包含摩托车的图片作为正例,标记为1;其他背景图片作为反例,标记为-1;使用支持向量机作为分类器。
  先对数据进行归一化,再用函数trainLinearSVM(histograms, labels, C)训练,得到线性的支持向量机模型。其中histograms是包含120张摩托车图片和1019张其他背景的图片的向量矩阵,labels是标记值,相当于监督信号,说明每张图是摩托车或者其他背景。最后将模型结果计算一个分数并显示。
  这里写图片描述

3、评估分类器

  使用P-R曲线(Precision-Recall curve)评估分类器的好坏。
  P-RCurve
  P-R曲线是从高到低变化分类器的阈值,这里正例是1,反例是-1,阈值则从1到-1变化,每取一个值就画出相应的查全率和查准率。一般我们希望查全率和查准率都很高,所以曲线越接近(1,1)越好。
  这里写图片描述
  
  训练集做完之后,接着再用测试机进行测试。
  这里写图片描述

这里写图片描述

0 0
原创粉丝点击