Manifold Ordinal-Mixup for Ordered Classes in TW3-Based Bone Age Assessment는 2020년 MICCAI 학회에서 발표된 뼈 나이 평가에 대한 논문입니다.
[DL 기반 TW3]
https://link.springer.com/chapter/10.1007/978-3-030-59725-2_64
* Abstract
- 뼈 나이 평가 (BAA)는 아동의 비정상적인 성장을 조기에 발견하고 그 원인을 조사하는 데 매우 중요
- 이 과정을 자동화하면 판독자 간 편차를 줄이고 판독 시간을 단축시켜 방사선과 전문의에게 많은 도움이 될 수 있음
- 손 엑스레이 이미지에서 13개의 주요 뼈 각각에 대한 ROI 패치를 추출하고 해당 뼈의 성숙 단계를 예측하기 위해 DNN을 훈련시켜 뼈 나이를 추정하는 기존에 없던 DL 기반 TW3 시스템 제안
- 성숙 단계를 나타내는 클래스들 간의 순서 관계를 고려하는 새로운 loss function 설계
- 낮은 MAE, path-connected latent space 학습, 다른 DL 알고리즘 대비 우수한 성능
* Introduction
- 청소년의 실제 연령과 뼈 나이 간에 큰 차이 발생 가능 → 성장 이상을 조기에 발견하는 것은 적절한 치료를 위해 매우 중요
- X-ray 영상을 활용하는 전통적인 뼈 나이 평가
1. Greulich-Pyle(GP) 방식
- 손 엑스레이 이미지를 GP Atlas(표준 뼈 이미지 모음집)와 비교하여 가장 유사한 기준 이미지를 시각적으로 찾아 뼈 나이를 빠르게 평가
- 주관성이 높아 방사선과 전문의 간의 해석 편차가 큼
2. Tanner-Whitehouse(HW)
- 손 엑스레이에서 주요 뼈들을 개별적으로 분석하여 뼈 나이 평가
- TW3: 13개의 주요 뼈로부터 점수를 산출하고 이들의 합을 통해 뼈 나이 예측
- 뼈별 정보를 활용하기 때문에 정밀한 평가가 가능 but GP 방식 대비 판독 시간이 오래 걸림
- 두 방식 모두 판독에 많은 시간 소요, 정확도 역시 판독자의 경험에 크게 의존 -> 최근 자동화 BAA 시스템 제안
- 현대 DL 기반 BAA 알고리즘 세 가지 접근으로 나뉨
1. 다양한 뼈 모양과 크기를 다룰 수 있는 강력한 전처리 알고리즘
2. DNN 아키텍처 수정
3. 더 나은 특징 표현을 위한 최적화 목표 조정
→ 모두 전체 손 이미지를 기반으로 평가, TW3에서처럼 개별 뼈의 성숙 단계 분석 X
→ 이는 공개 데이터셋 존재하지 않기 때문
- ROI 패치 및 뼈 성숙 단계에 대한 어노테이션이 포함된 사내 데이터셋을 이용해 완전 자동화된 TW3 방식을 개발
1. 13개의 주요 뼈를 위한 관절 키포인트 검출 네트워크를 학습
2. 각 ROI에 대해 개별 로컬 분류기를 사용하여 뼈의 성숙 단계를 예측
3. 예측된 단계들을 통해 Radius, Ulna, Short bone(RUS) 점수 계산 → 이들의 합을 성별 기반 뼈 나이표 에 대응시켜 최종 뼈 나이 계산
- 새로웃 손실 함수 고안
- 비정수 나이를 보간 방식으로 고려 → 부드러운 결정 경계 학습으로 성능 향상
* Methods
* BAA System
1. 손 엑스레이 이미지로부터 TW3 평가에 해당하는 13개의 주요 뼈 ROI 추출
2. 각 ROI에 대해 local classifier를 이용하여 Radius, Ulna, Short bone (RUS: 뼈 나이 평가에 사용하는 13개의 주요 뼈들을 묶어 부르는 용어; 각 뼈는 성숙도에 따라 0~100점 사이의 정량적 점수를 받음) 점수 예측
3. RUS 점수들의 합을 최종적인 뼈 나이로 변환
* ROI Extractor
- ROI 추출기란?
- chi: 입력 이미지 공간
- R: ROI 추출기 함수
- R_i: 13개 주요 뼈 각각에 해당하는 ROI 패치
- 네트워크
- 키포인트 예측을 위한 함수 Escobar et al.이 제안한 포즈 추정 네트워크 구조에서 아이디어 가져옴
- 손 이미지이에서 각 뼈의 중심점(keypoint)를 예측하고 그 주위 이미지를 추출
- R_i: i번째 뼈를 추출하는 함수
- x: 입력 이미지
- W_i: 해당 이미지에서 뼈 keypoint가 존재할 확률 분포 맵
- 중심 keypoint 찾기
- 히트맵 W_i에서 가장 높은 확률을 갖는 좌표 p_i를 고르는 것
* local classifiers
- 각 뼈의 ROI 이미지를 받아, 그 뼈가 현재 성숙 단계 중 어디에 있는지 예측
- 분류기 집합
- 분류기
- f_r: 뼈 r에 대한 분류기
- chi_r: 뼈 r의 ROI 이미지
- delta(Y_r): 성숙 단계 집합 Y_r에 대한 확률 분포
- 성숙 단계 집합 Y_r: ordinal class 집합 (ex. {pre-ossification, early, middle, late, mature})
- 학습 방식
- w_r: 뼈 r의 ROI 이미지
- f_r(w_r): 모델의 예측 확률 분포
- P_r: 정답 확률 분포 (one-hot 벡터)
- 각 로컬 분류기로 EfficinetNet-B4 사용 (출력 노드 수를 Y_r에 맞게 수정하여 활용)
Ordinal Mixup for Ordered Classes
- empirical risk minimization 기법 변형
- Mixup의 기본 아이디어: 두 개의 입력 (x^(i), y^(i)), (x^(j), y^(j))
- lambda는 uniform[0,1] 또는 Beta(alpha, alpha) 분포에서 샘플링
- 중간 클래스도 잘 학습하게 해주는 효과가 있음
- 더 부드럽고 일반화된 분류 경계 학습 → 경계 근처나 새로운 데이터에 강해짐
- 일반 mixup
- 클래스 간 순서 정보를 반영하지 못함
- ordinal mixup
- Lable Distribution Learning(LDL) 응용
- 일반 mixup은 클래스 간 순서 정보를 반영 X → 인접 클래스에도 유사한 확률을 부여
- 바로 y^(mix)를 바로 레이블로 쓰지 않고 Gaussian smoothing을 거쳐 확률 분포 q^(mix)를 생성하고, 이를 정규화하여 타깃 분포 p^(mix)를 만듬
- loss func
- p^(mix)와 f(x^(mix)) 간의 KL Divergence
- manifold ordinal mixup
- manifold mixup은 입력값 x가 아니라 latent space에서 출력된 벡터들을 섞음
- f^(l)(w^(i)) -> DNN의 l번째 은닉층 출력
- 배치 학습 적용 시 주의점
- 배치 내에서 샘플 i에 대해 너무 멀지 않은 y_j를 선택
- C는 하이퍼파라미터
- 실험에서 alpha 0.5 → 거의 A처럼 보이지만, B 성분이 살짝 있는 데이터를 보게 됨 → 경계를 더욱 조심스럽게 학습 → confident 예측
- alpha 2.0가 Ordered classes 에 더 적합해보임 → 더 soft한 샘플을 많이 보는게 맞지 않나? 적어도 실험은 해봤어야하는거 아닌가?
* Experiment Results
- ROI 패치 추출하기 위해 HR-Net 사용 (BCE loss로 학습)
- 추출한 ROI 기반으로 local classifier (ImageNet 사전학습 가중치로 초기화 후) 학습
- 일반적인 CE loss
- manifold mixup
- label distribution learning (LDL)
- manifold ordinla-mixup (제안 방식)
* Dataset
RSNA BAA 공개 데이터넷 일부 → 임상 경험 10년 이상의 근골격 영상의학과 전문의가 2342개의 고품질 이미지를 TW3 기준에 맞춰 어노테이션
- train:val 8:2 → 가중치 고정
- 5 fold Cross validation 평균
* Ordinal Learning Results
- 순서 정보를 활용함으로써 전반적인 분류기 성능 향상
- 부드러운 결정 경계 생성
* 최종 성능 결과
- 남녀 모두와 전체 평균에서 가장 높은 성능을 기록