dip_n_iter=dgr_iter, net='skip', lr=0.01, reg_std=1./100, w_proj_loss=0.98, # w_perceptual_loss=0.1, w_tv_loss=0.01, w_ssim_loss=0.01 ) img_fbp = recon_fbp.calc(sinogram, theta) img_sart = recon_sart.calc(sinogram, theta) img_sart_tv = recon_sart_tv.calc(sinogram, theta) recon_dip1.set_for_metric(gt, img_sart, FOCUS=FOCUS, log_dir='log') img_dip1 = recon_dip1.calc(sinogram, theta) recon_dip2.set_for_metric(gt, img_sart, FOCUS=FOCUS, log_dir='log') img_dip2 = recon_dip2.calc(sinogram, theta) recon_dip3.set_for_metric(gt, img_sart, FOCUS=FOCUS, log_dir='log') img_dip3 = recon_dip3.calc(sinogram, theta) recons = [recon_fbp, recon_sart, recon_sart_tv, recon_dip1, recon_dip2, recon_dip3] for r in recons: mse, psnr, ssim = r.eval(gt) print( "{}: MSE:{:.5f} PSNR:{:.5f} SSIM:{:.5f}".format( r.name, mse, psnr, ssim ))
sart_n_iter=40, sart_relaxation=0.15) recon_dip = DgrReconstructor( 'DGR', dip_n_iter=4001, net='skip', lr=0.01, reg_std=1. / 100, w_proj_loss=1.00, # w_perceptual_loss=0.01, w_tv_loss=0.00, w_ssim_loss=0.00) img_sart = recon_sart.calc(sinogram, theta) recon_dip.set_for_metric(gt, img_sart, FOCUS=FOCUS, log_dir='log/') img_dip = recon_dip.calc(sinogram, theta) recons = [ recon_sart, recon_dip, ] for r in recons: mse, psnr, ssim = r.eval(gt) print("Noise 25 {}: MSE:{:.5f} PSNR:{:.5f} SSIM:{:.5f}".format( r.name, mse, psnr, ssim)) plot_grid([gt, img_sart, img_dip], FOCUS=FOCUS, save_name='noise30.png', dpi=500)
# n2self_selfsupervised=False, # net='skip', lr=0.01, ) # recon_n2self_learned_selfsuper = N2SelfReconstructor('N2Self_Learned_SelfSupervised', # n2self_n_iter=4001, n2self_proj_ratio=0.2, # n2self_weights='training-07/iter_132000.pth', # n2self_selfsupervised=True, # net='skip', lr=0.01, ) img_fbp = recon_fbp.calc(sinogram, theta) img_sart = recon_sart.calc(sinogram, theta) img_sart_tv = recon_sart_tv.calc(sinogram, theta) img_sart_bm3d = recon_bm3d.calc(sinogram, theta) recon_dip.set_for_metric(gt, img_sart, FOCUS=FOCUS, log_dir='../log/dip') img_dip = recon_dip.calc(sinogram, theta) recon_dip_rand.set_for_metric(gt, img_sart, FOCUS=FOCUS, log_dir='../log/dip') img_dip_rand = recon_dip_rand.calc(sinogram, theta) # recon_n2self_selfsuper.set_for_metric(gt, img_sart_tv, FOCUS=FOCUS, log_dir='../log/dip') # img_n2self_selfsuper = recon_n2self_selfsuper.calc(sinogram, theta) # recon_n2self_learned_single.set_for_metric(gt, img_sart_tv, FOCUS=FOCUS, log_dir='../log/dip') # img_n2self_learned_single = recon_n2self_learned_single.calc(sinogram, theta) # recon_n2self_learned_selfsuper.set_for_metric(gt, img_sart_tv, FOCUS=FOCUS, log_dir='../log/dip') # img_n2self_learned_selfsuper = recon_n2self_learned_selfsuper.calc(sinogram, theta)