图像分类

参考:http://cs231n.github.io/classification/

图像分类(Image Classification),是给输入图像赋予一个已知类别标签。图像分类是计算机视觉(Computer Vision)问题中一个基本问题,也是很要的一个问题。诸如物体检测、图像分割等可以利用图像分类来解决。

图像分类问题的主要难点在以下几个方面:

  • 视角差异(viewpoint variation):拍摄角度
  • 比例差异(Scale variation):缩放比例
  • 形变(Deformation):主要为非刚性形变(non-rigid deformation)
  • 遮挡(Occlusion):局部遮挡
  • 光照差异(Illumination condition):光线情况不同
  • 背景噪声(Background clutter):背景与前景接近
  • 类内差异(intra-class variance):类内差异大于类间差异


(ref: http://cs231n.github.io/assets/challenges.jpeg)

数据驱动的方法(data-driven approach):
从机器学习角度讲,训练数据(training data)为学习过程提供先验知识。

解决图像分类流程(pipeline):

  • 输入(input):包括图像和类别标签;
  • 学习(learning):学习分类器(classifier)或是模型(model)进而预测输入图像标签;
  • 评价(evaluation):比较预测标签和实际标签,评价分类器(模型)的性能。

最邻近分类(Nearest Neighbor Classifier):
(只是为了能够直观了解图像分类问题)
根据已有数据及标签(training data),预测输入图像(input image)为其最邻近图像的标签。进一步扩展可为K邻近方法,K邻接相对更加常用。相对而言,kNN在特征维度较低的时候,能力比较强的。

对于kNN而言有两个问题不好确定:
第一个就是k值的选择。K值较小时,对噪声敏感;k值较大,会削弱对decision boundary附近样本的判别能力。最简单的方法就是交叉验证,在验证集尝试不同取值;还有一些参考文件中使用\sqrt(N),其中N是每一类中样本的平均数(很明显对数据量很大的情况不适用)。
第二个就是对距离量度(distance metric)的选择。比较常用的是L1和L2距离。但是对一些问题,需要进行距离量度学习(distance metric learning)。比较常用的学习方法有LMNN(Large Margin Nearest Neighbor),ITML(Information-Theoretic Metric Learning)

关于使用kNN的一个小节:

  • 对特征做正规化(normalization),即零均值、单位方差;
  • 特征维数很高时降维,如PCA等;
  • 在训练集上划分验证集;
  • 交叉验证不同的k值及距离量度;
  • 时间开销过大时考虑Approximate Nearest Neighbor (FLANN)代替(以降低准确率为代价)。

延伸阅读:
A Few Useful Things to Know about Machine Learning,英文

机器学习那些事,中文

Recognizing and Learning Object Categories, ICCV2005的一个short course。

CNN for Visual Recognition (02)的更多相关文章

  1. CNN for Visual Recognition (01)

    CS231n: Convolutional Neural Networks for Visual Recognitionhttp://vision.stanford.edu/teaching/cs23 ...

  2. CNN for Visual Recognition (assignment1_Q1)

    参考:http://cs231n.github.io/assignment1/ Q1: k-Nearest Neighbor classifier (30 points) import numpy a ...

  3. 论文笔记之: Bilinear CNN Models for Fine-grained Visual Recognition

    Bilinear CNN Models for Fine-grained Visual Recognition CVPR 2015 本文提出了一种双线性模型( bilinear models),一种识 ...

  4. 大规模视觉识别挑战赛ILSVRC2015各团队结果和方法 Large Scale Visual Recognition Challenge 2015

    Large Scale Visual Recognition Challenge 2015 (ILSVRC2015) Legend: Yellow background = winner in thi ...

  5. 【论文阅读】Deep Mixture of Diverse Experts for Large-Scale Visual Recognition

    导读: 本文为论文<Deep Mixture of Diverse Experts for Large-Scale Visual Recognition>的阅读总结.目的是做大规模图像分类 ...

  6. 目标检测--Spatial pyramid pooling in deep convolutional networks for visual recognition(PAMI, 2015)

    Spatial pyramid pooling in deep convolutional networks for visual recognition 作者: Kaiming He, Xiangy ...

  7. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition Kaiming He, Xiangyu Zh ...

  8. Convolutional Neural Networks for Visual Recognition 1

    Introduction 这是斯坦福计算机视觉大牛李菲菲最新开设的一门关于deep learning在计算机视觉领域的相关应用的课程.这个课程重点介绍了deep learning里的一种比较流行的模型 ...

  9. 【CV论文阅读】+【搬运工】LocNet: Improving Localization Accuracy for Object Detection + A Theoretical analysis of feature pooling in Visual Recognition

    论文的关注点在于如何提高bounding box的定位,使用的是概率的预测形式,模型的基础是region proposal.论文提出一个locNet的深度网络,不在依赖于回归方程.论文中提到locne ...

随机推荐

  1. 队列--Redis+Log4Net

    队列--Redis+Log4Net Redis简介 Redis是一个开源的,使用C语言编写,面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景.Redi ...

  2. Lua的多任务机制——协程(coroutine)

    并发是现实世界的本质特征,而聪明的计算机科学家用来模拟并发的技术手段便是多任务机制.大致上有这么两种多任务技术,一种是抢占式多任务(preemptive multitasking),它让操作系统来决定 ...

  3. MVC自定义分页

    MVC自定义分页 之前我发表了一篇MVC无刷新分页的文章,里面用的是MvcPager控件,但是那个受那个控件限制,传值只能用PagedList,各方面都受到了限制,自由度不够高,现在还是做MVC无刷新 ...

  4. QT中出现“无法解析的外部符号”错误

    串口中我要把奇偶校验等enum数据对应写到一个ComboBox中去,所以需要在我的Settings类中加入一个函数用来转换. 这里,我首先在settings.h的class Settings中加上对该 ...

  5. Windows在结构FTPserver

    同Windows8 案件,结构介绍 FTPserver脚步: 1.为Windows开启FTP功能:控制面板->程序->启用或关闭Windows功能.将下图所看到的的复选框选中 waterm ...

  6. leetcode第24题--Reverse Nodes in k-Group

    problem: Given a linked list, reverse the nodes of a linked list k at a time and return its modified ...

  7. Knockout简单用法

    Knockout简单用法 在最近做的一个项目中,页面数据全部通过js ajax调用webapi接口获取,也就是说页面的数据全部使用javascript脚本填充,这就想到了使用一个MVVM模式的js框架 ...

  8. 开源文档管理系统LogicalDOC测试报告---安装篇

    开源文档管理系统LogicalDOC测试报告---安装篇 分类: Linux2011-06-22 15:40 7436人阅读 评论(3) 收藏 举报 文档管理测试mysql数据库installerja ...

  9. QTP知识总结(一)

    QTP知识总结(一) (2010-12-22 16:30:41) 转载▼ 标签: 杂谈 分类: QTP File menu Process guidance management,View > ...

  10. 利用自定义的AuthenticationFilter实现Basic认证

    [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证   很多情况下目标Action方法都要求在一个安全上下文中被执行,这里所谓的安全上下文主要指的是当前 ...