本文主要是介绍计算机视觉-------既然选择远方,愿你风雨兼程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
01 掌握好相应的基础能力
计算机视觉的理念其实与很多概念有部分重叠,包括:人工智能、数字图像处理、机器学习、深度学习、模式识别、概率图模型、科学计算以及一系列的数学计算等。所以在入门CV之前,同学们最好对基础的学术课程都有对应的了解,比如数学方面的微积分,概率学,统计学,线性代数这几门基础课程。
在编程语言方面,Matlab,Python,C++,最好熟悉其中2种,因为计算机视觉离开计算机编程是完全行不通的
02 需要的专业工具
工欲善其事,必先利其器。对于想要学好计算机视觉的同学来说,一个专业的工具,绝对是助攻的不二神器。
OpenCV(开源计算机视觉库)是一个非常强大的学习资料库,包括了计算机视觉,模式识别,图像处理等许多基本算法。
它免费提供给学术和商业用途,有C++,C,Python和java接口,支持Windows、Linux、Mac OS、iOS和Android。
而关于OpenCV的学习,推荐:
1.学习OpenCV(Learning.OpenCV)
2.毛星云老师编著的OpenCV3编程入门
3.学习OpenCV3(Learning OpenCV 3)
而深度学习方面,有TensorFlow,PyTorch,Caffe等深度学习框架,它们也内置了OpenCV的API接口。而哪种框架好,就要看你自己的需要了
推荐资料:
莫凡教程系列之PyTorch :https://morvanzhou.github.io/tutorials/machine-learning/torch/
TensorFlow中文社区:
http://www.tensorfly.cn/
深度学习 21天实战Caffe
03 绕不开的数字图像处理与模式识别
数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
入门的同学推荐
冈萨雷斯的《数字图像处理》《数字图像处理(第3版)(英文版)》和对应的Matlab版本
一本讲基础的理论,一本讲怎么用Matlab实现。
除此之外同学们还可以去YouTube上找到相关的课程信息,相信大家会有所收获的。
模式识别(Pattern Recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。我们把环境与客体统称为“模式”。
计算机视觉很多东西都是基于图像识别的,图像识别就是模式识别的一种。
模式识别通常是训练一个模型来拟合当前的数据,当我们拿到一堆数据或图片,需要从当中找到它们的关系,最便捷的便是用模式识别算法来训练一个模型。
04 系统的学习下计算机视觉课程
对于CV新手来说,想要从小白到大神,最快的方法就是先系统的学习一下计算机视觉的课程,全面了解一下计算机视觉这个领域的背景及其发展、这个领域有哪些基本的问题、哪些问题的研究已经比较成熟了,哪些问题的研究还处于基础阶段。
推荐3本经典教材:
1.《计算机视觉:一种现代方法》(Computer Vision: A Modern Approach)
2.《计算机视觉_算法与应用》(Computer Vision: Algorithms and Applications)
3.《计算机视觉:模型 学习和推理》(Computer Vision: Models, Learning, and Inference)
这三本教材是计算机视觉最好的入门教材了,内容丰富,难度适中,其中第二本书涉及大量的文献,很适合对计算机视觉没什么概念的同学。
虽然其中的一些方法在现在看来已经过时了,但还是值得一读
05 深度学习与CNN
计算机视觉里经常使卷积神经网络,即CNN,是一种对人脑比较精准的模拟。
什么是卷积?卷积就是两个函数之间的相互关系,然后得出一个新的值,他是在连续空间做积分计算,然后在离散空间内求和的过程。
同学们可以试着学习下CNN在计算机视觉当中的应用
推荐的资料:
1.斯坦福CS231n—深度学习与计算机视觉网易云课堂课程:http://study.163.com/course/introduction.htm?courseId=1003223001
2.斯坦福CS231n—深度学习与计算机视觉官方课程:http://cs231n.stanford.edu/
3.CS231n官方笔记授权翻译总集篇:https://www.52ml.net/17723.html
4.吴恩达 deeplearning.ai与网易云课堂的微专业深度学习工程师卷积神经网络
http://mooc.study.163.com/course/2001281004?tid=2001392030#/info
神经网络方面的经典教材
1.《深度学习》(Deep Learning)
2.《神经⽹络与深度学习》(Neural Networks and Deep Learning(Nielsen,2017))
06 了解最新领域动态
很多同学做研究的时候,容易陷入自我封闭的“怪圈”,过于执着于埋头学习相关知识,有时候会忘记及时了解相关领域的最新动态,这是非常不科学的。
同学们在学习计算机视觉相关知识的时候,可以通过最新的paper来了解这个领域最新提出的一些概念以及发展的情况。
计算机视觉的期刊有两个PAMI(模式分析与机器智能汇刊)和IJCV(计算机视觉国际期刊)
顶级的学术会议有 CVPR、ICCV、 ECCV、 BMVC这四个,同学们可以跟着浏览这些期刊论文以及会议文章,相信一定可以学到不少有用的知识。
做好计算机视觉研究并不是一件容易的事情,在大多数情况下它甚至是一件很枯燥的事情。研究成果毫无进展,研究方向不在明朗等等,这一切都会给你前所未有的压力.所以希望同学们在决定入这一行的时候,是出于自己的热爱,而不是出于当前的趋势。
因为热爱不会变,但趋势每一年都在变。
The M Tank 编辑了一份报告《A Year in Computer Vision》,记录了 2016 至 2017 年计算机视觉领域的研究成果,对开发者和研究人员来说是不可多得的一份详细材料。该材料共包括四大部分
简介
第一部分
- 分类/定位
- 目标检测
- 目标追踪
第二部分
- 分割
- 超分辨率、风格迁移、着色
- 动作识别
第三部分
- 3D 目标
- 人体姿势估计
- 3D 重建
- 其他未分类 3D
- 总结
第四部分
- 卷积架构
- 数据集
- 不可分类的其他材料与有趣趋势
这篇关于计算机视觉-------既然选择远方,愿你风雨兼程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!