New Feature Sitrec: Camera Determination by Point Fitting

New Feature

Mick West

Administrator
Staff member

Source: https://www.youtube.com/watch?v=lc47jlrg9tQ


This is something I'd been intending to do for a while, and the PR043 case was a great motivator. We had the rough location, but to get an accurate recreation, a more exact camera position, heading, and field of view were needed.

What it does is conceptually relatively straightforward. You pick several distinct points on the image and the corresponding points in the 3D world. Here I pick bends in the river and points on the ground. There are two very different algorithms. One is the full 3D fit: it uses each landmark at its real position on the terrain, elevation included, and is generally the more accurate. Kind of like triangulation in reverse. It requires a minimum of three points. It's the default.

The other is a plane homography. It assumes the landmarks all lie on one flat plane, solves the projective map from that plane to the image, and then runs through all the possible fields of view (i.e., focal length, or zoom) looking for the one that makes the geometry self-consistent - where the rotation it implies actually comes out as a valid rotation. That's the classical method, and will give similar results when the points ARE roughly on a flat plane, as they are (barely) in this example. It needs at least four points.

So far I've only tested it on this case, so there will be things to iron out. Feedback welcome!
 
I think it works pretty well in that large scale terrain case. Next step is to get it to work for smaller scale, like this:
https://www.metabunk.org/sitrec/?custom=1/Romanian Window Reflection/20260809_132031.js
1786281676936.png


That looks like it's working, but the control points are not really on the 3D building geometry; they are on the elevation layer underneath. So I can't yet pick the corners of buildings or the tops of towers. It's a bit fiddly.
 
I think it works pretty well in that large scale terrain case. Next step is to get it to work for smaller scale, like this:
https://www.metabunk.org/sitrec/?custom=1/Romanian Window Reflection/20260809_132031.js
View attachment 92560

That looks like it's working, but the control points are not really on the 3D building geometry; they are on the elevation layer underneath. So I can't yet pick the corners of buildings or the tops of towers. It's a bit fiddly.
Yeah I tried this on recent cases but it didn't really work, a lot of civilian videos will be from the ground
 
https://www.metabunk.org/sitrec/?custom=11433/gy blimp lax/20260629_110631.js

this is one that always bugged me because I could not correlate the Blimp height above the buildings with the position of the camera. It may be I made some other errors.
1786291850047.png

https://www.metabunk.org/sitrec/?custom=99999999/test 1/20260809_160952.js

Bit fiddly, as I had to find the rooftop structure, which is nearly invisible in the video, but once I found that it resolved to about head height just outside a business.

1786291964131.png
 
Last edited:
That only works for one frame right? Would it be possible match two frames using the same ground features and interpolate between them?
Yes, that's on the list. Essentially keyframing the features by hand in 3D. You'd probably want three, so you can see if it's a straight line.

Still running through the tests here. Shipping soon.
 
Back
Top