Robust PCA——Inexect ALM
前两篇博客已经介绍了Robust PCA及RPCA的优化,接下来用Robust PCA实现背景建模。背景建模就是将摄像机获取的场景分离出前景和背景,以获取场景中的动态目标。传统方法基本思路:首先通过学习一段训练图像序列提取出该视频的背景特征,来建立数学模型以便描述其背景,然后用该背景模型对需要检测的视频序列进行处理( 如采用背景相减法) ,最后提取出当前图像中与背景模型中性质不同的像素点,即为图像的动态目标。但由于视频场景中可能存在噪声污染,所以传统的背景建模方式就没法满足建模要求。Robust PCA,又称稀疏与低秩矩阵分解,能够从受强噪声污染或部分缺失的高维度观测样本中发现其低维特征空间,有效地恢复观测样本的低维子空间,并恢复受损的观测样本。
1.背景建模Robust PCA
对于某类观测的视频图像,将每一帧图像表示为m维矢量Vi,若该视频共包含n帧图像序列,那么该观测视频就可以用n个矢量组成的数据矩阵D=[v1,v2,...,vn]∈Rm∗n(i=1,2,...,n)来表示。视频背景建模的RobustPCA可描述为:对数据矩阵D进行分解,恢复出具有极大相似性的背景部分(低秩矩阵A)和分布范围很小的运动目标或前景部分(稀疏矩阵E):对于某类观测的视频图像,将每一帧图像表示为m维矢量V_{i},若该视频共包含n帧图像序列,那么该观测视频就可以用\\n个矢量组成的数据矩阵D=[v_{1},v_{2},...,v_{n}]\in R^{m*n}(i=1,2,...,n)来表示。视频背景建模的Robust PCA\\可描述为:对数据矩阵D进行分解,恢复出具有极大相似性 的背景部分(低秩矩阵A)和分布范围很小的运动目标或前景\\部分(稀疏矩阵E):
这样就形成了中的凸优化问题,这样就可以通过上篇博客介绍的优化方法进行求解了,计算出A和E就可以分离出背景和前景(运动目标)了。
2.Inexect ALM求解A和E
上篇博客已经介绍了Robust PCA的Inexect ALM优化算法,在这里就不进行赘述,直接上马毅2009年”The Augmented Lagrange Multiplier Method for Exact Recovery of Corrupted Low-Rank Matrices“论文中算法截图。
。
3.Inexect ALM算法实现
下面是IALM算法的Python实现,具体可参考我的分享的代码资源。
import numpy as np
from numpy.linalg import norm, svddef inexact_augmented_lagrange_multiplier(X, lmbda = 0.01, tol = 1e-7, maxIter = 1000):Y = Xnorm_two = norm(Y.ravel(), 2)norm_inf = norm(Y.ravel(), np.inf) / lmbdadual_norm = np.max([norm_two, norm_inf])Y = Y /dual_normA = np.zeros(Y.shape)E = np.zeros(Y.shape)dnorm = norm(X, 'fro')mu = 1.25 / norm_tworho = 1.5sv = 10.n= Y.shape[1]itr = 0while True:Eraw = X - A + (1/mu) * YEupdate = np.maximum(Eraw - lmbda / mu, 0) + np.minimum(Eraw + lmbda / mu, 0)U, S, V = svd(X - Eupdate + (1 / mu) * Y, full_matrices=False)svp = (S > 1 / mu).shape[0]if svp < sv:sv = np.min([svp + 1, n])else:sv = np.min([svp + round(0.05 * n), n])Aupdate = np.dot(np.dot(U[:, :svp], np.diag(S[:svp] - 1 / mu)), V[:svp, :])A = AupdateE = Eupdateprint itrZ = X - A - EY = Y + mu * Zmu = np.min([mu * rho, mu * 1e7])itr += 1if ((norm(Z, 'fro') / dnorm) < tol) or (itr >= maxIter):breakprint("IALM Finished at iteration %d" % (itr))return A, E
4.实验结果
参考
The Augmented Lagrange Multiplier Method for Exact Recovery of Corrupted Low-Rank Matrices
Robust PCA——Inexect ALM相关推荐
- Robust PCA 学习笔记
很久没有写学习笔记了,年初先后忙考试,忙课程,改作业,回家刚安定下来,读了大神上学期给的paper,这几天折腾数学的感觉很好,就在这里和大家一起分享一下,希望能够有所收获.响应了Jeffrey的建议, ...
- Robust PCA
Robust PCA 1. PCA PCA是Principal Component Analysis的缩写,翻译为主元分析.它是一种对数据进行分析的技术,最重要的应用是对原有数据进行简 ...
- PCA 与 Robust PCA区别
之前的一篇博客对PCA的原理.特点进行了介绍以及用python实现了PCA.本篇博客对PCA和Robust PCA进行简单的区别. 1.PCA 主成分分析(PCA)可以有效的找出数据中最重要的元素和结 ...
- PCA,AE,VAE,RPCA,概率PCA之间的联系与区别
文章目录 AE 自编码器 PCA 概率PCA VAE RPCA RPCA优化求解算法对比 [数学推导详见Rubost PCA优化总结](https://blog.csdn.net/u010510350 ...
- 笔记:Online robust principal component analysis via truncated nuclear norm regularization
Hong, B., Wei, L., Hu, Y., Cai, D., & He, X. (2016). Online robust principal component analysis ...
- 漫谈概率 PCA 和变分自编码器
作者丨知乎DeAlVe 学校丨某211硕士生 研究方向丨模式识别与机器学习 介绍 主成分分析(PCA)和自编码器(AutoEncoders, AE)是无监督学习中的两种代表性方法. PCA 的地位不必 ...
- UFLDL教程:Exercise:PCA in 2D PCA and Whitening
相关文章 PCA的原理及MATLAB实现 UFLDL教程:Exercise:PCA in 2D & PCA and Whitening python-A comparison of vario ...
- PCA的原理及MATLAB实现
相关文章 PCA的原理及MATLAB实现 UFLDL教程:Exercise:PCA in 2D & PCA and Whitening python-A comparison of vario ...
- pca主成分分析_降维:主成分分析(PCA)
用于降维的PCA算法的设计原理及其从头开始在Python中的实现 介绍 借助高性能CPU和GPU的可用性,几乎可以使用机器学习和深度学习模型解决所有回归,分类,聚类和其他相关问题.但是,在开发此类模型 ...
- 主成分分析(PCA)原理和鲁棒主成分分析(RPCA)详解
主成分分析(PCA)原理和鲁棒主成分分析(RPCA)详解 1.相关背景 在许多领域的研究与应用中,通常需要对含有多个变量的数据进行观测,收集大量数据后进行分析寻找规律.多变量大数据集无疑会为研究和应用 ...
最新文章
- 谷歌大脑2017总结下篇:从医疗、机器人等6个领域开始的改变世界之旅
- Django Models一对多操作
- 科技论文中的分析与综合-如何写好科技论文之我见(七)
- 207. Course Schedule 课程表
- .Net Core HttpClient处理响应压缩
- 易语言 java支持_开源Java客户端可以连接易语言服务器
- Manjaro oh-my-zsh安装配置
- cas与java锁_JAVA之锁-cas
- 终于解决 k8s 集群中部署 nodelocaldns 的问题
- C语言结构体实例演示
- 【硬刚Hive】MYSQL/HIVESQL笔试题(七):HIVESQL(七)
- needs to declare permission android.permission.REQUEST_INSTALL_PACKAGES
- 谈谈EMC Unity名字侵权官司,送竞争分析点评
- MLX90614红外温度模块驱动
- 大学四年,靠着这些学习网站,我从挂科学渣变成了别人眼中的大神
- Ice飞冰《配置总结》
- css3-简笔画 腾讯QQlogo
- 高含金量国际计算机编程竞赛
- 对口计算机平面设计考纲,云南体育运动职业技术学院2014年对口招生专业技能测试工作方案...
- dom4j解析xml,dom4j创建xml