当前位置:网站首页>[feature extraction] feature selection of target recognition information based on sparse PCA with Matlab source code
[feature extraction] feature selection of target recognition information based on sparse PCA with Matlab source code
2022-06-26 06:54:00 【Matlab scientific research studio】
1 brief introduction
Bag-of-words (BoW) methods are a popular class of object recognition methods that use image features (e.g. SIFT) to form visual dictionaries and subsequent histogram vectors to represent object images in the recognition process. The accuracy of the BoW classifiers, however, is often limited by the presence of uninformative features extracted from the background or irrelevant image segments. Most existing solutions to prune out uninformative features rely on enforcing pairwise epipolar geometry via an expensive structure-from- motion (SfM) procedure. Such solutions are known to break down easily when the camera transformation is large or when the features are extracted from low- resolution low-quality images. In this paper, we propose a novel method to select informative object features using a more efficient algorithm called Sparse PCA. First, we show that using a large-scale multiple-view object database, informative features can be reliably identified from a high- dimensional visual dictionary by applying Sparse PCA on the histograms of each object category. Our experiment shows that the new algorithm improves recognition accuracy compared to the traditional BoW methods and SfM methods. Second, we present a new solution to Sparse PCA as a semidefinite programming problem using Augmented Lagrange Multiplier methods. The new solver outperforms the state of the art for estimating sparse principal vectors as a basis for a low-dimensional subspace model. The source code of our algorithms will be made public on our website.
2 Part of the code
clc;
T = 5; % Number of trials to average run times over
dimensions = [10 50 100 150 200 250 300 350 400 450 500];
ALMTimes = zeros(length(dimensions), T);
DSPCATimes = zeros(length(dimensions), T);
ALMPrec = zeros(length(dimensions), T);
DSPCAPrec = zeros(length(dimensions), T);
for i = 1:length(dimensions)
% Initialize parameters ****************
n=dimensions(i); p = 1; % Dimension
ratio=1; % "Signal to noise" ratio
% rand('state',25); % Fix random seed
for j = 1:T
% Form test matrix as: rank one sparse + noise
testvec=rand(n,p);
testvec = testvec - ones(n,1)*mean(testvec);
numZero = n - floor(0.1*n);
randInd = randperm(n); randInd1 = randInd(1:numZero); randInd2 = randInd(numZero+1:end);
testvec(randInd1,:) = 0;
testvec=ratio*testvec; % + rand(n,p);
testvec = testvec/norm(testvec);
A = testvec*testvec'/p;
lambda = max(1e-5,min(diag(A))*0.5);%(min(diag(A)) + max(diag(A)))/2;
tstartDSPCA = tic;
[x1, DSPCAIter] = DSPCA(A, lambda);
tstopDSPCA = toc(tstartDSPCA);
DSPCAPrec(i,j) = norm(abs(x1) - abs(testvec));
tstartALM = tic;
[x, ALMIter] = SPCA_ALM(A, lambda);
tstopALM = toc(tstartALM);
ALMPrec(i,j) = norm(abs(x) - abs(testvec));
ALMTimes(i,j) = tstopALM;
DSPCATimes(i,j) = tstopDSPCA;
fprintf('\n [dim,trial] = [%i, %i]: [DSPCA time, SPCA-ALM time] = [%0.4f %0.4f]\t[DSPCA Iter, SPCA-ALM Iter] = [%i, %i]',n, j, tstopDSPCA, tstopALM, DSPCAIter, ALMIter);
end
fprintf('\n');
end
fprintf('\n');
ALMTimes = mean(ALMTimes,2);
DSPCATimes = mean(DSPCATimes,2);
ALMPrec = mean(ALMPrec,2);
DSPCAPrec = mean(DSPCAPrec,2);
figure
hold on
plot(dimensions, DSPCATimes, '-bx', 'linewidth', 2)
plot(dimensions, ALMTimes, '-ro', 'linewidth', 2)
legend('DSPCA', 'SPCAALM');
xlabel('Dimension (n)');
ylabel('Compute time (sec)');
title('Time comparison of DSPCA and SPCAALM')
figure
hold on
plot(dimensions, DSPCAPrec, '-gx', 'linewidth', 2)
plot(dimensions, ALMPrec, '-mo', 'linewidth', 2)
legend('DSPCA', 'SPCAALM');
xlabel('Dimension (n)');
ylabel('Error');
title('Precision comparison of DSPCA and SPCAALM')
3 Simulation results
4 reference
[1] Naikal N , Yang A Y , Sastry S S . Informative feature selection for object recognition via Sparse PCA[C]// International Conference on Computer Vision. IEEE, 2011.
About bloggers : Good at intelligent optimization algorithms 、 Neural networks predict 、 signal processing 、 Cellular automata 、 The image processing 、 Path planning 、 UAV and other fields Matlab Simulation , relevant matlab Code problems can be exchanged by private letter .
Some theories cite network literature , If there is infringement, contact the blogger to delete .
边栏推荐
- Analysis report on market demand and investment competitiveness of China's cyclohexanone industry (2022 Edition)
- 解决新版谷歌Chrome浏览器Cookie跨域失效问题
- NumPy学习挑战第四关-NumPy数组属性
- [digital signal processing] basic sequence (basic sequence lists | unit pulse sequence | unit pulse function | discrete unit pulse function | difference between unit pulse function and discrete unit p
- 【特征提取】基于稀疏PCA实现目标识别信息特征选择附matlab源码
- SQL Basics
- Installation and login of MySQL database
- Lightgbm-- parameter adjustment notes
- Format one insert per line using mysqldump- Using mysqldump to format one insert per line?
- How to transfer database data to check box
猜你喜欢
What is data mining?
Pagoda server setup and database remote connection
If you meet a female driver who drives didi as an amateur, you can earn 500 yuan a day!
【元胞自动机】基于元胞自动机实现高速公路收费站交通流问题附matlab代码
Interviewer: what is the difference between a test plan and a test plan?
Kotlin Compose 状态恢复 rememberSaveable 与 remember
NumPy学习挑战第四关-NumPy数组属性
Live broadcast Preview - fire safety instructor training "cloud class" is about to start!
Mysql操作数据库
DS18B20 details
随机推荐
Jasminum plug-in of Zotero document management tool
Live broadcast Preview - fire safety instructor training "cloud class" is about to start!
Decision tree learning notes
【图像增强】基于人工多重曝光融合AMEF实现图像去雾附matlab代码
Go language learning notes 1.1
SQL Basics
专业课-代码题记录
C# Nuget离线缓存包安装
Promise API for getting started with the web
Judgment of SQL null value
Development trends and prospects of acrylamide crystallization market in the world and China 2022-2027
On a classical problem
China polyimide film market demand and future investment risk outlook report 2022-2027
Go语言学习笔记 1.2-变量篇
Distribution operation of D
How to transfer database data to check box
Solution of garbled code in sparkshell deletion key of SecureCRT
SQL 查询语句
[digital signal processing] basic sequence (unit step sequence | relationship between unit step sequence and unit pulse sequence | rectangular sequence | relationship between rectangular sequence and
【图像融合】基于耦合特征学习的多模式医学图像融合附matlab代码