i2sb-segmentation/
├── Pipfile
├── Pipfile.lock
├── README.md
├── data/
│ ├── OCTA500_3M
│ ├── OCTA500_3M.dvc
│ ├── OCTA500_6M
│ ├── OCTA500_6M.dvc
│ ├── ROSSA
│ └── ROSSA.dvc
├── nbs/
│ └── test.ipynb
├── script/
│ ├── exp.py
│ └── unit_test/
│ ├── test_segmentation_2d_dataset.py
│ ├── test_segmentation_3d_dataset.py
│ └── test_segmentation_model.py
└── src/
├── __init__.py
├── archs/
├── data/
├── losses/
├── metrics/
├── models/
└── utils/
-
Pipenv 설치 (아직 설치하지 않은 경우):
pip install pipenv -
프로젝트 클론 및 디렉토리 이동:
git clone [repository_url] cd i2sb-segmentation -
Pipenv 환경 생성 및 의존성 설치:
pipenv install -
Pipenv 환경 활성화:
pipenv shell -
실험 스크립트 실행 (예시: 데이터로더와 metric이 잘 작동하는지 코드):
python script/unit_test/test_segmentation_2d_dataset.py -
Jupyter Notebook 실행 (필요한 경우):
pipenv run jupyter notebook
- OCTA500_3M, OCTA500_6M, ROSSA 데이터셋을 사용.
- 데이터는 DVC(Data Version Control)로 관리.
data/: 데이터셋 저장 위치nbs/: Jupyter Notebook 파일 저장 위치script/: 실험 및 테스트 스크립트 저장 위치unit_test/: 유닛 테스트 스크립트 저장 위치
src/: 소스 코드 저장 위치archs/: 모델 아키텍처 관련 코드data/: 데이터 처리 관련 코드losses/: 손실 함수 관련 코드metrics/: 평가 지표 관련 코드models/: 모델 구현 관련 코드utils/: 유틸리티 함수 저장 위치
-
DVC 초기화 (본 리포지토리에서 init 되어있으므로 생략):
dvc init -
원격 저장소 추가:
dvc remote add -d myremote ssh://user@host:/path/to/dvc-backup -
원격 저장소 설정 수정:
dvc remote modify myremote user username dvc remote modify myremote password password -
데이터 추적 (본 리포지토리에서 add 되어있으므로 생략):
dvc add data/dataset_name -
변경사항 커밋 (본 리포지토리에서 commit 되어있으므로 생략):
git add .dvc git commit -m "Add data to DVC" -
데이터 푸시(본 리포지토리에서는 pull 목적이므로 생략):
dvc push -
데이터 풀 (이 부분만 실행):
dvc pull -
데이터 상태 확인:
dvc status -
특정 버전의 데이터 가져오기:
git checkout <commit-hash> dvc checkout
- 데이터셋을 로드하고, 데이터 로더를 통해 배치 단위로 데이터를 처리.
- 데이터셋의 샘플을 시각화하고, 오류가 포함된 레이블을 생성하여 메트릭을 계산.
- 데이터셋이 의도대로 잘 구현이 되었는지 확인 위한 목적
- 다양한 모델 아키텍처(SegResNet, FRNet, AttentionUNet 등)를 테스트.
- 데이터셋을 로드하고 모델을 통해 예측을 수행한 후, 결과를 시각화.
- Registry 사용하여 다양한 아키텍쳐들을 효과적으로 관리 가능.
- SupervisedModel 클래스를 사용하여 모델을 학습하고 검증합니다.
- 학습 및 검증 과정을 반복하며, 주기적으로 결과를 출력하고 시각화합니다.
- 본 과정을 통해 Supervised Model 기법이 의도대로 잘 구현이 되었는지 확인 목적
- SegDiffModel 클래스를 사용하여 모델을 학습하고 검증합니다.
- 학습 및 검증 과정을 반복하며, 주기적으로 결과를 출력하고 시각화합니다.
- 본 과정을 통해 SegDiffModel 기법이 의도대로 잘 구현이 되었는지 확인 목적