位置: IT常识 - 正文

PnP解算及SolvePnp用法(pnp算法简介与代码解析)

编辑:rootadmin
PnP解算及SolvePnp用法 1 PnP解算

推荐整理分享PnP解算及SolvePnp用法(pnp算法简介与代码解析),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:pnp求解,pnp算法简介与代码解析,pn结计算题,pnp电路计算,pnp位置解算,pnp求解方法有哪些,pnp算法简介与代码解析,详解pnp,内容如对您有帮助,希望把文章链接给更多的朋友!

PnP问题:Perspective-n-Point问题。 参考下图, 给定n个3D空间参考点,以及各点在相机图像上对应的成像点,求参考点所在坐标系与相机的空间关系。 即: 已知条件1:给定匹配点对:世界坐标系(图中OwXwYwZw)下的n个3D点坐标及其对应在图像坐标系(图中ouv)下的2D点坐标。 已知条件2:相机的内参。 求:世界坐标系OwXwYwZw与相机坐标系OcXcYcZc之间的位姿变换关系。 PnP问题的用途:相机位姿获取,物体位姿测量,AR/VR,机器人操作,SLAM中位姿初值求解…… 常用解法:DLT,P3P,EPnP,UPnP。

2 OpenCV的solvePnP2.1 函数原型定义

OpenCV提供了PnP问题的解算函数,且包含有多种解法。 有以下两个函数。

1) solvePnPbool solvePnP( InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess = false, int flags = SOLVEPNP_ITERATIVE );

作用:根据3D-2D点对应关系,获得物体的位姿。 此函数返回旋转和平移向量,可用来将物体坐标系中的3D点变换到相机坐标系下。

2) solvePnPRansacbool solvePnPRansac( InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess = false, int iterationsCount = 100, float reprojectionError = 8.0, double confidence = 0.99, OutputArray inliers = noArray(), int flags = SOLVEPNP_ITERATIVE );PnP解算及SolvePnp用法(pnp算法简介与代码解析)

与solvePnP功能相同,但这个函数使用RANSAC算法剔除异常样本。 RANSAC:Random Sample Consensus(随机抽样一致)。它是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法。它于1981年由Fischler和Bolles最先提出。 因此RANSAC使得PnP函数能够抵抗异常值。

2.2 函数参数

参数: objectPoints:世界坐标系(上图中OwXwYwZw)下的3D点坐标数组 imagePoints:图像(上图中ouv)中对应3D点的成像点坐标数组 cameraMatrix:相机内参矩阵,3×3 distCoeffs:相机畸变系数数组,可以为NULL,此时视为无畸变。 rvec和tvec:计算结果输出,rvec为旋转向量,tvec为平移向量,两者合并表达的是物体整体(即世界坐标系)在相机坐标系中的位姿

以下参数为可选: useExtrinsicGuess,这个参数仅用于flags=SOLVEPNP_ITERATIVE,此值如果为true (1),需要rvec和tvec有输入值,以便函数把输入值作为旋转和平移的估计初始值. flags:PnP解算方法,详见下节。

solvePnPRansac需要的可选参数 iterationsCount:迭代次数; reprojectionError:RANSAC使用的内点阈值,即考虑作为内点的观察点与计算点投影之间的最大允许距离 confidence:算法得到有用结果的概率; inliers:包含 objectPoints 和 imagePoints 中的内点索引的输出向量 .

2.3 PnP解算方法(flags取值)SOLVEPNP_ITERATIVE:缺省方法,基于 Levenberg-Marquardt 优化的迭代方法,使重投影误差最小化SOLVEPNP_P3P:方法基于论文 X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang “Complete Solution Classification for the Perspective-Three-Point Problem”SOLVEPNP_AP3P:方法基于论文 T. Ke, S. Roumeliotis "An Efficient Algebraic Solution to the Perspective-Three-Point ProblemSOLVEPNP_EPNP:方法基于论文 F. Moreno-Noguer, V. Lepetit and P. Fua “EPnP: Efficient Perspective-n-Point Camera Pose Estimation”SOLVEPNP_DLS:方法基于论文 J. Hesch and S. Roumeliotis. “A Direct Least-Squares (DLS) Method for PnP”SOLVEPNP_UPNP:方法基于论文 A. Penate-Sanchez, J. Andrade-Cetto, F. Moreno-Noguer. “Exhaustive Linearization for Robust Camera Pose and Focal Length Estimation”SOLVEPNP_IPPE:方法基于论文 T. Collins and A. Bartoli. “Infinitesimal Plane-Based Pose Estimation”SOLVEPNP_IPPE_SQUARE:方法基于论文 Toby Collins and Adrien Bartoli. “Infinitesimal Plane-Based Pose Estimation”SOLVEPNP_SQPNP:方法基于论文 “A Consistently Fast and Globally Optimal Solution to the Perspective-n-Point Problem” by G. Terzakis and M.Lourakis2.4 solvePnp的点对

