文章首发于我的个人博客
前言
写这篇文章主要是汇总一下我在学习CV和DIP过程中发现的一些个人觉得非常不错的资料,在这里做一个总结,一方面是整理一下这些资料方便自己查阅,另一方面分享给其他同学做一个参考。
计算机视觉
首先必须要提前说明 计算机视觉绝对不等于卷积神经网络。卷积神经网络只不过是目前用于解决识别类的问题中效果最好的一种方法而已,当然它还有其他的一些应用,在这里不做过多的赘述,但是我要表达的是计算机视觉是一个非常大的概念,甚至从某种角度来说图像处理也在它的范围之内,而CNN仅仅是其中一部分罢了。
因此,我推荐的第一本书是 Richard Szeliski地著作《计算机视觉:算法与应用》。这本书被认为是计算机视觉领域综述性质的书籍。书中介绍了很多计算机视觉邻域的内容,有关这本书的具体内容介绍可以参考这篇文章。
第二本《图像处理、分析与机器视觉(中文第3版)》, 本书是图像处理与计算机视觉里比较全的一本书了,几乎涵盖了图像视觉领域的各个方面。而在推荐的第一本书中,作者本人在书中加入了自己感兴趣的一些研究领域但一般计算机视觉书中没有的,比如Image Matting等。这也说明第一本书的通用性不如第二本。
图像处理
我认为,不论深度学习的模型有多么强大,传统的图像处理知识绝对不能丢。卷积神经网络本质上还是特征的提取而已,只不过使用反向传播不断地优化卷积层等CNN里的特征层。将传统手动提取特征的工作变换为自动提取特征的工作,本质上仍旧要用到传统图像处理的知识。如果你是一个功利的研究者,我不做评论!但是如果你是一个务实的研究者,我认为传统的图像处理知识不能丢,数字图像处理从上世纪70年代开始至今,留下了大量需要我们去学习的优秀知识,尽管我们没有那么多精力全部掌握,但是对其中的一些精华知识还是应该花时间去学习。而且,广泛涉猎各方面的知识,可以让你在解决问题的时候有更加发散的思维。
对于图像处理方面的书籍,我非常喜欢 冈萨雷斯写的**《数字图像处理》这本书。它从数字图像基础开始讲起,首先介绍数字图像的一些基本概念然后说明要用到的一些数学工具。然后介绍图像的空间滤波和频率阈滤波,这部分需要信号与系统和数字信号处理**这两门课为基础,所以也有人说这本书是专门写给EE的同学的。之后介绍图像复原和重建以及彩色图像处理的知识。然后是图像压缩,我本人第一次看这本书的时候首先看的就是这一章的内容,因为之前刚刚学过信息论,对编码部分的知识还保持着一定的兴趣,所以首先看着一章。这一章首先介绍了图像压缩的一些基本概念然后介绍图像压缩的流程,主要是映射器->量化器->编码器,其中映射器主要解决图像的空间冗余问题,编码器主要解决图像编码冗余的问题。然后介绍了一些目前主流的压缩方法,解决空间冗余的有LZW、行程编码等,解决编码冗余的主要有算术编码、霍夫曼编码等。我本人在看完这些基础知识之后,用python分别实现了这部分算法,目前正计划用c++从0实现一个图像压缩的算法。这一章之后是形态学图像处理、图像分割以及目标识别方面的内容,我还没有看到这里所以不做过多的表述。总而言之,图像处理这部分内容我认为是必学的,而且我推荐冈萨雷斯的这本《数字图像处理》,至于与它配套的那本matlab实现,我觉得看个人喜好,你擅长用matlab并且希望快速实现算法观察效果,那么matlab是你的首选,因为它提供大量内置的工具包给你调用。但是如果你更喜欢python或者c++,你也可以使用opencv去实现这些算法观察效果,也可以自己造轮子深入地理解这些算法,我个人更喜欢后者。
补充:《数字图像处理》一书还提供了配套的网站,里面内容也很丰富,我把链接放在这里以供参考http://www.imageprocessingplace.com/
数学基础
模式识别
信号处理
论文
还有四个部分的内容数学基础、信号处理、模式识别、论文等没有做推荐,是因为这些部分目前我个人还没有涉及到,因此不敢做什么推荐,等以后涉及到这些方面再做推荐也不迟。我也没有推荐一些大佬写的博客,是因为我觉得这些博客主要记录的是他们自己做项目或者学习过程中遇到的问题和解决方案,这些文章可以在你遇到问题的时候去查阅,但不应该作为主要的学习资料。最后, 除了上述的资料我还会将一些我在学习了解过程中看到的一些好的文章一并打包上传到百度网盘(提取码:js2b
)。同时,这篇博客我也会时常更新,补充一些新的内容。