相机标定时单映射H阵的求法

本文介绍了相机标定中像素坐标系与物理坐标系、图像物理坐标系与相机坐标系、相机坐标系与世界坐标系之间的转换关系。通过透视变换和刚体变换,解析了二维像素点到三维空间坐标点的转换公式,并探讨了单应性矩阵的求解方法,特别提到了棋盘格标定模板在获取单应性矩阵中的应用。

本文转载自:https://blog.csdn.net/ganguowa/article/details/56843208

                             https://blog.csdn.net/ganguowa/article/details/60765691

正文

相机的坐标系,总共有四个,有的文章里面说是三个。不管三个,还是四个,说的都是一样的意思。在本篇文章里,我们按照四个坐标系来讲。现在,我们把它们的定义摆出来:

  1. 图像的像素坐标系(u,v)
    以图像的左上方为原点,u轴平行于图像面水平向右,v轴垂直于u轴向下,此坐标系的单位为像素;
  2. 图像的物理坐标系(x,y)
    以相机的光轴与图像平面交点为原点,x轴方向与u轴方向一致,y轴方向与v轴方向一致,以毫米为单位,用物理单位表示图像像素位置;
  3. 相机坐标系(Xc,Yc,Zc)
    以相机的光心作为原点,Zc轴与光轴重合,并垂直于成像平面,且取摄影方向为正方向;Xc、Yc轴分别与图像物理坐标系的x,y轴平行;相机坐标系的原点与图像物理坐标系原点之间的距离为相机的焦距f,以毫米为单位;
  4. 世界坐标系(Xw,Yw,Zw)
    三维世界的全局坐标系,以(Xw,Yw,Zw)来表示,满足右手法则

    在对四个坐标系有了明确的定义之后,我们就可以开始对它们之间的关系做一些研究。
    我们说的四个坐标系全在下面这张图里,虽然地方小了点儿,但坐标系一个不少,大家可以看一眼,直观地了解一下,虽然并没什么用。                     
                                                                  单视图几何-相机标定| 逍遥のBlog         


1.图像像素坐标系与物理坐标系之间的转换

                                                  针孔相机模型| 一索哥传奇
如 设Ouv点为像素坐标系的原点,它位于图像的左上顶点。u轴向右为正方向,v轴向下为正方向。
[ps一句:左上角作为像素坐标的原点,这是一种人为的设置。换句话说,我们也可以设置其它顶点作为原点。例如,在opencv里面,像 素的原点即为左上角;而在kinect拍到的图片里,则左下角为原点。有涉及到这方面的小伙伴可以做笔记了,重点已经画出来了。]
与像素坐标系原点不同,图像物理坐标系原点的定义是只此一家,别无分店。我们给物理坐标系原点起个外号:o1。 设o1的像素坐标值为(uo,vo)。很显然,它们之间的转换关系如下:

                                                      

(1)
不过,事情并不是这么简单,由于各种原因,像素在实际当中并非方方正正的正方形,而是菱形,如下图所示。
                                       这里写图片描述
这样一来,为了追求更高的精度,我们需要将这个因素考虑进去,当然,没把这个因素考虑进去也无妨,因为好多人都没这么办,譬如大名鼎鼎的opencv,
这里写图片描述
上图出自opencv2.4.13的文档。相比较像素坐标带来的误差,镜头畸变带来的误差影响更大,因为镜头畸变的原因,相机其实并非线性模型,提高相机标定精度的一大方法就是采用更精确的非线性模型,对比opencv不同版本的文档,我们可以发现,opencv下功夫的也是这方面。
把话题回到主线上来,在考虑到像素坐标的实际形态之后(个人比较喜欢用”形态“这个词),像素坐标系和物理坐标系之间的关系其实是这个样子的:

                                                            

(2)变换成矩阵形式之后就是下面这个样子:

                                                  

(3)
与公式(3)的模型相比,opencv的模型是不是显得单纯好多。

