3D重建和SfM相机固有参数 [英] 3D Reconstruction and SfM Camera Intrinsic Parameters

查看:219
本文介绍了3D重建和SfM相机固有参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图理解3D重建的基本原理,并选择使用



The等式右边的两个项做不同的事情。第一个缩放点并将其放入图像平面。第二项( i.e。 [c_x c_y 1] ^ T )将结果从另一项移开。因此, [-c_x,-c_y] ^ T 是图像坐标系的中心。



关于切向/径向畸变之间的区别:通常在校正畸变时,我们假设图像的中心为 o 保持不变。像素 p 将在失真的影响下从其真实位置 q 移开。如果该运动沿矢量 q-o ,则该失真是径向的,但是如果该运动在不同方向上具有分量,则据说(也)具有切向失真。



正如我所说,我不确定他们在图中显示的焦平面是什么,但我认为该术语通常是指到在物理针孔照相机中将在上面形成颠倒图像的平面。图像平面上的点 P (以世界坐标表示)在焦平面上只是 -P


I am trying to understand the basic principles of 3D reconstruction, and have chosen to play around with OpenMVG. However, I have seen evidence that the following concepts I'm asking about apply to all/most SfM/MVS tools, not just OpenMVG. As such, I suspect any Computer Vision engineer should be able to answer these questions, even if they have no direct OpenMVG experience.


I'm trying to fully understand intrinsic camera parameters, or as they seem to be called, "camera instrinsics", or "intrinsic parameters". According to OpenMVG's documentation, camera intrinsics depend on the type of camera that is used to take the pictures (e.g., the camera model), of which, OpenMVG supports five models:

  • Pinhole: 3 intrinsic parameters (focal, principal point x, principal point y)
  • Pinhole Radial 1: 4 intrinsic params (focal, principal point x, principal point y, one radial distortion factor)
  • Pinhole Radial 3: 6 params (focal, principal point x, principal point y, 3 radial distortion factors)
  • Pinhole Brown: 8 params (focal, principal point x, principal point y, 5 distortion factors (3radial+2 tangential))
  • Pinhole w/ Fish-Eye Distortion: 7 params (focal, principal point x, principal point y, 4 distortion factors)

This is all explained on their wiki page that explains their camera model, which is the subject of my question.

On that page there are several core concepts that I need clarification on:

  • focal plane: What it is and how does it differ from the image plane (as shown in the diagram at the top of that page)?
  • focal distance/length: What is it?
  • principal point: What is it, and why should it ideally be the center of the image?
  • scale factor: Is this just an estimate of how far the camera is from the image plane?
  • distortion: What is it and what's the difference between its various subtypes:
    • radial
    • tangential
    • fish-eye

Thanks in advance for any clarification/correction here!

解决方案

I am unsure about the focal plane, so I will come back to it after I write about the other concepts you mention. Suppose you have a pinhole camera model with rectangular pixels, and let P=[X Y Z]^T be a point in camera space, with ^T denoting the transpose. In that case (assuming Z is the camera axis), this point can be projected as p=KP where K (the calibration matrix) is

f_x  0   c_x
0   f_y  c_y
0    0    1 

(of course, you will want to divide p by its third coordinate after that).

The focal length, that I will note f is the distance between the camera center and the image plane. The variables

f_x=s_x*f 
f_y=s_y*f

in the matrix above respectively express this value in terms of pixel width and height. The variables s_x and s_y are the scale factors that are mentioned on the page you cite. The scale factor is the ratio between the size (width or height) of pixels and the units that you use in camera space. So, for example, if your pixel widths are half the size of the units you use on the x axis of camera space, you will have s_x=2.

I have seen people use the term principal point to refer to different things. While some people define it as the intersection between the camera axis and the image plane (Wikipedia seems to do this), others define it as the point given by [c_x c_y]^T. For clarity's sake, let's separate the whole projection process:

The two terms on the right hand side of the equation do different things. The first one scales the point and puts it into the image plane. The second term (i.e. [c_x c_y 1]^T) shifts the result from the other term. So, [-c_x ,-c_y]^T is the center of the image's coordinate system.

As for the difference between tangential/radial distortion: usually when correcting distortion, we assume that the center of the image o remains undistorted. A pixel p will have "moved away" from its true position q under the effect of distortion. If that movement is along the vector q-o then the distortion is radial, but if that movement has a component in a different direction, it is said to (also) have tangential distortion.

As I said I'm a bit unsure about what the focal plane they show in their figure means, but I think the term usually refers to the plane on which the upside-down image would form in a physical pinhole camera. A point P on the image plane (expressed in world coordinates) would just be -P on the focal plane.

这篇关于3D重建和SfM相机固有参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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