文章目录

  • P3P简介
  • 直接线性变换法
  • Kneip算法
    • 算法原理及流程
    • 基于RANSAC的Kneip算法

P3P简介

相机位姿求解是SFM中必要的一步,而P3P问题的目的就是通过三维点(3对)对应关系确定摄像机在世界参考坐标系中的位置和方位,通常会产生4对解,然后使用第4对点消除歧义。大多数解决方案是先求出对应的2D点在当前相机坐标系下的3D坐标,然后根据世界坐标系下的3D坐标和当前相机坐标系下的3D坐标求解相机位姿,即直接线性变换法。还有另一种P3P的解法,即Kneip算法,Kneip是一种close-form的P3P求解方式,主要思想是引入相机和世界坐标系的中间坐标系来计算他们之间的相对姿态和位置来得到相机的姿态,相比其他求解方法,速度快,求解稳定。

参考论文:
A Novel Parametrization of the Perspective-Three-Point Problem for a Direct Computation of Absolute Camera Position and Orientation)

直接线性变换法

像点坐标与对应的3D点坐标的关系如下:

整理可得像素点坐标u,v的表达式,如下:

进一步推导可得:

一共12个未知参数,每对3D-2D对应点提供2个线性约束,因此共需要至少6对3D-2D对应点,才可以求得r1,r2,r3,即求得矩阵T=[KR,Kt]。

接下来就是根据求得的矩阵T来求解内参、旋转、平移矩阵。

已知T(:,1:3)=KR,且内参矩阵K为上三角矩阵,R为正交矩阵。对矩阵T(:,1:3)-1进行QR分解,分别得到R-1,以及K-1,进而得到内参矩阵K以及旋转矩阵R。

已知T(:,4)=Kt,以及内参矩阵K,可得平移向量t。

Kneip算法

算法原理及流程

  • 创建新的相机坐标系
    如上图所示,P1,P2,P3是世界坐标系中的三个点,C为相机中心,相机分别指向三个点的单位向量为f1⃗\vec{f1}f1​,f2⃗\vec{f2}f2​,f3⃗\vec{f3}f3​。创建新的相机坐标系为τ\tauτ =(C,tx⃗\vec{tx}tx,ty⃗\vec{ty}ty​,tz⃗\vec{tz}tz),其中

    通过旋转变换T = [tx⃗\vec{tx}tx,ty⃗\vec{ty}ty​,tz⃗\vec{tz}tz]T将单位向量ν\nuν转换到τ\tauτ

  • 创建新的世界坐标系

    如上图所示,创建新的世界坐标系η\etaη=(P1,nx⃗\vec{nx}nx,ny⃗\vec{ny}ny​,nz⃗\vec{nz}nz),其中

    通过旋转矩阵N=[nx⃗\vec{nx}nx,ny⃗\vec{ny}ny​,nz⃗\vec{nz}nz]T将世界坐标系的点转换到η\etaη坐标系下。

  • 相机中心在平面中的表达

    如上图P1,P2,C三个点构成一个平面Ⅱ,定义β\betaβ=f1⃗\vec{f1}f1​·f2⃗\vec{f2}f2​。
    根据几何约束

    相机中心C在平面Ⅱ中可以表达为

  • 相机中心和姿态在新建世界坐标系中表达

    如上图,新建相机坐标系τ\tauτ的基向量在平面中Ⅱ的表达为

    绕nx⃗\vec{nx}nx的旋转矩阵可以表达为

    相机在中心C在坐标系 η\etaη的表达为

    η\etaη到τ\tauτ 的旋转表达为

  • 将第3个点从新建世界坐标系η\etaη转换到新建相机坐标系τ\tauτ中

    已知定义


  • 构建四次方程并求解
    最终可以得到一个关于cosθ\thetaθ的四次方程

    其中

    每一个cosθ\thetaθ对应一个cotα\alphaα一共可以得到4组解

    通过第4个点可以选择出正确的解

基于RANSAC的Kneip算法

基于RANSAC的Kneip算法流程如下:

  1. 计算RANSAC采样次数,设置内点阈值(重投影误差)
  2. 随机采样三对3D-2D对应点,计算相机的姿态
  3. 计算每个视角中的重投影误差,统计内点个数
  4. 重复2,3步直到满足采样次数,选择内点数最多的相机姿态

