0

I want to know how much my camera moved (expressed in speed, e.g. m/s) between two images given timestamp for each image.

I know that I can get the pose of my camera while taking the second image relative to the pose of my camera while taking the first image.

My motivation come from the MathWorks Structure from Motion documentation.

But now I am stuck.

  • How do I calculate the speed if I have the camera position and orientation at t0 and the camera position and orientation at t1? How to mix linear and angular speed, meaning translation and rotation?
  • Also, I guess, I am lacking a measurement unit (like meter) relative to the real word. I can probably only calculate the speed in relation to the camera positions but not the real world. I would need an object, such as a marker, where the size is known. Then, my speed assessment would only work as long as I have an object with known size in both of my images, right?
Incanus
  • 389
  • 1
  • 4
  • 16
  • 1
    Correct, if you have only the 2 images the reconstruction will be up-to scale, thus the speed cannot be expressed in metric units. – dari Mar 12 '18 at 20:56

1 Answers1

0
  1. First answer the question: "Speed of what?". If the camera centre is all that matter to you, then the rotation is irrelevant (assuming your motion is referred to camera centres, as usual). If you want to compute the speed of motion of another special point, just express the location of that point at both times in the coordinate frame of, say, the first frame, compute the displacement and divide by the time interval between frames to get an "istant" (or frame-time) estimate.
  2. If your camera motion is reconstructed only up to scale, so will your be your camera velocity. As you correctly note, you will need a size reference to resolve scale.
Francesco Callari
  • 11,300
  • 2
  • 25
  • 40