相机动态/在线标定

news2024/12/13 8:55:19

在这里插入图片描述

图1
图2

基本原理
【原理1】平行线在射影变换后会交于一点。如图所示,A为相机光心,蓝色矩形框为归一化平面,O为平面中心。地面四条黄色直线为平行且等距的车道线。HI交其中两条车道线于H、I, 过G作HI的平行线GM交车道线于M。HI、GM在归一化平面上的投影分别为JK、PN,二者会交于一点Q。准确来说,地平面上所有与HI平行的直线在归一化平面上的投影都交于Q,这也是平行线在投影面上的灭点。

为什么呢?考虑投影的成因,以GM上一点S为例,S投影为T,即AS与投影平面的交点为T。那么
当S向M方向移动到无穷远处,T落在QN及其延长线上,直到S超过GM与PN的交点,此时投影在NQ的延长线上。
当S向G方向移动到无穷远处,T不断向Q靠近,AT趋于与GM平行。换句话说,AQ表示GM的方向,所以所有与GM平行的直线的投影都交与同一点Q。

据此原理,对于投影平面上的任意一条截线,其上必然存在一点为灭点Q,并且AQ为这条截线对应的地平面上的直线的方向。
同理,地面上的平行车道线的投影也交于灭点V,AV为车道线的方向。
显然AV,AQ都平行于地平面,因此二者的叉积即为地平面的法向量。当车辆行驶方向与车道线方向一致,则可推导相机相对于车体/地面的外参。

在这里插入图片描述

一般而言,vanish point还是好求的,但是第二个灭点该如何找呢?
那么,考虑这种情况。在归一化平面上作和相机系X轴,即上下边平行的直线交三条平行的车道线投影于M,N,P,其对应在地面上的点为J,K,L。作JKL的平行线QR交地面车道线于QR,QR在归一化平面上的投影为ST。由上面原理可知,ST与MNP交于一定点U。因此,问题转化为如何求解U。

【原理2】射影交比不变性和投影调和共轭。二者结合起来就是一个结论,K为JL的中点时候,K关于JL的调和共轭点是无穷远处Z,其对应的交比为-1。由上面的原理,我们可知,Z的投影为U。由交比不变性可知,(P,M;N,U)的交比和(L,J;K,Z)的交比相同。所以构建方程可以求解U的坐标。
在这里插入图片描述

ABC三点共线,L为线外一点,过C作直线交LA于M、交LB于N,MB、NA交于K点,LK交AB于D点,则称D为C点相对于AB的调和共轭点。交比 ( A , B ; C , D ) = − 1 ∗ A C B C = − 1 (A,B;C,D) = -1*\frac{AC}{BC} = -1 (A,B;C,D)=

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2256701.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在 Windows 11 WSL (Ubuntu 24.04.1 LTS) | Python 3.12.x 下部署密码学库 charm

1. 在 Windows 11 上部署 Ubuntu (WSL) 由于作者没有高性能的 Ubuntu 服务器或个人电脑,且公司或学校提供的 Ubuntu 服务器虽然提供高性能 GPU 等硬件配置但通常不会提供 root 权限,因而作者通过在搭载了 Windows 11 的个人电脑上启动 Ubuntu (WSL) 来进…

【中间件开发】Redis基础命令详解及概念介绍

文章目录 前言一、Redis相关命令详解及原理1.1 string、set、zset、list、hash1.1.1 string1.1.2 list1.1.3 hash1.1.4 set1.1.5 zset 1.2 分布式锁的实现1.3 lua脚本解决ACID原子性1.4 Redis事务的ACID性质分析 二、Redis协议与异步方式2.1 Redis协议解析2.1.1 redis pipeline…

设计模式的艺术读书笔记

设计模式的艺术 面向对象设计原则概述单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则 创建的艺术创建型模式单例模式饿汉式单例与懒汉式单例的讨论通过静态内部类实现的更好办法 简单工厂模式工厂方法模式重载的工厂方法工厂方法的隐藏工厂方…

计算机毕设-基于springboot的甜品店管理系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

Mac 录制电脑系统内的声音的具体方法?

1.第一步:下载BlackHole 软件 方式1:BlackHole官方下载地址 方式2: 百度云下载 提取码: n5dp 2.第二步:安装BlackHole 双击下载好的BlackHole安装包,安装默认提示安装。 3.第三步:在应用程序中找到音频…

【开源免费】基于Vue和SpringBoot的课程答疑系统(附论文)

博主说明:本文项目编号 T 070 ,文末自助获取源码 \color{red}{T070,文末自助获取源码} T070,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

ACM latex模板中的CCSXML (即:CCS Concept)怎么填?

