Straight lines have to be straight

本文探讨了自动校准及畸变去除方法,重点介绍了针孔相机模型、畸变模型(包括多项式畸变、鱼眼模型和逆模型)、畸变校准原理以及边缘检测等关键技术。此外,还讨论了模型选择的准则,如基于概率论的方法、最小描述长度原则和畸变模型间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Automatic calibration and removal of distortion from scenes of structured environments

2001年的文章,引用813

The geometry of a pinhole camera

相机将三维世界中的坐标点(单位:米)映射到二维图像平面(单位:像素)的过程能够用一个几何模型来描述,其中最简单的称为针孔相机模型 (pinhole camera model),其框架如下图所示

针孔相机模型描述了三维空间中的点的坐标与其在理想针孔相机的图像平面上的投影之间的数学关系,其中相机光圈被描述为点并且没有透镜用于聚焦光。 该模型不包括例如由透镜和有限尺寸的孔引起的未聚焦物体的几何变形或模糊。 它也没有考虑到大多数实用的相机只有离散的图像坐标。 这意味着针孔相机模型只能用作从3D场景到2D图像的映射的一阶近似。 其有效性取决于相机的质量,并且通常随着镜头失真效应的增加从图像中心向边缘减小。

 

 世界坐标系和相机坐标系,图像坐标系的关系

https://blog.youkuaiyun.com/waeceo/article/details/50580607

相机内外参数:https://blog.youkuaiyun.com/MyArrow/article/details/53084595 

内参数:参数矩阵(fx,fy,cx,cy)和畸变系数(三个径向k1,k2,k3;两个切向p1,p2)

外参数:旋转向量R(大小为1x3的矢量或旋转矩阵3x3)和平移向量T(Tx,Ty,Tz)

单目摄像机标定参数:https://blog.youkuaiyun.com/xuelabizp/article/details/50314633 

单目摄像机标定和校正最终将获得9个参数,内部参数是4个,畸变校正参数是5个

 

校准方法:

(1)校准网格方法,在3d世界坐标系中,在图像中识别控制点,找到摄像机外部和内部的参数;但存在高校准误差

(2)利用图像特征的几何不变量(不是世界坐标系)

(3)自校准方法:不需要已知校准点,所有参数未知

2 The nonlinear distortion model

   2.1 Polnomial distortion models(多项式畸变模型)

   2.2 Fish-eye models

   2.3 Inverse model

 

3 Distortion calibration

    3.1 Principle of distortion calibration

   3.2 Edge detection with sub-pixel accuracy

   3.3 Finding 3D segments in a distorted image

   3.4 Measuring distortion of a 3D segment in the image

   3.5 Putting it all together: the whole calibration process

 

4.模型选择

(1)基于概率论:选择最能描述数据的模型,最简单方法是采用选择最低残差的模型,但会导致模型参数过多。

(2)最小描述长度(MDL):选择的模型,使模型和数据具有最短编码

(3)畸变模型之间的转换:已选择了一种模型A和它的参数集Pa,将它转换为模型B,利用最小二乘法求得Pb,如果参数更少,换为模型B。

 

这篇文章提出的畸变校准算法过程如下:
1.加载或获取一组图像。
2.对图像进行子像素边缘检测和链接。得到图像的链接边集。
3.初始化畸变参数
4.在未失真的边缘上进行多边形近似以提取分段候选。
5.计算失真误差E0(对所有检测到的段进行求和)。
6.优化畸变参数以最小化总失真误差,使用非线性最小二乘法。
7.计算畸变误差E1,优化参数
8.如果错误(E0-E1) /E1的相对变化小于阈值,此处停止。
9.使用优化值更新畸变参数。
10.转到步骤4。

 

 

 

 

 

 

 

 

 

 

 

 

 

Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully jumping from rock to rock in a river. The excitement takes place on a long, straight river with a rock at the start and another rock at the end, L units away from the start (1 ≤ L ≤ 1,000,000,000). Along the river between the starting and ending rocks, N (0 ≤ N ≤ 50,000) more rocks appear, each at an integral distance Di from the start (0 < Di < L). To play the game, each cow in turn starts at the starting rock and tries to reach the finish at the ending rock, jumping only from rock to rock. Of course, less agile cows never make it to the final rock, ending up instead in the river. Farmer John is proud of his cows and watches this event each year. But as time goes by, he tires of watching the timid cows of the other farmers limp across the short distances between rocks placed too closely together. He plans to remove several rocks in order to increase the shortest distance a cow will have to jump to reach the end. He knows he cannot remove the starting and ending rocks, but he calculates that he has enough resources to remove up to M rocks (0 ≤ M ≤ N). FJ wants to know exactly how much he can increase the shortest distance *before* he starts removing the rocks. Help Farmer John determine the greatest possible shortest distance a cow has to jump after removing the optimal set of M rocks. Input Line 1: Three space-separated integers: L, N, and M Lines 2..N+1: Each line contains a single integer indicating how far some rock is away from the starting rock. No two rocks share the same position. Output Line 1: A single integer that is the maximum of the shortest distance a cow has to jump after removing M rocks Sample Inputcopy Outputcopy 25 5 2 2 14 11 21 17 4 Hint Before removing any rocks, the shortest jump was a jump of 2 from 0 (the start) to 2. After removing the rocks at 2 and 14, the shortest required jump is a jump of 4 (from 17 to 21 or from 21 to 25).
07-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值