I have to find the camera position using several images from a football field. Using these images I can find the homography that transforms the points in the 3D model (in meters) into the points in the image (pixels). Each picture can have a different focal lengths, hence the camera intrinsics can change. I'm using OpenCV in C++.
I've found solutions for similar problems but either you already have the camera calibrated, with a fixed focal length (in this case you only need one image) or you don't have the camera calibrated but you consider that its intrinsic doesn't change (in this case you need at least 3 images).
Is there anyway to find the camera position in the 3D model without knowing anything besides the homographies (with different focal lengths)?
Short answer: No.
If you don't have any additional information about the cameras, there is no way to uniquely position the cameras. There would be multiple combinations of camera attributes & positions that would produce the same image.
You may be able to constrain the camera position along a certain 3D line, and reduce the problem to 1 degree of freedom, if that helps.