Skip to content

Restormer Implementation for MONAI: High-Resolution Image Restoration #8261

Open
@phisanti

Description

@phisanti

Is your feature request related to a problem? Please describe.

I've noticed that MONAI currently lacks dedicated models for image denoising and restoration tasks. While MONAI provides excellent tools for medical image analysis, having specialized architectures for improving image quality would be valuable for preprocessing pipelines and enhancing low-quality medical images (microscopy, X-ray, scans...).

Describe the solution you'd like

I have implemented a well-documented version of the Restormer model (https://arxiv.org/abs/2111.09881) that could be contributed to MONAI. The implementation includes key components like:

  • Multi-DConv Head Transposed Self-Attention (MDTA) for efficient attention computation
  • Gated-DConv Feed-Forward Network (GDFN) for refined feature selection
  • Modular architecture allowing easy extension and modification
  • Support for flash attention when available
  • Comprehensive documentation of components and architecture

Describe alternatives you've considered

The implementation is already structured in a modular way with clear separation of components. I'm willing to:

  • Refactor the code to meet MONAI coding standards
  • Add appropriate type hints and docstrings
  • Include unit tests
  • Provide example notebooks demonstrating usage
  • Add benchmarks comparing performance

Additional context

The code is currently functional and tested. It supports both standard and dual-pixel tasks, with configurable parameters for network depth, attention heads, and feature dimensions. The implementation prioritizes efficiency through features like flash attention support while maintaining flexibility for different use cases.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions