张正友相机标定-笔记_《flexible camera calibration by viewing a plane fr-程序员宅基地

技术标签: 张正友相机标定  

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u014096352/article/details/53453217

张正友相机标定论文笔记

精读张正友论文之后把主要步骤概括为:
Print a pattern 并把它attach 到一个平面上,通常这个pattern是个棋盘图
从不同角度对平面拍照,可以变换棋盘的位置,也可以变换棋盘的位置。
检测Image中的特征点
求解利用三维坐标和四组图像坐标,求解单应性矩阵,并根据矩阵分解理论求解外部参数与内部参数。
求解distort的系数
利用系数修正迭代模型,不断修改初始求出的内部参数和外部参数。

求单应性矩阵

 
 
  
  • 1

目前正在实现求解单应性矩阵。因为求特征点是后边考虑的内容,因此简化模型,特征点是自己选取的角点,之后深入学习了特征提取方面的知识后,回来修改这里的程序。

张的模型是对拍摄的平面做恢复,修改上一节提出的坐标变换公式

pm=(KRT|KRTC)(M1)pm=(KRT|−KRTC)(M1)

写成具体的坐标形式为

p⎛⎝⎜uv1⎞⎠⎟=K[r1,r2,r3,t]⎛⎝⎜⎜⎜XYZ1⎞⎠⎟⎟⎟p(uv1)=K[r1,r2,r3,t](XYZ1)

利用四个对应点可以求出H,已经通过编程实现求单应性矩阵(12月4日修改)。

解决相机标定问题

 
 
  
  • 1

相机标定问题是为了求解相机的内外参数我们设内参数矩阵为AA
其中
这里写图片描述

由于B是hermitian的,所以需要求解B中上(下)对角的六个元素。利用H矩阵的定义:
这里写图片描述
把求B的六个元素化简成等价的线性方程组
这里写图片描述
其中:
这里写图片描述
找出图像与三维平面之间任意三个以上的对应点就可以求解出B的六个参数,如果只有两个对应点则需要假设内参矩阵A中的c为0。求解出H与A之后,利用以下公式可以找出外部参数中的旋转矩阵与平移向量:

这里写图片描述
再利用以下公式可以求出内部参数:
这里写图片描述
求解出的相机参数(外部+内部)只是初始值,仍有很大的误差,我们需要把distort考虑进去,然后使用求最优化的方法反复迭代求解出误差最小的参数。具体步骤如下:

考虑radial distortion为多项式模型,即与半径r有关,令 (u,v)(u,v) 为标准化的坐标:利用两个坐标的变换公式
这里写图片描述

得到distortion模型
这里写图片描述
为了估计多项式中的两个参数
这里写图片描述
需要求解以上线性方程组,上式中的系数矩阵都是已知的,很容易得到两个参数

注意考虑到distortion之后要直接把原来坐标经过distortion变换即
这里写图片描述

最后就是求解一个非线性最优化模型
这里写图片描述

其中 是空间中的点M投影到图像上,同时考虑扭曲(也就是DK[R|t]MDK[R|t]M)使用LM算法可以求出最优解。


Zhang Z. Flexible camera calibration by viewing a plane from unknown orientations[C]// IEEE International Conference on Computer Vision. IEEE, 1999:666.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44525930/article/details/102476092

智能推荐

lotus-docs_new major version of npm available! 8.11.0 -> 10.3-程序员宅基地

文章浏览阅读224次。lotus-docs_new major version of npm available! 8.11.0 -> 10.3.0

Winform自定义MessageBox_winform messagbox-程序员宅基地

文章浏览阅读9.6k次,点赞7次,收藏13次。在使用Winform的MessageBox作为消息提示时,会有一些不方便的地方。如,MessageBox消息框弹出之后,如果不关闭就会阻塞函数的继续执行;不能自动关闭等。因此,子丰就自己仿照MessageBox的样式写了一个InformationBox提示框,可以实现自动关闭、永远显示在所有窗口的最上方等。首先,贴出几张图片展示一下InformationBox的效果;然后,具体介绍Informat_winform messagbox

使用radon变换进行直线检测_radon变换 直线检测-程序员宅基地

