For those interested in learning vision from a machine learning perspective I would suggest "Computer Vision: Models, Learning, and Inference" [1]. Szelinski's book is also great but gives a more classical overview of computer vision.
Most of my attempts at getting into CV fail because my knowledge of Maths is incredibly rusty. I did Maths up to university level, but haven't used it since.
Are there any good courses / books or other resources that would specifically help at getting up to speed with the maths knowledge required to understand a book like this?
I can't recommend Szeliski's or Prince's book as a good first text in CV. Szeliski's is unnecessarily math heavy and lacks worked examples or explanations of concepts. It's esentially a reference book. Prince's is (reputedly) excellent at approaching CV from a ML perspective, but it doesn't really cover the main concepts in CV, so it's a poor source for the fundamentals.
Davies' book "Computer and Machine Vision" is the least math intensive CV text I've found. Its emphasis is more on MV (industrial vision) than CV, but it covers the basics of CV pretty well.
Klette's "Concise Computer Vision" recent (2014) has good coverage of CV, but it is concise (oft short explanations), and DO NOT buy the Kindle version. It fails to render a custom font used by the author, so some of the most important characters within are invisible.
Trucco and Verri's "Intro Techniques for 3D Vision" (1998) is clear and short though a bit dated, but it covers the basics well. Likewise Shapiro & Stockman (2001) is a well written survey but also dated. I like both.
Avoid the Forsyth & Ponce book unless you're a masochist. Very unclear exposition.
I like the GaTech CV video course (the free videos are part of their online MS in CS, OMSCS). Essa and Bobick's presentations are clear and lively, the coverage broad. They don't use a text. Also, the videos from Shah's course CV at Central Florida are available on Youtube. He offers good clear coverage of the topic, though without enthusiasm.
I wouldn't recommend Szeliski for that - the book is basically a literature review (and is now a little out of date given how fast CV moves). It's great if you need a background survey on how things are done, but not for learning from.
The level of maths required varies a lot. Linear algebra is used heavily everywhere, you see a lot of optimisation (e.g. Levenberg Marquadt) and in some places graph theory. However if you're just using tools like OpenCV then you can get by with a fairly poor understanding of the maths (say 2nd year undergrad of an engineering degree).
Part of the challenge is reading past the maths. If you read a paper from Pattern Analysis there's a lot of, frankly, obtuse notation. So you see images described as discrete mapping blah blah. A lot of it is fairly straightforward set theory. It's necessary for proving things, but when it comes to actually implementing this stuff it's nowhere near as complicated as it looks.
Yes I think the notation is quite a stumbling block. Eg, As soon as I see an integral sign I am lost. I have no idea how to transform that into an algorithm.
You might be better off looking through the code of a mature image processing library like OpenCV or this one (recent HN post) written in Go which is very clean:
The only one risky thing is that in computer vision right now things change each 6 months. So, one will never know which techniques are still state of the art, and which were outclassed by some ConvNets 4 years ago.
Regardless the impact machine learning techniques are having on the field, I still think is valuable to know and understand what are the classic methods that they are allegedly replacing.
It is actually not about "classic" vs. "modern". A lot of what's described in the book is as relevant as ever.
Mostly what's changed is that what used to be heuristics and hand-crafted features is now getting replaced by proper learned models. Also some generative models are getting replaced discriminative models since deep learning does a very good job in creating those.
A lot in the book is about geometry and Structure from Motion. It's an area that's becoming augmented but not superseded by Neural Nets. For example if you want to generate a 3D model from images you can't just throw a NN at it. Same for tracking etc...
Things like principal component analysis, eigenvalues and filtering are timeless and fundamental tools that won't go away in the near future.
Even if you don't go into computer vision - these have a wide range of applications, for example in sound or signal processing which are closely related.
I used this book in my digital image processing class (a class for EE majors). A lot of the book is applications of classic signal processing techniques.
This is maybe the best textbook on the basics of image processing, computer vision and computational photography. The author is from MS Research and they do know this stuff.
[1] http://www.computervisionmodels.com/