4. 数学模型:Brown-Conrady畸变模型、除法模型、多项式模型

聊到镜头畸变校正,就绕不开数学模型。说白了,数学就是给畸变“拍X光片”——把肉眼看到的变形,用公式精确描述出来。

我最早接触畸变校正时,觉得公式特别吓人。后来发现,其实就三种主流模型:Brown-Conrady模型、除法模型、多项式模型。今天咱们一个一个拆开讲。

4.1 Brown-Conrady畸变模型

这个模型在工业视觉里用得最多。我习惯叫它“标准模型”。它把畸变拆成两部分:径向畸变和切向畸变。

径向畸变,就是镜头中心往外“鼓”或者往里“缩”。你想想看,广角镜头拍出来的照片,边缘的直线都弯了,这就是径向畸变。

切向畸变,是镜头和成像平面不平行造成的。我在项目中遇到过,相机固定支架稍微歪了一点,拍出来的矩形就变成了梯形。嗯,这就是切向畸变在捣鬼。

公式长这样:

x_distorted = x * (1 + k1*r^2 + k2*r^4 + k3*r^6) + [2*p1*x*y + p2*(r^2 + 2*x^2)]
y_distorted = y * (1 + k1*r^2 + k2*r^4 + k3*r^6) + [p1*(r^2 + 2*y^2) + 2*p2*x*y]

其中:

  • (x, y) 是理想坐标
  • r^2 = x^2 + y^2
  • k1, k2, k3 是径向畸变系数
  • p1, p2 是切向畸变系数

关键点:k3一般只在鱼眼镜头里用。普通工业镜头,k1和k2就够用了。加太多参数反而容易过拟合。

我的经验:标定时,先只算k1和p1。如果校正后边缘还有明显弯曲,再加k2。我曾经一次性把k1~k6全开了,结果校正完的图像比没校正还奇怪……

4.2 除法模型

这个模型比较“另类”。它把畸变放在分母上。公式很简单:

x_distorted = x / (1 + k * r^2)
y_distorted = y / (1 + k * r^2)

只有一个参数k。你想想看,一个参数就能描述畸变?没错,但前提是——畸变比较“干净”。

我在项目中用过除法模型。当时做的是手机镜头模组检测,畸变很小,用除法模型跑一遍,效果和Brown-Conrady差不多。但计算量小了一个数量级。

什么时候用除法模型?

  • 畸变比较小(比如<1%)
  • 对实时性要求高
  • 只需要校正径向畸变

注意:除法模型对切向畸变无能为力。如果你的镜头安装有倾斜,千万别用这个模型。我曾经吃过这个亏,校正完图像中间是直的,边缘还是歪的。

4.3 多项式模型

多项式模型,说白了就是“万能公式”。它用多项式来拟合任意形状的畸变。公式长这样:

x_distorted = x + a0 + a1*x + a2*y + a3*x^2 + a4*x*y + a5*y^2 + ...
y_distorted = y + b0 + b1*x + b2*y + b3*x^2 + b4*x*y + b5*y^2 + ...

阶数越高,拟合越准。但要注意,阶数太高容易“过拟合”——对标定板上的点很准,换一个场景就崩了。

我个人习惯用3阶或4阶多项式。5阶以上基本不用,除非是特殊镜头。

模型 参数数量 适用场景 计算量
Brown-Conrady 5~8个 通用工业镜头 中等
除法模型 1个 小畸变、实时系统
多项式模型 可变(6~20个) 特殊镜头、高精度

选型建议:

  • 普通工业镜头 → Brown-Conrady(k1, k2, p1, p2)
  • 手机镜头/小畸变 → 除法模型
  • 鱼眼/广角镜头 → 多项式模型(4阶以上)

4.4 三种模型的对比与选择

我做个简单的总结。你想想看,选模型就像选工具:

  • Brown-Conrady:瑞士军刀,什么都能干。我90%的项目都用它。
  • 除法模型:小刀,轻便但功能有限。适合嵌入式系统。
  • 多项式模型:大砍刀,威力大但不好控制。适合科研或特殊场景。

我曾经在一个项目中,用Brown-Conrady模型校正后,边缘还有0.3像素的残差。换成5阶多项式,残差降到0.05像素。但代价是标定时间从2秒变成了15秒。嗯,这就是trade-off。

避坑指南:标定完成后,一定要做“残差分析”。把标定板上的点投影回去,看看平均误差和最大误差。如果最大误差超过1像素,说明模型选错了或者标定数据有问题。

4.5 知识体系图

下面这张图,是我自己整理的畸变模型选型逻辑。你可以照着它来选:

畸变模型选型逻辑 镜头畸变校正 畸变是否小于1%? 除法模型 1个参数,实时性好 是否有切向畸变? Brown-Conrady模型 5~8个参数,通用性强 多项式模型 高阶拟合,精度高 残差分析验证

这张图的核心逻辑就是:先判断畸变大小,再判断畸变类型。选对了模型,标定就成功了一半。

最后说一句:模型只是工具,真正重要的是理解畸变的物理本质。我见过有人用最复杂的模型,标定结果却一塌糊涂——因为连标定板都没放平。嗯,工具再好,基础不能丢。


公众号:蓝海资料掘金营,微信deep3321