0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040 iFolders = struct('Name',{...
0041 'clpsaline1bl#3',...
0042 'clpsaline1bl#1',...
0043 'clpsaline1bl#4',...
0044 'rhod74-10-',...
0045 'clpapc1min10#3',...
0046 'clpsaline2bl#3',...
0047 'F2',...
0048 'F3'},...
0049 'Ra',{...
0050 [15 25;35 45;60 70],...
0051 [2 12; 35 45; 50 60; 80 98],...
0052 [10 20; 60 80; 115 135;140 160; 175 210;230 245; 265 275],...
0053 [2 22;50 85; 140 160],...
0054 [50 70; 102 115; 137 146],...
0055 [6 27; 98 118],...
0056 [1 60],...
0057 [1 60]});
0058
0059 cellCountImprovement = [];
0060 dataSet = [1,2,3,5,6];
0061
0062 for i = 1:length(dataSet)
0063 iData = dataSet(i);
0064 for iSeq = 1: size( iFolders(iData).Ra, 1 )
0065 tG = SS(iData).GT.tracks( ...
0066 SS(iData).GT.tracks(:,2) >= iFolders(iData).Ra(iSeq,1) ...
0067 & SS(iData).GT.tracks(:,2) <= iFolders(iData).Ra(iSeq,2),:);
0068
0069 fG = SS(iData).GT.frames( ...
0070 SS(iData).GT.frames(:,1) >= iFolders(iData).Ra(iSeq,1) ...
0071 & SS(iData).GT.frames(:,1) <= iFolders(iData).Ra(iSeq,2),:);
0072
0073 counterG = SS(iData).GT.Counter.merge(iSeq) + ...
0074 SS(iData).GT.Counter.colliding(iSeq) + ...
0075 SS(iData).GT.Counter.split(iSeq);
0076
0077
0078 ffG = size(fG,1) / double( iFolders(iData).Ra(iSeq,2) - iFolders(iData).Ra(iSeq,1) + 1 );
0079 ttG = size(tG,1) / double( iFolders(iData).Ra(iSeq,2) - iFolders(iData).Ra(iSeq,1) + 1 );
0080
0081
0082 ccId = SS(iData).GT.CC.IDs;
0083 ccG = unique(tG(:,1));
0084 ccCount = sum( ismember (ccG, ccId ) );
0085 collisionRatio = ccCount / double(length(ccG));
0086 nCell = length(unique(tG(:,1)));
0087
0088 tK = SS(iData).Kalman.tracks( ...
0089 SS(iData).Kalman.tracks(:,2) >= iFolders(iData).Ra(iSeq,1) ...
0090 & SS(iData).Kalman.tracks(:,2) <= iFolders(iData).Ra(iSeq,2),:);
0091
0092 ttK = size(tK,1) / double( iFolders(iData).Ra(iSeq,2) - iFolders(iData).Ra(iSeq,1) + 1);
0093
0094 tR = SS(iData).Rich.tracks( ...
0095 SS(iData).Rich.tracks(:,2) >= iFolders(iData).Ra(iSeq,1) ...
0096 & SS(iData).Rich.tracks(:,2) <= iFolders(iData).Ra(iSeq,2),:);
0097
0098
0099 ttR = size(tR,1) / double( iFolders(iData).Ra(iSeq,2) - iFolders(iData).Ra(iSeq,1) + 1);
0100
0101 tE = SS(iData).Eden.tracks( ...
0102 SS(iData).Eden.tracks(:,2) >= iFolders(iData).Ra(iSeq,1) ...
0103 & SS(iData).Eden.tracks(:,2) <= iFolders(iData).Ra(iSeq,2),:);
0104
0105
0106
0107 ttE = size(tE,1) / double( iFolders(iData).Ra(iSeq,2) - iFolders(iData).Ra(iSeq,1) + 1);
0108
0109
0110 cellCountImprovementOverEden = double( abs( ttG - ttE ) - abs( ttG - ttR) ) / double( ttE );
0111 cellCountImprovementOverKalman = double( abs( ttG - ttK ) - abs( ttG - ttR) ) / double( ttK );
0112
0113 cellCountImprovement = [cellCountImprovement; ...
0114 cellCountImprovementOverEden cellCountImprovementOverKalman collisionRatio nCell ttG ttE ttK ttR ffG counterG];
0115 end
0116 end
0117
0118
0119
0120
0121 cellCountImprovement1 = sortrows(cellCountImprovement,3);
0122 f1 = figure(1);
0123 plot(cellCountImprovement1(:,3),cellCountImprovement1(:,2),'bx');
0124 hold on;
0125 plot(cellCountImprovement1(:,3),cellCountImprovement1(:,1),'r.');
0126 title('Cell Count Vs. Collision Ratio');
0127 xlabel('Collision Ratio');
0128 ylabel('Cell Count Improvement');
0129 legend('Over Kalman','Over Eden');
0130 grid on;
0131
0132
0133
0134 cellCountImprovement2 = sortrows(cellCountImprovement,4);
0135 f2 = figure(2);
0136 plot(cellCountImprovement2(:,4),cellCountImprovement2(:,2),'bx');
0137 hold on;
0138 plot(cellCountImprovement2(:,4),cellCountImprovement2(:,1),'r.');
0139 title('Cell Count Vs. Total number of Cells');
0140 xlabel('Number of Cells');
0141 ylabel('Cell Count Improvement');
0142 legend('Over Kalman','Over Eden');
0143 grid on;
0144
0145
0146
0147 f3 = figure(3);
0148 colormap summer;
0149 numCells = [cellCountImprovement(:,5), cellCountImprovement(:,6), cellCountImprovement(:,7), cellCountImprovement(:,8), cellCountImprovement(:,9)];
0150 bar(numCells,'group');
0151 legend('GT','Eden','Kalman','Rich','Detection');
0152 ylabel('Number of Cells');
0153 xlabel('Dataset');
0154
0155
0156
0157 cellCountImprovement4 = sortrows(cellCountImprovement,10);
0158 f4 = figure(4);
0159 plot(cellCountImprovement2(:,10),cellCountImprovement2(:,2),'bx');
0160 hold on;
0161 plot(cellCountImprovement2(:,10),cellCountImprovement2(:,1),'r.');
0162 title('Cell Count vs. Detected Collision');
0163 xlabel('Number of Machine Detected Collision');
0164 ylabel('Cell Count Improvement');
0165 legend('Over Kalman','Over Eden');
0166 grid on;
0167
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179