专栏首页深度学习和计算机视觉干货|变成计算机视觉大师,需要经历的几个阶段?

干货|变成计算机视觉大师,需要经历的几个阶段?

计算机视觉(Computer vision)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,用计算机处理成更适合人眼观察或进行仪器检测的图像。

学习和运算能让机器能够更好的理解图片环境,并且建立具有真正智能的视觉系统。当下环境中存在着大量的图片和视频内容,这些内容亟需学者们理解并在其中找出模式,来揭示那些我们以前不曾注意过的细节。

计算机视觉的实现基本过程为:计算机从图片中生成数学模型➡计算机图形在模型中对图像进行绘制➡然后在图像处理过程中将其作为输入➡另外给出处理图像作为输出

计算机视觉的理念在某些方面其实与很多概念有部分重叠,包括:人工智能、数字图像处理、机器学习、深度学习、模式识别、概率图模型、科学计算以及一系列的数学计算等。

因此,你可以将本文看成是深入这个领域研究的第一步。本文将尽量包涵到尽可能多的内容,但是可能仍然会存在一些较为复杂的主题,也有可能存在某些遗漏之处,敬请见谅。

第一步

背景

通常来说,你应该具有一点相关的学术背景,比如上过有关概率学、统计学、线性代数、微积分(微分与积分)等相关课程,对矩阵计算有一定了解更好。另外,从我的经验来看如果你对数字信号处理有了解的话,在以后对于概念的理解来说会更加容易。

在实现层面来说,你最好能够会用MATLAB或者Python中的一种,一定要记住的是计算机视觉几乎全部与计算机编程有关。

你也可以在Coursera上选修《概率绘图模型》一课,这门课程相对较难(讲得比较深入),或者在学习一段时间之后再对其进行了解。

第二步

数字图像处理

观看来自杜克大学的Guillermo Sapiro所教授的课程——《图像和视频处理:从火星到好莱坞Image and Video Processing: From Mars to Hollywood with a Stop at the Hospital》,该课程所提供的教学大纲每章都是独立的且包涵大量的练习,你可以在coursera和YouTube上找到相关的课程视频信息。

另外你可以看下Gonzalez与Woods编写的《数字图像处理(Digital Image Processing)》一书,使用MATLAB来运行其中所提到的范例,相信一定会有所获。

第三步

计算机视觉

一旦学习完有关数字图像处理有关内容,接下来应该了解相关的数学模型在各种图像和视频内容中的应用方法。来自佛罗里达大学的Mubarak Shah教授在计算机视觉方面的课程可以作为一门很好的入门课程,其涵盖了几乎所有的基础概念。

观看这些影片的同时,可以学习Gatech的James Hays教授的计算机视觉项目课程所使用的概念和算法,这些练习也都是基于MATLAB的。千万不要跳过这些练习,只有在真正的练习过程中才会对这些算法和公式有更深入的了解。

第四步

高级计算机视觉

如果你认真学习了前三步中的内容,现在可以进入到高级计算机视觉相关学习了。

来自巴黎中央理工学院的Nikos Paragios和Pawan Kumar讲授了一门人工视觉中的离散推理(Discrete Inference in Artificial Vision)课程,它能提供相关的概率图形模型和计算机视觉相关的大量数学知识。

到现在这一步来看就比较有趣了,这门课程一定能让你感受到用简单模型构筑机器视觉系统有多么复杂。学完这门课程的话,在接触学术论文之前又迈进一大步。

第五步

引入Python和开源框架

这一步我们要接触到Python编程语言。

就Python而言有许多像 OpenCV、PIL、vlfeat这样的相关扩展包,现在就是将这些扩展包运用到你的项目中的最好时机。因为如果有其他的开源框架存在的话,没有必要从头开始来编写一切内容。

