1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
clear all;
clc;
% USR vlfeat:
disp (' Création de la structure du travail vidéo...')
% données de la base vidéo:
conf.calDir = 'C:\code\dataset\KTH' ;
conf.dataDir = 'C:\code\' ;
%conf.dataDir = 'data\' ;
conf.numTrain = 4 ;
conf.numTest = 5 ;
conf.numClasses = 6;
conf.numWords = 1000 ;
conf.quantizer = 'kdtree' ;
conf.svm.C = 10 ;
conf.svm.solver = 'pegasos' ;
conf.svm.biasMultiplier = 1 ;
conf.prefix = 'baseline' ;
% creation des fichiers .mat
conf.vocabTPath = fullfile(conf.dataDir, [conf.prefix '-vocabT.mat']) ;
conf.vocabSPath = fullfile(conf.dataDir, [conf.prefix '-vocabS.mat']) ;
conf.BOWTPath = fullfile(conf.dataDir, [conf.prefix '-BOWTApp.mat']) ;
conf.BOWSPath = fullfile(conf.dataDir, [conf.prefix '-BOWSApp.mat']) ;
conf.histsTPath=fullfile(conf.dataDir, [conf.prefix '-BOWTT.mat']) ;
conf.histsSPath=fullfile(conf.dataDir, [conf.prefix '-BOWTS.mat']) ;
conf.modelPath = fullfile(conf.dataDir, [conf.prefix '-model.mat']) ;
conf.TrajAppPath = fullfile(conf.dataDir, [conf.prefix 'trajectoriesApp']) ;
conf.siftaccAppPath = fullfile(conf.dataDir, [conf.prefix '-siftaccApp']) ;
conf.TrajtotPath = fullfile(conf.dataDir, [conf.prefix 'trajectories']) ;
conf.siftacctotPath = fullfile(conf.dataDir, [conf.prefix '-siftacc']) ;
conf.modelPath = fullfile(conf.dataDir, [conf.prefix '-model.mat']) ;
conf.resultPath = fullfile(conf.dataDir, [conf.prefix '-result.mat']) ;
classes = dir(conf.calDir) ;
classes = classes([classes.isdir]) ;
classes = {classes(3:conf.numClasses+2).name};
videos = {} ;
videoClass = {} ;
for ci = 1:length(classes)
vids = dir(fullfile(conf.calDir, classes{ci}, '*.avi'))' ;
vids = vl_colsubset(vids, conf.numTrain + conf.numTest) ;
%%%%%% jusqu'a ici tt va bien; vids contient les noms de 9 vidéo %choisies
%lerreur ici: too many argument:
vids = cellfun(@(x)fullfile(classes{ci},x),vids.name,'UniformOutput',false) ;
videos = {videos{:}, vids{:}} ;
videoClass{end+1} = ci * ones(1,length(vids)) ;
end
selTrain = find(mod(0:length(videos)-1, conf.numTrain+conf.numTest) < conf.numTrain) ;
selTest = setdiff(1:length(videos), selTrain) ;
videoClass = cat(2, videoClass{:}) ;
model.classes = classes ;
model.quantizer = conf.quantizer ;
model.vocab = [] ;
model.w = [] ;
model.b = [] ;
model.classify = @classify ;
selTrainFeats = vl_colsubset(selTrain,5*10) ;
trajectoriesApp = {} ;
siftaccApp= {};
siftspatialApp={};
X={};
Y={};
for ii = 1:length(selTrainFeats)
video =fullfile(conf.calDir, videos{selTrainFeats(ii)}) ;
[X{ii} Y{ii}]= calcultrajectoires(video);
close all;
siftaccApp{ii}=calculsiftacc(video, X{ii} ,Y{ii} );
siftspatialApp{ii}=siftspatial(video, X{ii} ,Y{ii});
end
siftaccAp=cat(1,siftaccApp{:});
siftspaApp=cat(1, siftspatialApp{:});
[dommy3 vocabSS]= kmeans(siftspaApp, 300);
[domy2 vocabS] = kmeans(siftaccAp, 1000);
nbp=0;
for ii = 1:length(videos)
%fprintf('traitement %s (%.2f %%)\n',videos{ii}, 100 * ii / length(videos)) ;
video= fullfile(conf.calDir, videos{ii}) ;
ii
[ X{ii} Y{ii} ]= calcultrajectoires(video);
close all;
[n m]=size(X{ii});
nbp=nbp+n*m;
siftacc{ii}=calculsiftacc(video, X{ii} ,Y{ii} );
siftspa{ii}=siftspatial(video, X{ii} ,Y{ii});
end
BOWTT={};
BOWTS={};
BOWTSP={};
for ii = 1:length(videos)
%dernier stade
[BOWTS3{ii}] = calcVisualWordHist (siftacc{ii},vocab3');
[BOWTSP{ii}] = calcVisualWordHist (siftspa{ii},vocabSS);
end
BOWTTM = cat(2, BOWTT{:}) ;
BOWTSM = cat(2, BOWTS{:}) ;
BOWTSPM = cat(2, BOWTSP{:}) ;
save(conf.histsTPath, 'BOWTTM') ;
save(conf.histsSPath, 'BOWTSM') ;
BOW=[ BOWTSM ;BOWSPM]; |
Partager