Threshold for evaluation code R-CNN
3 ビュー (過去 30 日間)
古いコメントを表示
Abdussalam Elhanashi
2019 年 9 月 28 日
回答済み: Abdussalam Elhanashi
2019 年 9 月 29 日
Hi Guys
I would like if possible how to make this Threshold for Evaluation and validation of created R-CNN object Detector, i tried to make it in the attached scripts but it does not work, I want to make Threshold for score that like below 0.58 that score and bboxes should not be appeared
Herein the code:-
load('gTruth.mat')
output = selectLabels(gTruth,'signal');
if ~isfolder(fullfile('EvaluationData'))
mkdir EvaluationData
addpath('EvaluationData');
evaluationData = objectDetectorTrainingData(gTruth,...
'SamplingFactor',1,'WriteLocation','EvaluationData');
end
imds = imageDatastore(fullfile('EvaluationData'));
numImages = height(evaluationData);
result(numImages,:) = struct('Boxes',[],'Scores',[]);
for i = 1:numImages
% Read Image
I = readimage(imds,i);
% Detect the object of interest
[bboxes, scores] = detect(detector,I,'MiniBatchSize', 32);
% Store result
result(i).Boxes = bboxes;
result(i).Scores = scores;
end
% Convert structure to table
results = struct2table(result);
overlap = 0.1;
% Evaluate Metrics
[ap,recall,precision] = evaluateDetectionPrecision(results...
,evaluationData(:,2),overlap);
[am,fppi,missRate] = evaluateDetectionMissRate(results,evaluationData(:,2),overlap)
0 件のコメント
採用された回答
Image Analyst
2019 年 9 月 28 日
To filter a table you can do something like this
goodRows = [results.Scores] > 0.58;
resutls = results(goodRows, :);
その他の回答 (2 件)
Abdussalam Elhanashi
2019 年 9 月 28 日
1 件のコメント
Image Analyst
2019 年 9 月 29 日
Here is an example.
LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Smoker = logical([1;0;1;0;1]);
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
results = table(LastName,Age,Smoker,Height,Weight,BloodPressure)
goodRows = [results.Height] > 65
results = results(goodRows, :)
You'll see
results =
5×6 table
LastName Age Smoker Height Weight BloodPressure
___________ ___ ______ ______ ______ _____________
{'Sanchez'} 38 true 71 176 124 93
{'Johnson'} 43 false 69 163 109 77
{'Li' } 38 true 64 131 125 83
{'Diaz' } 40 false 67 133 117 75
{'Brown' } 49 true 64 119 122 80
goodRows =
5×1 logical array
1
1
0
1
0
results =
3×6 table
LastName Age Smoker Height Weight BloodPressure
___________ ___ ______ ______ ______ _____________
{'Sanchez'} 38 true 71 176 124 93
{'Johnson'} 43 false 69 163 109 77
{'Diaz' } 40 false 67 133 117 75
Note how results now has fewer rows than before filtering.
Put the code right after you call struct2table.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!