如果需要参考资料的话可以考虑《使用Python对计算机视觉进行编程 Programming Computer Vision with Python》,使用这本书就够了。你可以动手去尝试下,看看MATLAB和Python结合的话如何来实现你的算法。

第六步

机器学习与CovNets(卷积神经网络)

有关如何从头开始机器学习的资料实在太多,你可以从在网上查找到大量相关教程。

从现在开始最好一直使用Python进行编程,可以看下《使用Python建立机器学习系统——Building Machine Learning Systems with Python》和《Python机器学习——Python Machine Learning》这两本书。

目前深度学习正大行其道,可以试着学习卷积神经网络在计算机视觉中的应用( Computer Vision: the use of CovNets),在此推荐斯坦福的CS231n课程:针对视觉识别的卷积神经网络。

第七步

如何才能更进一步

行文至此,你可能会觉得已经讲了太多的内容,需要学的已经太多。但是,你还可以进一步进行探索研究。

其中一个方法是看看由多伦多大学的Sanja Fidler和James Hays所举行的一系列研讨会课程,能帮助你对当下计算机视觉研究方向的最新概念有所理解。

另一种即跟着 CVPR、ICCV、 ECCV、 BMVC这些顶级学术会议的相关学术论文,通过会上的研讨会、主旨演讲以及tutorial等日程一定能学到不少知识。

如果你按照步骤一步步完成所有的学习任务,届时你将大概了解计算机视觉中有关滤波器、特征检测、描述、相机模型、追踪器的历史,另外还学习到分割和识别、神经网络和深度学习的最新进展。

希望本文能帮助你在计算机视觉领域走得更远,学习得更加深入。

本文分享自微信公众号 - 小白学视觉(NoobCV),作者:大卫狂舞

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 计算机视觉新手指南

    通过计算机或手机等机器观察周围环境的方法称为计算机视觉。模拟人眼的严峻工作可以追溯到50年代,我们已经在这个领域走了很长一段路。计算机视觉已经通过不同的电子商务...

    小白学视觉
  • 开发彩色机器视觉系统必须考虑的十个问题

    在为你的产品开发最适合的机器视觉系统时,需要考虑很多因素,以下列出开发过程中需要考虑的一些问题:

    小白学视觉
  • 3D视觉技术在机器人抓取作业中的应用实例

    摘要:近年来,机器人自动化领域越来越多地应用3D视觉技术对目标物体进行定位。本文主要研究3D视觉技术在机器人抓取作业中的应用,总结了3D视觉技术在识别、定位物体...

    小白学视觉
  • 从计算机视觉的小白变为大神,你需要经历这七个阶段

    如果想要机器能够进行思考,我们需要先教会它们去看。 李飞飞——Director of Stanford AI Lab and Stanford Vision...

    AI科技评论
  • Python从入门到熟练(4):基础数据类型

    就像一个盒子(或者容器),可以通过使用定义变量的方式,开辟一块内存空间存储数据,定义变量之后使用变量名调用数据。

    用户3578099
  • NameError: name 'xrange' is not defined

    于小勇
  • JS,PHP,Python,Java对JSON数据的处理

    现在只要编写接口,接口调用,大家都绕不过JSON,各种编程语言里面都有对JSON数据的处理,今天用代码对比下JS,PHP,Python,Java对JSON数据的...

    酒馆丁老师
  • 使用 Bitbucket 流水线创建最简单的 CI

    最近我写了一篇关于 CI 和 CD 之间核心区别的文章,我觉得是时候把这些理论运用到实际当中了。

    LinuxSuRen
  • 2018年最受欢迎Python机器学习库介绍

    IT故事会
  • 程序员大牛必备的装逼神器

    一个牛逼的程序员,除了有牛逼的技术,还要有高逼格的风格,说白了,就和人一样,单是内在美还不行,必须外表也要美,就好比,一个乞丐,他内在美,但是全身臭气熏天,和一...

    一墨编程学习

扫码关注云+社区

领取腾讯云代金券