特異値分解を利用した​点群レジストレーショ​ンについて

特異値分解を利用した点群レジストレーションを行いたいと考えています。 点群データは2セット(AとB)あります。 データセットの形は(432*176)です。 各XYZ座標(それぞれ144*176の形のデータセット)と対応点はわかっています。
特異値分解を用いて、対応点に基づくレジストレーションを行う場合どの様な計算を行えばよいのでしょうか? ご教授お願いいたします。

 Respuesta aceptada

Tohru Kikawada
Tohru Kikawada el 29 de Jun. de 2017
Editada: Tohru Kikawada el 29 de Jun. de 2017

2 votos

以前、お答えした内容のデモで特異値分解(SVD)を利用して位置計算をしています。
findRtFromRGBD.m の内容をご確認ください。
%==========================================================================
% Solve the following minimization problem:
% min_{R, T} sum(|R*p+T-q|^2)
%
% p, q are all N-by-d matrix with N data points
%
% The problem is solved by SVD
%==========================================================================
function [R, T] = minimizePointToPointMetric(p, q)
n = size(p, 1);
m = size(q, 1);
% Find data centroid and deviations from centroid
pmean = sum(p,1)/n;
p2 = p - repmat(pmean, n, 1);
qmean = sum(q,1)/m;
q2 = q - repmat(qmean, m, 1);
% Covariance matrix
C = p2'*q2;
[U,~,V] = svd(C);
% Handle the reflection case
R = V*diag([ones(1,size(C,1)-1) sign(det(U*V'))])*U';
% Compute the translation
T = qmean' - R*pmean';

1 comentario

ichiro obayashi
ichiro obayashi el 30 de Jun. de 2017
Tohru Kikawada様 ありがとうございました 早速取り組んでみます

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 29 de Jun. de 2017

Comentada:

el 30 de Jun. de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!