A very simple and extremely well written tutorial for Tensors could be found here.
Wednesday, June 15, 2011
Bayes Rule
Bayes rule, given below, relates two conditional probabilities. It is one of the most common and powerful ingredient of algorithms in computer vision as well as in many other fields
In any problem, we may want to predict A (it may be a discrete class label or some continuous value) given the observed data B (e.g. our image, or some features calculated from it). What Bayes rule allows us to do is frame this problem in terms of B given A and Prior (or often called Marginal) probabilities of A and B. These distributions could often be learned from training data allowing us to make the prediction.
Bayes rule also helps us understand the difference between a generative vs. discriminative learner. If we somehow learn the probability P(A|B) directly then what we have is a discriminative classifier where we can predict the values for A given B. If instead we learn the probabilities P(B|A) and P(A), then what we have the joint distribution P(A,B) = P(B|A)P(A) and hence a generative classifier.
In any problem, we may want to predict A (it may be a discrete class label or some continuous value) given the observed data B (e.g. our image, or some features calculated from it). What Bayes rule allows us to do is frame this problem in terms of B given A and Prior (or often called Marginal) probabilities of A and B. These distributions could often be learned from training data allowing us to make the prediction.
Bayes rule also helps us understand the difference between a generative vs. discriminative learner. If we somehow learn the probability P(A|B) directly then what we have is a discriminative classifier where we can predict the values for A given B. If instead we learn the probabilities P(B|A) and P(A), then what we have the joint distribution P(A,B) = P(B|A)P(A) and hence a generative classifier.
Friday, January 28, 2011
Books for computer vision
Although almost anything could be found online, including everything about computer vision, a single coherent source is nice to have. A nice book is such a source :). Below are some of the books that are usually recommended, and quite famous, for various areas of computer vision.
- Introduction and basics: "Computer Vision: A modern approach" - David A. Forsyth and Jean Ponce
- Geometry: "Multiple view geometry in computer vision" - Richard Hartley & Andrew Zisserman
- Geometry: "Three-Dimensional computer vision" - Olivier Faugeras
- Reference: "Computer Vision: Algorithms and Applications" - Richard Szeliski (Online free version available on website)
Since we often resort to machine learning tools for vision problems, it would be unfair to not recommend some machine learning related books
- Good reference: "Pattern Recognition and machine learning" - Christopher M. Bishop
- Great textbook: "Machine Learning" - Tom M. Mitchell
- Graphical Models: "Probabilistic Graphical Models: Principles and Techniques" - Daphne Koller and Nir Friedman
- Optimization: "Convex Optimization" - Stephen Boyd and Lieven Vandenberghe (Online free version)
Monday, January 17, 2011
Learning VRML
Working in vision, one will definitely run into creation of 3D models. VRML (Virtual Reality Modelling Language) is one, although outdated but still used, option. An excellent tutorial could be found here.
For windows there are plenty of free VRML viewers. I had difficulty finding a good VRML viewer for linux. MeshLab was buggy and did not support the standard properly, and many others were a nightmare to compile. Finally, I settled with freeWRL and this log proved priceless during the installation.
VRML is an old standard. There are several new solutions in work for 3D modelling, although I haven't tried them. X3D is the "official" successor of VRML though I haven't found a good viewer yet. O3D is another option for creating 3D graphics. It is a javascript api for rendering graphics in browser (now they conform to WebGL).
For windows there are plenty of free VRML viewers. I had difficulty finding a good VRML viewer for linux. MeshLab was buggy and did not support the standard properly, and many others were a nightmare to compile. Finally, I settled with freeWRL and this log proved priceless during the installation.
VRML is an old standard. There are several new solutions in work for 3D modelling, although I haven't tried them. X3D is the "official" successor of VRML though I haven't found a good viewer yet. O3D is another option for creating 3D graphics. It is a javascript api for rendering graphics in browser (now they conform to WebGL).
Subscribe to:
Posts (Atom)