opencv fisheye calibration(鱼眼相机校正)

article/2025/10/5 7:56:17

文章目录

  • fisheye_calibration
    • 小孔成像模型(理想相机成像模型)
    • fisheye model 相机模型
    • 内参校正的原理
    • calibration过程
    • 对这个过程简单分析
    • 参考文章

fisheye_calibration

小孔成像模型(理想相机成像模型)

请参考下面的文章
理想相机成像模型

fisheye model 相机模型

fisheye model opencv 里使用的鱼眼成像模型。

  1. 等距投射模型
    在这里插入图片描述
    P点射过来的光线,按照这个模型会成像到上图P’点。但是实际上由于畸变,他不是成像到P’点,而是这一点附近。可以用P’点的多项式展开来近似。

  2. 鱼眼成像模型为什么会增大视场角?
    几种模型的视场角

  3. 从Z 轴俯视看成像模型如下,可看出rd 和rc的关系,以及xd,yd 与rc 的关系。
    在这里插入图片描述

  4. 由小孔成像影射几何以及上面的等距模型可以把fisheye model 抽象成下面的模型。从上到下依次是公式1-公式7.
    在这里插入图片描述

  5. 理想相机模型VS鱼眼相机模型
    在这里插入图片描述

内参校正的原理

输入:一堆世界坐标系下的3D 坐标点,和相应的这些棋盘坐标点经过相机成像之后的2D像素坐标点。
输出:内参(9个)( f x , f y , c x , c y , k 0 , k 1 , k 2 , k 3 , α f_x,f_y,c_x,c_y,k_0,k_1,k_2,k_3,\alpha fx,fy,cxcyk0,k1,k2,k3,α), 外参(6 个)( r v e c , t v e c rvec,tvec rvec,tvec)

  • 问题域描述:

  • 已知: u i , v i ⇐ ⇒ X i , Y i , Z i u_i,v_i \Leftarrow\Rightarrow X_i,Y_i,Z_i ui,viXi,Yi,Zi, i = [ 1 ⋯ N ] i=[1 \cdots N] i=[1N] 共N组数据对,

  • 求:求解内参和外参,内参( f x , f y , c x , c y , k 0 , k 1 , k 2 , k 3 f_x,f_y,c_x,c_y,k_0,k_1,k_2,k_3 fx,fy,cxcyk0,k1,k2,k3), 外参( r v e c , t v e c rvec,tvec rvec,tvec)

  • 求解方法:这类问题如何求解请参考另一篇博文。
    可以认为自变量是待求的参数(15个),因变量是 u , v u,v u,v, 导数是 u , v u,v u,v分别对15 个参数的偏导 ∂ u ∂ f x \partial u \over \partial f_x fxu, ∂ u ∂ f y \partial u \over \partial f_y fyu, ∂ u ∂ c x ⋯ {\partial u \over \partial c_x} \cdots cxu

calibration过程

在这里插入图片描述

对这个过程简单分析

  1. 第一步初始化内参(finalParam.init()), 不需要过多分析。初始化的值对最终的结果影响很小, 我尝试修改初始化的内参,对最终的结果影响很小。
  2. 第二步,计算外参(CalibrateExtrinsics())
  3. 第三步,优化内参加外参(Optimization)。
  4. CalibrateExtrinsics() 函数会循环对每一张输入的图片做一次InitExtrinsics() 和ComputeExtrinsicRefine(), 这里的ComputeExtrinsicRefine() 只会根据当前图像的棋盘点(比如8X5=40个点)对外参进行refine. 这一步对外参的估算是在固定的初始化内参的情况下进行的。内参不变。
  5. Optimization,是针对所有图像的所有点进行的优化,同时对内参和外参都进行了优化。优化的方法使用的是牛顿-- 拉夫逊方法 (Newton-Raphson method)
  6. 具体每个函数的详细分析, 请参专门对每个函数分析的文章。
  • InitExtrinsics函数分析
  • 协方差矩阵的 几何意义
  • ComputeHomography函数分析
  • ComputeExtrinsicRefine函数分析
  • projectPoints函数分析
  • Optimization分析

参考文章

  1. 鱼眼成像几种模型
  2. 理想相机成像模型
  3. 几种模型的视场角

http://chatgpt.dhexx.cn/article/LQxc7GY1.shtml

相关文章

【论文】RAPiD: Rotation-Aware People Detection in Overhead Fisheye Images

RAPiD: Rotation-Aware People Detection in Overhead Fisheye Images 在这项工作中,我们开发了一种端到端的旋转感知的人检测方法,称为RAPID,它使用任意方向的包围盒来检测人。我们的完全卷积神经网络使用周期损失函数直接回归每个包围盒的…

fisheye calib视野调整

1. 畸变模型采用 K np.array([[6.2597563231075685e02, 0., 1.1601088601848592e03],[0., 6.2525998102575511e02, 1.1634786618991664e03],[0., 0., 1.]]) 2. 直接使用 initUndistortRectifyMap和remap时注意调节视野的大小,为了方便得到想要的大小需要借助 es…

初识FishEye

一、简介 这几个月一直都在整白盒测试,虽然断断续续,但是也确实学习了不少东西,长了不少见识。今天就要给大家隆重介绍一款非常棒的工具——FishEye! FishEye能够为你打开代码库,并帮助你分析代码,一句话概…

FishEye简介

前言 在项目开发过程中,随着开发的进行,将有大量的代码编写提交到代码仓库,如何能全面准确的了解源代码的变化,提交的频率,代码量的趋势,发现代码的缺陷,将是控制源代码质量的重要指标&#xff…

linux服务器开机提示f1,Dell的Linux服务器开机按F1解决方法

