Easy monocular camera self-calibration algorithm

前提是你 提交于 2020-01-12 06:21:08

问题


I have a video of a road/building and I want to create a 3D model out of it. The scene I am looking at is rigid and the drone is moving. I assume not having any extra info like camera pose, accelerations or GPS position. I would love to find a python implementation that I can adapt to my liking.

So far, I have decided to use the OpenCV calcOpticalFlowFarneback() for optical flow, which seems reasonably fast and accurate. With it, I can get the Fundamental Matrix F with findFundamentalMat(). So far so good.

Now, according to the tutorial I am following here, I am supposed to magically have the Calibration Matrix of the camera, which I obviously don't have nor plan to have available in the future app I am developing.

After some long research, I have found a paper (Self-calibration of a moving camera from point correspondences and fundamental matrices) from 1997 that defines what I am looking for (with a nice summary here). I am looking for the simplest/easiest implementation possible, and I am stuck with these problems:

  • If the camera I am going to use changes exposure and focus automatically (no zoom), are the intrinsic parameters of the camera going to change?
  • I am not familiar with the Homotopy Continuation Method for solving equations numerically, plus they seem to be slow.
  • I intend to use the Extended Kalman Filter, but do not know where to start, knowing that a bad initialization leads to non-convergence.

Digging some more I found a Multi Camera Self Calibration toolbox open-source written for Octave with a Python wrapper. My last resort will be to break down the code and write it in Python directly. Any other options?

Note: I do not want to use the a chess board nor the planarity constraint.

Is there any other way to very accurately self-calibrate my camera? After 20 years of research since 1997, has anyone come up with a more straightforward method??


回答1:


Is this a one-shot thing, or are you developing an app to process lots videos like these automatically?

If the former, I'd rather use an integrated tool like Blender. Look up one of the motion tracking (or "matchmoving") tutorials on youtube to get an idea of it, for example this one.



来源:https://stackoverflow.com/questions/45247683/easy-monocular-camera-self-calibration-algorithm

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!