简单的单眼相机自校准算法 [英] Easy monocular camera self-calibration algorithm

查看:102
本文介绍了简单的单眼相机自校准算法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个道路/建筑物的视频,我想用它创建一个3D模型.我正在看的场景很僵硬,无人驾驶飞机正在移动.我假设没有相机姿势,加速度或GPS位置之类的任何额外信息.我很想找到一个可以适应自己喜好的python实现.

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.

到目前为止,我已经决定将OpenCV calcOpticalFlowFarneback()用于光流,这似乎相当快速且准确.有了它,我可以用findFundamentalMat()获得基本矩阵F.到目前为止一切顺利.

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.

经过长时间的研究,我发现了一篇论文(根据点对应关系和 基本矩阵)从1997年开始定义了我要寻找的内容(并提供了很好的摘要

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.

挖掘更多信息,我发现了一个 Multi Camera Self Calibration工具箱开源程序,它是使用Python包装器为Octave编写的.我的最后一招是分解代码并直接用Python编写.还有其他选择吗?

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.

还有其他方法可以非常准确地自我校准相机吗?自1997年以来经过20年的研究,有没有人想出一种更简单的方法?

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??

推荐答案

这是一口气吗,还是您正在开发一个应用程序来自动处理很多此类视频?

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

如果是前者,我宁愿使用Blender之类的集成工具.在youtube上查找运动跟踪(或"matchmoving")教程之一以了解它,例如

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.

这篇关于简单的单眼相机自校准算法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