位置: 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)架构(基础代谢)

  • 12306退票怎么查询退款进度呢(12306退票怎么查询退款进度帮别人买的票)

    12306退票怎么查询退款进度呢(12306退票怎么查询退款进度帮别人买的票)

  • 手机能剪辑电影视频吗(手机能剪辑电影片段吗)

    手机能剪辑电影视频吗(手机能剪辑电影片段吗)

  • 为什么会收到探探短信(为什么会收到探颜邀请码)

    为什么会收到探探短信(为什么会收到探颜邀请码)

  • 华为nova7屏幕不清晰(华为nova7屏幕不贴膜可以吗)

    华为nova7屏幕不清晰(华为nova7屏幕不贴膜可以吗)

  • 一个iphone id可以登录几个设备(一个iphone id可以登录几个手机,每个手机密码可不一样)

    一个iphone id可以登录几个设备(一个iphone id可以登录几个手机,每个手机密码可不一样)

  • 华为智慧分屏怎么添加应用

    华为智慧分屏怎么添加应用

  • 为什么ps保存不了pdf(为什么ps保存不了显示程序错误)

    为什么ps保存不了pdf(为什么ps保存不了显示程序错误)

  • 华为下拉搜索怎么关闭(华为下拉搜索怎么取消)

    华为下拉搜索怎么关闭(华为下拉搜索怎么取消)

  • x20屏幕多大(x20手机屏幕多大几寸)

    x20屏幕多大(x20手机屏幕多大几寸)

  • 台铃电动车充电器一直绿灯(台铃电动车充电口在哪个位置)

    台铃电动车充电器一直绿灯(台铃电动车充电口在哪个位置)

  • applewatch应用刷新要不要关(iwatch刷表盘)

    applewatch应用刷新要不要关(iwatch刷表盘)

  • touchwiz主页已停止什么意思(touchwiz主页已停止反复出现)

    touchwiz主页已停止什么意思(touchwiz主页已停止反复出现)

  • 怎么关联nintendo account(怎么关联医保卡)

    怎么关联nintendo account(怎么关联医保卡)

  • 苹果11手机右侧发烫(苹果11手机右侧黑了一大块怎么办)

    苹果11手机右侧发烫(苹果11手机右侧黑了一大块怎么办)

  • 华为nova65g上市时间(华为nova65g什么时候出来的)

    华为nova65g上市时间(华为nova65g什么时候出来的)

  • qq历史头像别人能看到吗(qq历史头像别人可以看到吗)

    qq历史头像别人能看到吗(qq历史头像别人可以看到吗)

  • 什么是拒绝服务攻击(什么是拒绝服务攻击,如何防范)

    什么是拒绝服务攻击(什么是拒绝服务攻击,如何防范)

  • 微信朋友圈怎么关闭不让所有人看(微信朋友圈怎么发长视频2分钟以上的)

    微信朋友圈怎么关闭不让所有人看(微信朋友圈怎么发长视频2分钟以上的)

  • word文档怎么设置表格列宽(word文档怎么设置背景图片)

    word文档怎么设置表格列宽(word文档怎么设置背景图片)

  • 拼多多好友代付钱退给谁(拼多多好友代付能看到我买的什么吗)

    拼多多好友代付钱退给谁(拼多多好友代付能看到我买的什么吗)

  • ps如何虚化整张背景(ps如何虚化整张图片背景)

    ps如何虚化整张背景(ps如何虚化整张图片背景)

  • 咪咕视频怎么用wifi看(咪咕视频怎么用微信支付)

    咪咕视频怎么用wifi看(咪咕视频怎么用微信支付)

  • 卖家如何参加双十一(卖家怎么参加双十一活动)

    卖家如何参加双十一(卖家怎么参加双十一活动)

  • 移动卡停机多久消号(手机卡放手机里无服务是怎么回事)

    移动卡停机多久消号(手机卡放手机里无服务是怎么回事)

  • html5论文参考文献合集(html的论文)

    html5论文参考文献合集(html的论文)

  • 土地使用税的纳税义务人
  • 什么是减免税额90%
  • 收到的税费返还应在支付的税费项目中扣除判断题
  • 保证人不承担责任(胜诉案例)
  • 收到个人保险费会计分录
  • 抵扣旅客运输增值税报表怎么填
  • 个体工商户税务申报如何网上申报
  • 开户行为什么是中国建设银行总行
  • 围挡制作开票的税收分类
  • 电子银行承兑汇票已承兑已锁定
  • 高新技术企业外债便利化
  • 计提福利是什么
  • 预收账款确认收入摘要怎么写
  • 公司承揽员工租房个税如何入账?
  • 银行给企业的存款怎么存
  • 上缴税费总额包括个税吗?
  • 租赁房使用权和所有权冲突
  • 小规模纳税人未达起征点增值税处理
  • 企业净资产指的是什么?
  • 一般纳税人附加税减免
  • 股权转让未分配利润如何做账
  • 公司注销有哪些原因
  • 成品送检单表格
  • 技术调试费用开几个点税
  • 企业交纳房产税,土地使用税、车船使用税应借记( )账户
  • 长期股权投资计提减值准备
  • 可全额扣除的公益性捐赠支出
  • 周转材料盘点报告单
  • 工资扣员工的罚款入什么科目
  • 关于工程施工的劳动法规
  • 高新技术企业所得税优惠政策最新2022
  • 补缴社保操作流程
  • win11电脑怎么设置开机密码
  • php数据迁移
  • 坏账准备属于哪一类账户
  • php获取mysql数据
  • 退车船税分录
  • vue获取value值
  • ip a命令详解
  • springmvc简介
  • c++ abort函数
  • 股权司法冻结及司法划转解释
  • 固定资产报废该怎么处理
  • 资产减值损失的定义
  • 股东权益合计等于净资产吗
  • 保险没有合同算生效吗
  • 建筑行业挂靠代扣税款如何入账?
  • 社保调低,上半年多缴的怎么办
  • 商业保险的养老保险可靠吗
  • 股东追加投资如不追加会怎样
  • 财务报表未备案可以不填吗
  • 应收票据和应付票据的区别
  • 最新商业会计科目做账
  • win8怎么自动修复
  • linux安装mailx
  • win8一键恢复出厂设置
  • win10教育系统
  • rtvscn95.exe - rtvscn95是什么进程 有什么用
  • win10系统应用和浏览器控制出现感叹号
  • live updater
  • win降win7
  • linuxone
  • cordova怎么样
  • javascript教程推荐知乎
  • jquery自定义
  • androidannotations的background和UiThread配合使用参考
  • css样式表规则由什么组成
  • css旋转木马
  • uv纹理编辑器贴图移动
  • 浅谈一下新冠的好处
  • Android调用系统摄像头
  • jquery获取php变量
  • 国税局官网发票查验平台
  • 办完营业执照多久可以开抖音小店
  • 成都市老年公交卡年审地点
  • 在进口环节海关代征的税种有
  • 电子税务局怎么添加开票员
  • 日本快递税率
  • 电子税务局怎么添加开票员
  • 乾升黄酒好吗值得买吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设