文章浏览阅读1.3w次,点赞5次,收藏41次。 最近做毕设,基础是利用radon变换进行直线检测。radon变换其实是对hough变换算法的优化,具体原理可自行查阅相关资料,在此不再赘述。本文要介绍的是利用matlab自带的radon变换函数进行直线检测,难点在于得到radon变换的结果后如何提取峰值并显示在原图上,下面将进行详细介绍。 matlab中自带的radon函数使用方法如下:[R,x]=radon(F,theta);..._radon变换 直线检测

Pytroch转Onnx实现(Unet的模型转Onnx)_pytorch unet onnx-程序员宅基地

文章浏览阅读1.5k次。主要是使用torch.onnx.export()这个方法来实现。Unet的实现参考:链接: https://blog.csdn.net/weixin_44791964/article/details/108866828.这位博主写的很详细,b站还有实现视频,手把手教学!!!Onnx转换实现代码import onnximport torch.onnxfrom unet import Unetunet=Unet()print(unet)model = torch.load('D:/Pycha_pytorch unet onnx

python函数myproduct_OpenERP与Python 元编程-程序员宅基地

文章浏览阅读61次。Python元编程被称为“黑魔法”。Python界的传奇人物Tim Peters有云:引用 Python的元编程这种黑魔法99%的人都无需了解,如果你拿不准是否应该用到它时,你不需要它.OpenERP基本遵循了Tim Peters的教诲,但是却在6.1版本之后忍不住触及了一点点,Technorati 标签: Openerp,Python,元编程从此游走于黑白两道之间:)其实OpenERP中用到的..._self.pool.get('product.product').create

mysql画本升级_MySQL 升级方法指南大全第4/5页-程序员宅基地

文章浏览阅读38次。MySQL 升级方法指南大全第4/5页更新时间:2008年01月26日 18:58:58 作者:通常,从一个发布版本升级到另一个版本时,我们建议按照顺序来升级版本。例如,想要升级 MySQL 3.23 时,先升级到 MySQL 4.0,而不是直接升级到 MySQL 4.1 或 MySQL 5.0。不兼容的变化:由于5.0中DECIMAL数据类型的实现方式发生了变化,因此如果使用就版本的库文...

随便推点

情感分析的入门简介,从词法、句法分析开始,到基础模型及深度学习模型的介绍_情感分析入门-程序员宅基地

文章浏览阅读851次。情感分析(Sentiment Analysis)是自然语言处理中一个非常重要且广泛研究的领域,它可以帮助企业或组织更好地了解客户对产品或服务的态度,从而制定符合用户需求的营销策略或产品改进方向。随着互联网和社交媒体等信息化时代的到来,传播开放、消费高速增长,各行各业都在追求个性化服务与个性化体验。如何准确识别并理解客户的心情、倾向、情绪和喜好,无疑是众多消费者关切的重点。目前,情感分析技术已经成为一种热门话题,有关部门也积极推出了针对不同场景的情感分析工具或产品。_情感分析入门

《UG NX8.0中文版完全自学手册》一1.5 文件操作-程序员宅基地

文章浏览阅读518次。本节书摘来自异步社区《UG NX8.0中文版完全自学手册》一书中的第1章,第1.5节,作者 刘昌丽 , 周进,更多章节内容可以访问云栖社区“异步社区”公众号查看1.5 文件操作UG NX8.0中文版完全自学手册本节将介绍文件的操作,包括新建文件、打开和关闭文件、保存文件、导入导出文件操作设置等。1.5.1 新建文件菜单栏:选择菜单栏中的“文件”..._ug nx 8.0中文版完全自学手册

基于MFC的学生成绩管理系统_mfc fdlg.domodal()-程序员宅基地

文章浏览阅读483次。简单的MFC的课程设计,部分功能还没有优化,仅供参考_mfc fdlg.domodal()

C11新特性(部分)_c11特性-程序员宅基地

文章浏览阅读1.2k次,点赞6次,收藏15次。1.类型推导2.nullptr指针空值3.基于范围的for循环4.typedef与using5.新增容器_c11特性

bootstrap table的分页_bootstarp table 分页样式-程序员宅基地

文章浏览阅读419次。1:在官网上下载相关的文件之后,步骤下载之后引入:<!-- 引入的css文件 --><link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" /><link href="bootstrap-table/dist/bootstrap-table.min.css" rel="styl..._bootstarp table 分页样式

编写一个简单的可加载内核模块-程序员宅基地

文章浏览阅读193次。2019独角兽企业重金招聘Python工程师标准>>> ..._listmonk 教程

推荐文章

热门文章

相关标签