Why I got small dice score when I compared between two skeletonize images?

1 view (last 30 days)
I created detected crack model based on image segmenation, I created the groundtruth by using segmenter app, I used ROI , assisstand freehand then export to workspace. after labeleing by image segmenter app I applied the following to skeletonize the labeled image
im = imread('Label7027_157.png');
im_gray2 = rgb2gray(im);
im_bin2 = imbinarize(im_gray2);
skelImage = bwskel(im_bin2);
Then I applied dice but i got also small similarity:
BW_groundTruth = skelImage;
A =imread('new7027-157.png');
AAA = imbinarize(AA);
similarity = dice(AAA, BW_groundTruth)
similarity =
I attached the original image 7027-157 and the groundTruth(label7027-157) and the output image (new7027-157) from the created model (which is created to detect crack) to compaire with groundTruth.
I am not expert in image processing, and I am afraid that I did mistakes during labeleing the image by image segmenter app, so can anyone help me to fix it?

Answers (1)

Constantino Carlos Reyes-Aldasoro
It may be correct to have a small Dice score. Dice (https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient) as well as Jaccard only take into account True positives as opposed to Accuracy and other metrics, so when you have very small areas to assess, like the line you have, then the overlap of the true value with your estimation is naturally low. Visualise them and then you will see what is going on:
imagesc(AAA + 2* BW_groundTruth)
That will show you where the overlaps occur (values of 3) where you have only ground truth (2), prediction that was not correct (1) and the true negatives (0).

Community Treasure Hunt

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

Start Hunting!