纹理对象的实时姿态估计

如今,增强现实技术是计算机视觉和机器人领域的热门研究课题之一。The most elemental problem in augmented reality is the estimation of the camera pose respect of an object in the case of computer vision area to do later some 3D rendering or in the case of robotics obtain an object pose in order to grasp it and do some manipulation。然而,这不是图像处理中最常见的问题,实际上最常见的问题是应用的很多算法或数学运算解决一个问题的计算消耗。

目的:

在文将解释如何建立一个实时相机姿态估计应用程序,用来跟踪一个具有六个自由度(six degrees of freedom)的纹理对象(基于给定的 2D image and its 3D textured model).

代码具有以下功能部分:

1) 读取3D纹理对象和对象的网格数据(Read 3D textured object model and object mesh)
2) 输入源为摄像头或者视频文件(Take input from Camera or Video)
3) 提取ORB特征(Extract ORB features and descriptors from the scene)
4) 基于Flann算法对ORB特征描述子进行匹配(Match scene descriptors with model descriptors using Flann matcher)
5) 使用PnP + Ransac进行姿态估计(Pose estimation using PnP + Ransac)
6) 使用线性卡尔曼滤波去除错误的姿态估计(Linear Kalman Filter for bad poses rejection)


理论

在计算机视觉中,从 n对3D到2D点对应关系中估计相机的的姿态是一个很基础和很好理解的问题。姿态估计(The most general version)一般需要估计姿态的六个自由度和五个标定参数: focal length, principal point, aspect ratio and skew.  姿态估计使用著名的DLT(Direct Linear Transform)算法,可以使用最少6组对应关系建立(It could be established with a minimum of 6 correspondences)。对于DLT算法的精度提高,有非常多的简化方法,最常用简化方法为参数标定,也就是Perspective-*n*-Point问题:



(问题的公式)Problem Formulation:

给定一组3D点 pi (expressed in a world reference frame)和投影到图像的上的2D点 ui 的对应关系,我们尝试得到相机相对于世界坐标系(w.r.t. the world)的姿态( R t )和焦距 f. 。OpenCV 提供了4种不同的方法解决Perspective-*n*-Point 问题,返回值为 R t 。然后使用下面的公式可以把3D的点投影到图像平面上:

s uv1=fx000fy0cxcy1
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值