1
$\begingroup$

Let's suppose I have a camera which can move freely in 3D space and has 6 degrees of freedom. Is it possible to estimate the linear and angular velocity of the camera from 2 or more consecutive frames? If yes, are there any environment or camera constraints that must hold?

$\endgroup$

2 Answers 2

1
$\begingroup$

It's possible, but it takes some sophisticated processing to do it effectively in a general environment.

First of all, you can only detect motion relative to what you can see in the field of view. This requires good foreground/background separation to eliminate objects that might themselves be moving relative to the background (which is presumably what you want to measure the camera motion against).

Second, the background must have enough features (edges) in it to make all six degrees of freedom unambiguously observable.

It boils down to figuring out what the trajectories through the viewspace are of all the features in the scene, and then doing a cluster analysis of those trajectories in order to assign them to distinct objects. Finally, pick the cluster that most probably and most consistently represents the background. The inverse of this trajectory is the camera's trajectory.

Once you have the geometry of the situation squared away, you still need information about the size of objects in the field of view in order to scale the results correctly.

$\endgroup$
2
  • $\begingroup$ Any idea how this problem is referred to in literature? $\endgroup$
    – Controller
    Commented Mar 11, 2016 at 22:22
  • $\begingroup$ Sorry, no. These are just my musings on the subject, formulated during long car rides while thinking about autonomous vehicles. Of course, there you'd get some assistance from GPS and inertial sensors, which would really help with sorting through the visual data. $\endgroup$
    – Dave Tweed
    Commented Mar 11, 2016 at 22:30
1
$\begingroup$

The term you are looking for is Optical Flow and it is a very actively researched field along with (the also relevant here) Simultaneous Localisation and Mapping or SLAM

Getting a robust velocity estimate from one or more cameras is not going to be "easy" as a lot of processing needs to be carried out to reduce uncertainties from a number of factors that are difficult to control for (e.g relative motion and constantly changing geometry).

For more information and representative examples please see this link and this link

Hope this helps

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.