2.图像物理坐标系与相机坐标系之间的转换

这里写图片描述

上面这幅图形象的表明了图像物理坐标系与相机坐标系之间的关系。这两者之间的变换是透视变换

假设在空间某一点P,它在相机坐标系中的坐标为(xc,yc,zc),依据相似三角形的相关知识,我们可以得到:

                                                           

(4)
其中,f就是前面所说的焦距。我们把它变成矩阵形式:

                                                    

(5)
很明显,这个矩阵是一个齐次矩阵,我们为什么要变矩阵变换成齐次形式呢。简单点说,为了求解方便。

3.相机坐标系与世界坐标系之间的转换

这两者之间的变换是刚体变换。所谓刚体变换,就是只有旋转和平移的变换。

当然还有其他变换,缩放、扭曲、翻转还有剪切等等,各种变换真是不要太多。
形象点说,你拿一条棍子甩来甩去,这叫刚体变换。如果你拿一根面条甩来甩去,那就不是刚体变换。

好了,刚体变换的话题到此结束,我们来进入正题,看看相机坐标系与世界坐标系之间的转换。涉及到旋转和平移(其实所有的运动也可以用旋转矩阵和平移向量来描述)。

所以世界坐标到相机坐标可以表示为:

R为旋转矩阵,绕着不同的坐标轴旋转不同的角度,得到相应的旋转矩阵,如下图所示:

                                                    

(6)
其中,R为3×3的矩阵,T为3×1的矩阵。一如既往,我们对上式采取了齐次的形式。

利用上面的四个变换公式,我们可以得到图像的二维像素点与对应的三维空间坐标点的转换公式:

                                                 

(7)
其中,值得一提的是,,0是一个3×1的向量。

(8)

要求解,将上式写成这样的公式(1):

                                           

另一种清晰的表示即为:

4、(U,V)与(Xw,Yw,Zw)的求解

在张正友标定法当中,我们一般用棋盘格作为标定模板,通过图像处理上的方法我们可以得到棋盘格上的角点坐标,这样我们就得到了(u,v). 

                                                  

那么,我们如何得到对应的空间点坐标呢。
我们假设标定模板位于zw=0上,结合棋盘格的边长我们就可以得到相应的角点的空间位置。譬如,假设每一个小格子的大小为300*300,那么,红点1的坐标为(0,0,0),则红点2的坐标为(0,300,0),依次类推,这样我们就得到对应点的空间坐标。

                                         

5、单应性矩阵的求解

 当Zw=0时,公式(1)可以变为:

                           

用单应性矩阵可以表示成:

                                        

此处H是一个3×3的矩阵,但是H的自由度只有八个,就是图像平面间的单应性矩阵自由度只有八个。

所以公式可以变成:

                                       

容易得到:

                                    

通过简单变形后可以得到:

                                  

列成矩阵的形式(2):

                          

其中:

                      

共有八个位置参数,所以需要四个形如(2)的公式才能求解,棋盘一个格子能提供四个点,所以用棋盘的四个角点来求解

                

通过某些方法皆矩阵,即可得到H阵。

