PNP问题简介

PNP(Perspective N Points)问题首先于1981年由Fishler和Bolles提出,类似的问题可以追溯到1841年摄影测量学领域。所谓PNP问题,就是指如下的物体定位问题:假定摄像机为小孔模型且已标定好,摄取一幅在物体坐标系下坐标已知的N个空间点的像,且这N个图像点的坐标已知,确定这N个空间点在摄像机坐标系下的坐标。

文献中对于PNP问题的求解方法一般有两种途径.第一种途径是确定空间点到摄像机光心的距离。由于摄像机已经标定好且图像点的坐标已知,所以空间点在摄像机坐标系下的投影方向可以通过图像坐标求出。

对P3P问题而言,空间点A,B,C与摄像机光心O的连线的方向在摄像机坐标系下的坐标是可以计算的,问题是要求出光心O到A,B,C点间的距离dA,dB,dC。

P3P问题的基本约束方程为:

在方程组(1)中,DAB,DBC,DAC是空间点A,B,C之间的距离。由于空间点的坐标假定已知,故这些量是已知量。可以通过图像点坐标和摄像机的内参数求得。所以。方程组中仅有的未知数是dA,dB,dc.求解PNP问题的另一种途径是确定物体坐标系到摄像机坐标系之间的旋转矩阵R和平移向量t,即:

式中Xc和Xw分别为同一空间点在摄像机坐标系下和物体坐标系下的坐标。所以,PNP问题同样可以定义为给定从三维空间到二维图像空间的N对对应点。很显然,如果R和t已知,且已知某空间点在物体坐标系下的坐标,就可以求得其在摄像机坐标系下的坐标。

利用第一种途径求解PNP问题的困难在于约束方程组中有未知数的平方项,不易获得解析解。利用第二种途径求解PNP问题的困难在于R矩阵是一个旋转矩阵,它只有3个独立变量,其中元素间的约束不易实现。

 PNP问题的研究现状

当N≥6时,PNP问题成为经典的DLT(Direct Linear Transformation   直接线性变换)问题,此时(R,t)均可解,因此研究N≥6的PNP问题已没有多大意义。

对于N=3时的P3P问题,文献中已研究得比较透彻。主要结论是:当N=3及A,B,C三点决定的平面不通过光心O时,方程组最多有4组解且解的上限可以达到。当N=4时,如果4个空间点共面,则解是唯一的;如果4个空间点不共面,可能出现多个解。

Harallic指出如果4个空间点是一个长方形的4个顶点,尽管该长方形的长和宽未知,但旋转矩阵R仍可以求得。

Penna指出已知空间共面4点及其对应图像点的坐标,(R,t)可以线性求解。

Quan提出了求解PNP问题(N≥4)的线性方法,该方法的特性是,如果PNP问题有唯一解,则该解可以线性求出。当问题有多解时,Quan方法就不再适用。为此,1999年有文献给出了一种迭代求解的方法。

PNP问题学习笔记1相关推荐

  1. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-PnP和实践

      专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记- ...

  2. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-特征点法和特征提取和匹配实践

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  3. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  4. 视觉SLAM十四讲学习笔记专栏汇总

    专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二 ...

  5. 《寒江独钓》内核学习笔记(1)-- IRP - .Little Hann

     原文  http://www.cnblogs.com/LittleHann/p/3450436.html 在学习内核过滤驱动的过程中,遇到了大量的涉及IRP操作的代码,这里有必要对IRP的数据结 ...

  6. 《寒江独钓》内核学习笔记

    <寒江独钓>内核学习笔记(1)-- IRP - .Little Hann 时间 2013-11-30 15:40:00  博客园_.Little Hann原文  http://www.cn ...

  7. 学习笔记之——Semi-direct Visual Odometry (SVO)

    本博文为本人学习SVO的学习笔记,本博文大部分内容来源于网络各种参考资料,本博文仅为本人学习记录用. 目录 原理 Tracking(位姿估计线程) 第一步:图像对齐 第二步:特征对齐 第三步:位姿结构 ...

  8. 驱动学习笔记 IRP

    在学习内核过滤驱动的过程中,遇到了大量的涉及IRP操作的代码,这里有必要对IRP的数据结构和与之相关的API函数做一下笔记. 1. 相关阅读资料 <深入解析 windows 操作系统(第4版,中 ...

  9. windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互

    windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互 前面两篇学习笔记分别介绍了IRP和IO_STACK_LOCATION,整个设备栈来处理这个IRP,但是每个设 ...

最新文章

  1. ONTAK2010 Peaks加强版(离线在线)
  2. C# 普通权限运行程序\非管理员运行\降低权限运行
  3. 【BZOJ2004】[Hnoi2010]Bus 公交线路 状压+矩阵乘法
  4. 语义分割论文阅读:FCN、PSPNet、DDRNet、BiseNet、BiseNetV2、deeplabv3
  5. java 找不到或无法加载类_解决Java中找不到或无法加载主类错误
  6. Visio主题与样式
  7. 周鸿祎在人民日报撰文,呼吁推行网络安全大战略
  8. 如何用python 巡检华为交换机?
  9. php的curl选项curlopt,CURLOPT_NOBODY选项,php中文手册中坑爹的翻译!
  10. java山地车 故障,山地车骑行常见的10大问题及解决方案
  11. 我的编程之路点滴记录(三)
  12. 2020年高处安装、维护、拆除答案解析及高处安装、维护、拆除作业模拟考试
  13. 新浪微博的架构发展历程
  14. 首涂第八套苹果CMSv10自适应视频模板原创4种颜色风格一键切换
  15. 北京房价当日报20141013
  16. 优达棒球赛数据分析项目
  17. 第一章 UT单元测试——GoogleTest通用构建说明
  18. 机器学习——凸优化基础知识
  19. 在unity3d里怎样使物体消失
  20. [转载] 信息系统项目管理师视频教程——17 项目人力资源管理

热门文章

  1. Android开发第一课--熟悉开发工具和第一个Android程序
  2. IT项目经理成长手记学习(一)
  3. 圈的ramsey数研究
  4. 进程、lwp(轻量级进程)和Java线程的理解
  5. 涛思数据创始人陶建辉荣获“2020中国开源杰出贡献人物”奖
  6. 如何使用思维导图做计划的6种模板类型
  7. 股票的交易原理是怎样的?
  8. 用ros输出hello,world(c++版)
  9. 有效地报告自动测试结果
  10. 【私藏好用】将bmap地图,Quik等五款软件打包送你端午节礼物