主要内容

BundleadjustmentMotion.

使用仅运动束调节,精炼相机姿势

描述

例子

疏一= BundleadjustmentMotion(xyzPoints图像点absolutepose.intrinsic返回精确的绝对相机姿态,最大限度地减少重投影错误。

仅运动的细化过程是Levenberg-Marquardt算法在优化过程中固定三维点的束平差的一种特殊情况。三维点和相机姿态放置在同一个世界坐标系中。

[疏一reprojectionErrors] = BundleadjustmentMotion(___另外返回A.N-Element矢量包含来自前一个语法的参数的每个3-D世界点的平均刻录错误。

[___] = BundleadjustmentMotion(___名称,价值使用一个或多个指定的附加选项名称,价值对论点。未指定的属性具有默认值。

例子

全部收缩

将用于初始化的数据加载到工作区中。

data = load(“motionOnlyBA.mat”);

优化绝对相机姿势。

Refiningpose = BundleAdjustmentMotion(data.xyzpoints,data.imagepoints,data.abspose,data.intrinsics);

显示3-D世界要点。

pcshow(data.xyzpoints,“VerticalAxis”'是''verticalaxisdir'“下来”“MarkerSize”,45);抓住

在精炼之前和之后绘制绝对相机姿势。

Plotcamera('absolutepose',data.abspose,“颜色”'r''尺寸',2);Plotcamera('absolutepose',善意,“颜色”“米”'尺寸',2);

图包含轴。轴包含21个类型线,文本,补丁,分散的对象。

输入参数

全部收缩

未精制的3-D点,指定为一个m- 3矩阵[XyZ.位置。

数据类型:单身的|双倍的

图像点,指定为m-by-2矩阵或一个m点特征类型大批。

绝对相机姿势,指定为标量rigid3d.对象。

相机内在机构,指定为acameraIntrinsics对象。

名称值对参数

指定可选的逗号分离对名称,价值参数。姓名是参数名称和价值为对应值。姓名必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'maxtations','50.'

Levenberg-Marquardt算法之前的最大迭代次数停止,指定为逗号分隔的配对组成最大和一个正整数。

像素中平均平方输注误差的绝对终止容差,指定为由“逗号分离的对”absolutetolerance.'和一个正标量。

相对终止容忍迭代之间的重新注入误差的减少,指定为逗号分隔的对组成的“RelativeTolerance'和一个正标量。

标志表示镜头失真,指定为逗号分隔的配对组成占点'还有错误的真正的。当你设置时占点错误的,2-D点Pointtacks.一定是镜头变形的图像。要使用未变形的点,请使用undostortimage.功能首先,然后设置占点真正的

显示进度信息,指定为逗号分隔的对,由'verb'还有错误的真正的

输出参数

全部收缩

精致的相机绝对姿势,作为一个返回rigid3d.对象。

重新注明错误,作为一个返回m元素的向量。该功能将每个世界点投射回每个相机。然后在每个图像中,该函数计算重投影误差作为被检测点和重投影点之间的距离。的reprojectionErrors向量包含每个世界点的平均重投影误差。

参考文献

[1]卢克西斯,M.I.A.和a.a.argyros。“SBA:用于通用稀疏捆绑调整的软件包”。ACM在数学软件上的交易。第36卷,问题1. 2009年3月。

[2]哈特利,R.和A. Zisserman。“计算机视觉中的多视图几何”。剑桥大学出版社。2003年

[3] Triggs,B.,P. Mclauchlan,R. Hartley和A. Fitzgibbon。“捆绑调整:现代合成”。视觉算法国际研讨会的诉讼程序:理论与实践。第298 - 372页。斯普林格出版社。1999.

在R2020A中介​​绍