Skip to content

boostcampaitech7/level2-cv-semanticsegmentation-cv-22-lv3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 프로젝트 소개

뼈 분할(Bone Segmentation)은 의료 진단 및 치료 계획 수립에서 중요한 역할을 하며, 딥러닝 기술을 활용해 정확한 분할을 목표로 합니다.

주요 응용 분야

  1. 질병 진단: 골절, 변형 등 뼈 관련 문제를 정확히 파악해 적절한 치료 제공.
  2. 수술 계획: 뼈 구조 분석으로 필요한 수술 방법과 재료 선정.
  3. 의료 장비 제작: 인공 관절 및 임플란트 설계에 필요한 정보 제공.
  4. 의료 교육: 병태 및 부상에 대한 이해와 수술 기술 연습에 활용.

📋 목차


💁🏼‍♂️💁‍♀️ 멤버 소개

이름 기여 내용
김한별 - baseline 훈련 과정 구현, 모델 및 증강 실험
손지형 - 베이스라인 구축 및 해상도, 데이터 증강 실험
유지환 - Hydra baseline 구축, 모델/증강/스케줄러 실험 진행, 데이터 EDA 진행
정승민 - 베이스라인 구축, 손등 관련 가설 실험 진행
조현준 - 베이스라인 추론 과정 구현, 결과 시각화 및 앙상블


🎯 팀의 목표

  • Git Issue를 통해 일정 관리를 진행하자!
  • 우리만의 Segmentation 베이스라인을 구축하자!
  • 결과를 시각화하여 가설을 세우고 검증하자!
  • 가설 검증 시 회의를 통해 의견을 적극 제시하자!

🖥️ 프로젝트 진행 환경

하드웨어

  • GPU: NVIDIA Tesla V100-SXM2 32GB
    • 메모리: 32GB

소프트웨어

  • Driver Version: 535.161.08
  • CUDA Version: 12.2
  • Python Version: 3.10.13
  • Deep Learning Framework: PyTorch (CUDA 지원 활성화)

🗂️ 프로젝트 파일 구조

.
├── data
└── git_repository
    ├── configs
    │   └── base_config.yaml
    ├── requirements.txt
    └── src
        ├── Dataset
        │   ├── dataloader.py
        │   ├── dataset.py
        │   └── utils
        │       ├── splitdata.py
        │       └── transform.py
        ├── Model
        │   ├── model_loader.py
        │   ├── smp
        │   ├── torchvision
        │   └── utils
        │       ├── load_model.py
        │       ├── model_output.py
        │       └── modify_model.py
        ├── Train
        │   ├── loss
        │   │   ├── custom_loss.py
        │   │   └── loss_opt_sche.py
        │   ├── metrics
        │   │   └── metrics.py
        │   ├── trainer.py
        │   └── validation.py
        ├── Utils
        │   ├── combine_csv_predictions.py
        │   ├── config_utils.py
        │   ├── inference_utils.py
        │   ├── post_processing.py
        │   └── set_seed.py
        ├── Visualization
        │   ├── inference_visualization.py
        │   └── train_vis.py
        ├── __init__.py
        ├── ensemble.py
        ├── inference.py
        └── train.py

🧰 필요한 라이브러리 설치

pip install requirements.txt

🚀 모델 학습 방법

학습시 원하는 config 파일과 model, encoder 파일을 필요로 하며 추가로 Wandb 사용시 project_name 과 run_name을 필요로 합니다. 학습 결과는 'runs/날짜_모델명' 폴더에 체크포인트, 해당 config 파일이 자동 생성됩니다.

python train.py --config 'path/to/config' --model 'path/to/model' --encoder 'path/to/encoder' --project_name 'Name' --run_name 'Name'

추론시 mode, config 파일과 ckpt 파일의 경로를 필요로 합니다. 추론 결과는 results '폴더에 모델명_체크포인트명_날짜'로 자동 생성됩니다.

python inference.py --mode 'gpu' --config 'path/to/config'

📈 성능 평가

모델 실험 | AdamW | CosineAnnealingLR
U-Net++

Encoder Resolution Epoch Loss Val Dice Score LB Dice Score pretrain
VGG19 512 x 512 100 BCE 0.9610 0.9577 Imagenet
EfficientNetB7 512 x 512 100 BCE 0.9632 0.9563 Imagenet
tu-HRNet 512 x 512 100 Dice 0.9629 0.9560 Imagenet

UperNet

Encoder Resolution Epoch Loss Val Dice Score LB Dice Score pretrain
RegNet-120 1024 x 1024 100 Dice 0.9708 0.9682 Imagenet
EfficientNetB7 1024 x 1024 100 BCE 0.9684 0.9659 Imagenet
EfficientNetB6 1024 x 1024 100 BCE 0.9679 0.9650 Imagenet

UNet

Encoder Resolution Epoch Loss Val Dice Score LB Dice Score pretrain
ResNext101_32x8d 2048 x 2048 100 Dice 0.9734 0.9715 Imagenet
EfficientNetB7 1024 x 1024 100 Dice 0.9713 0.9685 Imagenet
EfficientNetB7 2048 x 2048 100 Dice 0.9698 0.9648 Imagenet

📞 문의

김한별 : [email protected]
손지형 : [email protected]
유지환 : [email protected]
정승민 : [email protected]
조현준 : [email protected]

About

level2-cv-semanticsegmentation-cv-22-lv3 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages