Dicom date de training nu de pytorch

0

Problema

Am o problemă cu privire la formarea Pytorch modele. Încerc să-mi antrenez Pytorch model folosind dicom date și nifti GT cu toate Acestea, dimensiunea de greutate de fișier este ridicol de mic pentru modelul de formare nu este efectuată în mod normal.

Am folosit modelul de rețea Unet++

Cred că există o problemă cu date de încărcător. Dar eu nu pot fixe se...

Aș aprecia dacă m-ați putea ajuta.

Formatul de fișier imagine Raw este dicom și GT format de imagine este nifti

în dataloder

def __getitem__(self, index):
    image_path = self.image_paths[index]
    image_GT_path = image_path[:8]+'_'+image_path[8:12]+'.nii'
    GT_path = self.GT_paths + image_GT_path

    ds = dcmread(self.root+image_path)
    image = ds.pixel_array.astype(np.float32)
    image = torch.from_numpy(image.transpose(0,1)/255)
    image = image.unsqueeze(0)

    GT = nib.load(GT_path)
    GT = GT.get_fdata(dtype=np.float32)
    print(GT.shape)
    GT = torch.from_numpy(GT.transpose(0,1))
    GT = GT.unsqueeze(0)

    return image, GT, image_path

și Tren de Cod este

for epoch in range(self.num_epochs):

            self.unet.train(True)
            epoch_loss = 0
            for i, (images, GT,empty) in enumerate(tqdm(self.train_loader)):
                # GT : Ground Truth

                images = images.to(self.device)
                GT = GT.to(self.device)
                
                # SR : Segmentation Result
                SR = self.unet(images)
                SR_probs = torch.sigmoid(SR)

                SR_flat = SR_probs.view(SR_probs.size(0),-1)

                GT_flat = GT.view(GT.size(0),-1)
                loss =self.criterion(SR_flat,GT_flat)

                # self.criterion=DiceLoss() #BCE not use
                # loss = self.criterion(GT,SR_probs)
                epoch_loss += loss.item()
                train_losses.append(loss.item())
                # Backprop + optimize
                self.reset_grad()
                loss.backward()
                self.optimizer.step()
dataloader medical-imaging nifti pytorch
2021-11-24 06:40:12
1

Cel mai bun răspuns

1

In functie de ce modalitate de imagini sunt, acest lucru ar putea fi, eventual datorate să nu convertirea datelor de imagine în corecta, din punct de vedere clinic relevante, mașină/furnizor independent, unități înainte de orice ML de formare 0-1 normalizare.

De obicei în fișiere dicom, real prime date valorile nu au nevoie de prelucrare...

De exemplu, dacă sunteți încercarea de a instrui pe CT de date, apoi unitățile ar trebui să încerci să tren dvs. de model sunt Houndsfield e (HU) numere. (Face un google pe care, CT și dicom pentru a obține unele de fundal).

Cu toate acestea prime CT dicom date ar putea fi puțin sau big endian, probabil are nevoie de o panta/intercepta corecție aplicat și, de asemenea, ar putea avea nevoie să se uite în sus mese aplicate să-l transforme într-HU numere. ...ie pot deveni complicate și încurcate. (din nou fac un pic de google ...cel puțin ar trebui să aibă un pic de fond pe acest lucru, dacă sunteți încercarea de a face nimic cu medical formate de imagine).

Nu sunt sigur cum să proceseze nifti de date, cu toate acestea, din fericire pentru fișierele dicom folosind pydicom această conversie poate fi făcut pentru tine de bibliotecă, folosind (de obicei) un apel la pydicom.pixel_data_handlers.util.apply_modality_lut:


dcm = pydicom.dcmread(my_ct_dicom_file)
data_in_HU = pydicom.pixel_data_handlers.util.apply_voi_lut(
    dcm.pixel_array,
    dcm
)
2021-11-26 19:55:55

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................