一般来说,解算PnP,最少需要4个物体点与其成像点构成的点对,几个特例如下:

当SOLVEPNP_ITERATIVE并且useExtrinsicGuess=true时(rvec和tvec有初值),所需的点数最小可以为3;P3P methods (SOLVEPNP_P3P, SOLVEPNP_AP3P): 需且仅需4个输入点来获得唯一解;SOLVEPNP_IPPE:输入点数必须 >= 4,并且所有物体点必须共面;SOLVEPNP_IPPE_SQUARE:对点的顺序有规定,具体这里略; 除了这几个外,其它方法(flags)要求点的数量必须 >= 4 ,对物体点位置顺序等没有特殊规定。3 solvePnP使用

使用solvePnP前,需要已具备如下参数:

vector<Point3f>objPts;//3D点数组,世界坐标系物体点坐标,至少4个点vector<Point2f>imgPts;//2D点数组,与以上物体点一一对应的图像点坐标Mat cameraMatrix;//相机内参矩阵,3x3矩阵Mat distCoeff;//相机畸变系数矩阵,我一般是用1x5矩阵,如果相机没有畸变,可以把所有元素置为0

然后调用

Mat rvec, tvec;//
本文链接地址:https://www.jiuchutong.com/zhishi/289626.html 转载请保留说明!

上一篇:最大规模的科技公司IPO交易是什么(最大规模的科技公司)

