all   open all close all

  • D. A. Forsyth and J. Ponce, Computer Vision — A Modern Approach, second edition, Pearson 2012
  • R. Szeliski, Computer Vision — Algorithms and Applications, Springer 2011
  • R. Klette, Concise Computer Vision — An Introduction into Theory and Algorithms, Springer 2014
  • S. J. D. Prince, Computer Vision — Models, Learning, and Inference, Cambridge 2012
  • R. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision, Cambridge 2000
  • Y. Ma, S. Soatto, J. Košecká, S. S. Sastry, An Invitation to 3-D Vision — From Images to Geometric Models, Springer 2004


  • Anaconda is a stable and coherent distribution of Python for data science. It is strongly recommended that you use the latest version of Anaconda, rather than whatever you may have already on your computer. This distribution includes Python, several basic libraries for data science (numpy, scipy, and more), visualization libraries (including matplotlib), machine learning libraries, including scikit-learn. This is essentially all you need for this course. This distribution places all relevant files in the appropriate places, and you won't have to struggle with linking libraries, etc.
  • Any program that is longer than a few lines of code requires debugging, and debugging is a nightmare in a Python notebook. You are urged to download the (free) PyCharm Integrated Development Environment (IDE). If you do a lot of programming outside this course, you may want to download the professional version, which is available for free here if you access that page from a Duke computer. The professional version has tools that are very useful for professional development but you won't need in this course.
  • Google's Python class is a leisurely but clear Python tutorial.
  • The official Python 3 Documentation also includes a tutorial. Use the library reference and the language reference as your official sources of information about Python 3. You can also find information by googling, but make sure you refer to version 3 of Python if you do so.
  • Several tutorials on Jupyter notebooks can be found online. Here is one from Dataquest.

  • C. C. Aggarwal, Neural Networks and Deep Learning: A Textbook, Springer, 2018.
  • S. Shalev-Shwartz and S. Ben-David, Understanding Machine Learning, Cambridge University Press, 2014.
  • I. Goodfellow, Y. Bengio, A. Courville, Deep Learning, MIT Press 2016
  • C. M. Bishop, Pattern Recognition and Machine Learning, Springer 2006
  • T. Hastie, R. Tibshirani, and J. Friedman, The Elements of Statistical Learning — Data Mining, Inference, and Prediction, Springer 2001
  • K. P. Murphy, Machine Learning — A Probabilistic Perspective, MIT Press 2012
  • S. J. Dickinson, A. Leonardis, B. Schiele, and M. J. Tarr, editors, Object Categorization — Computer and Human Vision Perspectives, Cambridge 2009

COMPSCI 527, Duke University, Site based on the fluid 960 grid system