Forum : Photosynth Lounge


Topic: Thinking about how Photosynth works

Report Abuse Report Abuse
bitplane (Over 1 year ago)
I'm not a mathematician or anything so I haven't read the paper as the maths would probably go over my head, but I've been thinking about how to make my own simple Photosynth-style viewer. 
Pictures exist as infinite length pyramidy objects in 3d space, with the focal point at the peak and the lens a little way down, the distance to the lens decides the Field of View (FoV). A pixel exists as a cone projected into the pyramid, the X and Y radius of them are determined by the min and max FoV. If you have four known points across two images, the difference between the two trapezoids can give you the rotation of the cameras. The intersections between the cones give you ellipsoids of estimated point position, while back the other way gives you worst-possible distance from estimated camera position. 
Identifying points for matching is a harder problem, what constitutes a point? I'm thinking some kind of edge detection at multiple zooms, and store it all in a single...
bitplane (Over 1 year ago)
...value so this can be cached in a lookup table, the trick being to find an algorithm that in effect hashes a pixel or group of pixels ignoring orientation and scale so it can be instantly matched with other pictures. Hashes that turn up more than once in the same image can be discarded as uninteresting, so only the special ones are kept.

Anyone know if I'm on the right track?
Marvin (Over 1 year ago)
It sounds kinda right.  If you look at the original research papers, you'll find references to a "feature descriptor" (read hash), that will describe a point in a way that ignores things like orientation, scale, shutter speed (otherwise it will look brighter in some images), etc.