필터 지우기
필터 지우기

How to measure the performance (precision and recall ) for following model and does it need to have groundTruth?

조회 수: 8 (최근 30일)
I have 3 questions for classical computer vision detection model for crack detection.
I attached the original image (input ) and the output thus,
1- How many image I need to calculate the peformance of this model(Precision, recall,....) if I want o reach accuracy above 90%?
2-Does this type of model need to have the groundTruth or the original image is the groundTruth?
3-Does this type of model needs to train (80% for traing and 20% for testing) and how to do it, or traingnig only for machine learning and deep learning model ?
% Program to compute the mean width of a blob in an image.
clearvars;
close all;
clc;
fontSize = 15;
% Read in original image, with white lightning on black background.
baseFileName = 'Original image.jpg';
fullFileName = fullfile(pwd, baseFileName);
grayImage = imread(fullFileName);
% Get the dimensions of the image.
% numberOfColorChannels should be = 1 for a gray scale image, and 3 for an RGB color image.
[rows, columns, numberOfColorChannels] = size(grayImage)
if numberOfColorChannels > 1
% It's not really gray scale like we expected - it's color.
% Use weighted sum of ALL channels to create a gray scale image.
% grayImage = rgb2gray(rgbImage);
% ALTERNATE METHOD: Convert it to gray scale by taking only the green channel,
% which in a typical snapshot will be the least noisy channel.
grayImage = grayImage(:, :, 2); % Take green channel.
else
grayImage = grayImage; % It's already gray scale.
end
% Now it's gray scale with range of 0 to 255.
subplot(2, 3, 1);
imshow(grayImage, [])
impixelinfo; % Let user mouse around and see values in the status line at the lower right.
title('Original Image', 'FontSize', fontSize);
% Binarize the image.
% mask = imbinarize(grayImage);
lowThreshold = 0;
highThreshold = 160;
% Interactively and visually set a threshold on a gray scale image.
% https://www.mathworks.com/matlabcentral/fileexchange/29372-thresholding-an-image?s_tid=srchtitle
[lowThreshold, highThreshold] = threshold(lowThreshold, highThreshold, grayImage);
mask = grayImage >= lowThreshold & grayImage <= highThreshold;
% Fill holes.
mask = imfill(mask, 'holes');
% Take largest blob only.
mask = bwareafilt(mask, 1);
subplot(2, 3, 2);
imshow(mask)
impixelinfo; % Let user mouse around and see values in the status line at the lower right.
title('Mask', 'FontSize', fontSize)
% Compute the skeleton
skelImage = bwskel(mask);
subplot(2, 3, 3);
imshow(skelImage)
impixelinfo; % Let user mouse around and see values in the status line at the lower right.
title('Thinned', 'FontSize', fontSize)

답변 (1개)

Pratham Shah
Pratham Shah 2023년 9월 28일
Yes, You need to have a ground truth in order to obtain accuracy, precision and recall. If you have ground truth you can calculate all those parameters.
  댓글 수: 5
Pratham Shah
Pratham Shah 2023년 10월 1일
You can use Image Segmenter application of MATLAB or LableImg to mark background and foreground(Cracks). With that image you can compute accuracy of your algorithm.
yasmin ismail
yasmin ismail 2023년 10월 2일
@Pratham Shah thanks I used Imgae segmeneter and I got the result as shown in attached file (crack) which is groundTruth, now how can I apply IoU to compare between the GrndTruth and model out put ? I attached the outPut Too

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Image Segmentation and Analysis에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by