当前位置: 首页 > news >正文

多相机坐标转换_自动驾驶入门之视觉定位坐标转换

计算机视觉当中相机成像模型坐标转换

32989cb6d6e773e90409bf29946e8cd8.png
  • 世界坐标系到相机坐标系的转换

  世界坐标系是在环境当中选定的一个三维坐标系,用于描述环境中任何物体的位置,符合右手坐标系。相机坐标系的原点位于镜头的光心,x,y轴分别与相机的边缘平行,z轴为垂直于成像平面的光轴。世界坐标系到相机坐标系属于刚体变换,即只发生平移及旋转,属于3D到3D的转换。

绕x轴旋转为俯仰角,对应的旋转矩阵可以表示为

fb11189b2bfaddd9f4a823ff8bc7a273.png

绕y轴旋转为翻滚角,对应的旋转矩阵可以表示为

4fddcdc3a121ec3ef5f52afb73df7a86.png
绕z轴旋转为航向角,对应的旋转矩阵可以表示为

cf1ff5d9ad8d09959fcef33d67f25933.png

  世界坐标系的建立一般为东北天方向,按照航向,俯仰,翻滚的顺序进行旋转,则旋转矩阵可记为

4be3afa672fe258705f40d0c573e7b7f.png

由此可见旋转矩阵为一个33的矩阵,记为R,平移矩阵为31的矩阵,记为t,R与t共同构成了外参矩阵

  设相机坐标系为

13b12f687da9d6f975b49b72320c90fd.png
  世界坐标系为ed247a7fc765ac93c68b5c338b6737c8.png

为了方便描述问题,下面我们在三维坐标的基础上增加一维,采用齐次坐标形式进行描述,世界坐标系与相机坐标系之间的关系为

d50ffddcdf82c7d8161c9e6b143d73cc.png

  • 相机坐标系到图像坐标系的转换

  图像坐标系用物理单位描述目标位置,坐标原点为光轴与坐标系的交点处,投影示意图如下图所示:

1a0880cf29d8afc238a3944d1aa2f86b.png

  三角相似公式可以得到:

db130a3fdf8120b8776103fd071e7d7f.png
则相机坐标系到图像坐标系的齐次坐标变换关系为:

2b85e6cb4fa2abf1949d463eaf32b74c.png

  • 图像坐标系到像素坐标系的转换

  像素坐标系以图像左上顶点为坐标原点,假设每个像素点在图像坐标系x轴与y轴方向上的尺寸为dx,dy,则图像坐标系到像素坐标系可以表示为:

983050693e343d6db802e5c71712c697.png
齐次坐标表示为:

3508ec1a5c09fb4d4adcc35650f71d29.png
将3个方程连续相乘可得:

2ebf9b44bf25d42defb31a34b1c26d88.png

记:

fb5ccb15babb080e1b2ad1ece9dbda83.png
则可进一步表示为:

66180c0aaf56dbaf5ce904fbd1fd2e95.png
其中s为尺度因子,记作:


其中矩阵

fe22182f5fb1d106cacd9be0c2d5ae35.png
为内参矩阵。

往期文章:

  • FPGA 中的有符号数乘法

    猫叔,公众号:科学计算technomaniaFPGA 中的有符号数乘法
  • 为什么推荐使用XPM?

  • FPGA资料分享

  •  RAM IP Core中 Write First Read First和No Change的区别

  •  Vivado调试小结:ILA debug中的数据也许并不可信

  • FPGA复位的正确打开方式

  • 如何使用Git进行Vivado工程的管理

  • 大家一致避免使用的锁存器为什么依然存在于FPGA中?我们对锁存器有什么误解?

  • 影响FPGA时序的进位链(Carry Chain), 你用对了么??

  • Virtex7 Microblaze下DDR3测试

  • Matlab高效编程技巧

  • 生成Verilog HDL例化模板

  • DCM/DLL/PLL/MMCM区别

FPGA时序约束教程:

  1. FPGA时序约束理论篇之建立保持时间

  2. FPGA时序约束理论篇之时序路径与时序模型

   3. FPGA时序约束理论篇之IO约束

   4. FPGA时序约束理论篇之时钟周期约束

   5. FPGA时序约束理论篇之两种时序例外

   6. FPGA时序约束理论篇之xdc约束优先级

   7. FPGA时序约束实战篇之梳理时钟树

   8. FPGA时序约束实战篇之主时钟约束

   9. FPGA时序约束实战篇之衍生时钟约束

  10. FPGA时序约束实战篇之延迟约束

  11. FPGA时序约束实战篇之伪路径约束

  12. FPGA时序约束实战篇之多周期路径约束

  13. Vivado时序约束辅助工具

  14. FPGA时序约束之Tcl命令的对象及属性

相关文章:

  • 蓝书2.2 KMP算法
  • 双下划线一粗一细怎么加_跑跑卡丁车U型弯怎么过技巧教学
  • Java编程语言基础 第三章 季节if用法
  • 基础数据类型转换和深浅拷贝
  • matlab 子图title的位置_MATLAB技巧之绘图篇
  • 管程由哪三部分组成_中药材切片机主要由哪五部分组成呢?
  • socket-详细分析No buffer space available(转载)
  • 怎么保存到桌面_标签打印软件怎么保存标签
  • C++之继承(二)
  • docker mariadb集群_Docker搭建Django+Mariadb环境
  • VueX源码分析(1)
  • python合并文件夹_Python实现合并同一个文件夹下所有PDF文件的方法示例
  • iOS 应用性能调优的25个建议和技巧
  • arm ubuntu 编译boost_BFL库的安装(适用ubuntu)
  • 宏与内联函数
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 「面试题」如何实现一个圣杯布局?
  • 【Amaple教程】5. 插件
  • Angular 4.x 动态创建组件
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • export和import的用法总结
  • java8 Stream Pipelines 浅析
  • jQuery(一)
  • LeetCode18.四数之和 JavaScript
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Python 基础起步 (十) 什么叫函数?
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 从零开始学习部署
  • 大数据与云计算学习:数据分析(二)
  • 分享一份非常强势的Android面试题
  • 规范化安全开发 KOA 手脚架
  • 记录一下第一次使用npm
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 区块链将重新定义世界
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 移动端唤起键盘时取消position:fixed定位
  • 走向全栈之MongoDB的使用
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • PostgreSQL之连接数修改
  • ​【已解决】npm install​卡主不动的情况
  • ​Linux·i2c驱动架构​
  • #FPGA(基础知识)
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • ( 10 )MySQL中的外键
  • (js)循环条件满足时终止循环
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (笔试题)合法字符串
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (接口自动化)Python3操作MySQL数据库
  • (一)UDP基本编程步骤
  • .net Signalr 使用笔记
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件