下一篇:基础:BS(Browser/Server)、CS(Client/Server)架构(基础代谢)

  • 黑鲨3和黑鲨3pro的区别(黑鲨3和黑鲨3pro哪个好)

    黑鲨3和黑鲨3pro的区别(黑鲨3和黑鲨3pro哪个好)

  • 苹果7怎么开热点(苹果怎么开热点给别人用流量)

    苹果7怎么开热点(苹果怎么开热点给别人用流量)

  • 小米打印机可以双面打印吗(小米打印机可以远程手机打印吗)

    小米打印机可以双面打印吗(小米打印机可以远程手机打印吗)

  • 教务系统进不去怎么办(为什么易班的教务系统进不去)

    教务系统进不去怎么办(为什么易班的教务系统进不去)

  • 全民k歌太占内存怎么办(全民K歌太占内存)

    全民k歌太占内存怎么办(全民K歌太占内存)

  • 苹果x信息有个感叹号怎么去掉(苹果x信息有个感叹号是怎么回事)

    苹果x信息有个感叹号怎么去掉(苹果x信息有个感叹号是怎么回事)

  • 两家用一个宽带怎么弄(两家用一个宽带怎么接线)

    两家用一个宽带怎么弄(两家用一个宽带怎么接线)

  • 苹果死机无法强制关机(苹果死机无法强制开机)

    苹果死机无法强制关机(苹果死机无法强制开机)

  • 科学计算应用领域有哪些(科学计算应用领域有哪些例子)

    科学计算应用领域有哪些(科学计算应用领域有哪些例子)

  • 抖音直播如何关闭聊天字幕(抖音直播如何关闭同城不让同城人看到)

    抖音直播如何关闭聊天字幕(抖音直播如何关闭同城不让同城人看到)

  • cdy-an00是华为什么型号(华为cdy_an00怎么样)

    cdy-an00是华为什么型号(华为cdy_an00怎么样)

  • iPhone11关机黑屏一直转圈圈(iphone11关机黑屏一直转圈圈)

    iPhone11关机黑屏一直转圈圈(iphone11关机黑屏一直转圈圈)

  • 荣耀青春版10系统要不要更新(荣耀青春版10系列参数)

    荣耀青春版10系统要不要更新(荣耀青春版10系列参数)

  • 手机存储里的其他文件是什么(手机存储里的其他)

    手机存储里的其他文件是什么(手机存储里的其他)

  • 地址分为哪几类(地址有什么类型)

    地址分为哪几类(地址有什么类型)

  • ps变换选区是按哪个键(ps选择变换选区)

    ps变换选区是按哪个键(ps选择变换选区)

  • abdlog储存限制是什么(adblog储存大小限制是什么意思)

    abdlog储存限制是什么(adblog储存大小限制是什么意思)

  • word2007删除分页符(word2003删除分页符)

    word2007删除分页符(word2003删除分页符)

  • 怎么知道网站是不是官网(怎么知道网站是哪个国家的)

    怎么知道网站是不是官网(怎么知道网站是哪个国家的)

  • iphone x如何打开天气(iphonex如何打开电池百分比)

    iphone x如何打开天气(iphonex如何打开电池百分比)

  • 微信消息浮窗有什么用(微信新功能浮窗)

    微信消息浮窗有什么用(微信新功能浮窗)

  • oppo手机关机怎么关(oppo手机关机了怎么找到手机)

    oppo手机关机怎么关(oppo手机关机了怎么找到手机)

  • 早教机如何连wifi(智能早教机怎么联网)

    早教机如何连wifi(智能早教机怎么联网)

  • 小米蓝牙耳机可以连接电脑吗(小米蓝牙耳机可以连接两台手机吗)

    小米蓝牙耳机可以连接电脑吗(小米蓝牙耳机可以连接两台手机吗)

  • 怎么取消绿钻自动续费(怎么取消绿钻自动付费)

    怎么取消绿钻自动续费(怎么取消绿钻自动付费)

  • 天猫旗舰店如何申请(天猫旗舰店如何开店)

    天猫旗舰店如何申请(天猫旗舰店如何开店)

  • 增值税金税盘开票的结论
  • 下半年房产税缴纳时间
  • 营改增抵减的销项税额会计分录
  • 债务豁免需要缴纳什么税
  • 营业外收入是否属于当期损益
  • 一般纳税人工会经费可以零申报吗
  • 单位投资非盈利性组织怎样核算
  • 外贸企业留抵税额过大
  • 贴标企业
  • 实习生需要缴纳个税吗?
  • 实缴年月正常补收
  • 税务局锁了开票系统票已领出还可以开出来吗
  • 增值税普通发票税率
  • 大额联行号和开户行号是一样的吗
  • 回购股票手续费会计分录
  • 个体户可以不领税控盘吗
  • 补发工资申请书格式范本
  • 固定资产抵扣的税率
  • 少计收入被处罚账务处理怎么做?
  • 发票金额大于实际支付金额如何报账
  • 毛利润,纯利润
  • 小规模公司注销流程及费用
  • 中文字符和英文字符的转换
  • 苹果手机nfc录门禁卡
  • 所得税如何做帐
  • 小规模纳税人销售货物税率是多少
  • 鸿蒙系统怎么退出开发者选项
  • regsvr32 shmedia.dll
  • php精彩编程200例
  • 生产费用在完工产品和在产品之间
  • 怎么做外资企业赚钱
  • 应税消费品属于什么科目
  • 养老院管理系统er图
  • 已用短信息服务发送信息,对方能收到吗
  • 视图的定义和操作实验报告
  • Swagger-的使用(详细教程)
  • 经营租入固定资产账务处理
  • 贸易企业开发下游业务
  • 机票行程单可以在到达地打印吗
  • 买固定资产没有发票
  • 如何确定固定资产是否已经发生减值
  • 车间设备折旧费计入产品成本吗
  • 短信收到电子退库收入什么意思
  • 营改增后建筑业怎么开票
  • 福利用什么表示
  • 成本法长期股权投资初始成本确认
  • 预存返现活动规则
  • 少交税款滞纳金
  • 政府返税计入什么科目
  • sql server常用
  • 盗版win10系统
  • win10打开cad出现致命错误
  • 用u盘重新装系统
  • 预装win7系统
  • win7系统调节亮度快捷键
  • win8应用商店打开很慢怎么办
  • win10预览版退回正式版
  • win系统文件在哪里
  • Win10如何打开软键盘
  • centos设置ftp
  • msoia.exe是什么程序
  • WIN7系统如何恢复出厂系统
  • 双系统怎么转移文件
  • unity2019新功能
  • rd命令是什么
  • python双循环题
  • ssh自动输入密码登录
  • linux中awk用法详解
  • 如何在python中运行程序
  • js表单序列化
  • nodejs使用es6
  • js中生成随机数
  • javascript基础教程教材答案
  • 探寻Javascript执行效率问题
  • asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
  • 整理Javascript事件响应学习笔记
  • 怎么打印纳税申报清单
  • 陕西国家税务总局官网登录入口
  • 代发工资法律依据
  • 企业改制相关文件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设