第1个回答 2023-04-15
计算机视觉是一个很大的范畴的总和,有两种学习方式,一种是阅读基础书,搞懂它的每一部分;另一种是找一个问题,看文献,编程实现,不断往深走。这两种学习方式是互补的,如果你看了好几年书还不能上手解决问题,或者只会解决某些很特殊的问题,对其他问题束手无策都不算成功。因此你需要把看书掌握一般知识和编程实验解决具体问题齐头并进。下面说你要干什么:
下载安装OpenCV2
OpenCV是一个非常强大的计算机视觉库,包括了图像处理、计算机视觉、模式识别、多视图几何的许多基本算法,有c++和Python两种接口。学习的材料首先是安装目录下doc文件夹里的帮助文档,提供所有函数的用法,任何时候对任何函数有疑问请查阅帮助文档,安装目录下还提供一大堆写好的演示程序供参考;《OpenCV_2 Computer Vision Application Programming Cookbook》是一本比较基础的介绍材料,它的缺点是没有介绍分类器(模式识别)方面的函数怎么用。
虽然网上还有其他很多流行的库,比如处理特征点的VLfeat,处理点云的PCL,处理GPU运算的CUDA,处理机器人问题的ROS和MRPT,但是这些都是你在解决具体问题时才会考虑去用的东西,如果你想快速读取视频、做个屏幕交互程序、使用流行的分类器、提取特征点、对图像做处理、进行双目重建,OpenCV都提供相应函数,因此在你不知道该把余生用来干什么的时候,先装OpenCV学习。
读综述
Computer Vision: Algorithms and Application。这本书用1000页篇幅图文并茂地浏览了计算机视觉这门学科的诸多大方向,如果你不知道计算机视觉是一门搞什么的学科,这本书是你绝佳的选择。它的优点是涉猎了大量文献,缺点是缺乏细节,因此很显然只读这本书你根本没法上手工作,因为它讲的实在是太粗糙了。如果你对其中的某一部分感兴趣,就请去读相关文献,继续往下走,这就是这本书的意义。有中文版,但是翻译的不好,也不建议你细细去读,看看里面的图片即可。
Computer Vision: Models, Learning, and Inference:这本书是我认为研究生和高年级本科生入门计算机视觉最好的教材。它内容丰富,难度适中,推导翔实,语言流畅,强烈推荐你花2个月时间把这本书读完。
多视图几何
Multiple View Geometry in Computer Vision:这本书是多视图几何的圣经,意思就是说想搞三维重建或者图像测量之类的项目,这本书是必读的。它需要你有线性代数的基本知识,会SVD分解即可。第一版有中文版,翻译的非常好,但是已经绝版了,可以上淘宝高价买一本,第二版添加的内容很少,在网上可以下载到。
模式识别
模式识别核心就是训练一个函数来拟合手头的数据,如果数据的标签是离散的,称为分类问题,如数据的标签是连续的,称为回归问题;分类又分有监督分类和无监督分类,有监督分类器有神经网络、支持向量机、AdaBoost、随机场、树模型等等。当你拿到一大堆数据,需要从里面找关系的时候,一般都需要使用模式识别算法来训练一个函数/分类器/模型,因此模式识别是机器学习的核心。
《模式分类(第二版)》:这是一本适合普通读者阅读的教材,介绍了模式识别中经典的分类器,讲解细致,语言生动,难度适中,每一个算法都有伪代码。
The Elements of Statistical Learning:这本书使用严谨的数学工具分析模式识别算法,它比较难,但是非常深刻。每拿到一个模型它都会分析这个模型在数学上是如何构造的,并且推导模型的分类错误率。分析和推导是这本书的精髓。
Pattern Recognition and Machine Learning:这是一本从贝叶斯学派的角度分析模式识别模型的书,它使用的工具主要是概率论,比较难,非常深刻,内容非常丰富。
虽然这两本书很难,但是它们用到的数学知识不过是基本的概率论和线性代数,只是用的比较活,计算机视觉这个学科需要的数学知识也是这个水平。
图形学
图形学教材首先推荐《计算机图形学与几何造型导论》,这本书用流畅的语言介绍了图形学的基础知识,选材有趣,推导简洁但是绝不跳步走,保证你能看懂而且不会看烦。
光线追踪器我看过一本薄的《Realistic Ray Tracing》和一本厚的《Ray Tracing from the Ground Up》,两本书都有代码。后一本内容极其丰富,有中文版,翻译尚可。后一本唯一的缺点就是讲不清楚BRDF,但这恰恰是前一本的亮点。
还有一些比较偏的书,比如偏微分方程在图像处理中的应用、细分、压缩感知、马尔科夫随机场、超分辨率分析,概率机器人、多尺度几何分析,这些领域都有各自的名著,你在某个领域深挖的时候,类似这样的书可能会出现在参考文献中,那时再看不迟。
读文献
写到书里的知识基本上都有些过时,你得通过看文献掌握各个领域最新的发展动态。计算机视觉的顶级期刊有两个PAMI和IJCV,顶级会议有ICCV和CVPR,在科学网—[转载]计算机视觉方向的一些顶级会议和期刊有更加详细的介绍。