뼈는 우리 몸의 구조와 기능에 중요한 역할을 하며, 이를 정확히 분할하는 것은 의료 진단 및 치료 계획 수립에 필수적이다.
특히 딥러닝 기술을 활용한 뼈 분할은 인공지능 분야에서 주목받는 연구 주제 중 하나로, 질병 진단, 수술 계획 수립, 의료기기 제작, 의료 교육 등 다양한 분야에서 활용되고 있다. 본 프로젝트는 X-ray 이미지에서 사람의 뼈를 Segmentation 하는 인공지능 만드는 것을 목표로 한다.
프로젝트 기간 : 24.11.11 ~ 24.11.28
부스트코스 강의 수강 및 과제 : 24.11.11 ~ 24.11.13
데이터 EDA / 데이터 전처리 / 베이스라인 모델 학습 : 24.11.14 ~ 24.11.19
데이터 증강 및 모델 성능 개선 : 24.11.20 ~ 24.11.24
후처리 / 앙상블 : 24.11.25 ~ 24.11.28
최종 자료 정리 및 문서화 : 24.11.29 ~ 24.12.02
김기수 |
김유경 |
김준현 |
여희진 |
이은아 |
정권희 |
Name | Roles |
---|---|
김기수 | 데이터 시각화, WandB 셋팅, 모델학습 시간 실험, Augmentation 실험, mmsegmentation 셋팅 및 코드 작성, 모델 실험 |
김유경 | EDA, Loss 실험, Augmentation 실험, smp 모델 실험, 후처리, 앙상블 |
김준현 | Git, Encoder Test, Augmentation, 앙상블 |
여희진 | EDA, smp model 실험, Augmentation, 앙상블 |
이은아 | Scheduler/Optimzer 실험, Curriculum Learning, Yolo 실험 |
정권희 | 베이스라인 코드 리팩토링, Swin-Unet 구현 |
wrap up 레포트 : wrap up report
EDA
모든 이미지 데이터를 살펴본 결과, 아래 특성을 확인함
- 손등 부위의 뼈가 겹치는 구조로 확인 -> 학습 시 해상도 증가, CLAHE 증강 활용
- 특히, Trapezoid와 Pisiform에서 낮은 Dice 점수를 확인
- 안쪽으로 회전된 손목 데이터 -> Rotate, Horizontal Flip 증강 및 Curriculum Learning 기법 활용
- X-ray 이미지로 명암 조절의 필요성 확인 -> Sharpen, Random Brightness Contrast, CLAHE, Canny 증강 활용
Models
(Swin-Unet : (1120, 1120), SMP : (512, 512), MMSegmentation : (1024, 1024), Ultralytics : (2048, 2048))
- Swin-Unet 구현, SMP, MMSegmentation, Ultralytics 라이브러리 이용하여 모델 및 인코더 실험 진행
- SMP
- Model : FPN, MAnet, PAN, Unet, Unet++, Linknet, DeepLabV3, DeepLabV3+, UperNet
- Encoder : mobilenet_v2, efficientnet-b0, vgg19, resnet152, hrnet_w64, resnest14d
- MMSegmentation : Segformer
- Ultralytics : Yolo8, Yolo11
- UperNet : 전역적 맥락 정보와 세부 구조를 동시에 캡처하여 뼈의 복잡한 형태와 경계를 더 정확히 표현 가능
- (1024 x 1024) 해상도 학습
- DeepLabV3+ : 세밀한 경계와 작은 뼈 구조를 더 잘 포착할 수 있음
- (1024 x 1024) 해상도 학습 및 fold 별로 CLAHE, Horizontal Flip 증강 적용
- UNet : 손 뼈처럼 구조가 뚜렷한 영역에서 안정적이고 강력한 성능 제공
- (1024 x 1024) 해상도 학습 및 ElasticTransform, Sharpen, Rotate, CLAHE, Horizontal Flip 증강 적용
train.py 실행
python code/train.py
inference.py 실행
python code/inference.py
프로젝트는 다음과 같은 구조로 구성되어 있음
📦level2-cv-semanticsegmentation-cv-17-lv3
┣ 📂YOLO # YOLO 모델 폴더
┣ 📂code
┃ ┣ 📂curriculum_learning # Curriculum Learning 폴더
┃ ┣ 📂swin-unet # Swin-Unet 모델 폴더
┃ ┗ 📂utils
┣ 📂ensemble # 앙상블 폴더
┗ 📂mmsegmentation # MMSegmentation 폴더
- 본 프로젝트에서 사용한 데이터셋은 캠프 교육용 라이선스의 가이드를 준수한다.