프로젝트 소개

Segmentation Models PyTorch(SMP)는 PyTorch 기반의 이미지 의미론적 분할용 Python 라이브러리입니다. 분할 모델이 표준 torch.nn.Module인 고수준 API를 제공하여 몇 줄 만에 모델을 생성할 수 있습니다. README에 설명된 주요 기능: - 12가지 인코더-디코더 아키텍처: Unet, Unet++, MAnet, Linknet, FPN, PSPNet, PAN, DeepLabV3, DeepLabV3+, UPerNet, Segformer, DPT. 각각 논문 및 문서 링크가 제공됩니다. - 800개 이상의 사전 훈련된 합성곱 및 트랜스포머 기반 인코더(timm 백본 지원 포함). 인코더는 최종 분류 특징만이 아니라 중간 특징도 노출하며, 수렴 속도 향상과 안정화를 위한 사전 훈련 가중치를 포함합니다. README에는 저지연 또는 엣지 추론을 위한 경량 옵션(mobilenet/mobileone)과 복잡한 작업을 위한 고용량 옵션(convnext/swin/mit)이 언급되어 있습니다. - 전처리 헬퍼: get_preprocessing_fn은 인코더의 사전 훈련 방식(예: ImageNet)에 맞는 전처리 함수를 반환합니다. README에 따르면 결과와 수렴을 개선할 수 있지만 전체 모델을 훈련할 때 필수는 아닙니다. - 분할 훈련에 일반적으로 사용되는 손실 함수 및 메트릭(Dice, Jaccard, Tversky 등). - 모델 API 옵션: 임의의 입력 채널 수를 위한 in_channels(첫 합성곱 가중치 재사용 문서화 포함), 마스크와 함께 레이블 출력을 생성하는 선택적 보조 분류 헤드(전역 풀링, 선택적 드롭아웃, 선형, 선택적 활성화)를 위한 aux_params, 다운샘플링 단계를 줄여 모델을 가볍게 만드는 encoder_depth. - 내보내기 및 배포 친화성: ONNX 내보내기와 torch script/trace/compile 호환성. 예제에는 이진 분할(OxfordPets, CamVid), 다중 클래스 분할(CamVid), 사전 훈련된 Segformer, DPT, UPerNet 로드 및 추론 실행, 모델을 로컬 또는 Hugging Face Hub에 저장/로드, ONNX로 내보내기 위한 노트북이 포함됩니다. UPerNet, Segformer, DPT용 체크포인트는 Hugging Face에 링크되어 있습니다. 설치는 pip(segmentation-models-pytorch) 또는 GitHub에서 직접 가능합니다. README에는 또한 이 라이브러리로 우승한 대회 명예의 전당 페이지, SMP로 구축된 프로젝트(withoutBG 배경 제거), make 타깃을 사용한 개발 설치·테스트·린트 기여 지침, 인용 항목, 라이선스 정보가 언급되어 있습니다. 주로 MIT 라이선스이나 일부 파일은 다른 라이선스를 따르므로 상업적 사용자는 LICENSES 파일과 파일별 명시를 확인하는 것이 좋습니다.