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

本文介绍了一种多角度步态检测方法——角度转换模型(VTM)。该模型使用奇异值分解(SVD)来提取与角度无关的特征,并实现不同角度间的特征转换。文中详细描述了VTM的工作原理及MATLAB实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VTM简介

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

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

View Transformation Model

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

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

其中,表示的伪逆。

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

MATLAB代码

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

[sk,sm,sna]=size(v_m_features);
v_t_m_tmp = reshape(v_m_features,sk*sm,sna);
v_t_m = reshape(v_t_m_tmp', sk*sna,sm);
[U,S,V]=svd(v_t_m,'econ');
%[U,S,V]=svd(v_t_m);
P=U*S;
[spm,spn]=size(P);
v_t_p=zeros(sna,spn,sk);
v_t_p_ij=zeros(sna,sna,sk*sk);
for ki=1:sk
    for ii=1:sna
        nai=(ki-1)*sna+ii;
        v_t_p(ii,:,ki)=P(nai,:);
    end
end
for i=1:sk
	for j=1:sk
		ij=(i-1)*sk+j;
        v_t_pj=pinv(v_t_p(:,:,j));
		v_t_p_ij(:,:,ij)= v_t_p(:,:,i)*v_t_pj;
	end
end


(转载请注明作者和出处:http://blog.youkuaiyun.com/xiaowei_cqu未经允许请勿用于商业用途)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值