UMUD 챌린지 ② — 모델은 그대로, 재는 법만 바꿨더니 0.742 → 0.505
앞 글에서는 모델을 돌리기 전에 데이터부터 확인했습니다. 이번 글은 그다음 이야기입니다. 분할 모델은 주최측 도구(DL_Track)의 것을 그대로 쓰고, 분할 결과에서 숫자를 뽑는 기하 계산만 새로 짰습니다. 그것만으로 public 점수가 0.742에서 0.505로 내려갔고, 등수는 159등에서 112등이 됐습니다.
대회 진행 중이라 코드와 대회 이미지는 싣지 않습니다. 그림은 직접 그린 도식입니다.
지금까지의 궤적
| 제출 | 바꾼 것 | public | 등수 |
|---|---|---|---|
| 1 | DL_Track 그대로 | 0.847 | 184 |
| 2 | 테스트 축척 검증 (91장 수정) | 0.787 | |
| 3 | 5프레임 영상 클립은 중앙값으로 | 0.782 | 176 |
| 4 | 외부 벤치마크에서 잰 편향 제거 | 0.742 | 159 |
| 5 | 기하 계산 교체 (1~3 포함, 4 제외) | 0.505 | 112 |
2번이 흥미로웠습니다. 한 장비의 화면에서 축척을 잘못 읽어 MT와 FL이 10% 크게 나오고 있었습니다. 테스트 이미지 309장 전부를 두 가지 방법(눈금 간격, 깊이 글자 판독)으로 따로 읽어 교차 검증했습니다. 두 방법의 차이는 최대 0.23%였습니다. 이것만으로 0.06이 줄었습니다.
출발점: 정답은 사람이 그린 선이다
이 대회의 정답은 사람이 이미지 위에 직접 그린 선입니다. 주최측이 토론 게시판에서 측정 방식을 꽤 자세히 밝혔습니다.
- MT: 이미지 왼쪽, 가운데, 오른쪽의 세로 직선 3개로, 두 근막 사이를 잰다.
- PA: 근섬유다발 조각이 심층 근막에 붙는 지점 3곳에서 각도를 잰다.
- FL: 근섬유다발 3개를 근막과 만날 때까지 선으로 긋는다. 필요하면 연장하고, 연장이 가장 적게 필요한 것을 고른다.
- 평가자 2명 × 3회를 평균한다.
그런데 기존 도구들은 이와 다르게 잽니다. 예를 들어 DL_Track은 MT를 가운데 한 곳에서, 근막 띠의 중심선 사이로 잽니다. 이 차이는 사소해 보이지만 채점식에서는 전혀 사소하지 않습니다.
\[S = \frac{1}{3}\left(\frac{\text{MAE}_{PA}}{6^\circ} + \frac{\text{MAE}_{FL}}{12\,\text{mm}} + \frac{\text{MAE}_{MT}}{3\,\text{mm}}\right)\]MT가 1mm 틀리면 0.111점입니다. 그래서 방향을 이렇게 잡았습니다. 모델을 더 똑똑하게 만들기 전에, 사람이 재는 방식을 그대로 흉내 내자.
1. MT — 띠의 가운데가 아니라 안쪽 가장자리
근막은 두께가 있는 띠입니다. 평가자는 근육 쪽 가장자리, 즉 안쪽 면에서 안쪽 면까지 선을 긋습니다.
띠의 중심선 사이를 재면 두 띠 두께의 절반씩만큼 두꺼워진다 (직접 그린 도식)
외부 전문가 벤치마크 35장으로 비교했습니다.
| MT 측정 방식 | MT 오차 (평균 절대오차) | MT 편향 | 전체 점수 |
|---|---|---|---|
| 띠 중심선 사이 | 1.41 mm | +1.41 mm | 0.320 |
| 안쪽 가장자리 사이, 세로선 3개 | 0.25 mm | +0.19 mm | 0.190 |
MT 오차가 1.41mm에서 0.25mm로 줄었습니다. 이 한 가지 변화가 개선의 대부분을 차지합니다.
어느 두 띠가 근막인가
실제로 더 어려운 건 어느 띠를 근막으로 볼지였습니다. 분할 결과에는 밝은 띠가 셋 이상 나오는 일이 흔합니다. 피부 쪽 막, 근육 사이의 격막, 아래쪽 두 번째 근육의 근막이 섞이기 때문입니다.
규칙은 이렇게 정했습니다.
- 인접한 띠 쌍마다, 그 사이에 근섬유다발이 얼마나 있는지 셉니다.
- 다발이 충분히 있는 쌍 중 가장 위쪽 쌍을 고릅니다. 모든 이미지는 표층 근육 기준입니다.
- 그런데 바로 아래 칸에도 같은 각도의 다발이 비슷하게 있으면, 가운데 띠는 근막이 아니라 근육 속 격막입니다. 그 띠를 건너뛰고 두 칸을 합칩니다.
3번이 없으면 벤치마크 두 장에서 MT가 10mm씩 모자랐습니다. 더 중요한 효과도 있었습니다. 3번이 없을 때는 분할 임계값을 0.4에서 0.5로 바꾸기만 해도 점수가 0.37과 0.23 사이를 오갔습니다. 규칙을 넣은 뒤로는 임계값 0.3~0.8에서 0.202~0.219로 안정됐습니다. 점수가 좋아진 것보다 흔들리지 않게 된 것이 더 반가웠습니다.
2. PA — 심층 근막 근처의 조각만
근섬유다발은 완전한 직선이 아니라 조금씩 휘어 있습니다. 평가자는 심층 근막에 붙는 부분의 각도를 잽니다. 그래서 근육 두께의 아래쪽 40% 안에 있는 다발 조각만 모아, 길이로 가중한 중앙값을 냈습니다.
솔직히 이 부분은 근육 전체의 조각을 쓸 때(0.187)와 벤치마크 점수 차이가 잡음 수준이었습니다. 그래도 정답 정의에 맞는 쪽을 택했습니다. 35장에서의 0.003 차이보다 정의를 따르는 쪽이 테스트에서 덜 위험하다고 봤습니다.
방향 문제도 있었습니다. 학습 데이터의 근섬유다발 이미지는 전부 “오른쪽 위로 올라가는” 방향으로 좌우가 맞춰져 있었습니다(앞 글의 좌우 반전 이야기입니다). 그래서 분할 모델은 반대 방향 다발을 잘 못 찾습니다. 원본과 좌우 반전본을 둘 다 넣고, 수용된 다발 길이가 더 긴 쪽을 택했습니다. “다발 확률의 합이 큰 쪽”을 고르는 기존 규칙은 반전본에서 나오는 짧고 평평한 잡음에 속아 세 장에서 실패했습니다.
3. FL — 서로 반대로 틀리는 두 추정
FL을 구하는 방법은 두 가지가 있습니다.
- 교점법: 다발 조각을 직선으로 연장해 두 근막 선과 만나는 점 사이 거리를 잽니다.
- 삼각법: 근막이 평행하다고 보고 $\text{FL} = \text{MT} / \sin(\text{PA})$로 계산합니다.
교점법은 +1.69mm, 삼각법은 −1.88mm 쪽으로 틀렸습니다. 방향이 반대이니 섞으면 상쇄됩니다. 0.7 : 0.3으로 섞었더니 편향이 +0.62mm가 됐습니다.
이 0.7이 이번 작업에서 유일하게 데이터로 고른 값입니다. 35장에 맞춰 여러 값을 고르면 과적합이 되기 쉽습니다. 그래서 장비 하나씩을 빼고 고르는 교차검증을 했고, 모든 경우에 0.7~1.0이 나왔습니다. 다른 값들까지 함께 고르면 교차검증 점수가 고정값을 쓸 때와 같았습니다. 그래서 나머지는 전부 정의대로 두고 건드리지 않았습니다. 이 35장 안에서 최적화하면 0.171까지 내려가지만, 그 숫자는 믿지 않습니다.
결과
| 벤치마크 35장 | PA 오차 | FL 오차 | MT 오차 | |
|---|---|---|---|---|
| DL_Track 자체 기하 | 0.299 | 1.45° | 3.74 mm | 1.04 mm |
| 같은 분할 + 새 기하 | 0.190 | 1.27° | 3.33 mm | 0.25 mm |
| 참고: 최고 전문가 / 전문가 평균 | 0.208 / 0.249 |
분할이 같은데도 벤치마크에서는 사람 평가자 수준보다 낮은 오차가 나왔습니다. 테스트 309장에 적용했을 때 측정에 실패한 이미지는 1장뿐이었습니다. 기존 도구는 수십 장이 실패해서 중앙값으로 채워야 했습니다.
그런데, 0.190과 0.505 사이
같은 방법이 벤치마크에서는 0.190인데 리더보드에서는 0.505입니다. 차이가 너무 큽니다. 지금 보고 있는 원인 후보는 이렇습니다.
- 벤치마크에 없는 장비: 테스트 309장 중 149장은 벤치마크에 한 장도 없는 두 장비에서 왔습니다.
- 늘려진 테스트 이미지: 테스트 239장은 가로세로가 다른 비율로 늘려져 있습니다. 평가자가 늘려진 화면에서 세로 축척 하나로 쟀다고 가정했는데, 이 가정이 틀리면 PA와 FL이 체계적으로 어긋납니다. 다음 제출에서 이 가정을 직접 시험합니다.
- 정답의 잡음: 테스트 정답은 평가자 2명의 평균이고, 벤치마크는 6~7명의 평균입니다.
- 한 장비의 의심스러운 결과: 눈으로 검수해 보니 한 장비에서 표층 근막을 화면 맨 위 경계선으로 잡는 경우가 있었습니다. FL이 180mm를 넘는 클립도 하나 있었습니다.
분할 모델도 바꿀 차례입니다. 서버 GPU 두 장에서 nnU-Net이 근막과 근섬유다발을 학습하고 있습니다. 새 분할은 이미 만든 기하 계산에 그대로 끼워 넣을 수 있게 입출력을 맞춰 두었습니다.
배운 것
- 정답이 어떻게 만들어졌는지가 곧 명세서입니다. 주최측 답변 몇 줄(세로선 3개, 심층 근막 부착부, 연장이 적은 다발)이 모델 개선보다 큰 차이를 만들었습니다.
- 점수보다 안정성을 봅니다. 임계값 하나에 0.14가 흔들리는 파이프라인은 테스트에서 어떻게 될지 알 수 없습니다.
- 고를 값은 최소로 합니다. 35장짜리 검증 세트에서는 조정할 수 있는 값 하나하나가 과적합의 통로입니다.
다음 글에서는 늘려진 이미지 가정의 검증 결과와, 분할 모델을 nnU-Net으로 바꾼 결과를 정리하겠습니다.

