【姿态估计】Pose estimation algorithm 之 Robust Planar Pose (RPP)algorithm

2013-11-21 15:26  2883人阅读  评论(1)  收藏  举报
The RPP algorithm gives a more stable tracking (less jitter) than ARToolKit's pose estimation algorithm.

The robust pose estimator algorithm has been provided by G. Schweighofer and A. Pinz (Inst.of l.Measurement and Measurement Signal Processing, Graz University of Technology). Details about the algorithm are given in a Technical Report: TR-EMT-2005-01, available here. Thanks go to Thomas Pintaric for implementing the C++ version of this algorithm.

计算机视觉

1. 内参数标定

2. 外参数标定即姿态估计问题。从一组2D点的映射中估计物体的3D姿态。

3. 从三个对应点中恢复姿态,需要的信息是最少的,称为“三点透视问题”即P3P。同理,扩展到N个点,就称为“PnP”。

4. 基于视觉的姿态估计根据使用的摄像机数目分为单目视觉和多目视觉。根据算法又可以分为基于模型的姿态估计和基于学习的姿态估计。

5. OpenCV中有solvePnP以及solvePnPRansac用来实现已知平面四点坐标确定摄像头相对世界坐标系的平移和旋转。cvPOSIT基于正交投影,用仿射投影模型近似透视投影模型,不断迭代计算出估计值。此算法在物体深度相对于物体到相机的距离比较大的时候,算法可能不收敛。

6. 从世界坐标系到相机坐标系的转换,需要矩阵[R|t],其中R是旋转矩阵,t是位移向量。如果世界坐标系为X,相机坐标系对应坐标为X‘,那么X' = [R|t]*X。从相机坐标系到理想屏幕坐标系的变换就需要内参数矩阵C。那么理想屏幕坐标系L = C*[R|t]*X。如何获得[R|t],大致是已知模板上的几个关键点在世界坐标系的坐标即X已知,然后在摄像头捕获的帧里获得模板上对应点在屏幕坐标系的坐标即L已知,通过求解线性方程组得到[R|t]的初值,再利用非线性最小二乘法迭代求得最优变换矩阵[R|t]。

7. 大多数情况下,背景是二维平面,识别的物体也是二维平面。对于ARToolkit,识别的Targets就是平面的(但是这种方法鲁棒性不好)。如果内参数矩阵是已知的,那么知道4个或者更多共面不共线的点就可以计算出相机的姿态。

8. 相机姿态估计的问题就是寻找相机的外参数,即是最小化误差函数的问题。误差函数有的基于image-space,有的基于object-space。

9. RPP算法基于object-space为误差函数提供了一种可视化的方法。误差函数有两个局部极小值。在无噪声条件下,第一个局部极小值跟正确的姿态对应。另外的误差函数的极小值就是标准姿态估计算法为什么会抖动的原因。由于姿态估计算法最小化误差函数总是要使用迭代算法,因此需要一个初值。如果初值接近第二个局部极小值,那么迭代算法就收敛到错误的结果。

10. 估计第一个姿态,RPP算法使用任何已知的姿态估计算法,在这里里,使用迭代算法。从第一个姿态使用P3P算法估计第二个姿态。这个姿态跟误差函数的第二个局部极小值接近。使用估算的第二个姿态作为初值,使用迭代算法获得第二个姿态。最终正确的姿态是有最小误差的那个。

11. 这类问题最终都是解线性方程组AX=b的问题。当b∈R(A)时,x=A的广义逆*b;当b∈不R(A)时,能否是Ax接近b呢,即是否有x使||Ax-b||最小,习惯上用2-范数即欧式范数来度量。最小二乘解常存在,然后这样的解未必是唯一的。当在方程无解的情况下,要找到最优解。就是要最小化所有误差的平方和,要找拥有最小平方和的解,即最小二乘。最小化就是把误差向量的长度最小化。

OpenCV学习笔记(十五)——摄像机的标定和3D重建calib3D

