计算机视觉
图像处理

【计算机视觉】角度转换模型VTM

文章目录

VTM简介

多角度步态检测问题解决的方法通常有三类:利用多摄像机系统建立3D模型;提取与角度无关的步态特征;角度转换模型

角 度转换模型(View Transformation Model)最基础的是利用奇异值分解(Singular Value Decomposition, SVD),将特征矩阵分解为与角度无关的向量,与对象无关的向量,以及特征值。再利用提取出来的与对象无关的向量将特征从当前角度转换到对应角度。模型整 体流程如下:

View Transformation Model

首先利用多个对象在不同角度下的特征构造特征矩阵,之后对矩阵进行奇异值分解。

其中,表示第m个对象在第n个角度下的特征,为对象m的特征值,与角度无关,,即为得到角度转换向量。角度转换的推导如下:

其中,表示的伪逆。

即通过向量P,可通过对象m任意角度 i 的特征得到角度 j 下的特征。

MATLAB代码

主要是用到了svd,就直接用matlab写的代码,再把得到的P存下来。

  1. [sk,sm,sna]=size(v_m_features);
  2. v_t_m_tmp = reshape(v_m_features,sk*sm,sna);
  3. v_t_m = reshape(v_t_m_tmp’, sk*sna,sm);
  4. [U,S,V]=svd(v_t_m,’econ’);
  5. %[U,S,V]=svd(v_t_m);
  6. P=U*S;
  7. [spm,spn]=size(P);
  8. v_t_p=zeros(sna,spn,sk);
  9. v_t_p_ij=zeros(sna,sna,sk*sk);
  10. for ki=1:sk
  11.     for ii=1:sna
  12.         nai=(ki-1)*sna+ii;
  13.         v_t_p(ii,:,ki)=P(nai,:);
  14.     end
  15. end
  16. for i=1:sk
  17.     for j=1:sk
  18.         ij=(i-1)*sk+j;
  19.         v_t_pj=pinv(v_t_p(:,:,j));
  20.         v_t_p_ij(:,:,ij)= v_t_p(:,:,i)*v_t_pj;
  21.     end
  22. end

转载注明来源:CV视觉网 » 【计算机视觉】角度转换模型VTM

分享到:更多 ()
扫描二维码,给作者 打赏
pay_weixinpay_weixin

请选择你看完该文章的感受:

0不错 0超赞 0无聊 0扯淡 0不解 0路过

评论 6

评论前必须登录!