内容概要:本文围绕面向光储充一体化社区的电动汽车有序充电双层优化策略展开研究,提出了一种结合上层系统优化与下层用户优化的协同调度模型。上层以削峰填谷、降低电网购电成本为目标,优化光储系统与电动汽车的整体充放电行为;下层则聚焦于最小化用户个体充电费用,提升用户参与积极性。通过Matlab平台实现模型求解,融合智能优化算法对光伏发电的随机性、负荷波动及用户充电需求多样性进行建模与协同调度,有效提升了可再生能源的就地消纳能力,减小了电网峰谷差。研究还引入虚拟储能、需求响应等机制,增强了系统的灵活性与经济性,为社区级综合能源系统的优化运行提供了理论依据与技术路径。; 适合人群:具备电力系统分析、优化建模及Matlab编程基础的科研人员,尤其适用于从事微电网、综合能源系统、电动汽车调度、需求响应等领域研究的研究生、高校教师及工程技术人员。; 使用场景及目标:①应用于光储充一体化社区能量管理系统的设计与运行优化;②为实现电动汽车有序充电、提升分布式能源利用率、降低电网运行压力提供解决方案;③服务于双层优化模型的学习与复现,深化对主从博弈、分布式优化等高级建模方法的理解与应用。; 阅读建议:建议读者结合提供的Matlab代码深入剖析模型构建细节,重点关注上下层目标函数的耦合关系、约束条件的数学表达以及求解算法的实现流程,同时可参考文中涉及的智能优化算法与其他综合能源案例,拓展实际科研与工程应用思路。
内容概要:本文研究基于TCN-GRU-Attention混合深度学习模型的风电功率预测方法,采用多变量输入实现单步预测,利用Matlab代码进行仿真分析。该模型充分融合时间卷积网络(TCN)在局部与长期依赖建模方面的优势、门控循环单元(GRU)对动态时序特征的捕捉能力,以及注意力(Attention)机制对关键时间步输入变量的自适应加权聚焦,从而有效提升风电功率预测的精度与鲁棒性。研究涵盖数据预处理、模型构建、参数调优及结果评估全过程,特别适用于处理具有高度随机性、间歇性非平稳性的风能出力数据。; 适合人群:具备一定机器学习深度学习理论基础,从事新能源发电预测、电力系统调度、智能算法开发等相关领域的科研人员及工程技术人员,尤其适合电气工程、自动化、计算机等专业的研究生从事风电场运行管理与预测系统开发的从业人员。; 使用场景及目标:①应用于风电场实际运行中的短期功率预测系统,为电网调度、电力交易储能配置提供高精度数据支持;②作为学术研究参考资料,深入理解TCN、GRU与Attention模块的协同机制及其在时序预测任务中的集成方法;③帮助开发者掌握基于Matlab平台的深度学习模型搭建、训练与验证流程,实现端到端的风电功率预测解决方案。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析实现细节,重点关注多变量标准化处理、网络结构设计、注意力权重可视化及预测误差分析部分,同时可通过更换真实风电场数据集或调整模型超参数来进一步验证模型的泛化性能与稳定性。
智能安防是依托人工智能、大数据、物联网等前沿技术构建的新一代安全防护体系,彻底打破了传统安防“被动监控、事后追溯”的局限。它不再是孤立的摄像头、门禁报警器的简单组合,而是通过全域感知设备的互联互通,实现对人员、车辆、环境等多维度数据的实时采集与智能分析。从社区出入口的人脸无感通行、异常行为识别,到道路上的违章智能抓拍、重点区域的入侵预警,再到企业园区的消防隐患预判、设备故障自动告警,智能安防能在毫秒级完成风险研判,把安全防线从“事后处置”前移到“事前预防”。如今,它早已渗透到城市治理、居家生活、商业运营等各类场景,成为守护公共安全与私人空间的核心技术支撑。 不同于传统安防依赖人工盯守的高成本模式,智能安防凭借算法的持续迭代,不断拓展安全防护的边界。它可以通过对历史数据的深度挖掘,提前识别人群聚集、消防通道占用等潜在风险,联动公安、物业、应急等多部门快速响应,大幅降低安全事件的发生概率处置时长。在老旧小区改造中,智能安防设备的加装解决了过去流动人口管理难、高空抛物溯源难等长期痛点;在家庭场景里,智能门锁、可视门铃、燃气泄漏报警器等设备组成的居家安防网络,让用户通过手机就能随时掌握家中安全状态。随着数字城市建设的推进,智能安防正从单一的安全工具,进化为构建智慧城市安全底座的关键组成部分,为人们的日常工作与生活筑牢更高效、更精准的防护屏障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值