基于图像的三维重建——P3P求解相机位姿(5)相关推荐

  1. 基于图像的三维重建——基于空间patch扩散的方法(PMVS)

    1.PMVS:多视图匹配经典算法简介 导语:常见的稠密重建方法主要有三种:基于体素的方法.基于深度图融合的方法以及基于3D patch扩张的方法.第一种基于体素的方法仅适用于小场景,单个物体,遮挡较少 ...

  2. 基于图像的三维重建研究

    前言 三维重建,顾名思义就是对现实世界中的三维物体用计算机来进行模拟.目前主流的有两种手段:采用红外设备对物体进行测距.基于多张有关待测物体的二维图像进行三维重建.由于前者需要红外设备,成本比较昂贵且 ...

  3. Windows环境下几款优秀的基于图像的三维重建软件

    基于图像的目标三维重建技术是计算机视觉领域中研究的热点,近些年来,涌现了大量的优秀算法,对于目标重建的完整性,准确性,实时性不断提高.本文今天向大家介绍几款可以在window平台下,运行的软件,用户只 ...

  4. 研究生科研必备!!!2015-2020年各类国际会议基于图像的三维重建论文综述(1)——总览

    此文为2015-2020年各类国际会议与期刊基于图像的三维对象重建论文综述的第一部分,总览部分 本文涵盖总结了2015到2020年几百篇国际会议与期刊上的3d-reconstruction文章. 本系 ...

  5. 基于图像的三维重建——捆绑调整(6)

    文章目录 前言 基础知识 重投影 重投影误差 最小化重投影误差 求解方法 最速下降法 算法介绍 算法流程 牛顿法 算法介绍 算法流程 Levenberg-Marquardt法 算法介绍 算法流程 增量 ...

  6. 基于图像的三维重建——三角测量(4)

    文章目录 简介 求解方法 直接线性变换法 RANSAC鲁棒估计 简介 三角测量是根据对应图像位置的集合和已知点的摄像机位置确定一个点的3D位置的问题.当给定相机内外参矩阵时,图像上每个特征点实际上对应 ...

  7. 基于图像的三维重建——对极几何(3)

    文章目录 对极约束 基础矩阵F 基础矩阵性质 基础矩阵求解方法 直接线性变换法 基于RANSAC的鲁棒方法 本征矩阵E 本征矩阵性质 本征矩阵求解 从本征矩阵中恢复相机姿态 单应矩阵H 单应矩阵性质 ...

  8. 基于图像的三维重建——深度图计算方法1-SGM/tSGM(9)

    文章目录 立 体 算 法 流 程 介 绍 >全局立体匹配算法 >局部立体匹配算法 >半全局立体匹配算法SGM SGM 算 法 原 理 详 解 >深度图初始化 >匹配代价计 ...

  9. 基于图像的三维重建系统概览

    前言 从2维图像重建3维立体具有重要的研究价值和潜在经济社会价值,其核心技术是图像的密集匹配,从最早的70年代摄影测量领域开始研究图像匹配,至今已有近半个世纪的时间.可以这样说,该问题的研究基础奠定于 ...

最新文章

  1. VS2015 Qt5
  2. 改变宇宙之前,GPT-3最先改变的可能是OpenAI
  3. mybatis表关联彻底理解
  4. long 比较大小_Long-Term Feature Banks
  5. 一个 Dubbo 服务启动要两个小时
  6. 基于Vue开发一个日历组件
  7. 边缘深度学习设备基准评测:英伟达Jetson Nano胜出
  8. 2016美国计算机科学硕士,美国计算机科学硕士MS in Computer Science TOP10学校录取要求提醒...
  9. MySQL知识树 集合操作
  10. VMware Harbor 学习
  11. 接口幂等性常见的解决方案
  12. H5热门游戏模板案例解读:贪吃蛇玩法的新高度
  13. mame 最新版本以及fba 编译
  14. 消息队列MQ技术的介绍和原理
  15. SSD目标检测流程深入理解
  16. 求出字符串中大写字母,小写字母和数字的个数
  17. Burp Suite 自带浏览器Burp‘s Browser(Chromium)沙盒sandbox问题的解决
  18. 万豪环保系列之明渠紫外线消毒器
  19. Solidworks如何生成爆炸图
  20. 多商户商城系统功能拆解39讲-平台端营销-砍价记录

热门文章

  1. 【微信采集助手】Python Tkinter 微信公众号文章批量采集工具
  2. 由于找不到MSVCP120D.dll,无法继续执行代码。重新安装程序可能会解决此问题。
  3. 操作系统进程同步例题(一)上机实习
  4. AP5160宽电压 LED 降压型恒流芯片2.5-100v
  5. 从几个名词来阐释西安印象
  6. Android代码规范_持续更新
  7. NBT封面:水稻NRT1.1B基因调控根系微生物组参与氮利用(作者解读)
  8. cache 计算机系统实验报告,计算机组成原理实验报告-cache模拟器的实现
  9. 计算机网络故障的参考文献,计算机网络故障技术研究
  10. 前端HTML关于QQ和QQ群在web页面直接打开的链接方法: