基于视频的电熔镁炉工况识别系统→2.模型建立

基于视频的电熔镁炉工况识别系统→2.模型建立

《基于视频的电熔镁炉工况识别系统→2.模型建立》


  1. 该系统是一个高斯白噪声所驱动的一阶ARMA模型很多文献都这么写,且噪声
  2. LDS_model.m
    1. imput:furnace_patches_724.mat
    2. output: _n=20_nv=1_724.mat     724个视频的 A B C X C0=Ymean=w[k] Q
    3. 调用suboptimalSystemID来求解模型参数
参数求解过程 代码
  1. 构建输入序列矩阵、去均值
    1.   每一列是每帧的外观特征,反映外观信息
  • m:视频一帧的特征数  17884
  • τ: 视频帧数   50
input:dataMatrix 68*263*50
  1. 将dataMatrix变为17884*50维
1
2
3
4
5
6
7
8
F = size(dataMatrix,3);

if (size(dataMatrix,3)~=1)
    I = double(reshape(dataMatrix,[],F));
else
    F = size(dataMatrix,2);
    I = double(dataMatrix);
end
  1. 去均值
1
2
C0 = mean(I,2);
Y = I - repmat(C0,1,F);

  1. 选择状态维数 ,估计观测矩阵C。
    1.   每一列是每帧的状态特征,反映动态信息: 

1
2
3
[U,S,V]  = svd(Y,0);
C = U(:,1:n);
X = S(1:n,1:n)*V(:,1:n)';
  1. 估计状态转移矩阵A并进行正则化
    1. 这里的逆是伪逆
    2. A除以A的谱半径


1
A = X(:,2:F)*pinv(X(:,1:(F-1)));
1
2
3
4
5
6
7
e = eig(A);
e = abs(e);
target = 0.9999;
if any(e>=target)
    spectral_radius = max(e);
    A = A*target/spectral_radius;
end


  1. 估计输入矩阵B 
    1. 所以说B是S的一部分
    2. 1.S的每一列代表1个样本,且~N(0,Q),即均值为0  2.因此协方差矩阵这样写
    3. 由于,所以可以估计
    4.   n×(τ-1)=n×n × n×(τ-1) × (τ-1)×(τ-1)  因为n<τ-1
    5.     n×nv × nv×nv
1
2
3
4
S          = X(:,2:F) - A*X(:,1:(F-1));
[Uv,Sv,Vv] = svd(S,0);
B          = Uv(:,1:nv)*Sv(1:nv,1:nv)./sqrt(F-1);
Q          = B*B';



Show 例子


Show 拓展




posted on 2018-10-18 14:46 LeisureZhao 阅读(...) 评论(...) 编辑 收藏

你可能感兴趣的:(基于视频的电熔镁炉工况识别系统→2.模型建立)