计算机视觉是人工智能的一个分支,涉及理解数字图像的内容,如照片和视频。深度学习在挑战性的计算机视觉任务上取得了令人印象深刻的进展,并有望取得进一步的进展。
快速熟悉这个领域的最好方法之一就是找一本关于这个主题的书。在这篇文章中,你将发现关于计算机视觉的顶级教科书和编程书籍。
我们开始吧。
Top5 计算机视觉教材
这里的 Top5 教材主要关注一般方法和理论(数学),而不是实际问题和方法(代码)的应用。我根据在顶尖学校(如麻省理工学院等)的大学课程中的使用情况以及在讨论网站(如Quora等)上的建议,收集了一份排名前五的教科书。计算机视觉五大教材如下(排名不分先后):
1. 《Computer Vision: Algorithms and Applications》
作者:Richard Szeliski
出版时间:2010 年
教材主页:http://szeliski.org/Book/
我喜欢这本书。它为计算机视觉技术的初学者(本科生)提供了广泛的标准计算机视觉问题的坚实基础。这本书是由理查德根据他多年在华盛顿大学教授这一课题的经验编写的。
目录:
- 1. Introduction
- 2. Image formation
- 3. Image processing
- 3. Feature detection and matching
- 5. Segmentation
- 6. Feature-based alignment
- 7. Structure from motion
- 8. Dense motion estimation
- 9. Image stitching
- 10. Computational photography
- 11. Stereo correspondence
- 12. 3D reconstruction
- 13. Image-based rendering
- 14. Recognition
2. 《Computer Vision: Models, Learning, and Inference》
作者:Simon Prince
出版时间:2012 年
教材主页:http://www.computervisionmodels.com/
目录:
- 1. Introduction
- 2. Introduction to probability
- 3. Common probability distributions
- 4. Fitting probability models
- 5. The normal distribution
- 6. Learning and inference in vision
- 7. Modeling complex data densities
- 8. Regression models
- 9. Classification models
- 10. Graphical models
- 11. Models for chains and trees
- 12. Models for grids
- 13. Image preprocessing and feature extraction
- 14. The pinhole camera
- 15. Models for transformations
- 16. Multiple cameras
- 17. Models for shape
- 18. Models for style and identity
- 19. Temporal models
- 20. Models for visual words
3. 《Computer Vision: A Modern Approach》
作者:David Forsyth、Jean Ponce
出版时间:2011 年
教材主页:http://luthuli.cs.uiuc.edu/~daf/CV2E-site/cv2eindex.html
目录:
- Part I. Image Formation
- 1. Radiometry – Measuring Light
- 2. Sources, Shadows and Shading
- 3. Colour
- Part II. Image Models
- 4. Geometric Image Features
- 5. Analytical Image Features
- 6. An introduction to Probability
- Part III. Early Vision: One Image
- 7. Linear Filters
- 8. Edge Detection
- 9. Filters and Features
- 10. Texture
- Part IV. Early Vision: Multiple Images
- 11. The Geometry of Multiple Views
- 12. Stereopsis
- 13. Affine Structure from Motion
- 14. Projective Structure from Motion
- Part V. Mid-Level Vision
- 15. Segmentation Using Clustering Methods
- 16. Fitting
- 17. Segmentation and Fitting Using Probabilistic Methods
- 18. Tracking
- Part VI. High-Level Vision
- 19. Correspondence and Pose Consistency
- 20. Finding Templates Using Classifiers
- 21. Recognition by Relations Between Templates
- 22. Aspect Graphs
- Part VII. Applications and Topics
- 23. Range Data
- 24. Applications: Finding in Digital Libraries
- 25. Application: Image-Based Rendering
4. 《Introductory Techniques for 3-D Computer Vision》
作者:Emanuele Trucco、Alessandro Verri
出版时间:1998年
目录:
- 1. Introduction
- 2. Digital snapshots
- 3. Dealing with Image Noise
- 4. Image Features
- 5. More Image Features
- 6. Camera Calibration
- 7. Stereopsis
- 8. Motion
- 9. Shape from Single-image Cues
- 10. Recognition
- 11. Locating Objects in Space
- A. Appendix
5. 《Multiple View Geometry in Computer Vision》
作者:Richard Hartley、Andrew Zisserman
出版时间:2004年
教材主页:http://www.robots.ox.ac.uk/~vgg/hzbook/
这是一本相当先进的书(研究生水平)关于计算机视觉的一个专门的主题,特别是关于从多个图像推断几何的问题和方法。
目录:
- 1. Introduction
- PART 0. The Background: Projective Geometry, Transformations and Estimation
- 2. Projective Geometry and Transformations of 2D
- 3. Projective Geometry and Transformations of 3D
- 4. Estimation – 2D Projective Transformations
- 5. Algorithm Evaluation and Error Analysis
- PART I. Camera Geometry and Single View Geometry
- 6. Camera Models
- 7. Computation of the Camera Matrix P
- 8. More Single View Geometry
- PART II. Two-View Geometry
- 9. Epipolar Geometry and the Fundamental Matrix
- 10. 3D Reconstruction of Cameras and Structure
- 11. Computation of the Fundamental Matrix F
- 12. Structure Computation
- 13. Scene Planes and Homographies
- 14. Affine Epipolar Geometry
- PART III. Three-View Geometry
- 15. The Trifocal Tensor
- 16. Computation of the Trifocal Tensor T
- PART IV. N-View Geometry
- 17. N-Linearities and Multiple View Tensors
- 18. N-View Computational Methods
- 19. Auto-Calibration
- 20. Duality
- 21. Cheirality
- 22. Degenerate Configurations
- PART V. Appendices
Top3 计算机视觉编程书籍
我已经收集了一个前三大 CV 编程实战书籍,来自它们在顶级计算机视觉书籍列表中的排名顺序和讨论网站上的推荐。计算机视觉前三名教材如下(排名不分先后):
6. 《Learning OpenCV 3》
作者:Adrian Kaehler、Gary Bradski
出版时间:2017年
教材源码:https://github.com/oreillymedia/Learning-OpenCV-3_examples
这本书的重点是教你如何使用opencv库,也许是首屈一指的开源计算机视觉库。所有的代码示例都在C++中,这表明目标受众是专业的开发人员,他们想学习如何将计算机视觉应用到他们的项目中。
目录:
- 1. Overview
- 2. Introduction to OpenCV
- 3. Getting to Know OpenCV Data Types
- 4. Images and Large Array Types
- 5. Array Operations
- 6. Drawing and Annotating
- 7. Functions in OpenCV
- 8. Image, Video and Data Files
- 9. Cross-Platform and Native Windows
- 10. Filters and Convolutions
- 11. General Image Transforms
- 12. Image Analysis
- 13. Histograms and Templates
- 14. Contours
- 15. Background Subtraction
- 16. Keypoints and Descriptors
- 17. Tracking
- 18. Camera Models and CAlibration
- 19. Projection and Three-Dimensional Vision
- 20. The Basics of Machine Learning in OpenCV
- 21. StatModel: The Standard Model for Learning in OpenCV
- 22. Object Detection
- 23. Future of OpenCV
7. 《Programming Computer Vision with Python》
作者:Jan Erik Solem
出版时间:2012年
教材主页:http://programmingcomputervision.com/
这是一本实践性的书,重点是教你如何在python中执行基本的计算机视觉任务,主要是使用PIL库,尽管也有opencv的基本介绍。
目录:
- 1. Basic Image Handling and Processing
- 2. Local Image Descriptors
- 3. Image to Image Mappings
- 4. Camera Models and Augmented Reality
- 5. Multiple View Geometry
- 6. Clustering Images
- 7. Searching Images
- 8. Classifying Image Content
- 9. Image Segmentation
- 10. OpenCV
8. 《Practical Computer Vision With SimpleCV》
作者:Kurt DeMaagd, Anthony Oliver, Nathan Oostendorp, and Katherine Scott
出版时间:2012年
教材主页:http://simplecv.org/book/
这本书教你如何使用python中的simplecv库执行基本的计算机视觉操作。
目录:
- 1. Introduction
- 2. Getting to Know the SimpleCV Framework
- 3. Image Sources
- 4. Pixels and Images
- 5. The Impact of Light
- 6. Image Arithmetic
- 7. Drawing on Images
- 8. Basic Feature Detection
- 9. FeatureSet Manipulation
- 10. Advanced Features
推荐
最后,从算法理论和代码实战两个角度来说,个人推荐:《Computer Vision: Algorithms and Applications》、《Programming Computer Vision with Python》这两本书。当然,读者可以根据自己的实际情况自行选择。