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

  • oppo手机怎么禁止安装APP(oppo手机怎么禁止软件跳转第三方软件)

    oppo手机怎么禁止安装APP(oppo手机怎么禁止软件跳转第三方软件)

  • mac任务管理器怎么开(mac 任务管理)

    mac任务管理器怎么开(mac 任务管理)

  • 为什么华为手机拍照感觉失真了(为什么华为手机突然黑屏然后按开机键都不显示)

    为什么华为手机拍照感觉失真了(为什么华为手机突然黑屏然后按开机键都不显示)

  • qq群直播讲课能看见学生吗(qq群直播讲课教程)

    qq群直播讲课能看见学生吗(qq群直播讲课教程)

  • 钉钉有新消息但是没有提示怎么办(钉钉有新消息但图标不显示)

    钉钉有新消息但是没有提示怎么办(钉钉有新消息但图标不显示)

  • nova5pro防水等级(华为nova5pro几级防水)

    nova5pro防水等级(华为nova5pro几级防水)

  • 全民k歌被对方拉黑怎么解除(全民K歌被对方拉黑了还能关注对方吗)

    全民k歌被对方拉黑怎么解除(全民K歌被对方拉黑了还能关注对方吗)

  • 探探账号异常多久恢复(探探账号异常多久才能恢复)

    探探账号异常多久恢复(探探账号异常多久才能恢复)

  • 苹果朋友圈怎么发高清视频(苹果朋友圈怎么设置只可以看三天的)

    苹果朋友圈怎么发高清视频(苹果朋友圈怎么设置只可以看三天的)

  • 互删能看见换头像吗(互删还能看到对方头像更新吗)

    互删能看见换头像吗(互删还能看到对方头像更新吗)

  • 电脑主机漏电是什么情况(电脑主机漏电是需要换插板吗)

    电脑主机漏电是什么情况(电脑主机漏电是需要换插板吗)

  • 华为手机音乐怎么关不了了(华为手机音乐怎么定时关闭)

    华为手机音乐怎么关不了了(华为手机音乐怎么定时关闭)

  • 拼多多添加好友申请怎么取消(拼多多添加好友在哪)

    拼多多添加好友申请怎么取消(拼多多添加好友在哪)

  • b站直播房间号怎么搜索(b站直播房间号在哪里看)

    b站直播房间号怎么搜索(b站直播房间号在哪里看)

  • iphone7支持多少w快充(iphone 7最高支持多少瓦)

    iphone7支持多少w快充(iphone 7最高支持多少瓦)

  • oracle默认用户名和密码(oracle的默认用户名)

    oracle默认用户名和密码(oracle的默认用户名)

  • 苹果c6是哪里产的(苹果c6k开头是哪里生产的)

    苹果c6是哪里产的(苹果c6k开头是哪里生产的)

  • vue视频添加字幕教程(vue字幕怎么移动位置)

    vue视频添加字幕教程(vue字幕怎么移动位置)

  • 苹果x摄像头白色圈是什么(苹果x后置摄像头全白)

    苹果x摄像头白色圈是什么(苹果x后置摄像头全白)

  • 手机照片太大不能上传(手机照片太大不能做微信头像)

    手机照片太大不能上传(手机照片太大不能做微信头像)

  • 恋爱记怎么解除关系(恋爱记怎么解除另一半)

    恋爱记怎么解除关系(恋爱记怎么解除另一半)

  • 快手热门被屏蔽怎么查(快手号被屏蔽过了是不是就不能上热门)

    快手热门被屏蔽怎么查(快手号被屏蔽过了是不是就不能上热门)

  • 什么软件能将相片制作成视频(什么软件可以把相册制作成视频)

    什么软件能将相片制作成视频(什么软件可以把相册制作成视频)

  • 格力手机如何截屏(格力手机如何截屏操作)

    格力手机如何截屏(格力手机如何截屏操作)

  • Wind11/10中如何禁用对Firefox中的配置文件的访问(win10如何禁止)

    Wind11/10中如何禁用对Firefox中的配置文件的访问(win10如何禁止)

  • vue普通加密以及国密SM2、SM3、sm4的使用(vue前端加密)

    vue普通加密以及国密SM2、SM3、sm4的使用(vue前端加密)

  • 财务软件增加站点计入什么科目
  • 个人所得税核定征收税率是多少
  • 企业实收资本与股本区别
  • 出差补贴要不要发票
  • 海关完税凭证抵扣清单在哪里
  • 外销收入确认原则有哪些
  • 建筑企业收到招聘短信
  • 给职工发奖金有什么规定吗
  • 小规模纳税人开普票免税
  • 业务招待费取得的专票可以抵扣吗
  • 企业给员工购买社保的规定
  • 企业所得税计入税金及附加科目吗
  • 确认的投资收益
  • 开给学校的发票要税号吗
  • 什么叫统借统还业务
  • 非银行支付机构条例(征求意见稿)
  • 所得税季报营业收入本年累计
  • 出租房产业务企业所得税如何处理?
  • 企业所得税预缴税款表怎么填
  • 计算房产税租金会计分录
  • 大额医疗救助金怎么申请
  • 企业对外捐赠的税法处理
  • 华为手机悬浮导航是干什么用
  • 周转材料属于什么科目
  • 出租房屋收取的水电费的税率
  • soft version
  • vue获取本地文件生成流
  • phpstorm ftp
  • 投资收益怎么算例题
  • 劳务派遣增值税差额征税
  • 强烈的建议
  • vs code前端插件
  • 云原生istio
  • 使用jquery的好处
  • 增值税系统技术维护费抵扣只能当月申报
  • java transactional
  • 增值税专用发票怎么开
  • 发票明细太多怎么设置见清单
  • 出口生产型企业
  • 织梦是什么框架开发的
  • sqlserver2019查看表
  • 短期投资计提跌价准备
  • 费用结转的方法有哪些
  • win2008iis安装
  • 单位举办活动
  • 固定成本和变动成本举例
  • 纺织品业务
  • 自产产品用于业务招待
  • 估价入账的账务处理
  • 法人往自己公司打款没用注明用途
  • 企业收到政府补助金80 000元,存入银行
  • 员工还款还公司会计分录
  • 销售方开红字发票需要什么信息
  • 不征税发票和零税率发票
  • 开票软件备份在哪里
  • 怎么统计每日产量
  • sql汇总查询
  • sql中索引怎么使用
  • window7 32位系统
  • windows xp怎么清理c盘
  • windows媒体中心关不掉
  • Linux+Apache+PHP+MySQL+Zend Optimizer+PHPMyAdmin
  • win7不能自动启动
  • CCAssert(sm_pSharedApplication, "")导致程序闪退的原因以及解决方案
  • cocos2dx schedule
  • js中的函数
  • android开发mvc mvp mvvm
  • javascript ie
  • javascript常用语法
  • linux如何查看当前shell
  • macos mono
  • js代码不生效
  • JavaScript中setMonth()方法的使用详解
  • 亲测源码论坛
  • 税收和社保不在同一地缴纳怎么办
  • 税务局窗口业务
  • 南京市国家税务局
  • 溧阳北站规划图
  • 残疾人交房产税有什么优惠
  • 农产品电子发票可以抵扣吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设