本文将主要介绍图像分类问题,即给定一张图片,我们来给这张图片打一个标签,标签来自于预先设定的集合,比如{people,cat,dog...}等,这是CV的核心问题,图像分类在实际应用中也有许多变形,而且许多看似无关的问题(比如 object detection, segmentation)最终也可划分为图像分类问题。

彩色图像通常有RGB三个通道,每个通道都是一个二维数组,比如下图即为一张200*150的图像,该图像分为RGB三个通道,所以该图像可用200*150*3 = 90000的一维数组表示,数组每个点的取值为0(黑色)到255(白色)。图像分类即将这个90000维的数组打上标签,比如 dog。

目前图像识别面临的挑战有:

  • Viewpoint variation.   视角的变化
  • Scale variation.  大小缩放
  • Deformation.   一些物体可以随意变形,比如人伸展
  • Occlusion.   目标只有一小部分出现在图像里
  • Illumination conditions. 光线的变化
  • Background clutter. 背景干扰
  • Intra-class variation. 类内的差异,比如各种鸟类大小不一,颜色不一

图像分类的方法,目前主要是机器学习中的监督学习的方法,给定训练数据 {x(i),y(i)} 来训练一个分类器来进行分类,比如KNN算法

KNN算法中有超参数(hyperparameters )需要选个K的取值以及距离的度量(L1还是L2 距离),所以需要对数据进行划分,分别训练集与测试集,这里的测试集是十分宝贵的,用来测试模型的泛化性,而我们又要训练一个准确的模型,这时可以把训练数据进一步切分来进行Cross-validation.以下便是5折交叉验证,通过交叉验证的方法找到最优的模型,进而用测试集来测试模型的泛化能力。

KNN是非常慢的,因为每一次预测都要计算与训练数据集中所有图像的距离,找出 top k,实践KNN时需要注意一下几个问题:

1)预处理数据为0均值与单位方差(图像数据各个维度通常方差与均值都相等,因为像素介于0-255,所以图像可以省去此步骤)

2)高维数据可用PCA

3)若有很多参数,要保证测试集数据足够多,训练数据少得话就交叉验证之,交叉验证的  fold 越多,计算复杂度越高。

4)交叉验证时比如以上的图分了5折,其中用fold1 fold2 fold3 fold5 来训练,fold4 测试得到了最好的模型,这时在测试集测试时,可以不用fold4,把fold4当成burden扔掉。

计算机视觉入门 Intorduction To Computer Vision的更多相关文章

  1. Intorduction To Computer Vision

    本文将主要介绍图像分类问题,即给定一张图片,我们来给这张图片打一个标签,标签来自于预先设定的集合,比如{people,cat,dog...}等,这是CV的核心问题,图像分类在实际应用中也有许多变形,而 ...

  2. 计算机视觉中的边缘检测Edge Detection in Computer Vision

    计算机视觉中的边缘检测   边缘检测是计算机视觉中最重要的概念之一.这是一个很直观的概念,在一个图像上运行图像检测应该只输出边缘,与素描比较相似.我的目标不仅是清晰地解释边缘检测是怎样工作的,同时也提 ...

  3. AI-Azure上的认知服务之Computer Vision(计算机视觉)

    使用 Azure 的计算机视觉服务,开发人员可以访问用于处理图像并返回信息的高级算法. 主要包含如下高级算法: 标记视觉特性Tag visual features 检测对象Detect objects ...

  4. 如何创建Azure Face API和计算机视觉Computer Vision API

    在人工智能技术飞速发展的当前,利用技术手段实现人脸识别.图片识别已经不是什么难事.目前,百度.微软等云计算厂商均推出了人脸识别和计算机视觉的API,其优势在于不需要搭建本地环境,只需要通过网络交互,就 ...

  5. paper 156:专家主页汇总-计算机视觉-computer vision

    持续更新ing~ all *.files come from the author:http://www.cnblogs.com/findumars/p/5009003.html 1 牛人Homepa ...

  6. 【29】带你了解计算机视觉(Computer vision)

    计算机视觉(Computer vision) 计算机视觉是一个飞速发展的一个领域,这多亏了深度学习. 深度学习与计算机视觉可以帮助汽车,查明周围的行人和汽车,并帮助汽车避开它们. 还使得人脸识别技术变 ...

  7. 计算机视觉和人工智能的状态:我们已经走得很远了 The state of Computer Vision and AI: we are really, really far away.

    The picture above is funny. But for me it is also one of those examples that make me sad about the o ...

  8. Computer vision labs

    积累记录一些视觉实验室,方便查找 1.  多伦多大学计算机科学系 2.  普林斯顿大学计算机视觉和机器人实验室 3.  牛津大学Torr Vision Group 4.  伯克利视觉和学习中心 Pro ...

  9. Graph Cut and Its Application in Computer Vision

    Graph Cut and Its Application in Computer Vision 原文出处: http://lincccc.blogspot.tw/2011/04/graph-cut- ...

随机推荐

  1. NetCore第一步:千里之行 始于环境构筑

    今年的6月28号,微软发布了一个正式版本 NetCore.发布的同时,也同时发布了CoreStudio. 这个激动人心的时刻,让跨平台已经不再是什么神话. 让我们一起来开始Core的开发之旅吧. 万事 ...

  2. 虚拟专用网络VPN

    寒假回到家里需要下载论文,怎样才能访问学校图书馆的数据库呢?解决方法是学校图书馆在内网中架设一台VPN服务器,VPN服务器有两块网卡,一块连接内网,一块连接公网.然后就可以通过互联网找到VPN服务器, ...

  3. zoj 2686 Cycle Game 博弈论

    其实规律很好找的,当从某点开始,向某一边找出非0的个数,为奇数时必胜. 代码如下: #include<iostream> #include<cstdio> using name ...

  4. HDU5569/BestCoder Round #63 (div.2) C.matrix DP

    matrix Problem Description Given a matrix with n rows and m columns ( n+m is an odd number ), at fir ...

  5. Java集合框架(二)

    Set Set:无序,不可以重复元素. |--------HashSet:数据结构是哈希表. 线程是非同步的.保证元素唯一性的原理是:判断元素的hashCode值是否相同,如果相同,还会继续判断元素的 ...

  6. Hortworks Hadoop生态圈简介

    Hortworks 作为Apache Hadoop2.0社区的开拓者,构建了一套自己的Hadoop生态圈,包括存储数据的HDFS,资源管理框架YARN,计算模型MAPREDUCE.TEZ等,服务于数据 ...

  7. installation failed with message null

    http://stackoverflow.com/questions/33315753/installation-failed-with-message-null-genymotion-error I ...

  8. ADs系列之通用数据解析服务GAS(即将开源)

    面对成百上千的生产系统用户操作数据接入落地,你是否厌倦了每次机械编写打包解包的代码?对一次性接入多个数据的时候,还要对不同人联调,费时费力,你是否还会手忙脚乱,忙中不断出错?是否当数据出问题了,用的时 ...

  9. soa思想,就是远程服务调用

    dubbo是Java下的一套RPC框架(soa思想)

  10. Java多线程-线程的调度(合并)

    线程的合并的含义就是将几个并行线程的线程合并为一个单线程执行,应用场景是当一个线程必须等待另一个线程执行完毕才能执行时可以使用join方法. join为非静态方法,定义如下:void join(): ...