Computer vision has become increasingly important and effective in the last few years, with applications in areas as diverse as film and other media, mapping, surveillance, and even self-driving vehicles. In part, the rise in effectiveness comes from improved machine learning models, which feed back into the development of such models.

This book is, in very large part, devoted to machine learning models, especially probabilistic models. Indeed, of the 20 chapters, only three are not primarily concerned with model construction (though there are several others that serve as introductions to aspects of probabilistic modeling).

For the most part, the approach is theoretical, mathematical, and fairly abstract. This makes the book appropriate for academics and for graduate students in machine learning, computer vision, or applied mathematics. It might be usable in an advanced undergraduate course, but will demand a fair amount of mathematical maturity on the part of the students. This is probably not a book for casual reading, since even some of the simpler topics require a fair amount of thought to fully appreciate.

The writing is excellent overall and concepts are stated clearly and concisely, although the introductory chapters tend a bit toward being too telegraphic (understandable given the length of the book). There are excellent exercises in each chapter, as well as some good bibliographic notes.

There is also an excellent website with student and instructor resources, including a full PDF copy of the book, answers to selected exercises, further resources links (including books and articles, code, and projects), and mathematical/pseudocode expositions of the algorithms discussed. And more! There are three appendices on notation, optimization, and linear algebra; an extensive bibliography; and a useful index.

There are only a couple of places where a model is proposed, explained, and then solved with enough supporting detail to enable a reasonably proficient programmer to implement the model (though the pseudocode on the website can assist with this). Thus, the book is less appropriate for software practitioners seeking to actually build computer vision applications right away, though it will serve as a good springboard for those interested in getting enough background in probabilistic models and machine learning to be able to do it at some time in the future. That said, some of the chapters provide viewpoints on specific problem-solving methods that might prove useful counterpoints to other books or papers. At least one such discussion led to one of those “Aha!” moments for me.

The author’s goal, as stated in the preface, is to provide a book that focuses on the models involved, and I think the book has succeeded in doing that. I learned quite a bit and would recommend this text highly to the motivated, mathematically mature reader.