Possible to calculate 3d coords of unknown points from markerless video?

Hello! I have a project idea, and I’m wondering if it’s possible as I’m envisioning it.

Imagine 3 random points in space, captured on video from various angles. Is it possible to determine their 3d coords without a marker? This is assuming a calibrated camera, and that detecting the points is not an issue. Actual application may have dozens or hundreds of points, but I assume if I can’t get 3 I’m sunk. :slight_smile:

And I’m not worried about rotation (which way is up?) or scale (exact distance between points). I’m just looking for a point cloud where everything is accurately positioned relative to each other.

yes, that’s quite possible, assuming those points have identity (e.g. via feature descriptors and matching).

the basic situation is called “structure from motion”, where motion just means multiple views (same or multiple cameras). you’ll find tons on the topic in literature and in opencv’s docs.

Ah, thank you! My Googling hadn’t turned up the phrase “structure from motion”, so that helps immensely.

And I assume “points have identity” just means I know which point is which. A pile of white ping pong balls wouldn’t work, but possibly a red, green, and blue ball would. Or LEDs with different colors or something. (sorry for my newbieness :slight_smile: )

correct. it’s perfectly alright to describe the situation and ask what it’s called. machine vision is a vast field.

for simple situations, a handful of identical points, you can sometimes get by with running the permutations and discarding those that are inconsistent (rays don’t intersect/come close).

there are lots of ways to give identity. the “usual” way describes the local environment around “interesting” points, which are usually dots, corners, … peaks in the first/second derivative of the image. those descriptors can be matched, which is reasonably good for a first approximation that is then refined. “RANSAC” is a common algorithm used in that process.

anyway, I’d recommend a book or online course on the topic. my professor always listed Forsyth & Ponce and Hartley & Zisserman in the notes. I regularly hear mention of Szeliski. you could run some samples or tutorials in the OpenCV documentation/source for a quick start.

there are open source GUI programs that apply SfM to bunches of pictures and calculate point clouds from that. I’ve heard of VisualSFM. Wikipedia hints at some other packages as well.