低秩矩阵的应用--背景建模
来源:互联网 发布:知乎取消关注话题 编辑:程序博客网 时间:2024/05/31 19:29
背景建模是从拍摄的视频中分离出背景和前景。
由于背景的视频基本是不变的,所以如果把每帧当做一个矩阵的一列那么,矩阵是低秩的,所以低秩矩阵的恢复来恢复出背景。
今天主要完成了,在自己的数据库让进行背景和前景的分离。下面为主要步骤:
1.从马毅的实验室网址下载RPCA求解的代码http://perception.csl.illinois.edu/matrix-rank/introduction.html
2.给出的接口是[A_hat E_hat iter] = inexact_alm_rpca(D, lambda, tol, maxIter)
所以明确目标:D是我们的视频中的每一帧,A_hat 是我们估计的背景,E_hat是前景。
RPCA解决的问题是
- clc;
- clear;
- %% this to read avi by using mmread to get every frame
- video = VideoReader('E:\FFOutput\test.avi');
- nFrames = video.NumberOfFrames; %得到帧数
- H = video.Height; %得到高度
- W = video.Width; %得到宽度
- Rate = video.FrameRate;
- Cal_FrameN=300;
- % Preallocate movie structure.
- mov(1:Cal_FrameN) = struct('cdata',zeros(H,W,3,'uint8'),'colormap',[]);
- %read one frame every time
- for i = 1:Cal_FrameN
- mov(i).cdata = read(video,i);
- P = mov(i).cdata;
- double_P=im2double(P);
- %imshow( double_P),title('原始图片3');
- Frame=rgb2gray( double_P);%当前灰度帧
- %下采样
- Down_Frame=Frame(2:4:H,2:4:W);
- M(:, i) = Down_Frame(:);
- % disp('当前播帧数:'),disp(i);
- % imshow(P),title('原始图片');
- % P2=rgb2gray(P);
- end
- [A_hat, E_hat, iter]=inexact_alm_rpca(M,0.006);
- A=reshape(A_hat(:,200), size(Down_Frame));
- E=reshape(E_hat(:,200), size(Down_Frame));
- D_real=reshape(M(:,200), size(Down_Frame));
- figure;
- imshow(D_real),title('原始图片');
- figure;
- imshow(A),title('恢复图片');
- figure;
- imshow(abs(E)),title('错误图片');
因为是MATLAB的初学者所以遇到了两个问题:
A.必须对读取的图像做double_P=im2double(P);处理不然会出现
错误使用 *
MTIMES 不完全支持整数类。至少有一个输入必须为标量。
要按元素进行 TIMES 计算,请改用 TIMES (.*)。
出错 lanbpro (line 298)
r = At*U(:,1);
出错 lansvd (line 209)
[U,B,V,p,ierr,w] = lanbpro(A,j,p,options,U,B,V,anorm);
出错 inexact_alm_rpca (line 53)
norm_two = lansvd(Y, 1, 'L');
出错 background (line 36)
[A_hat, E_hat, iter]=inexact_alm_rpca(M,0.006);
B在显示错误图片时需要做abs绝对值处理,不然是全黑的图片,不能看到前景图像。
C.最后一个也非常重要lumada值为1/(根号m).m为一张图片像素点的个数
D还有一个问题就是原图片很到,直接做会有内存不够的问题,所以进行了下采样。
实验结果:
=+- 低秩矩阵的应用--背景建模
- 低秩矩阵的应用--背景建模
- 矩阵低秩的意义
- 背景建模的开源库
- 低秩矩阵
- 背景建模方法的系统分析
- 基于低秩矩阵的的图像显著性检测
- Collection Flow -> 低秩矩阵
- 通过凸优化的低秩矩阵恢复和完成
- 有关矩阵低秩近似的一个不等式
- 数学建模--矩阵的引用
- 背景建模
- 背景建模
- 背景建模
- 背景建模
- 背景建模
- 取消低版本自定义对话框的背景
- 基于LBP的背景建模算法
- 515. Find Largest Value in Each Tree Row
- 润乾报表分页计算标签tobig使用
- poj 2185 kmp
- zabbix添加任务计划和sshd文件修改key
- 起点
- 低秩矩阵的应用--背景建模
- jvm垃圾收集小记
- 自定义View Draw过程- 最易懂的自定义View原理系列(4)
- GDB 调试命令
- Linux内核管理原理
- linux中的atexit函数
- 中断体系相关
- Servlet和JSP规范及版本对应关系
- mysql salve从库设置read only 属性