http://blog.csdn.net/yang_xian521/article/details/6909242

分类: OpenCV 2011-10-27 10:24  18815人阅读  评论(9)  收藏  举报
算法 2010

先简单回顾一下计算机视觉的知识。这里研究生的摄像机模型都是针孔摄像机,摄像机的标定问题是CV领域的一个入门级的问题,初学摄像机标定时会被各种坐标系弄晕,这里再介绍一下,常提到的坐标系有四个:世界坐标系(Ow,以空间一点为原点)、摄像机坐标系(Oc以小孔即光心为原点)、图像物理坐标系(O1以像平面中心为原点)、图像像素坐标系(O以像平面左下角为原点)。这样再看相关资料的时候就不会混了吧,这里再介绍一篇张正友的摄像机定标办法的相关资料http://beidou841026.blog.163.com/blog/static/4629535201021731344572/
其参数分为内参数和外参数:内参数是摄像机坐标系和理想坐标系之间的关系(5个内参数,分别为α、β、u0、v0、θ);外参数表示摄像机在世界坐标系里的位置和方向(6个外参数,3个表示旋转R的角度,3个表示平移t)。

利用calibrateCamera函数可以得到这些内外参数,而calibrationMatrixValues可以得到摄像机投影透视方程的投影矩阵,composeRT可以合并两个旋转平移变换,computeCorrespondEpilines计算其他图像的相应epilines,convertPointsToHomogeneous把点从欧式空间转换到齐次空间,convertPointsFromHomogeneous把点从齐次空间变换到欧式空间,而函数convertPointsHomogeneous把上述两个函数功能综合到一起了,decomposeProjectionMatrix可以将矩阵分解,drawChessboardCorners获得检测棋盘的角,findChessboardCorners获得棋盘的内角点位置,findCirclesGrid得到圆圈光栅的中心,solvePnP实现物体位置的3维坐标和2维坐标之间的转换,solvePnPRansac利用RANSAC实现上述功能,findFundamentalMat计算两幅图像关联点的基础矩阵,findHomography找出两个平面的透视变换,estimateAffine3D计算两个3维点集的理想仿射变换,filterSpeckles可以过滤不同块的小斑点,getOptimalNewCameraMatrix得到自由比例参数的新摄像机矩阵,initCameraMatrix2D得到3D到2D的初始化的摄像机矩阵,matMulDeriv计算矩阵的偏导数,projectPoints将3D坐标投影到图像平面上,reprojectImageTo3D根据一组差异图像重建3D空间,RQDecomp3x3计算3x3矩阵的RQ分解,Rodrigues实现旋转矩阵和旋转向量之间的转换,steroCalibrate校准立体摄像机,steroRectify是对校准过的摄像机计算修正变换,stereoRectifyUncalibrated是对未校准过的摄像机计算修正变换

还包括了BM块匹配算法类StereoBM、SGBM块匹配算法类StereoSGBM类

