【智能驾驶:视觉感知后处理 阅读笔记】Day 5:鱼眼内参标定模型介绍

书籍

鱼眼相机主流模型
在自动驾驶、机器人视觉、全景监控与手机超广角影像领域,鱼眼相机凭借120°–200°超大视场(FOV) 优势成为核心传感器。
但鱼眼镜头存在极强的非线性“桶形畸变”,标准针孔模型(RadTan)完全失效,必须采用专用鱼眼投影模型完成标定、去畸变与三维重建。
为什么鱼眼不能用标准针孔模型?
标准针孔模型(RadTan)基于小孔透视投影,假设光线沿直线传播,仅适用于FOV<120°的小畸变场景。
而鱼眼镜头为实现超大视场,采用球面投影设计,边缘光线严重弯折,呈现“边缘拉伸、中心压缩”的桶形畸变,此时:
- 直线在图像中会弯曲
- 透视关系完全失效
- RadTan模型(k1/k2/p1/p2)拟合误差极大,甚至无法收敛
因此,鱼眼相机必须用基于球面/广义球面的投影模型。
主流鱼眼模型详解(核心)
1. KB模型(Kannala-Brandt,OpenCV官方鱼眼模型)
原理
等距投影+4阶径向多项式,核心是入射角θ与成像半径rd成正比,无切向畸变,专为120°–180°鱼眼设计。
rd=f⋅(θ+k1θ3+k2θ5+k3θ7+k4θ9)r_d = f \cdot (\theta + k_1\theta^3 + k_2\theta^5 + k_3\theta^7 + k_4\theta^9)rd=f⋅(θ+k1θ3+k2θ5+k3θ7+k4θ9)
- θ:入射光线与光轴夹角(0°–90°)
- rd:归一化平面上的径向距离
参数(共8个)
- 内参:fx, fy, cx, cy
- 畸变:k1, k2, k3, k4(仅径向,无切向p1/p2)
优缺点
- ✅ 优势:OpenCV原生支持(fisheye::calibrate)、标定快、鲁棒性强、工业界最常用、适合车载/监控鱼眼
- ❌ 劣势:FOV>180°时精度下降、无法建模折反射全向相机
适用场景
- 手机超广角(120°–150°)
- 车载环视鱼眼(150°–180°)
- 工业监控鱼眼(≤180°)
- OpenCV项目首选
2. MEI模型(Mei全向模型,含ξ参数)
原理
球面投影+径向切向畸变,在针孔模型基础上增加球面偏移参数ξ,统一建模鱼眼+折反射全向相机(如360°镜面相机)。
- 3D点先投影到单位球面,再通过ξ投影到归一化平面
- ξ=0 → 退化为标准针孔;ξ=1 → 纯鱼眼;ξ>1 → 折反射相机
参数(共9个)
- 内参:fx, fy, cx, cy
- 畸变:k1, k2, p1, p2(径向+切向)
- 球面参数:ξ(核心,区分鱼眼/全向)
优缺点
- ✅ 优势:通用最强、支持180°+全向相机、SLAM(VINS-Fusion)标配、可建模折反射系统
- ❌ 劣势:参数多、标定易过拟合、OpenCV无原生支持(需自定义优化)
适用场景
- 高端鱼眼(180°–200°)
- 折反射360°全景相机
- SLAM/VIO系统(如VINS-Fusion)
- 学术高精度标定
3. UCM模型(Unified Camera Model,统一相机模型)
原理
单参数球面投影,MEI模型的简化版,用α控制投影球面形状,平衡精度与速度。
xu=xz+ξ⋅r,r=x2+y2+z2x_u = \frac{x}{z + \xi \cdot r}, \quad r = \sqrt{x^2 + y^2 + z^2}xu=z+ξ⋅rx,r=x2+y2+z2
- α∈[0,1]:α=0→针孔;α=1→鱼眼;0<α<1→超广角
参数(共5个)
- 内参:fx, fy, cx, cy
- 球面参数:α(唯一畸变相关参数)
优缺点
- ✅ 优势:参数最少、计算极快、适合实时系统、Google ARCore采用、手机超广角常用
- ❌ 劣势:精度有限、大畸变(>170°)拟合差、无切向畸变补偿
适用场景
- 手机超广角(120°–150°)
- AR/VR实时定位
- 低算力嵌入式设备(如无人机)
4. EUCM模型(Enhanced Unified Camera Model,增强统一模型)
原理
双参数广义球面投影,UCM的升级,用α+β两个参数建模椭球面投影,兼顾精度与速度。
- 比UCM多一个β参数,能更好拟合非理想鱼眼镜头的畸变
参数(共6个)
- 内参:fx, fy, cx, cy
- 球面参数:α, β
优缺点
- ✅ 优势:精度>UCM、速度>MEI、SLAM(ORB-SLAM3)支持、适合150°–180°鱼眼
- ❌ 劣势:OpenCV无原生支持、需依赖第三方库(如Camodocal)
适用场景
- 中高端鱼眼(150°–180°)
- 高精度SLAM(ORB-SLAM3)
- 自动驾驶感知(兼顾精度与实时性)
5. DS模型(Double Sphere,双球面模型,2018年后主流)
原理
双单位球面投影,当前精度最高、鲁棒性最强的鱼眼模型,用ξ+α两个参数建模两级球面投影,完美拟合180°+极端畸变。
- 3D点先投影到第一个球面,再映射到第二个球面,最后投影到图像平面
参数(共6个)
- 内参:fx, fy, cx, cy
- 球面参数:ξ, α
优缺点
- ✅ 优势:当前最优精度、支持200°+鱼眼、鲁棒性强、Basalt/Camodocal等最新SLAM首选
- ❌ 劣势:计算复杂度略高、OpenCV无原生支持、需自定义实现
适用场景
- 极端鱼眼(180°–200°)
- 自动驾驶高端环视系统
- 最新SLAM算法(Basalt)
- 高精度三维重建
五大模型核心对比(一眼选型)
| 模型 | 适用FOV | 参数总数 | 核心参数 | 精度 | 速度 | OpenCV支持 | 典型用途 |
|---|---|---|---|---|---|---|---|
| KB | 120°–180° | 8 | k1~k4 | 中 | 快 | ✅ 原生 | 车载/监控鱼眼、OpenCV项目 |
| MEI | 120°–200° | 9 | ξ+k1/k2/p1/p2 | 高 | 中 | ❌ 自定义 | SLAM、折反射全向相机 |
| UCM | 100°–150° | 5 | α | 低 | 极快 | ❌ 自定义 | 手机超广角、AR/VR |
| EUCM | 120°–180° | 6 | α+β | 中高 | 快 | ❌ 第三方 | ORB-SLAM3、自动驾驶 |
| DS | 150°–200° | 6 | ξ+α | 最高 | 中 | ❌ 自定义 | 高端鱼眼、最新SLAM |
项目选型终极建议
- OpenCV+普通鱼眼(≤180°) → 选KB模型(原生支持、稳定高效)
- SLAM/VIO(VINS-Fusion) → 选MEI模型(通用强、支持全向相机)
- 手机超广角/AR(低算力) → 选UCM模型(参数少、实时性强)
- 高精度SLAM(ORB-SLAM3) → 选EUCM模型(精度速度平衡)
- 极端鱼眼(>180°)/最新SLAM → 选DS模型(当前最高精度)
总结
鱼眼相机模型的演进,本质是**从“简化拟合”到“精准建模”**的过程:KB是工业界“实用标杆”,MEI是“通用王者”,UCM是“实时首选”,EUCM是“平衡之选”,DS是“精度天花板”。
实际项目中,优先根据FOV范围、算力预算、算法依赖、工具链支持选择模型,避免盲目追求高精度而忽略实时性与稳定性。

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)