最近买了些二手服务器,dell品牌,性价比还不错,但是一台dell 服务器开机总是提示按F1才能进系统,到底应该怎么解决呢? 请问我的电脑开机老是提示“strike the f1 key to continue ,f2 to run the setup utility”这些&a…

服务器开机显示f1 f2,开机提示按F1/F2才能进入系统的解决方法

电脑开机出现了一个怪现象,那就是每次开机的时候都会有“F1”或者是“F2”的提示,并且要按一下才能正常进入系统,该怎么解决呢?下面秋叶系统小编教大家解决办法! 下图为开机按F1键才能正常进入系统的画面! …

联想计算机启机按F1,电脑开机提示按f1不能正常启动怎么办

电脑开机一般都是自动启动,不过有时出现提示要按f1,否则不能正常启动,怎么回事呢?不知道的朋友可以看看以下关于开机提示F1的解决方法,希望对你有帮助! 电脑开机提示按f1的解决方法 启动电脑需要按F1才能进入系统解决方法:开机时要按F1这是BIOS设置错误引起的,所以可能是…

DELL服务器重启以后需要按F1才能进去系统

1、DELL服务器断电以后启动会一直卡在这个页面,需要手动按F1才能进入系统,解决方法如下: 2、按F2进入到"for System Setup (BIOS)" 3、进入到:system BIOS 4、进入到:Miscellaneous Settings 5、设置 F1…

计算机开机按f1f2,电脑开机总是提示按f1 f2问题的解决办法

一、问题描述 开机后出现如下图界面,无法进入系统。 我们看最后两条: 尝试按F1,可以进入了BIOS, 而按F2却一直卡着,无法进入系统,一会之后又自动关机。 其实这是某品牌主板的通病,特别是一些低端的主板。在我们开机后,一直会出现CMOS Checksum Bad 提示按F1 F2的问题。…

技嘉服务器主板按f1才能进系统,电脑开机要按F1或F2才能进入系统的解决方法

有些电脑有段时间没用,开机后发现进不到系统,显示如下图,必须按F1或者F2才能进入系统,虽然每次也能进入系统,但感觉很烦,这是什么原因呢?下面分享两个电脑开机要按F1或F2才能进入系统的解决方法…

服务器启动显示按f1f2f10,电脑开机提示按f1f2f5 电脑开机要按F1F2F5

电脑开机要求按F1,F2,F3或F5 有朋友跟我反应说他的XP系统,开机的时候要手动按F1才可以进WIN程序。那怎么改成默认的呢?可以尝试下以下方法。方法一、开启计算机或重新启动计算机后,及时按下“Del”键进入BIOS的设置界面…

电脑开机,总需要按F1,是什么原因造成的?

开机需要按F1键,原因有好几个,最常见的是BIOS电池没有电了,更换一块电池即可。 一、什么是BIOS电池 BIOS电池也叫主板电池,位置在主板上面,打开机箱盖子就可以看到啦,样子就是圆圆的一个银币一样的,很好看。 BIOS电池其实和电子秤、电视遥控器里的电池是一样的,一般…

华硕主板开机提示按F1怎么办?华硕主板开机提示按F1的解决方法

最近有很多网友问我的电脑采用的是华硕主板,不过最近在进入黑苹果后再开机出现了F1键,想要在BIOS中关闭F1报错检测,不知道如何操作。开机需要按下F1键,通常这种问题并非是致命性故障,可以直接在主板中关闭。那么华硕主…

按F1才能进系统怎么办?电脑开机需要按f1才能进入系统的解决办法

经常有网友问到一个问题,我电脑开机后提示按f1怎么解决?不管理是台式电脑,还是笔记本,都有可能会遇到开机需要按F1,才能进入系统的问题,引起这个问题的原因比较多,今天小编在这里给大家列举了比…

计算机开机按f1,开机要按F1怎么解决?电脑开机不按F1进去系统的方法

相信很多用户在开启电脑的时候都会这种情况,开机的时候电脑要按F1才能进入系统,如果不按F1就进不了系统桌面。时间长了,会让人非常厌烦。那么要如何设置不按F1就直接进入系统桌面呢?下面就和大家介绍一下电脑开机不按F1直接进去系…

服务器开机显示f1 f2,开机按f1的解决方法|开机按f2的解决方法|电脑开机按f1怎么解决...

2013-12-24 09:55:09  浏览量:1036 相信很多用户都有遇到一个问题,即开机时会出现一大串英文:Hareware Monitor found an error,enter POWER MANAGEMENT SETUP for details,Press F1 to continue,DEL to enter SETUP,提示让你按F1才能继续启动计入系统。 2018-11-25 1…

台式计算机启动时 每次按f1,电脑开机时总是提示要按F1?云骑士告诉你如何解决...

原标题:电脑开机时总是提示要按F1?云骑士告诉你如何解决 电脑开机要按F1的原因及解决办法。想必大家都有遇到过开机要按F1,那这是什么原因呢?如何解决这个问题?下面云骑士来详细介绍下遇到这种问题的原因和解决方法! 电脑开机要按…

计算机开机总要按f1键,为什么开机要按f1键?win7每次开机按f1才能进入系统怎么办...

很多小伙伴遇到电脑每次开机都要按f1才能进入win7旗舰版系统,怎么回事?这说明你电脑的bios里面启动项没有设置好。因为没有设置好,所以就按F1才能能引导你的系统启动。为此,下面给大家讲解win7每次开机按f1才能进入系统的解决方法…

服务器开机必须要按f1才能进系统,教你为什么开机必须按F1才能进入系统

Windows启动按F1才能进入系统怎么取消?若是用户的计算机以前并不需要按F1,但最近突然就需要F1才能进入系统的原因主要和主板电池有关,换一块电池是最直接的方法,不过这个原因也并不是唯一。 Windows启动按F1才能进入系统的原因和解…