主要内容

bundleAdjustmentMotion

调整3D点和相机摆姿势的收集

Description

example

refinedPose= bundleAdjustmentMotion(xyzpoints,imagePoints,absolutePose,内在)返回精制的绝对摄像头姿势,以最大程度地减少再投影错误。

仅运动精炼过程是Levenberg-Marquardt算法的特殊情况,用于捆绑调整,并在优化过程中固定3-D点。3-D点和相机姿势放置在同一世界坐标系中。

[refinedPose,rebrocottionErrors] = bundleAdjustmentMotion(___)此外受潮湿腐烂urns anN-元素vector containing the mean reprojection error for each 3-D world point using the arguments from the previous syntax.

[___] = bundleAdjustmentMotion(___,Name,Value)使用一个或多个指定的其他选项Name,Valuepair arguments. Unspecified properties have default values.

Examples

collapse all

加载数据以初始化到工作空间。

data = load('Motiononlyba.mat');

Refine the absolute camera poses.

refinedPose = bundleAdjustmentMotion(data.xyzPoints,data.imagePoints,data.absPose,data.intrinsics);

Display the 3-D world points.

pcshow(data.xyzPoints,'垂直,'y','VerticalAxisDir','下',“标记”,45); hold

Plot the absolute camera poses before and after refinement.

plotCamera('AbsolutePose',data.absPose,'颜色','r','Size',2); plotCamera('AbsolutePose',refinedPose,'颜色','M','Size',2);

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

Input Arguments

collapse all

未精制的3D点, specified as anM3矩阵of [x,y,z] locations.

Data Types:single|double

图像点,指定为M-by-2 matrix or anM-元素点功能类型array.

绝对相机姿势, specified as a scalarrigid3d目的。

相机内在, specified as a摄影师目的。

Name-Value Arguments

将可选的参数对Name1=Value1,...,NameN=ValueN, whereNameis the argument name and价值是相应的值。名称值参数必须在其他参数之后出现,但是对的顺序并不重要。

Before R2021a, use commas to separate each name and value, and encloseNamein quotes.

例子:'MaxIterations', '50'

Maximum number of iterations before the Levenberg-Marquardt algorithm stops, specified as the comma-separated pair consisting of 'MaxIterations'和一个积极的整数。

Absolute termination tolerance of the mean squared reprojection error in pixels, specified as the comma-separated pair consisting of 'AbsoluteTolerance' and a positive scalar.

相对终止公差of the reduction in reprojection error between iterations, specified as the comma-separated pair consisting of '相关性' and a positive scalar.

Flag to indicate lens distortion, specified as the comma-separated pair consisting of 'PointsUndistorted' and eitherfalse或者真的. When you setPointsUndistortedtofalse, the 2-D points inpointTracks必须来自具有镜头失真的图像。要使用未发生的点,请使用undistortImagefunction first, then setPointsUndistortedto真的.

显示进度信息,指定为逗号分隔对,由'Verbose' and eitherfalse或者真的.

Output Arguments

collapse all

Refined absolute pose of the camera, returned as arigid3d目的。

Reprojection errors, returned as anM- 电子矢量。该功能将每个世界都指向每个相机。然后,在每个图像中,该函数将回归误差计算为检测到的点和重新注射点之间的距离。这rebrocottionErrors向量包含每个世界点的平均再投影误差。

参考

[1] Lourakis, M.I.A. and A.A. Argyros. "SBA: A Software Package for Generic Sparse Bundle Adjustment".ACM Transactions on Mathematical Software.Volume 36, Issue 1. March 2009.

[2] Hartley, R. and A. Zisserman. "Multiple View Geometry in Computer Vision".剑桥大学出版社。2003

[3] Triggs, B., P. McLauchlan, R. Hartley, and A. Fitzgibbon. "Bundle Adjustment: A Modern Synthesis".Proceedings of the International Workshop on Vision Algorithms: Theory and Practice.第298-372页。Springer-Verlag。1999。

Version History

Introduced in R2020a