CCS Concept 感谢CCS Concept 怎么填 的珠玉在前. 问题描述 如下,ACM模板(比如ACM computing surveys)有一段是需要填写 ccsxml: %% %% The code below is generated by the tool at [http://dl.acm.org/ccs.cfm.](http://dl.…

【Transformer序列预测】Pytorch中构建Transformer对序列进行预测源代码

Python,Pytorch中构建Transformer进行序列预测源程序。包含所有的源代码和数据,程序能够一键运行。此程序是完整的Transformer,即使用了Encoder、Decoder和Embedding所有模块。源程序是用jupyterLab所写,建议分块运行。也整理了.p…

Mybatis-plus 简单使用,mybatis-plus 分页模糊查询报500 的错

一、mybtis-plus配置下载 MyBatis-Plus 是一个 Mybatis 增强版工具&#xff0c;在 MyBatis 上扩充了其他功能没有改变其基本功能&#xff0c;为了简化开发提交效率而存在。 具体的介绍请参见官方文档。 官网文档地址&#xff1a;mybatis-plus 添加mybatis-plus依赖 <depe…

前端项目使用gitlab-cicd+docker实现自动化部署

GitLab CI/CD 是一个强大的工具&#xff0c;可以实现项目的自动化部署流程&#xff0c;从代码提交到部署只需几个步骤。本文将带你配置 GitLab CI/CD 完成一个前端项目的自动化部署。 前言 为什么使用cicddocker&#xff1f; 目前我们公司开发环境使用的shell脚本部署&#…

设计模式:20、状态模式(状态对象)

目录 0、定义 1、状态模式的三种角色 2、状态模式的UML类图 3、示例代码 0、定义 允许一个对象在其内部状态改变时改变它的行为&#xff0c;对象看起来似乎修改了它的类。 1、状态模式的三种角色 环境&#xff08;Context&#xff09;&#xff1a;环境是一个类&#xff0…

Unity3D学习FPS游戏(13)玩家血量控制

玩家血量控制 血条UI玩家Canvas下的Slider血量逻辑控制 子弹攻击掉血子弹发射者的区分玩家受伤逻辑子弹碰撞检测 效果 血条UI 和之前我们前面介绍的玩家武器弹夹UI的思路是一样的&#xff0c;跟详细的细节可以参考博客Unity3D装弹和弹夹UI显示。 玩家Canvas下的Slider 之前玩…

【开源免费】基于SpringBoot+Vue.JS高校学科竞赛平台(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 075 &#xff0c;文末自助获取源码 \color{red}{T075&#xff0c;文末自助获取源码} T075&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

学在西电录播课使用python下载,通过解析m3u8协议、多线程下载ts视频块以及ffmpeg合并

本文涵盖的内容仅供个人学习使用&#xff0c;如果侵犯学校权利&#xff0c;麻烦联系我删除。 初衷 研究生必修选逃&#xff0c; 期末复习怕漏过重点题目&#xff0c;但是看学在西电的录播回放课一卡一卡的&#xff0c;于是想在空余时间一个个下载下来&#xff0c;然后到时候就…

基于php+mysql的旅游网站——记忆旅行 旅游分享 攻略分享 设计与实现 源码 配置 文档

旅游网站 1.项目描述2. 概述3.项目功能4.界面展示5.源码获取 1.项目描述 摘 要 随着互联网的不断发展&#xff0c;计算机网络逐渐普及到人们的生活&#xff0c;为人们带来了便捷。互联网的趋势扩大&#xff0c;运用到家家户户中。各行各业都在考虑利用互联网将自己的信息推广…

2024.12.6——攻防世界php_rce

知识点&#xff1a;PHP框架 RCE远程命令执行 PHP常用框架&#xff1a;php常用的7大框架_php框架-CSDN博客 1.小型项目&#xff1a;CodeIngiter 2.中型项目&#xff1a;CakePHP、Zend Framework、Laravel、Thinkphp 3.大型重量级项目&#xff1a;Yii、Symfony、Laravel 使用…

autogen 人工输入模式

一、Allowing Human Feedback in Agents 允许代理中的人类反馈 发起聊天 (initiate_chat) 功能&#xff1a;用于启动对话过程。 参数&#xff1a;max_turns&#xff1a;限制对话的最大回合数。如果设置为3&#xff0c;意味着对话将在第三个回合后自动终止&#xff0c;除非提前…

网络渗透实验四(渗透课)

实验目的和要求实验目的&#xff1a;通过对目标靶机的渗透过程&#xff0c;了解CTF竞赛模式&#xff0c;理解CTF涵盖的知识范围&#xff0c;如MISC、PPC、WEB等&#xff0c;通过实践&#xff0c;加强团队协作能力&#xff0c;掌握初步CTF实战能力及信息收集能力。熟悉网络扫描、…

C++_关于异常处理throw-try-catch

文章目录 作用1. 无异常捕获2. 有异常捕获 作用 简单说&#xff0c;异常处理机制主要作用是让程序能够继续执行&#xff0c;或者以一种可控的方式终止&#xff0c;而非让程序因为错误直接崩溃 一个简单的动态数组类&#xff0c;来看看有异常捕获和无异常捕获的区别 1. 无异常…

LabVIEW氢同位素单质气体定量分装系统

氢同位素单质气体在多个行业中有重要应用&#xff0c;如能源和化工。传统的分装方法面临精度和自动化程度不足的问题。为此&#xff0c;开发了一套基于LabVIEW和质量流量控制器的定量分装系统&#xff0c;提高分装精度和效率&#xff0c;同时减少资源浪费和环境污染。 项目背景…