med seg diff pytorch
0.3.3
Pytorch에서 MedSegDiff 구현 - DDPM을 사용하여 Baidu에서 SOTA 의료 분할을 수행하고 기능 수준에서 향상된 조건을 지정하며 푸리에 공간에서 기능을 필터링합니다.
넉넉한 후원을 위한 StabilityAI와 저의 다른 후원자들
피부 병변 데이터세트에 대한 훈련 스크립트를 추가해준 Isamu와 Daniel!
$ pip install med-seg-diff-pytorch
import torch
from med_seg_diff_pytorch import Unet , MedSegDiff
model = Unet (
dim = 64 ,
image_size = 128 ,
mask_channels = 1 , # segmentation has 1 channel
input_img_channels = 3 , # input images have 3 channels
dim_mults = ( 1 , 2 , 4 , 8 )
)
diffusion = MedSegDiff (
model ,
timesteps = 1000
). cuda ()
segmented_imgs = torch . rand ( 8 , 1 , 128 , 128 ) # inputs are normalized from 0 to 1
input_imgs = torch . rand ( 8 , 3 , 128 , 128 )
loss = diffusion ( segmented_imgs , input_imgs )
loss . backward ()
# after a lot of training
pred = diffusion . sample ( input_imgs ) # pass in your unsegmented images
pred . shape # predicted segmented images - (8, 3, 128, 128)
실행 명령
accelerate launch driver.py --mask_channels=1 --input_img_channels=3 --image_size=64 --data_path= ' ./data ' --dim=64 --epochs=100 --batch_size=1 --scale_lr --gradient_accumulation_steps=4
지금까지 가지고 있는 마스크로 조절한 자체 조건을 추가하려면 --self_condition을 수행합니다.
@article { Wu2022MedSegDiffMI ,
title = { MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model } ,
author = { Junde Wu and Huihui Fang and Yu Zhang and Yehui Yang and Yanwu Xu } ,
journal = { ArXiv } ,
year = { 2022 } ,
volume = { abs/2211.00611 }
}
@inproceedings { Hoogeboom2023simpleDE ,
title = { simple diffusion: End-to-end diffusion for high resolution images } ,
author = { Emiel Hoogeboom and Jonathan Heek and Tim Salimans } ,
year = { 2023 }
}