Exemplo n.º 1
0
    def _visualize_images(self,
                          recons,
                          targets,
                          extra_params,
                          epoch,
                          step,
                          training=False):
        mode = 'Training' if training else 'Validation'

        # This numbering scheme seems to have issues for certain numbers.
        # Please check cases when there is no remainder.
        if self.display_interval and (step % self.display_interval == 0):

            acc = extra_params['acceleration']
            kwargs = dict(global_step=epoch, dataformats='HW')

            # Adding RSS images of reconstructions and targets.
            recon_rss = standardize_image(recons['rss_recons'])
            delta_rss = standardize_image(targets['rss_targets'] -
                                          recons['rss_recons'])
            self.writer.add_image(f'{mode} RSS Recons/{acc}/{step}', recon_rss,
                                  **kwargs)
            self.writer.add_image(f'{mode} RSS Deltas/{acc}/{step}', delta_rss,
                                  **kwargs)

            if epoch == 1:  # Maybe add input images too later on.
                # Not actually the input but the RSS of the input images.
                target_rss = standardize_image(targets['rss_targets'])
                self.writer.add_image(f'{mode} RSS Targets/{acc}/{step}',
                                      target_rss, **kwargs)

                if 'rss_inputs' in targets:
                    input_rss = standardize_image(targets['rss_inputs'])
                    self.writer.add_image(f'{mode} RSS Inputs/{acc}/{step}',
                                          input_rss, **kwargs)
Exemplo n.º 2
0
    def _visualize_images(self, recons, targets, extra_params, epoch, step, training=False):
        mode = 'Training' if training else 'Validation'

        # This numbering scheme seems to have issues for certain numbers.
        # Please check cases when there is no remainder.
        if self.display_interval and (step % self.display_interval == 0):
            img_recon_grid = make_img_grid(recons['img_recons'], self.shrink_scale)
            # Added delta image in the image domain. This is different from delta images in the complex domain.
            # However, it is the only available delta image in I2I training.
            img_delta_grid = make_img_grid(targets['img_targets'] - recons['img_recons'], self.shrink_scale)

            acc = extra_params['acceleration']
            kwargs = dict(global_step=epoch, dataformats='HW')
            self.writer.add_image(f'{mode} Image Recons/{acc}/{step}', img_recon_grid, **kwargs)
            self.writer.add_image(f'{mode} Delta Image/{acc}/{step}', img_delta_grid, **kwargs)

            # Adding RSS images of reconstructions and targets.
            if 'rss_recons' in recons:
                recon_rss = standardize_image(recons['rss_recons'])
                delta_rss = standardize_image(targets['rss_targets'] - recons['rss_recons'])
                self.writer.add_image(f'{mode} RSS Recons/{acc}/{step}', recon_rss, **kwargs)
                self.writer.add_image(f'{mode} RSS Delta/{acc}/{step}', delta_rss, **kwargs)

            if epoch == 1:  # Maybe add input images too later on.
                img_target_grid = make_img_grid(targets['img_targets'], self.shrink_scale)

                # Not actually the input but what the input looks like as an image.
                img_grid = make_img_grid(targets['img_inputs'], self.shrink_scale)

                self.writer.add_image(f'{mode} Image Targets/{acc}/{step}', img_target_grid, **kwargs)
                self.writer.add_image(f'{mode} Input Images/{acc}/{step}', img_grid, **kwargs)

                target_rss = standardize_image(targets['rss_targets'])
                self.writer.add_image(f'{mode} RSS Targets/{acc}/{step}', target_rss, **kwargs)
Exemplo n.º 3
0
    def _visualize_images(self, recons, targets, epoch, step, training=False):
        mode = 'Training' if training else 'Validation'

        # This numbering scheme seems to have issues for certain numbers.
        # Please check cases when there is no remainder.
        if self.display_interval and (step % self.display_interval == 0):
            img_recon_grid = make_img_grid(recons['img_recons'], self.shrink_scale)

            # The delta image is obtained by subtracting at the complex image, not the real valued image.
            delta_image = complex_abs(targets['cmg_targets'] - recons['cmg_recons'])
            delta_img_grid = make_img_grid(delta_image, self.shrink_scale)

            kspace_recon_grid = make_k_grid(recons['kspace_recons'], self.smoothing_factor, self.shrink_scale)

            self.writer.add_image(f'{mode} k-space Recons/{step}', kspace_recon_grid, epoch, dataformats='HW')
            self.writer.add_image(f'{mode} Image Recons/{step}', img_recon_grid, epoch, dataformats='HW')
            self.writer.add_image(f'{mode} Delta Image/{step}', delta_img_grid, epoch, dataformats='HW')

            # Adding RSS images of reconstructions and targets.
            if 'rss_recons' in recons:
                recon_rss = standardize_image(recons['rss_recons'])
                delta_rss = standardize_image(make_rss_slice(delta_image))
                self.writer.add_image(f'{mode} RSS Recons/{step}', recon_rss, epoch, dataformats='HW')
                self.writer.add_image(f'{mode} RSS Delta/{step}', delta_rss, epoch, dataformats='HW')

            if 'semi_kspace_recons' in recons:
                semi_kspace_recon_grid = make_k_grid(
                    recons['semi_kspace_recons'], self.smoothing_factor, self.shrink_scale)

                self.writer.add_image(
                    f'{mode} semi-k-space Recons/{step}', semi_kspace_recon_grid, epoch, dataformats='HW')

            if epoch == 1:  # Maybe add input images too later on.
                img_target_grid = make_img_grid(targets['img_targets'], self.shrink_scale)
                kspace_target_grid = make_k_grid(targets['kspace_targets'], self.smoothing_factor, self.shrink_scale)

                # Not actually the input but what the input looks like as an image.
                img_grid = make_img_grid(targets['img_inputs'], self.shrink_scale)

                self.writer.add_image(f'{mode} k-space Targets/{step}', kspace_target_grid, epoch, dataformats='HW')
                self.writer.add_image(f'{mode} Image Targets/{step}', img_target_grid, epoch, dataformats='HW')
                self.writer.add_image(f'{mode} Inputs as Images/{step}', img_grid, epoch, dataformats='HW')

                if 'rss_targets' in targets:
                    target_rss = standardize_image(targets['rss_targets'])
                    self.writer.add_image(f'{mode} RSS Targets/{step}', target_rss, epoch, dataformats='HW')

                if 'semi_kspace_targets' in targets:
                    semi_kspace_target_grid = make_k_grid(targets['semi_kspace_targets'],
                                                          self.smoothing_factor, self.shrink_scale)

                    self.writer.add_image(f'{mode} semi-k-space Targets/{step}',
                                          semi_kspace_target_grid, epoch, dataformats='HW')