# Tag Info

## Hot answers tagged camera-calibration

7

This is mostly a matter of history. Checkerboard patterns have proven in the past to: yield calibration accurate results be easy and robust to implement. This was confirmed (for example) by a benchmark performed by NASA long time ago, where they were assessing visual solutions to control robotic arms. Why are checkerboards robust and accurate? Because ...

6

If I understand correctly, you don't need the intrinsics or extrinsics to achieve that, if a top-down view is all you want. You could basically define 4 points on your parallel lines and then warp the entire image into a canonical view (say $\{\{0,0\}, \{480,960\}\}$). To do that in OpenCV, all you need to do is compute the homography using findHomography ...

4

You can use any target you'd like as long as you can find the features in a robust way, and you know their location in the real world. For example I used once ISO12233 chart image to calibrate radial distortion with fair accuracy, by knowing what features to look for, and what is their relative location. Both chessboard and dot chart are regular patterns (...

4

This is due to the optimization problem being rather high-dimensional (around 11 parameters). With only a single observation of the calibration board, there would be multiple possible combinations of parameters explaining the observed feature point locations (unless a very constrained camera-model is used). Only a sufficient number of sufficiently ...

3

No, it is not a good idea. Typically, you want to limit the volume of space relative to the camera in which you want to do your measurements, and you want to use a single calibration target appropriate for that volume. In theory, you can calibrate with any number of different patterns. In practice, however, most implementations assume that the pattern is ...

2

Yes, the center pixel and focal length in pixels will change, as described in the link above. However, if you learn distortion parameters (radial and tangential) then they shouldn't change as resolution changes because they operate on the projective image plane (before multiplying by camera matrix) instead of pixel coordinates (after multiplying by camera ...

2

Generally speaking, when you are estimating a model from data, the more (independent) data points, the better the estimation. In this particular case, the goal is to get as many 3d -> 2d point correspondences as possible, filling as much as possible of the volume of space of interest that is observed by the camera. The size of the squares directly affects ...

2

Take a look at this paper here: "Straight lines have to be straight" by Faugeras et al. http://link.springer.com/article/10.1007/PL00013269#page-1 It is straight forward to implement, but essentially removes distortions by observing the straightness of lines. It should be straight forward to implement if you remove some automation (e.g. you click on the ...

2

You are correct: to calibrate a camera you need a correspondence between 3D world points and 2D image points. The problem is that the 3D points cannot be co-planar, so people were building 3D calibration rigs, e. g. a box made of checkerboards. One image of a rig like that would be enough to calibrate, but those rigs are hard to build, because you have to ...

2

There is a lot of variability because distortion can be compensated for optically and lens designs differ. Some lenses are marketed as rectilinear, most not. You would be making the distortion worse for some lenses by doing any correction advised by focal length alone. For focal lengths shorter than about 30 mm, the distortion seems dominantly barrel, ...

2

This is a long topic to fully explain. I will try to write shortly, so please excuse the brevity. Standard computer vision projection (ignoring distortion like Houdini) follows: $$\mathbf{x} = \lambda \mathbf{K}[\mathbf{R}\mathbf{X} +\mathbf{t} ]$$ $\mathbf{R}$ is a $3x3$ orthogonal matrix, $\mathbf{t}$ is a $3x1$ translation vector. Camera position $\... 2 There is no matrix that maps a pixel in camera 1 to the corresponding pixel in camera 2. This is because the location of the corresponding pixel depends on the 3-D location of the corresponding point in the world. What you have instead is the Fundamental matrix, which maps a pixel in camera 1 to a line in camera 2, called the epipolar line. 2 ...if we have a pinhole camera model several parameters describe the specific camera (such as aspect-ratio, focal length, principal point, distortion parameters etc). "Distortion parameters" does not sound like a typical pinhole camera model. A pinhole camera does not have a "finite apperture" or way of focusing light other than a tiny little opening which ... 1 For your application, here are the steps I would follow: Calibrate the camera and obtain the intrinsics - You have obviously done that and corrected for the distortion already. initUndistortRectifyMap only lets you to precompute the projection. Otherwise, you might as well use projectPoints each time. This is a detail and I would not care about that ... 1 When you say cameras are parallel it only means that the center pixels are parallel. Every pixel has a different angle, and that refers to the overlapping regions you were talking about. Actually there is at most one overlapping voxel (3d pixel kind of) for every 2 pixels! There is more about it in epipolar geomtry , it's interesting and pretty simple! 1 I agree with user lxg that it is a notational difference, as for the pinhole camera we always have: $$S_2 = f$$ That is not necessarily true for a camera with a lens. A pinhole camera is not the same as a camera with a lens, because a pinhole camera is sharp at all$S_1$. What makes focal length a descriptive quality of both camera types is that the ... 1 Formally speaking, you would like to extrinsically calibrate the laser scanner to the 2D image. I have taken the liberty to edit your question to reflect that. Here is how my initial approach would be: Calibrate the intrinsics of the 2D camera. For that, just use OpenCV. You should store the intrinsic parameters: focal lengths, principal point and ... 1 The answer here suggests that checkerboard patterns may yield more accurate (subpixel) calibration results and be more robust. You may have edited your question because the title asks which pattern but the text asks about rows and columns. In either case, you may consider using checkerboard instead of circle pattern maybe? 1 The Essential matrix is defined only up to scale, so you cannot extract scale from it. In other words, if you multiply$t$and all the 3D world points in your scene by a constant factor, the essential matrix will be the same. If you have to get the scale, then you need some additional information. Either you need to have an object of a known size in the ... 1 First, calibrate your intrinsics: The focal lengths and the principal point. Homography is not really a rigid transformation and rather a mapping of a plane onto another one. What you really need is a 6DOF parametrization, which is the camera pose. If you have the intrinsics, you could transfer your coordinates to the normalized coordinates and estimate the ... 1 So here are the answers to the questions: It's a good question. First, your calibration grid should somehow be "coded". For example, the OpenCV checkerboard pattern is a rectangle and the points are sorted from upper left to lower right. This way, you find the exact correspondences between your 3D model and 2D points. For multiple views, the origin doesn'... 1 Your$b$is wrong. Take a look here. The form$y=mx+b$is called Slope-Intercept form where$b\$ is the intersection with the y-axis (which is 1 in your case). You should use the two-point form: $$y - y_1 = \frac{y_2 - y_1}{x_2 - x_1} (x - x_1)$$ which yields $$y - 2 = \frac{1}{2} (x - 2)$$ or $$y = \frac{1}{2} x + 1$$

1

It is possible to invert the mapping, but projecting a 2D image point into 3D world won't give you a single point but a ray, which is the locus of all 3D world points that map to the same point in the image plane. This is why the info of depth is being lost during the process of image formation. As Dima said you can get back this info using 2 or more views ...

1

You should not experience any major drawbacks. Generally such techniques utilize adaptive thresholds and rely on gradient orientations (especially normalized ones), which are intrinsically invariant to uniform illumination and contrast changes. In other words, brightness changes will not effect your subpixel positions, if you are using an appropriate corner ...

1

For pairwise stereo calibration try using the Stereo Camera Calibrator app in the Computer Vision System Toolbox. It is much easier to use than Caltech Camera Calibration toolbox. For starters it detects the checkerboard automatically.

1

Use an asymmetric calibration plate. Such as the new circle grid in OpenCV. Check here. You do not need to find the correspondences in the gui, but rather run the calibration directly. Also, do not forget to initialize the optimization problem using the median of the obtained poses. To calibrate multiple view setups, I would also recommend Multi Camera ...

1

If you pose estimation algorithm carefully minimizes the reprojection error using the standard non-linear techniques e.g., Levenberg Mardquardt, and your corner detection scheme is sufficiently accurate in the subpixel level, then yes. I would expect the residuals to be very small. Of course take into account the distortion parameters; they have to be ...

1

I do all my camera calibratins with a SpyderLenscal. You have to take the biggest focal length and the lowest aperture value. This is how you get the smallest depth of field. The distance between camera and your pattern should be the one you usually use with this specific lens. Here you'll find a video tutorial: https://www.youtube.com/watch?v=k2zlLIDfVgc

Only top voted, non community-wiki answers of a minimum length are eligible