【姿态估计】外参Pose estimation algorithm 之 Robust Planar Pose (RPP)algorithm相关推荐

  1. 物体空间姿态估计// Robust Planar Pose (RPP)algorithm

    http://blog.sina.com.cn/s/blog_60f11afd0100ttc9.html 姿态估计问题就是:确定某一三维目标物体的方位指向问题.姿态估计在机器人视觉.动作跟踪和单照相机 ...

  2. 【2020-CVPR-3D人体姿态估计】Deep Kinematics Analysis for Monocular 3D Human Pose Estimation

    Deep Kinematics Analysis for Monocular 3D Human Pose Estimation 题目:<单目三维人体姿态估计的深度运动学分析> 作者:Jin ...

  3. 姿态估计入门-2020综述《The Progress of Human Pose Estimation: A Survey and Taxonomy of Models Applied in 2D》

    <The Progress of Human Pose Estimation: A Survey and Taxonomy of Models Applied in 2D Human Pose ...

  4. 3D目标识别与姿态估计:Learning descriptors for object recognition and 3D pose estimation(笔记)——2015

    通过CNN学习描述符进行3D物体识别和姿态估计(笔记)--2015 <Learning descriptors for object recognition and 3D pose estima ...

  5. 亚马逊采摘挑战赛APC:6D姿态估计的多视图自我监督深度学习6D Pose Estimation in the Amazon Picking Challenge—2017(笔记)

    Multi-view Self-supervised Deep Learning for 6D Pose Estimation in the Amazon Picking Challenge-2017 ...

  6. 视频中的3D人体姿态估计(3D human pose estimation in vide)--------Facebook research: VideoPose3D

    视频中的3D人体姿态估计(3D human pose estimation in video) 解读Facebook AI Research in CVPR2019: <3D human pos ...

  7. 简阅人体姿态估计深度学习方法-simpread-Human Pose Estimation Deep Learning Approach

    What is Human Pose Estimation? Human Pose Estimation (HPE) is a way of identifying and classifying t ...

  8. CV之PoseEstimation:Pose Estimation人体姿态估计(AI识人,OpenPose+DeepCut+RMPE+Mask RCNN)的简介、案例应用之详细攻略

    CV之PoseEstimation:Pose Estimation人体姿态估计(AI识人,OpenPose+DeepCut+RMPE+Mask RCNN)的简介.案例应用之详细攻略 目录 Pose E ...

  9. 重新思考人体姿态估计 Rethinking Human Pose Estimation

    Newly updated by 2019-11-19 ----------------------------------------------------- 浅谈:2D人体姿态估计基本任务.研究 ...

  10. Human Pose Estimation姿态估计调研

    介绍 姿态估计的目标是在RGB图像或视频中描绘出人体的形状,这是一种多方面任务,其中包含了目标检测.姿态估计.分割等等.有些需要在非水平表面进行定位的应用可能也会用到姿态估计,例如图形.增强现实或者人 ...

最新文章

  1. linux ubuntu 虚拟机中配置samba的实现文件共享的方法
  2. JAVA学习之路 (三) 运算符
  3. OMG!又一个频繁FullGC的案例
  4. while(getchar()=='\n')continue;为什么作用是清空行
  5. BUG总结—— No mapping found for HTTP request with URI
  6. ng-repeat 与ng-switch的简单应用
  7. 深度学习(三十七)优化求解系列之(1)简单理解梯度下降
  8. 【原生JS】web原生文字轮播效果
  9. 计算机体系结构与组成的区别
  10. Premiere 2020安装及Premiere缺失字体处理
  11. java阿里云图片检测同/异步sdk调用详解
  12. 如何把电脑加上公司的域
  13. 六大CPU体系结构:X86、 ARM、MIPS、PowerPC、Sparc、Alfa发展
  14. 【资料】分享北京某培训机构全部学习课程加个人的一些学习上的建议
  15. c语言单片机编程 实例教程,51单片机的C语言编程基础及实例教程
  16. 计算机网络上有个红叉没无线,电脑无线网络连接不上显示红叉
  17. 戾气遍地的社会,我们该如何远离垃圾人?(深度)
  18. 【小白】【新手向】Hexo+Github搭建个人博客
  19. 超市管理系统-2(数据库代码以及数据库逻辑)
  20. ACP知识域四---团队绩效

热门文章

  1. docker容器和本地时间相差8小时
  2. idea搭建jdk1.8源码阅读环境
  3. 烟台计算机教师招聘的题型,2020山东教师招聘笔试主要题型有哪些?
  4. dedecms mysql使用中_dedecms教程:DedeCMS中MySQL修复表的两个小技巧
  5. 新创业团队没有什么激情,咋办?
  6. 掌握这些,你也可以是年薪百万的项目经理
  7. 计蒜客习题:木桩涂涂看
  8. Django web 开发(一)前端学习概述
  9. webasefront使用
  10. 外汇为什么总是亏损?