일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 티스토리챌린지
- 오블완
- logistic regression
- aiffel exploration
- 히비스서커스
- vscode
- 사회조사분석사2급
- GIT
- Decision Boundary
- Multi-Resolution Networks for Semantic Segmentation in Whole Slide Images
- WSSS
- ssh
- Pull Request
- 기초확률론
- 백신후원
- docker
- 프로그래머스
- HookNet
- cs231n
- 도커
- AIFFEL
- cocre
- Jupyter notebook
- docker exec
- 코크리
- docker attach
- numpy
- CellPin
- IVI
- airflow
- Today
- Total
히비스서커스의 블로그
[PAIP2021] Segmentation Metrics 본문
PAIP2021을 준비하게 되며 semantics segmentation을 깊이 공부하게 되었다. 사실 segmentation이 무엇이다 정도만 알고 있었기에 좀 더 공부해둘 것을 아쉬워하며 열심히 공부 중이다. 꾸준히 공부하며 블로그에 기록을 남기려 한다. segmentation의 평가지표를 살펴보고 PAIP2021에서 제시한 evaluation metrics에 대해 해석을 해보았다.
일반적으로 segmentation의 평가지표로는 Pixel Accuracy(PA), Mean Pixel Accuracy(MPA), Intersection over Union(IoU), Dice coefficient(=F1 score)가 존재한다.
Pixel Accuracy(PA)
단순하게 픽셀의 비율을 올바르게 예측한 비율을 나타낸다. 우리가 일반적으로 알고 있는 accuracy를 떠올리면 좋다.
$accuarcy = \frac{TP + TF}{TP + FN + TN + FP}$
K+1개의 클래스에 대해 다음의 식으로 나타낼 수 있다. (여기서 K는 foreground의 수, 1은 background 이며, $p_{ij}$는 class i의 픽셀 수가 class j에 속하는 것으로 예측한 것이다.)
$PA = \frac{\sum^{K}_{i=0}p_{ii}}{\sum^{K}_{i=0}\sum^{K}_{j=0}p_{ij}}$
Mean Pixel Accuracy(MPA)
PA의 확장판으로 올바르게 예측한 각 클래스 픽셀 수(= $p_{ii}$)를 각 클래스의 픽셀 수(= \sum^{K}_{j=0} p){ij})로 나누어 계산하고(= \sum^{k\K}_{i}) 이를 총 클래스 수(= $K+1$)에 대해 평균화한다.
다음의 식으로 나타낼 수 있다.
$MPA = \frac{1}{K + 1} \sum^{K}_{i=0} \frac{p_{ii}}{\sum^{K}_{j=0} p_{ij}}$
이들의 문제점은 background의 영역이 다른 클래스의 영역보다 월등히 클 경우 전부 background로 예측할 경우 accuracy가 높다는 점이다. (TN의 값이 매우 크기에 불필요한 경우 취약하다.)
Intersection over Union(IoU)
sematic segmentation에서 가장 보편적으로 쓰인다. predicted segmentation map(= A)과 ground truth(= B)의 교집합(intersection)을 합집합(= union)으로 나누어주어 구한다.
다음의 식으로 나타낼 수 있다.
$IoU = J(A, B) = \frac{A \cap B}{A \cup B}$
Dice coefficient(= F1 score)
image segmentation에서 다른 대중적인 지표이다. predicted segmentation map(= A)과 ground truth(= B)의 교집합(= intersection)에 2배한 값을 두 영역의 합(A + B)로 나누어 구한다.
다음의 식으로 나타낼 수 있다.
$Dice = \frac{2 | A \cap B}{|A| + |B|}$
이는 F1 score와 동일하다.
$F1 score = \frac{2TP}{2TP + FP + FN}$
마지막으로 Hausdorff distance(HD)와 Average distance(AVD)를살펴보자.
Hausdorff distance(HD)
predicted segmentation map(= A)과 ground truth(= B)라고 한 후 먼저 h(A, B)를 살펴보자.
A 위의 점 중 하나에 대해 B 위의 모든 점들 중 가장 거리가 짧은 점을 선택한다. 이를 모든 A에 대해 적용하고 그 중에 가장 큰 것을 고른다. h(B, A)는 A와 B가 반대가 되어 적용해주면 될 것이다. (이는 위의 그림에서 빨간색 선과 초록색 선이 다른 것을 확인하면 엄연히 다른 것임을 알 수 있다.)
h(A, B)와 h(B, A) 중에서 큰 것을 Hausdorff distance라고 하는 것이다.
Average distance(AVD)
먼저 d(A,B)를 살펴보자.
A 위의 점 중 하나에 대해 B 위의 모든 점들 중 가장 짧은 점을 선택한다. 이를 모든 A에 대해 진행시킨 후 평균을 구하는 것이 d(A, B)이다. d(B, A)는 A와 B가 반대가 되어 적용해주면 될 것이다.
d(A, B)와 d(B, A) 중에서 큰 것을 Average distance라고 하는 것이다.
이제 PAIP2021의 evluation metrics를 살펴보자.
https://paip2021.grand-challenge.org/Evaluation/
이를 다음과 같이 해석해보았다.
detection score는 line의 길이 및 line의 겹침에 비례하는 penalty가 있는 사용자 지정 distance metrics을 기반으로 F1 score를 사용하여 평가됩니다.
아래는 임상적 중요성에 따라 병리학자가 결정한 임계값입니다.
- 최대 허용 거리 점수 = 10 (값이 낮을수록 가까운 거리를 의미)
다음 단계들은 submission 평가되는 방법을 설명합니다 (output mask는 각각 배경 및 PNI lines을 0과 1로 나타내는 제출된 binary mask를 참조합니다).
1. output mask에 대한 연결 요소들을 계산합니다. (connectivity = 8)
2. bounding box의 overlap을 기반으로 output lines들과 매칭되는 후보가 선택됩니다.
- ground truth lines와 output lines 주위에 bounding box를 그립니다.
- bounding box가 확대됩니다. (확대 비율 = 150 %)
- output lines의 bounding box 중에 ground truth lines의 bounding box와 overlap되는 모든 output lines가 선택됩니다. (최소 겹침 Intersection-over-Union> 0.00 %)
3. 각 ground truth lines과 predict output lines 쌍에 대한 거리 점수를 계산합니다. (아래 그림 참조)
- average of minimum distances을 distance metric으로 사용합니다.
- line A에 있는 각각의 pixel에 대해 line B에 있는 점들 중 가장 최소거리를 구합니다.
- Average of minimum distances AB는line A의 길이로 최소거리들을 나눠준 평균입니다.
- Average of minimum distance BA는 Average of minimum distance AB에서 line A와 line B를 바꿔준 것입니다.
- 이 두 점수의 평균이 계산됩니다.
- dilation된 ground truth line과 output line에 대해 IoU값이 계산됩니다. (dilation disk 반경 = 1)IoU score는 overlap에 비례하는 가중치로 거리 점수에 곱해집니다.
- 최종 거리 점수는 line length normalization 및 line overlap penalty를 적용한 최소 거리의 양방향 평균입니다.
4. distance score에 기반하여 ground truth lines와 output lines의 1 대 1로 최적화하여 매칭하는 minimum weight matching algorithm을 적용합니다.
5. 만약 distance score가 허용 된 값 (위에 설명 됨)보다 크면 해당 쌍이 삭제되고 ground truth lines이 매칭되지 않은 상태로 유지됩니다 (= False Negative)
6. 매칭되지 않은 output line 중 만약 한 line 이라도 최소한 하나의 ground truth pair(distance score가 허용된 최대값보다 작은 distance를 갖는)가 존재할 경우 False Negative에서 제외합니다.
- 이 알고리즘은 긴 ground truth line이 짧게 끊긴 output line으로 예측되는 경우를 허용합니다.
- 오직 distance score가 가장 좋은 output line만 매칭 (= True Positive)으로 포함되고 합리적인 거리에 있는 나머지 line들은 False Negative에 포함되지 않습니다.
7. 마지막으로 일치하는 정보를 기반으로 F1 score를 계산합니다.
- matched ground truth lines = true positive
- unmatched ground truth lines = false negative
- unmatched output lines = false positive아래는 임상적 중요성에 따라 병리학자가 결정한 임계값입니다.
- 히비스서커스