def get_current_visuals(self): real_A = util.tensor2im(self.input_A) fake_B = util.tensor2im(self.fake_B) rec_A = util.tensor2im(self.rec_A) real_B = util.tensor2im(self.input_B) fake_A = util.tensor2im(self.fake_A) rec_B = util.tensor2im(self.rec_B) real_Ay=util.tensor2im_hd_neck(self.input_A_y) fake_B_local=util.tensor2im(self.fake_B_local) real_B_local=util.tensor2im(self.real_B) #Attention map for Real MRI att_real_B=util.tensor2im(self.att_map_real_B_struct) #Segmentation probability map for pseudoMRI att_fake_B=util.tensor2im(self.att_map_fake_B_struct) if self.opt.Net=='Split-Unet': pred_B=self.netSeg.forward_1(self.real_B) else: pred_B=self.netSeg(self.real_B) pred_B=torch.argmax(pred_B, dim=1) pred_B=pred_B.view(1,1,256,256) pred_B=pred_B.data seg_B=util.tensor2im_hd_neck(pred_B)#() # ret_visuals = OrderedDict([('real_A', real_A), ('fake_B', fake_B), ('rec_A', rec_A), ('real_B', real_B), ('fake_A', fake_A), ('rec_B', rec_B), ('real_B_seg', seg_B), ('real_A_GT_seg',real_Ay), ]) return ret_visuals
def get_current_visuals(self): real_A = util.tensor2im(self.input_A) real_Ay = util.tensor2im_hd_neck(self.input_A_y) pred_A = self.netSeg_A(self.input_A) pred_A = torch.argmax(pred_A, dim=1) pred_A = pred_A.view(self.input_A.size()[0], 1, 256, 256) pred_A = pred_A.data seg_A = util.tensor2im_hd_neck(pred_A) # ret_visuals = OrderedDict([('real_A', real_A), ('real_A_GT_seg', real_Ay), ('real_A_seg', seg_A)]) return ret_visuals
def get_current_visuals(self): real_A = util.tensor2im(self.input_A) #fake_B = util.tensor2im(self.fake_B) #fake_B[fake_B>450]=450 #rec_A = util.tensor2im(self.rec_A) #real_B = util.tensor2im(self.input_B) #fake_A = util.tensor2im(self.fake_A) #rec_B = util.tensor2im(self.rec_B) real_Ay = util.tensor2im_hd_neck(self.input_A_y) #real_A_AB_CT=torch.cat((self.real_A,self.fake_B),1) pred_A, _, rough = self.netSeg_A(self.input_A) pred_A = F.softmax(pred_A, dim=1) rough = F.softmax(rough, dim=1) LP_refine = pred_A[0, 1, :, :] LP_rough = rough[0, 1, :, :] LP_rough = LP_rough.view(-1, 1, 256, 256) LP_refine = LP_refine.view(-1, 1, 256, 256) LP_rough = LP_rough.data LP_refine = LP_refine.data LP_rough, d999 = self.tensor2im_jj(LP_rough) LP_refine, d999 = self.tensor2im_jj(LP_refine) pred_A = torch.argmax(pred_A, dim=1) pred_A = pred_A.view(self.input_A.size()[0], 1, 256, 256) pred_A = pred_A.data #global_map=global_map.data seg_A = util.tensor2im_hd_neck(pred_A) # #global_map=util.tensor2im(global_map) #pred_B=self.netSeg_B(self.real_B) #fake_B_seg=self.netSeg_B(self.fake_B) #pred_B=pred_B.data #fake_B_seg=fake_B_seg.data #seg_B=util.tensor2im(pred_B) # #fake_B_seg=util.tensor2im(fake_B_seg) # ret_visuals = OrderedDict([('real_A', real_A), ('real_A_GT_seg', real_Ay), ('real_A_seg', seg_A), ('LP_rough', LP_rough), ('LP_refine', LP_refine)]) #if self.opt.isTrain and self.opt.identity > 0.0: # ret_visuals['idt_A'] = util.tensor2im(self.idt_A) # ret_visuals['idt_B'] = util.tensor2im(self.idt_B) return ret_visuals
def net_G_A_A2B_Segtest_image_varian(self): self.test_A = self.test_A.cuda() self.test_AB = self.test_AB.cuda() self.test_A_y = self.test_A_y.cuda() #self.test_AB=self.netG_A(self.test_A) test_img = self.test_A #test_img=torch.cat((self.test_A,self.test_AB),1) #print (self.test_A.size()) #print (self.test_AB.size()) #print (test_img.size()) test_img = test_img.float() A_AB_seg = self.netSeg_A(test_img) #A_AB_seg=F.softmax(A_AB_seg,dim=1) loss = self.dice_loss(A_AB_seg, self.test_A_y) #print (A_AB_seg.size()) A_AB_seg = F.softmax(A_AB_seg, dim=1) LP_map = A_AB_seg[:, 1, :, :] RP_map = A_AB_seg[:, 2, :, :] LS_map = A_AB_seg[:, 3, :, :] RS_map = A_AB_seg[:, 4, :, :] LBP_map = A_AB_seg[:, 5, :, :] RBP_map = A_AB_seg[:, 6, :, :] Sub_map = A_AB_seg[:, 7, :, :] Spine_map = A_AB_seg[:, 8, :, :] RP_map = RP_map.view(1, 1, 256, 256) LP_map = LP_map.view(1, 1, 256, 256) LS_map = LS_map.view(1, 1, 256, 256) RS_map = RS_map.view(1, 1, 256, 256) Sub_map = Sub_map.view(1, 1, 256, 256) LBP_map = LBP_map.view(1, 1, 256, 256) RBP_map = RBP_map.view(1, 1, 256, 256) Spine_map = Spine_map.view(1, 1, 256, 256) RP_map = RP_map.data LP_map = LP_map.data LS_map = LS_map.data RS_map = RS_map.data Sub_map = Sub_map.data LBP_map = LBP_map.data RBP_map = RBP_map.data Spine_map = Spine_map.data RP_map_tp = RP_map RP_map_tp = RP_map_tp + LP_map RP_map_tp = RP_map_tp + LS_map RP_map_tp = RP_map_tp + RS_map RP_map_tp = RP_map_tp + Sub_map RP_map_tp = RP_map_tp + LBP_map RP_map_tp = RP_map_tp + RBP_map RP_map_tp = RP_map_tp + Spine_map d0, d1, d2, d3, d4, d5, d6, d7, d8 = self.cal_dice_loss_PDDA_val( A_AB_seg, self.test_A_y) A_AB_seg = torch.argmax(A_AB_seg, dim=1) A_AB_seg = A_AB_seg.view(1, 1, 256, 256) A_AB_seg_out = A_AB_seg.data #print (A_AB_seg_out.size()) #A_AB_seg_out=torch.argmax(A_AB_seg_out, dim=1) A_AB_seg_out = A_AB_seg_out.view(1, 1, 256, 256) #print (A_AB_seg_out.size()) A_y_out = self.test_A_y.data self.test_A_y = self.test_A_y.cuda() test_A_data = self.test_A.data #test_AB=self.test_AB.data A_AB_seg = A_AB_seg.data A_y = self.test_A_y.data test_A_data, d999 = self.tensor2im_jj(test_A_data) LP_map_data, d999 = self.tensor2im_jj(LP_map) RP_map_data, d999 = self.tensor2im_jj(RP_map) RP_map_tp_data, d999 = self.tensor2im_jj(RP_map_tp) #test_AB,d2=self.tensor2im_jj(test_AB) A_AB_seg = util.tensor2im_hd_neck(A_AB_seg) A_y = util.tensor2im_hd_neck(A_y) #print (test_A_data.shape) #print (test_AB.shape) #print (A_AB_seg.shape) test_A_data = test_A_data[:, 256:512, :] LP_map_data = LP_map_data[:, 256:512, :] RP_map_data = RP_map_data[:, 256:512, :] RP_map_tp_data = RP_map_tp_data[:, 256:512, :] #test_AB=test_AB[:,256:512,:] A_AB_seg = A_AB_seg #[:,256:512,:] A_y = A_y #[:,256:512,:] #test_A_data=test_A_data[:,512:1024,:] #test_AB=test_AB[:,512:1024,:] #A_AB_seg=A_AB_seg[:,512:1024,:] #A_y=A_y[:,512:1024,:] image_numpy_all = np.concatenate(( test_A_data, A_y, ), axis=1) #image_numpy_all=np.concatenate((image_numpy_all,A_y,),axis=1) image_numpy_all = np.concatenate(( image_numpy_all, A_AB_seg, ), axis=1) #image_numpy_all=np.concatenate((image_numpy_all,LP_map_data,),axis=1) #RP_map_data=RP_map_data+LP_map_data image_numpy_all = np.concatenate(( image_numpy_all, RP_map_tp_data, ), axis=1) #self.fake_A2B=self.fake_A2B.data #self.fake_A2B_A_img, output_fakeA2B=self.tensor2im_jj(self.fake_A2B) #print (loss) return loss, self.test_A.cpu().float().numpy(), A_AB_seg_out.cpu( ).float().numpy(), A_y_out.cpu().float().numpy( ), image_numpy_all, d0, d1, d2, d3, d4, d5, d6, d7, d8, LP_map.cpu( ).float().numpy(), RP_map.cpu().float().numpy(), LS_map.cpu().float( ).numpy(), RS_map.cpu().float().numpy(), Sub_map.cpu().float().numpy( ), RP_map_tp.cpu().float().numpy()
def net_G_A_A2B_Segtest_image(self): self.test_A = self.test_A.cuda() self.test_AB = self.test_AB.cuda() self.test_A_y = self.test_A_y.cuda() #self.test_AB=self.netG_A(self.test_A) test_img = self.test_A #test_img=torch.cat((self.test_A,self.test_AB),1) #print (self.test_A.size()) #print (self.test_AB.size()) #print (test_img.size()) test_img = test_img.float() A_AB_seg, _, global_map = self.netSeg_A(test_img) #A_AB_seg=F.softmax(A_AB_seg,dim=1) loss = self.dice_loss(A_AB_seg, self.test_A_y) #print (A_AB_seg.size()) A_AB_seg = F.softmax(A_AB_seg, dim=1) LP_map = A_AB_seg[:, 1, :, :] RP_map = A_AB_seg[:, 2, :, :] RP_map = RP_map.view(1, 1, 256, 256) LP_map = LP_map.view(1, 1, 256, 256) RP_map = RP_map.data LP_map = LP_map.data global_map = global_map.data A_AB_seg = torch.argmax(A_AB_seg, dim=1) A_AB_seg = A_AB_seg.view(1, 1, 256, 256) A_AB_seg_out = A_AB_seg.data #print (A_AB_seg_out.size()) #A_AB_seg_out=torch.argmax(A_AB_seg_out, dim=1) A_AB_seg_out = A_AB_seg_out.view(1, 1, 256, 256) #print (A_AB_seg_out.size()) A_y_out = self.test_A_y.data self.test_A_y = self.test_A_y.cuda() test_A_data = self.test_A.data #test_AB=self.test_AB.data A_AB_seg = A_AB_seg.data A_y = self.test_A_y.data test_A_data, d999 = self.tensor2im_jj(test_A_data) LP_map_data, d999 = self.tensor2im_jj(LP_map) RP_map_data, d999 = self.tensor2im_jj(RP_map) #global_map,d999=self.tensor2im_jj(global_map) #test_AB,d2=self.tensor2im_jj(test_AB) A_AB_seg = util.tensor2im_hd_neck(A_AB_seg) A_y = util.tensor2im_hd_neck(A_y) #print (test_A_data.shape) #print (test_AB.shape) #print (A_AB_seg.shape) test_A_data = test_A_data[:, 256:512, :] LP_map_data = LP_map_data[:, 256:512, :] RP_map_data = RP_map_data[:, 256:512, :] #global_map=global_map[:,256:512,:] #test_AB=test_AB[:,256:512,:] A_AB_seg = A_AB_seg #[:,256:512,:] A_y = A_y #[:,256:512,:] #test_A_data=test_A_data[:,512:1024,:] #test_AB=test_AB[:,512:1024,:] #A_AB_seg=A_AB_seg[:,512:1024,:] #A_y=A_y[:,512:1024,:] image_numpy_all = np.concatenate(( test_A_data, A_y, ), axis=1) #image_numpy_all=np.concatenate((image_numpy_all,A_y,),axis=1) image_numpy_all = np.concatenate(( image_numpy_all, A_AB_seg, ), axis=1) #image_numpy_all=np.concatenate((image_numpy_all,global_map,),axis=1) image_numpy_all = np.concatenate(( image_numpy_all, LP_map_data, ), axis=1) image_numpy_all = np.concatenate(( image_numpy_all, RP_map_data, ), axis=1) #self.fake_A2B=self.fake_A2B.data #self.fake_A2B_A_img, output_fakeA2B=self.tensor2im_jj(self.fake_A2B) #print (loss) return loss, self.test_A.cpu().float().numpy(), A_AB_seg_out.cpu( ).float().numpy(), A_y_out.cpu().float().numpy(), image_numpy_all
def net_G_A_A2B_Segtest_image(self): self.test_A = self.test_A.cuda() self.test_AB = self.test_AB.cuda() self.test_A_y = self.test_A_y.cuda() #self.test_AB=self.netG_A(self.test_A) test_img = self.test_A #test_img=torch.cat((self.test_A,self.test_AB),1) #print (self.test_A.size()) #print (self.test_AB.size()) #print (test_img.size()) test_img = test_img.float() A_AB_seg = self.netSeg_A(test_img) #A_AB_seg=F.softmax(A_AB_seg,dim=1) #loss=self.dice_loss(A_AB_seg,self.test_A_y) loss = 0 #print (A_AB_seg.size()) A_AB_seg = F.softmax(A_AB_seg, dim=1) LP_map = A_AB_seg[:, 1, :, :] RP_map = A_AB_seg[:, 2, :, :] RP_map = RP_map.view(1, 1, 256, 256) LP_map = LP_map.view(1, 1, 256, 256) RP_map = RP_map.data LP_map = LP_map.data A_AB_seg = torch.argmax(A_AB_seg, dim=1) A_AB_seg = A_AB_seg.view(1, 1, 256, 256) A_AB_seg_out = A_AB_seg.data #print (A_AB_seg_out.size()) #A_AB_seg_out=torch.argmax(A_AB_seg_out, dim=1) A_AB_seg_out = A_AB_seg_out.view(1, 1, 256, 256) #print (A_AB_seg_out.size()) A_y_out = self.test_A_y.data self.test_A_y = self.test_A_y.cuda() test_A_data = self.test_A.data #test_AB=self.test_AB.data A_AB_seg = A_AB_seg.data A_y = self.test_A_y.data test_A_data, d999 = self.tensor2im_jj(test_A_data) #test_AB,d2=self.tensor2im_jj(test_AB) A_AB_seg = util.tensor2im_hd_neck(A_AB_seg) A_y = util.tensor2im_hd_neck(A_y) test_A_data = test_A_data[:, 256:512, :] #test_AB=test_AB[:,256:512,:] A_AB_seg = A_AB_seg #[:,256:512,:] A_y = A_y #[:,256:512,:] image_numpy_all = np.concatenate(( test_A_data, A_y, ), axis=1) #image_numpy_all=np.concatenate((image_numpy_all,A_y,),axis=1) image_numpy_all = np.concatenate(( image_numpy_all, A_AB_seg, ), axis=1) return loss, self.test_A.cpu().float().numpy(), A_AB_seg_out.cpu( ).float().numpy(), A_y_out.cpu().float().numpy(), image_numpy_all